鱼C论坛

 找回密码
 立即注册
查看: 1436|回复: 7

[已解决]课后作业问题

[复制链接]
发表于 2025-1-22 19:47:21 | 显示全部楼层 |阅读模式

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

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

x
问题:PYTHON第65讲课后作业动动手第零提
我的:
  1. bank = {}
  2. number = 88888887
  3. class Bank:
  4.     def __init__(self):
  5.         self.program = int(input("1.创建账户 2.删除账户 3.查询余额 4.存款 5.取款 6.转账 7.退出"))
  6.         if self.program == 1:
  7.             self.create()
  8.         elif self.program == 2:
  9.             self.delete()
  10.         elif self.program == 3:
  11.             self.inquire()
  12.         elif self.program == 4:
  13.             self.save()
  14.         elif self.program == 5:
  15.             self.out()
  16.         elif self.program == 6:
  17.             self.give()
  18.         else:
  19.             pass
  20.     def create(self):
  21.         global number
  22.         name = input("请输入姓名:")
  23.         password = input("请输入密码:")
  24.         inquire = int(input("请输入预存款:"))
  25.         while len(str(password)) != 6 or (not str(password).isdecimal()):
  26.             password = int(input("密码需为六位数字,请重新输入:"))
  27.         number += 1
  28.         bank[number] = [name, password, inquire]
  29.         print("创建成功!,卡号为{}".format(number))
  30.         Bank()
  31.     def delete(self):
  32.         global number
  33.         number1 = int(input("请输入删除人的卡号:"))
  34.         if bank.get(number1):
  35.             print("删除成功!")
  36.             del bank[number1]
  37.             number -= 1
  38.         else:
  39.             print("查无此人!")
  40.         Bank()
  41.     def inquire(self):
  42.         number = int(input("请输入卡号:"))
  43.         if bank.get(number):
  44.             password = int(input("请输入密码:"))
  45.             if password == bank[number][1]:
  46.                 print(f"查询成功,余额为{bank[number][2]}元")
  47.             else:
  48.                 print("密码错误!")
  49.         else:
  50.             print("查无此人!")
  51.         Bank()
  52.     def save(self):
  53.         number = int(input("请输入转入者卡号:"))
  54.         if bank.get(number):
  55.             password = int(input("请输入密码:"))
  56.             if password == bank[number][1]:
  57.                 money = int(input("请输入钱数:"))
  58.                 bank[number][2] += money
  59.                 print("装入成功!")
  60.             else:
  61.                 print("密码错误")
  62.         else:
  63.             print("查无此人!")
  64.         Bank()
  65.     def out(self):
  66.         number = int(input("请输入卡号:"))
  67.         if bank.get(number):
  68.             password = int(input("请输入密码:"))
  69.             if password == bank[number][1]:
  70.                 money = int(input("请输入金额:"))
  71.                 bank[number][2] -= money
  72.                 print("成功取出{}元。".format(money))
  73.             else:
  74.                 print("密码错误!")
  75.         else:
  76.             print("查无此人!")
  77.         Bank()
  78.     def give(self):
  79.         number = int(input("请输入卡号:"))
  80.         if bank.get(number):
  81.             password = int(input("请输入密码:"))
  82.             if password == bank[number][1]:
  83.                 give_person = int(input("请输入收款人卡号:"))
  84.                 if bank.get(give_person):
  85.                     money = int(input("请输入金额:"))
  86.                     bank[number][2] -= money
  87.                     bank[give_person][2] += money
  88.                 else:
  89.                     print("查无此人!")
  90.             print("密码错误!")
  91.         else:
  92.             print("查无此人!")
  93.         Bank()
  94. main = Bank()
  95. main
复制代码

为什么密码错误
最佳答案
2025-1-22 19:56:23
因为你在初始化保存密码的时候,是字符串,但是后面的输入却将它转换为整数了。
屏幕截图 2025-01-22 194645.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2025-1-22 19:49:10 | 显示全部楼层
FishC 发表于 2025-1-22 01:47
问题分析:  
你在代码中定义了一个全局字典 `bank` 用于存储用户账户信息,但在实际操作中,你的代码中对 ...

没有你上面说的错误啊,你再仔细看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 19:50:53 | 显示全部楼层
FishC 发表于 2025-1-22 01:49
你说得对,代码关键逻辑中没有错误只是实现逻辑上的部分整理,有可能导致 "密码错误" 主要问题 属于实 ...

不可能,我输出了一下两个password,类型一样而且完全相等啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 20:00:47 | 显示全部楼层
小甲鱼的二师兄 发表于 2025-1-22 01:56
因为你在初始化保存密码的时候,是字符串,但是后面的输入却将它转换为整数了。

啊啊啊忘记了,谢谢二师兄
(๑•̀ㅂ•́)و✧一针见血
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-22 08:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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