python - 如果 int() 提供非整数,如何处理 ValueError
问题描述
Python 将函数读取input()
为字符串。在将它传递给我的函数进行除法之前,变量被类型转换为 int 使用int()
. 如果一个变量是非整数(例如"a"
),那么如何捕捉它?
def divideNums(x,y):
try:
divResult = x/y
except ValueError:
print ("Please provide only Integers...")
print (str(x) + " divided by " + str(y) + " equals " + str(divResult))
def main():
firstVal = input("Enter First Number: ")
secondVal = input("Enter Second Number: ")
divideNums (int(firstVal), int(secondVal))
if __name__ == "__main__":
main()
如何处理firstVal
/的类型转换secondVal
?
解决方案
您可以使用 isdigit 函数检查输入值是否为整数
def main():
firstVal = input("Enter First Number: ")
secondVal = input("Enter Second Number: ")
if firstVal.isdigit() and secondVal.isdigit():
divideNums (int(firstVal), int(secondVal))
else:
print ("Please provide only Integers...")
推荐阅读
- soap - 将属性加载到基于 Weblogic 托管服务器的应用程序中
- php - Laravel 无法使用 json_decode 从 Guzzle 返回嵌套数据
- fabricjs - 如何通过在fabric.js画布中单击按钮来删除网格线
- owl-api - 解析方法OWLAPI中参数的含义(构建AST)
- python - Mysql.connector 在本地网络 Python 3 中访问远程数据库
- java - 使用 MyBatis 和 Spring 进行 Oracle 数据库轮询
- java - 如何跳过所有模块的javadoc?
- css - 谷歌字体显示在桌面但不在移动设备上(在 Android 和 iOS 上测试)
- angular - 强制浏览器下载任何文件(S3 Amazon),而不是在浏览器中打开它 angular 5
- java - 在给定的 Java 代码中,name() 方法将返回什么?