为什么这一切都是真的不会循环回来

时间:2013-12-30 17:10:12

标签: python python-3.x

def erVal():
    print("The value entered is not vaild, enter a valid value")

name = input("Enter your name ")
while True:
 erVal()
 if name.isalpha() is True:
     break

没有循环回来为什么?

我试图在用户将名称输入留空时显示错误消息 while循环有效,但它一直在运行打印errVal

1 个答案:

答案 0 :(得分:1)

回答你的问题。假设格式正确,如果输入非alpha值,此代码将进入无限循环。它不会再回来询问这个名字了。输入名称的alpha值将导致执行中断,这将结束while循环。

我认为你的意思更像是以下内容:

def erVal():
  print("The value entered is not valid, enter a valid value.")

while True:
  name = input("Enter your name ")
  if name.isalpha() is True:
    break # will exit the while if name is alpha
  else:
    erVal()

Python非常具有交互性,将来我建议您测试较小的代码片段,例如使用while循环播放以查看中断的内容。这将提高您对代码的理解。