首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:基数为10的int()的文本无效:'string‘

问ValueError:基数为10的int()的文本无效:'string‘
EN

Stack Overflow用户
提问于 2021-02-25 16:26:44
回答 1查看 48关注 0票数 -3

我正在试着写一个代码,检查2位数字是不是数字。当输入是数字时,一切工作正常。当一个数字被视为str时出现问题。然后我得到了一个错误:

ValueError: invalid literal for int() with base 10: 'any str typed in keyboard'

下面是我的代码:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-25 16:31:04

问题就在这里print(dividingResult(int(digit1), int(digit2)))。

您只需检查函数中的数字checkDigit1和checkDigit2上面的代码行不在它们里面。您没有为此设置任何条件。

下面是完整的代码;

代码语言:javascript
复制
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()

如果您需要解释,请发表评论

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66364854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档