马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
想问一下,为什么在这段代码中,当我判断2是否在字典的键里,它直接执行了else命令(明明2是在keys里的)ku={2:"ddd",3:222}
def register():
re_name=input("请输入用户名:")
if re_name in ku.keys():
print("该用户已注册")
re_name=input("请输入用户名:")
else:
re_password=input("请输入密码:")
ku[re_name]=re_password
print("恭喜,注册成功")
register()
在你的代码中,变量 re_name 会被 input() 函数赋值,这个函数总是返回一个字符串类型的数据。而你的字典 ku 中的键是整数。这就导致了当你输入 '2' 时,它与字典中的键 2(整数类型)进行比较,并没有匹配,因此执行了 else 子句。
你可以尝试将输入的 re_name 转换为整数,然后进行键的匹配,如下:
ku={2:"ddd",3:222}
def register():
re_name=input("请输入用户名:")
if int(re_name) in ku.keys(): # 注意这里我们用了int()函数
print("该用户已注册")
re_name=input("请输入用户名:")
else:
re_password=input("请输入密码:")
ku[int(re_name)]=re_password # 注意这里我们用了int()函数
print("恭喜,注册成功")
register()
请注意,这段代码假设用户输入的总是一个整数。如果用户输入的不是整数, int(re_name) 会抛出 ValueError 。因此,你可能需要添加一些错误处理代码以确保输入的是有效的整数。
|