AttributeError: 'int'对象没有'isdigit'属性来自用户输入

0 投票
2 回答
7512 浏览
提问于 2025-05-10 15:50

我在默认的IDE里运行Python 3。

这是我的代码:

def print_():
    f = open("height.txt","r")
    content = f.read()
    print(content)
    f.close()
    main()


def main():     
    name = str(input("What is your name?"))
    data = int(input("How tall are you? (CM)"))

    if data.isdigit() == True:
        print("\n")

    elif data.isdigit() == False:
        print("Must be a number!")
        main()


    # a+ is read only mode
    f = open("height.txt","a+")
    f.write(name)
    f.write(str(data))
    f.write("cm, ")
    f.close()

    data_1 = str(input("1 = View Contents. Other = Quit"))
    if data_1 == '1':
        print_()

    else:
        print("Exiting")

main()

相关文章:

  • 暂无相关问题
暂无标签

2 个回答

0

问题在于,isdigit这个函数是用来检查字符串的;但是你已经把数据对象转换成整数了:data = int(input("你多高?(厘米)"))。如果你想使用isdigit函数,就应该让data保持为字符串。可以这样写:data = str(input("..."))

4

你正在尝试对已经转换为整数的数据使用 isdigit() 函数。首先把数据当作字符串 str 读取,然后在确认它是数字后再转换成整数:

def main():     
    name = str(input("What is your name?"))
    data = str(input("How tall are you? (CM)"))

    while !data.isdigit():
        print("Must be a number!")
        data = str(input("How tall are you? (CM)"))
        print("\n")

    data = int(data)
    print("\n")

这个循环会一直要求输入一个整数,直到你输入了一个有效的整数,然后再将其转换为整数。

撰写回答