我正在试着写一个代码,检查2位数字是不是数字。当输入是数字时,一切工作正常。当一个数字被视为str时出现问题。然后我得到了一个错误:
ValueError: invalid literal for int() with base 10: 'any str typed in keyboard'
下面是我的代码:
def dividingResult(x, y):
result = x/y
return result
def checkDigit1(x):
if x.isdigit():
return x
else:
print('It is not a digit')
programStart()
def checkDigit2(y):
if y.isdigit():
return y
else:
print('It is not a digit')
programStart()
def programStart():
print("type digit 1")
digit1 = input()
checkDigit1(digit1)
print("type digit 2")
digit2 = input()
checkDigit2(digit2)
print(dividingResult(int(digit1), int(digit2)))
programStart()发布于 2021-02-25 16:31:04
问题就在这里print(dividingResult(int(digit1), int(digit2)))。
您只需检查函数中的数字checkDigit1和checkDigit2上面的代码行不在它们里面。您没有为此设置任何条件。
下面是完整的代码;
def dividingResult(x, y):
result = x/y
return result
def checkDigits(x, y):
if x.isdigit() and y.isdigit():
return x, y
else:
print('These are not digits')
programStart()
return False
def programStart():
print("type digit 1")
digit1 = input()
print("type digit 2")
digit2 = input()
checkDigits(digit1, digit2)
if checkDigits:
print(dividingResult(int(digit1), int(digit2)))
programStart()如果您需要解释,请发表评论
https://stackoverflow.com/questions/66364854
复制相似问题