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

问题描述

这是我的代码,问题来自我代码的第四块,第一行和第二行,我尝试了替代方案,在英文代码上方提到了它们并附上了错误图片。 这是学校作业,我不明白问题的原因。代码非常简单易懂,如果您需要更多信息,我会在看到消息后立即回复。

感谢您抽出宝贵时间帮助我找到解决方案, 真挚地, 肉巴

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

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

id_saisi = input("标识符:")

 #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


    

解决方法

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

两种简单的验证方法是捕获转换抛出的异常或检查输入是否全部为数字。

异常捕获:

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

是数字:

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...