Python:输入要转换的值时,以10为基数的int()的文本无效

2024-06-08 02:00:20 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码,问题来自我的代码的第四块,第一行和第二行,我尝试了备选方案,上面提到了英文代码,并附上了错误图片。 这是学校的作业,我不明白问题的原因。该代码非常简单易懂,如果您需要任何进一步的信息,我会尽快回答我看到的消息

谢谢你花时间帮我找到解决办法, 真诚地 鲁巴

我终于找到了解决方案,这是我犯的错误,代码运行得非常好。但我保留这篇帖子,以防一些新手犯同样的错误,答案在评论中

    #################################
    # Ex5 : Autorisation d’accès
    # 20205793 
    # Créé le 09/03/2021
    #################################

id_saisi=输入(“标识:”)

 #Note au correcteur: Veuillez excuser l'absence d'accents, mon clavier est un qwerty et c'est assez couteux de mon temps de devoir switcher entre qwerty et azerty

    import stdiomask 
#importe le module stdiomask qui permet de remplacer la valeur saisie par des etoiles

    def Authentification(id_valide,pass_valide):

#fonction Authentification qui prend 2 parametres
   

     print("Veuillez saisir votre identifiant:")
        id_saisi = input("Identifiant:")
        print("Veuillez saisir votre mot de passe:")
        pass_saisi = stdiomask.getpass("Mot de passe:")

#emploi du module stdiomask
#masque le mot de passe entré en le remplacant par des etoiles
#demande a l'utilisateur son identifiant et son mot de passe

`#I tried id_saisi=int(float(str(id_saisi[12:]))) but returns error couldn't convert string to float`
`#also tried id_saisi=int(id_saisi[12:].strip('"')) returns same error as if I didn't strip the quotes`
   

     id_saisi=int(id_saisi[12:])
     pass_saisi=int(pass_saisi[12:])

    if id_saisi == id_valide & pass_saisi == pass_valide :
        print("Votre identifiant et votre mot de passe sont valides")
#alerte l'utilisateur que ses id et mots de passe sont incorrects
   

     elif id_saisi == id_valide & pass_saisi != pass_valide:
        print("Votre mot de passe est invalide")
#alerte  l'utilisateur que son mpt de passe est incorrect

    elif id_saisi != id_valide & pass_saisi == pass_valide:
        
    
    print("Votre identifiant est invalide")

#alerte l'utilisateur que son id est incorrect
   

     else:
            print("Votre identifiant et votre mot de passe sont invalides")

#verification de la validite du mot de passe et de l'identifiant et affichage d'une message en fonction de chaque cas

        
    Authentification(20205793, 2002)

#les valeurs valides sont définies lors de l'appel de la fonction


    

Tags: 代码leiddepassetestprint
1条回答
网友
1楼 · 发布于 2024-06-08 02:00:20

此错误意味着字符串中至少有一个字符不是数字,并且字符串无法转换为int或float

两种简单的验证方法是捕获强制转换引发的异常,或者检查输入是否都是数字

异常捕获:

try:
    id_saisi=int(id_saisi[12:])
except ValueError:
    print ('input is not a number')

isdigit:

if id_saisi[12:].isdigit():
    id_saisi=int(id_saisi[12:])
else:
    print ('input is not a number')

相关问题 更多 >

    热门问题