【问题标题】:How to break from the while loop? For Python string type如何打破while循环?对于 Python 字符串类型
【发布时间】:2012-04-03 07:27:11
【问题描述】:
# Let's create a file and write it to disk.
filename = "test.dat"
# Let's create some data:
done = 0
namelist = []
while not done:
    name = raw_input("Enter a name:")
    if type(name) == type(""):
        namelist.append(name)
    else:
        break

对于上面的 Python 代码,我尝试过,但无法从 while 循环中中断。无论我输入什么,它总是要求我“输入名称:”。 如何跳出循环?

【问题讨论】:

  • 除非您转换它,否则您从用户收到的输入将始终是字符串输入。
  • 要调试它,您可以添加一些打印语句,如print name, repr(name), type(name)print type("")print type(name) == type("") 等,这会显示问题。散布打印语句很少会出错。

标签: python string types


【解决方案1】:

这是因为raw_input 总是返回一个字符串,即type(name) == type("") 总是为真。试试:

while True:
    name = raw_input("Enter a name: ")
    if not name:
        break
    ...

【讨论】:

  • 谢谢你们俩!代码是从别人的网页上获取的,所以有bug!
【解决方案2】:
# Let's create a file and write it to disk.
filename = "test.dat"
# Let's create some data:
namelist = []
while True:
    name = raw_input("Enter a name:")
    if name:
        namelist.append(name)
    else:
        break

什么都不输入就会中断

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 2015-03-25
    相关资源
    最近更新 更多