我有一个有关如何警告用户输入'string'
而不是'integer'
的问题
但是,如果用户输入为integer
,然后再次询问please enter string
这里的例子
http://pythontutor.com/visualize.html#mode=edit
catNames = []
while True:
print("Enter the name of cat " + str(len(catNames) + 1) + ' (Or enter nothing to stop):' )
while True:
name = input()
try:
name = int(name)
except ValueError:
print('please enter string')
pass
if name == '':
break
catNames = catNames + [name] # list concatenation
print('The cat names are :')
for i in catNames:
print(' ' + i)
答案 0 :(得分:3)
可能的解决方法是:
catNames = []
while True:
print("Enter the name of cat " + str(len(catNames) + 1) + ' (Or enter nothing to stop):' )
name = input()
if name.isalpha():
catNames = catNames + [name] # list concatenation
elif name == '':
break
else:
print("Please enter a string")
print('The cat names are :')
for i in catNames:
print(' ' + i)
答案 1 :(得分:1)
一个while
就足够了,如果用户输入一个整数,则可以“重置”该值:
catNames = []
while True:
print("Enter the name of cat " + str(len(catNames) + 1) + ' (Or enter nothing to stop):' )
name = input()
if name.strip() == '':
# no input
print("exiting!")
break
try:
name = int(name)
name = None
print("Please enter a string")
except ValueError:
pass
finally:
if name is not None:
catNames.append(name)
print('The cat names are :')
for i in catNames:
print(' ' + i)