| 
 | 
 
 
发表于 2023-6-28 18:44:28
|
显示全部楼层
   本楼为最佳答案    
 
 
你的代码主要有两个问题。首先,if后面需要有else或elif语句,这样如果没有满足if条件的话,程序会知道该执行什么操作。其次,你需要在 if a==3: 语句后面添加一个操作。如果你想让程序在输入3时退出,你可以使用 sys.exit() 函数。 
 
下面是修改后的代码: 
 
- import hashlib
 
 - import sys
 
  
- print("欢迎来到鱼C论坛~")
 
 - print("=====================")
 
 - print("""1.注册
 
 - 2.登陆
 
 - 3.退出
 
 - """)
 
 - ku={"2":"ddd",3:222}
 
  
- def get_int():
 
 -     a=int(input("请输入指令:"))
 
 -     if a==1:
 
 -         register()
 
 -     elif a==2:
 
 -         login()
 
 -     elif a==3:
 
 -         sys.exit()
 
  
- def encrypt(plaintext):
 
 -     bstr=bytes(plaintext,"utf-8")
 
 -     ciphertext=hashlib.md5(bstr).hexdigest()
 
 -     return ciphertext
 
 -         
 
  
- def register():
 
 -     re_name=input("请输入用户名:")
 
 -     while re_name in ku.keys():
 
 -         print("该用户已注册")
 
 -         re_name=input("请输入用户名:")
 
 -   
 
 -     re_password=input("请输入密码:")
 
 -     re_password=encrypt(re_password)
 
 -     ku[re_name]=re_password
 
 -     print("恭喜,注册成功")
 
  
- def login():
 
 -     name=input("请输入用户名:")
 
 -     while name not in ku.keys():
 
 -         print("该用户不存在")
 
 -         name=input("请重新输入用户名:")
 
 -     password=input("请输入密码:")
 
 -     while ku.get(name)!=encrypt(password):
 
 -         print("密码错误")
 
 -         password=input("请重新输入密码:")
 
 -         
 
 -     print("登陆成功")
 
  
- # 确保在程序开始时就运行get_int()函数
 
 - if __name__ == "__main__":
 
 -     get_int()
 
 
  复制代码 
 
希望这个能帮助到你! |   
 
 
 
 |