【发布时间】:2016-08-09 15:44:13
【问题描述】:
所以这是用户输入的提示,它工作得很好。我在控制台上打印了一些名称和相关的(基于 1 的)数字,供用户选择。我还可以通过输入 q 来选择退出。 数字有效的条件是 a) 它是一个数字 b) 它小于或等于名称的数量且大于 0。
while True:
number = str(input("Enter number, or q to quit. \n"))
if number == "q":
sys.exit()
try:
number = int(number)
except:
continue
if number <= len(list_of_names) and number > 0:
name = list_of_names[number-1]
break
这段代码没有问题,只是我觉得它很难阅读,而且不是很漂亮。由于我是python新手,我想问你们,你们如何更干净地编写这个提示?更具体地说:我如何要求用户输入可以是字符串或整数的输入?
【问题讨论】:
-
除了缩进,看起来还不错。您可以使用
else和finally或多个excepts。另外,if number in range(..)。而且t认为输入已经返回了一个字符串。 -
if number.isdigit() and int(number) in range(len(list_of_names)): -
@StevenRumbalski 这并没有真正帮助,因为当您索引列表时,您必须将输入转换为 int 再次,并且数字也是从 1 开始的。
-
这可能属于code-review。
-
@Rawing:我不确定你的反对是基于性能还是优雅。如果性能真的没关系。
标签: python python-3.x coding-style code-cleanup