问题描述
这是一个循环,允许用户从列表中仅选择一个项目。
types = ['Small', 'Medium','Large']
while True:
print('Types: '+ types)
choice = raw_input('Choose a type. ').capitalize()
if choice in types:
choice = choice
break
else:
choice = raw_input('Choose a type. ').capitalize()
我在想这个循环是否有更小更干净的版本。 尝试除版本外。 这是最好的书写方式吗? 备择方案?
有任何想法吗?
1楼
没有多余代码的情况相同:
types = ['Small', 'Medium','Large']
print('Types: '+ types)
while True:
choice = raw_input('Choose a type. ').capitalize()
if choice in types:
break
2楼
几行是不必要的,我将对其进行评论:
types = ['Small', 'Medium','Large']
while True:
print('Types: '+ types)
choice = raw_input('Choose a type. ').capitalize()
if choice in types:
#choice = choice this is superfluos
break
#else: no need for else since the loop will execute again and do exactly this
# choice = raw_input('Choose a type. ').capitalize()
最终结果如下:
types = ['Small', 'Medium','Large']
while True:
print('Types: '+ types)
choice = raw_input('Choose a type. ').capitalize()
if choice in types:
break
注意:如果您不想每次都重复Types
只需将print
移出循环即可:
types = ['Small', 'Medium','Large']
print('Types: '+ types)
while True:
...
另外,您的代码与特定的Python版本不一致,您可以在带有括号的情况下使用raw_input()
或print()
,但不能混合使用(除非您进行__future__
导入)。