鱼C论坛

 找回密码
 立即注册
查看: 2417|回复: 1

[已解决]代码缩进报错不知该如何修正

[复制链接]
发表于 2023-6-28 18:32:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
画框的这段代码是照着小甲鱼老师在41讲习题答案(https://fishc.com.cn/thread-206416-1-2.html)里敲的,但是还是报了缩进错误,重新敲了还是报错。不知道是为什么
  1. import hashlib

  2. print("欢迎来到鱼C论坛~")
  3. print("=====================")
  4. print("""1.注册
  5. 2.登陆
  6. 3.退出
  7. """)
  8. ku={"2":"ddd",3:222}
  9. def get_int():
  10.     a=int(input("请输入指令:"))
  11.     if a==1:
  12.         register()
  13.     if a==2:
  14.         login()
  15.     if a==3:

  16. def encrypt(plaintext):
  17.     bstr=bytes(plaintext,"utf-8")
  18.     ciphertext=hashlib.md5(bstr).hexdigest()
  19.     return ciphertext
  20.         

  21. def register():
  22.     re_name=input("请输入用户名:")
  23.     while re_name in ku.keys():
  24.         print("该用户已注册")
  25.         re_name=input("请输入用户名:")
  26.   
  27.     re_password=input("请输入密码:")
  28.     re_password=encrypt(re_password)
  29.     ku[re_name]=re_password
  30.     print("恭喜,注册成功")

  31. def login():
  32.     name=input("请输入用户名:")
  33.     while name not in ku.keys():
  34.         print("该用户不存在")
  35.         name=input("请重新输入用户名:")
  36.     password=input("请输入密码:")
  37.     while ku.get(name)!=encrypt(password):
  38.         print("密码错误")
  39.         password=input("请重新输入密码:")
  40.         
  41.     print("登陆成功")
复制代码


截图未命名.jpg
截图未命名1.jpg
最佳答案
2023-6-28 18:44:28
你的代码主要有两个问题。首先,if后面需要有else或elif语句,这样如果没有满足if条件的话,程序会知道该执行什么操作。其次,你需要在 if a==3: 语句后面添加一个操作。如果你想让程序在输入3时退出,你可以使用 sys.exit() 函数。

下面是修改后的代码:

  1. import hashlib
  2. import sys

  3. print("欢迎来到鱼C论坛~")
  4. print("=====================")
  5. print("""1.注册
  6. 2.登陆
  7. 3.退出
  8. """)
  9. ku={"2":"ddd",3:222}

  10. def get_int():
  11.     a=int(input("请输入指令:"))
  12.     if a==1:
  13.         register()
  14.     elif a==2:
  15.         login()
  16.     elif a==3:
  17.         sys.exit()

  18. def encrypt(plaintext):
  19.     bstr=bytes(plaintext,"utf-8")
  20.     ciphertext=hashlib.md5(bstr).hexdigest()
  21.     return ciphertext
  22.         

  23. def register():
  24.     re_name=input("请输入用户名:")
  25.     while re_name in ku.keys():
  26.         print("该用户已注册")
  27.         re_name=input("请输入用户名:")
  28.   
  29.     re_password=input("请输入密码:")
  30.     re_password=encrypt(re_password)
  31.     ku[re_name]=re_password
  32.     print("恭喜,注册成功")

  33. def login():
  34.     name=input("请输入用户名:")
  35.     while name not in ku.keys():
  36.         print("该用户不存在")
  37.         name=input("请重新输入用户名:")
  38.     password=input("请输入密码:")
  39.     while ku.get(name)!=encrypt(password):
  40.         print("密码错误")
  41.         password=input("请重新输入密码:")
  42.         
  43.     print("登陆成功")

  44. # 确保在程序开始时就运行get_int()函数
  45. if __name__ == "__main__":
  46.     get_int()
复制代码


希望这个能帮助到你!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-6-28 18:44:28 | 显示全部楼层    本楼为最佳答案   
你的代码主要有两个问题。首先,if后面需要有else或elif语句,这样如果没有满足if条件的话,程序会知道该执行什么操作。其次,你需要在 if a==3: 语句后面添加一个操作。如果你想让程序在输入3时退出,你可以使用 sys.exit() 函数。

下面是修改后的代码:

  1. import hashlib
  2. import sys

  3. print("欢迎来到鱼C论坛~")
  4. print("=====================")
  5. print("""1.注册
  6. 2.登陆
  7. 3.退出
  8. """)
  9. ku={"2":"ddd",3:222}

  10. def get_int():
  11.     a=int(input("请输入指令:"))
  12.     if a==1:
  13.         register()
  14.     elif a==2:
  15.         login()
  16.     elif a==3:
  17.         sys.exit()

  18. def encrypt(plaintext):
  19.     bstr=bytes(plaintext,"utf-8")
  20.     ciphertext=hashlib.md5(bstr).hexdigest()
  21.     return ciphertext
  22.         

  23. def register():
  24.     re_name=input("请输入用户名:")
  25.     while re_name in ku.keys():
  26.         print("该用户已注册")
  27.         re_name=input("请输入用户名:")
  28.   
  29.     re_password=input("请输入密码:")
  30.     re_password=encrypt(re_password)
  31.     ku[re_name]=re_password
  32.     print("恭喜,注册成功")

  33. def login():
  34.     name=input("请输入用户名:")
  35.     while name not in ku.keys():
  36.         print("该用户不存在")
  37.         name=input("请重新输入用户名:")
  38.     password=input("请输入密码:")
  39.     while ku.get(name)!=encrypt(password):
  40.         print("密码错误")
  41.         password=input("请重新输入密码:")
  42.         
  43.     print("登陆成功")

  44. # 确保在程序开始时就运行get_int()函数
  45. if __name__ == "__main__":
  46.     get_int()
复制代码


希望这个能帮助到你!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-24 12:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表