python - 如何忽略以前的输入?
问题描述
我正在尝试用数字创建一个while循环函数。基本上,我的功能是不断添加数字,直到输入非数字,然后我可以打破循环。但是,当我输入非数字输入时,非数字也会被添加到等式中并导致错误。
如何从等式中排除非数字?
sum_num = 0
while True:
num = input("Please input a number: ")
sum_num = int(sum_num) + int(num)
if num.isdigit() != True:
print(sum_num)
break
解决方案
我将使用 atry except
来捕获错误。这清楚地表明您正在避免这种情况。
您的代码不起作用的原因是因为您在检查这是否可能之前尝试将“非数字”(字符串)添加到“数字”(整数),这是在您已经导致错误之后执行的. 如果您移动上面的 if 语句,您的代码将起作用:
sum_num = 0
while True:
num = input("Please input a number: ")
if num.isdigit() != True:
print(sum_num)
break
sum_num = int(sum_num) + int(num)
推荐阅读
- xml - 使用 XSD 构面模式验证 XML 时出现问题
- javascript - 如何将夹具图像添加到赛普拉斯中的元素?
- java - 你能从 Android 的一个类内部传递一个类的实例吗?
- php - 使用 Zend 2 实现 LTI1.3 工具提供程序
- sql - 根据相似查询分配多个参数
- c++ - 将指针/引用转换为固定数组大小是否合法
- android - 安卓分页 3.0
- android - 在 Android 中通过 Google Drive API 登录时出现问题
- apache-spark - 将流式 PySpark 数据帧附加到 Cassandra 不会写任何东西
- react-native - 在 React Native Release APK 中字体颜色变为灰色而不是黑色