如何解决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')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。