如果以非整数形式提供int(),则如何处理ValueError

时间:2019-02-15 12:01:35

标签: python

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的类型转换?

2 个答案:

答案 0 :(得分:1)

您可以使用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...")

答案 1 :(得分:1)

使用try/except ValueError块是正确的,但是这样做是错误的 地点。 try块必须在将变量转换为的位置附近 整数。例如

def main():
    firstVal = input("Enter First Number: ")
    secondVal = input("Enter Second Number: ")

    try:
        firstVal = int(firstVal)
        secondVal = int(secondVal)
    except ValueError:
        # print the error message and return early
        print("Please provide only Integers...")
        return

    divideNums (firstVal, secondVal)