python - 如何使用 input() 只接受正数作为 int,
问题描述
我在 Python 3.7 中真的很新,我正在测试一些东西,我试图了解我怎么能问别人他的年龄。但是如果他输入一个字母或一个负数,它会说,只有正数,然后它会再次提问,如果数字是正数,那么程序继续。到目前为止,这是我的代码给我一个错误:
while true :
age = input('Your age : ')
try:
age = int(age)
except ValueError:
print ('Numbers only')
continue
else:
break
给我错误:,
> line 10
age = input()
^
SyntaxError: expected an indented block
解决方案
这有帮助吗?这有效:
while True:
age = input('Your age')
try:
age = int(age)
break
except ValueError:
print ('Numbers only')
解释:根据定义,条件“真”为真,因此循环无限期地发生,直到它遇到“中断”。Age 接受标准输入并尝试将其转换为整数。如果输入了非整数字符,则会发生异常(ValueError),并打印“仅限数字”。然后循环将继续。如果用户输入一个整数,输入将被转换为一个整数,程序将退出循环。
关于语法错误:在 Python 语法中,关键字是“True”而不是 true。您需要在循环或条件之后缩进所有项目(在这种情况下,当程序遇到需要缩进的 age=input('Your age :') 时发生错误。
推荐阅读
- python-2.7 - 不同孩子的多重继承
- php - SQLSTATE[HY000] [2002] 没有这样的文件或目录 (SQL: select * from `jobs`)
- python - 位图“颜色”未定义
- r - 传单输入 $MAPID_center 返回 NULL
- node.js - Docker 构建命令不适用于 Nodejs
- swift - Swift Firebase 身份验证:禁用的用户可以继续使用该应用程序
- python - 使用 Pandas 中的索引从另一个数据框中分配一列,而不破坏其他行中的数据
- python - 无法为从 DataFrame 中提取的类别制作面板选择器
- javascript - 如何在我的选择选项中使用多个值来对 UL 进行排序?
- python - 如何在 python 中只看到整个雷达图的一部分?