用while语句循环,而读一字符串整数
问题描述:
我需要帮助包住:用while语句循环,而读一字符串整数
if any(c.isdigit() for c in name):
print("Not a valid name!")
while语句的内部。这几乎只是读取“name”变量的输入,并查看是否有一个整数。我怎么能在一个while语句中使用它?我只是希望如果用户在输入中输入了一个变量,它会打印出上面的字符串并循环回去,并再次询问用户名称,直到他们成功输入一个没有整数的字符串,然后我想要它打破。任何帮助?
print("Hello there!")
yn = None
while yn != "y":
print("What is your name?")
name = raw_input()
if any(c.isdigit() for c in name):
print("Not a valid name!")
print("Oh, so your name is {0}? Cool!".format(name))
print("Now how old are you?")
age = raw_input()
print("So your name is {0} and you're {1} years old?".format(name, age))
print("y/n?")
yn = raw_input()
if yn == "y":
break
if yn == "n":
print("Then here, try again!")
print("Cool!")
答
使用while True
和break
结束循环时,已经进入了一个有效的名称:
while True:
name = raw_input("What is your name? ")
if not any(c.isdigit() for c in name):
break
print("Not a valid name!")
这比第一初始化name
的东西,是无效的,那么用在any()
表达更容易while
测试。
答
事情是这样的:
name = input("What is your name? : ")
while any(c.isdigit() for c in name):
print ("{0} is invalid, Try again".format(name))
name = input("What is your name? : ")
演示:
What is your name? : foo1
foo1 is invalid, Try again
What is your name? : 10bar
10bar is invalid, Try again
What is your name? : qwerty
答
你只是说你想要一个continue
后您的print("Not a valid name!")
?
print("Hello there!")
yn = None
while yn != "y":
print("What is your name?")
name = raw_input()
if any(c.isdigit() for c in name):
print("Not a valid name!")
continue
print("Oh, so your name is {0}? Cool!".format(name))
...
continue
将回到您的循环的顶部。
是的,我希望它保持循环,直到用户输入一个有效的名称(一个没有整数) – Xiam 2013-05-09 18:20:08
所以......这不是你的问题的答案吗? – 2013-05-09 18:22:36