#python#输入空字符串无法退出while循环的问题


dict = {}
data = input("请输入科目和成绩,比如:语文 89,输入空字符串并按回车退出:")
while data:
    ls = data.split(" ")
    subject = ls[0]
    score = ls[1]
    dict[subject] = score
    data = input("请输入科目和成绩,比如:语文 89,输入空字符串并按回车退出:")
print(dict)

输入空字符串,无法退出while循环的问题,空字符串不是布尔值为False吗,
输入空字符串还会进入到while循环中,谁帮忙看一下到底是哪里出了问题?

  • Python中的空字符'',布尔值确定如您所想是False。

    img

  • cv您的代码,“直接回车”可以正常退出循环啊。您的代码,没得问题!

    img

  • 在while循环内加一条打印输出语句,可以清楚地看到,直接回车,可以退出循环。一开始就回车,根本就不进入循环。

    img


    img

#!/sur/bin/nve python
# coding: utf-8

dict = {}
data = input("请输入科目和成绩,比如:语文 89,输入空字符串并按回车退出:")
while data:
    print('\n输入内容:', data)
    ls = data.split(" ")
    subject = ls[0]
    score = ls[1]
    dict[subject] = score
    data = input("\n请输入科目和成绩,比如:语文 89,输入空字符串并按回车退出:")
print(dict)


【以下回答由 GPT 生成】

问题的根本原因是在判断输入是否为空字符串时出现了错误。在while循环中,使用while data:来判断输入是否为空字符串是错误的,因为空字符串在Python中是被认为是True的,所以循环会继续执行。

解决这个问题的方法是改变判断条件。可以使用while data != ''来判断输入是否为空字符串,或者直接使用while True来创建一个无限循环,在循环内部判断输入是否为空字符串,然后使用break语句来退出循环。

以下是修正后的代码示例:

data = input("请输入科目和成绩,比如: 语文 89,输入空字符串并按回车退出:")
dict = {}

while True:
    if data == '':
        break
    ls = data.split(" ")
    subject = ls[0]
    score = ls[1]
    dict[subject] = score
    data = input("请输入科目和成绩,比如: 语文 89,输入空字符串并按回车退出:")

print(dict)

通过这样修改,当输入为空字符串时,程序会跳出循环并打印字典。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^