Python 为什么我的代码不工作AttributeError:';int';对象没有属性';isdigit'; #猜猜数字 随机输入 def是有效的数值(数值): 如果num.isdigit()和1

Python 为什么我的代码不工作AttributeError:';int';对象没有属性';isdigit'; #猜猜数字 随机输入 def是有效的数值(数值): 如果num.isdigit()和1,python,if-statement,while-loop,Python,If Statement,While Loop,isdigit()是一个字符串方法,那么它对int输入不起作用 更改此项: guess=int(输入('enteranum')) 为此: guess=input('enteranum') 编辑后的代码: #猜猜数字 随机输入 def是有效的数值(数值): 如果num.isdigit()和1isdigit()是字符串上的方法。您已经将num转换为整数,方法是在input()调用周围添加int()。您执行了吗?我已经编辑了答案以包含您的完整代码,请尝试并告诉我这是否是您正在寻找的结果 #Gues

isdigit()
是一个字符串方法,那么它对
int
输入不起作用

更改此项:

guess=int(输入('enteranum'))
为此:

guess=input('enteranum')
编辑后的代码:

#猜猜数字
随机输入
def是有效的数值(数值):

如果num.isdigit()和1
isdigit()
是字符串上的方法。您已经将
num
转换为整数,方法是在
input()
调用周围添加
int()
。您执行了吗?我已经编辑了答案以包含您的完整代码,请尝试并告诉我这是否是您正在寻找的结果
#Guess the num
import random
def is_valid_num(num):
    if num.isdigit() and 1 <= int(num) <= 100:
        return True
    else:
        return False

def main():
    number = random.randint(1,100)
    guessed_number = False
    guess = input('enter a num')
    #guess = (input('enter a num'))
    num_of_guesses = 0
    while not guessed_number:
        if not is_valid_num(guess):
            #return False
            guess = input('i count only digits enter 1<num<100')
            continue
        else:
            num_of_guesses += 1
            #break
            guess = int(guess)
        if guess < number:
            print ('entered number is low')

        elif guess > number:
            print ('entered number is high')

        else:
            print ('you got in',num_of_guesses, 'guesses')
            guessed_number = True
main()
@Thanks Issac Full code is below

#Guess the num
import random
def is_valid_num(num):
    if num.isdigit() and 1 <= int(num) <= 100:
        return True
    else:
        return False

def main():
    number = random.randint(1,100)
    guessed_number = False
    guess = input('enter a num')
    #guess = (input('enter a num'))
    num_of_guesses = 0
    while not guessed_number:
        if not is_valid_num(guess):
            #return False
            guess = input('i count only digits enter 1<num<100')
            continue
        else:
            num_of_guesses += 1
            #break

            guess = int(guess)
        if guess < number:
            guess = (input('entered number is low try again'))
        elif guess > number:
            guess = (input('entered number is high try again'))
        else:
            print ('you got in',num_of_guesses, 'guesses')
            guessed_number = True
main()
>>enter a num55
entered number is high try again55
entered number is high try again45
entered number is high try again88
entered number is high try again30
entered number is high try again10
entered number is low try again20
entered number is low try again25
entered number is high try again22
entered number is low try again23
you got in 10 guesses