作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了这项任务,我一直在用头撞墙,但我似乎一辈子都无法弄清楚。
我想编写一个脚本,提示用户输入一个数字,并在每次输入数字后将该数字存储在列表中。当用户只按 Enter 键而不输入任何内容时,脚本将打印出列表中的最大数字。
这是我到目前为止所写的:
x = 0
mylist = []
while x != '':
x = input("enter a number:")
mylist.append(x)
if x == '':
print(max(mylist))
我发现这段代码有两个问题:
用户可以输入一个字符串(我尝试通过说 x = int(input(...) 来解决这个问题,但这只会导致一个新错误:
ValueError: invalid literal for int() with base 10: ''
print(max(mylist)) 只打印出初始整数最大的数字。例如,如果用户输入 51 和 112,则会打印出 51。
感谢您花时间帮助我。
最佳答案
使用不同的变量来测试 While。检查输入的 isnumeric() ,如果它是数字,则在将其附加到数组时将其转换:
keepMoving = True
mylist = []
while keepMoving:
x = input("enter a number:")
if x.isnumeric():
mylist.append(int(x))
else:
keepMoving = False
print(max(mylist))
关于python - 如何让我的脚本只接受数字输入而不搞砸它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496789/
我是一名优秀的程序员,十分优秀!