用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 Truebreak结束循环时,已经进入了一个有效的名称:

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将回到您的循环的顶部。

+0

是的,我希望它保持循环,直到用户输入一个有效的名称(一个没有整数) – Xiam 2013-05-09 18:20:08

+0

所以......这不是你的问题的答案吗? – 2013-05-09 18:22:36