鱼C论坛

 找回密码
 立即注册
查看: 2264|回复: 9

新手学习了新版python,自习遇到了问题,求助大神。

[复制链接]
发表于 2020-7-19 23:57:18 | 显示全部楼层 |阅读模式

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

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

x
本人销售一名,今天入坑,0计算机基础。通过B站心血来潮学习了鱼哥的一课python入门,通过第一个的猜数字小游戏,自己做了个自习,遇到了一堆问题。



自习码(可运行):
《判断卡密对错》

import time

print('\n\n\n\n\n¥欢迎您使用中国工商银行 电子银行¥\n\n\n\n\n')

temp1 = input('请输入您的银行卡账号:')
asss = int(temp1)

if asss == 17666666666:
   print('\n\n卡号正确!请稍后。。。\n\n')
else:
   print('\n\n账号错误,请仔细核对卡号!\n\n\n')   

time.sleep(2)

temp2 = input('请输入您的银行卡密码:')
mmm = int(temp2)
int(temp2)
if mmm == 888888:
   print('\n\n密码正确!\n\n你的账户余额为8868.88元')
else:
   print('\n\n密码错误,请联系银行工作人员!')




现在想求助几个问题:

1.如何在输入密码的时候,把数字变成******号这种隐藏字符
2.如何在输入账号错误的情况下终止接下来的步骤,重复输入账号的操作,直到正确后,再进行验证密码操作,密码也是一样,
现在的问题是,就算账号输入错了,也不提示,会继续让输入密码,然后最后会一起提示。
3.如何把能进行多账户,转账操作,并且余额同时会变动。



以上问题求助各位大佬,兴趣使然,感谢传授指导。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-20 00:48:40 | 显示全部楼层
1.https://blog.csdn.net/xc_zhou/article/details/80788436,这个帖子介绍了详细的方法,适应多个平台。
2.pip install goto-statement,使用第三方的包,实现类似C语言中的goto代码跳转功能,但是不建议。或者可以写成循环的形式,很粗暴的输对密码才能跳出循环。(本人拙见,还希望别的大佬提供更优秀的方法)
3.多账户,数据更改这样的操作,可以考虑数据库,能够方便的实现你的这些要求,但是目前代码太过于简单,需要重新设计。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-20 00:50:56 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-20 01:07 编辑



1.如何在输入密码的时候,把数字变成******号这种隐藏字符?


看楼上的链接进行使用

2.如何在输入账号错误的情况下终止接下来的步骤,重复输入账号的操作,直到正确后,再进行验证密码操作,密码也是一样,
现在的问题是,就算账号输入错了,也不提示,会继续让输入密码,然后最后会一起提示。
3.如何把能进行多账户,转账操作,并且余额同时会变动。

帮你改了下整体代码,美观了许多:

1.添加判断账号长度和输入合法字符功能

2.优化 print 和 time.sleep 函数配合使用的打印效果

3.添加判断输入密码错误次数功能

4.深夜敲码不易,如果对你有帮助记得给个【最佳答案】哈~

完整代码:
  1. import time

  2. print('''
  3. ┌--------------------------------------┐
  4. |                                      |
  5.      ¥欢迎您使用中国工商银行 电子银行¥
  6. |                                      |
  7. └--------------------------------------┘''')

  8. print('|\n|-请输入您的银行卡账号:', end='')
  9. judge = True
  10. while judge:
  11.     temp1 = input()

  12.     while not temp1.isdigit() or not (len(temp1) == 11):
  13.         if not temp1.isdigit():
  14.             temp1 = input('|--抱歉!您输入账号存在非合法字符,请重新输入:')
  15.         else:
  16.             temp1 = input('|--抱歉!您输入账号长度不正确,请重新输入:')

  17.     if temp1 == '17666666666':
  18.         print('|\n|--卡号正确!登入中,请稍后', end='')
  19.         for i in range(6):
  20.             time.sleep(0.35)
  21.             print('.', end='')
  22.         print()
  23.     else:
  24.         print('|\n|--账号错误,请仔细核对卡号!\n|-请重新输入您的银行卡账号:', end='')
  25.         continue
  26.     print('|\n|---请输入您的银行卡密码:',end='')
  27.     count = 5
  28.     while True:
  29.         temp2 = input()

  30.         if temp2 == '888888':
  31.             print('|\n|---密码正确!正在获取用户数据,请稍后', end='')
  32.             for i in range(6):
  33.                 time.sleep(0.35)
  34.                 print('.', end='')
  35.             print()
  36.             print('|---你的账户余额为8868.88元')
  37.             judge = False
  38.             break
  39.         else:
  40.             count -= 1
  41.             if count != 0:
  42.                 print('|\n|---密码错误,您还有%d次机会,若多次输入错误,账号将被暂时冻结!\n|\n|---请再次输入您的银行卡号:'%count,end='')
  43.             else:
  44.                 print('|\n|---用户密码多次输入错误,该银行卡号已经冻结,如有问题,请联系银行工作人员!')
  45.                 judge = False
  46.                 break

  47. print('|\n|---正在退出程序',end='')
  48. for i in range(6):
  49.     time.sleep(0.35)
  50.     print('.', end='')
  51. print('\n|\n|---感谢使用中国工商银行查询系统!祝您生活愉快~再见!')
复制代码



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-20 04:18:55 | 显示全部楼层
Twilight6 发表于 2020-7-20 00:50
看楼上的链接进行使用

end=’   ’这个代表什么意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-20 07:56:26 | 显示全部楼层
505289859 发表于 2020-7-20 04:18
end=’   ’这个代表什么意思



end 是 print 函数的默认参数,而且是在 print 内容打印结束后,自动追加打印一个 end ,他的默认值为 end ='\n' 换行符号 我们用end="" 覆盖他的默认值 print 函数就不会自动换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-20 23:39:48 | 显示全部楼层
学到了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-21 01:35:26 | 显示全部楼层
知識+1 謝謝
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-21 23:52:51 | 显示全部楼层
本帖最后由 石泊远 于 2020-11-24 23:24 编辑

啊,终于写完啦
改变了一下3L大佬的

  1. import time as t
  2. import random as r

  3. def goto():
  4.     print()
  5.     for j in range(3):
  6.         for i in range(10):
  7.             print('.',end='')
  8.             t.sleep(0.1)
  9.         print()

  10. def error():
  11.     while True:
  12.         print('error',end='')

  13. zh = '1766666666666666'
  14. mm = '888888888888888A' #16
  15. money = r.randint(100,100000)
  16. cw = 0
  17. yesnodl = True

  18. print('''
  19. ╔═════════████═════════╗
  20. ║                                            ║
  21. ║     ¥欢迎您使用中国工商银行电子银行¥     ║
  22. ║                                            ║
  23. ╚═════════████═════════╝
  24. ''')

  25. t.sleep(1)

  26. while yesnodl:
  27.     cinzh = input('请输入您的账号:')

  28.     while not cinzh.isdigit() or (len(cinzh) > 17 or len(cinzh) < 15):
  29.         if not cinzh.isdigit():
  30.             cw+=1
  31.             cinzh = input('|--抱歉!您输入账号存在非合法字符,请重新输入:')
  32.         elif (len(cinzh) > 17) or (len(cinzh) < 15):
  33.             cw+=1
  34.             cinzh = input('|--抱歉!您输入账号长度错误,请重新输入:')

  35.     if cw <= 10:
  36.         if cinzh == '1766666666666666':
  37.             print('|\n|--卡号正确!登入中,请稍后', end='')
  38.             goto()
  39.         else:
  40.             print('|\n|--账号错误,请仔细核对卡号!\n|-请重新输入您的银行卡账号:', end='')
  41.             continue
  42.         cinmm = input('|\n|---请输入您的银行卡密码:')
  43.         mmcw = 5
  44.         while True:
  45.             if cinmm == '888888888888888A':
  46.                 print('|\n|---密码正确!正在获取用户数据,请稍后', end='')
  47.                 goto()
  48.                 print()
  49.                 print(f'|---你的账户余额为{money}元')
  50.                 yesnodl = False
  51.                 break;
  52.             else:
  53.                 mmcw -= 1
  54.                 if mmcw != 0:
  55.                     print(f'|\n|---密码错误,您还有{mmcw}次机会,若多次输入错误,账号将被暂时冻结!\n|\n|---请再次输入您的银行卡号:',end='')
  56.                 else:
  57.                     print('|\n|---用户密码多次输入错误,该银行卡号已经冻结,如有问题,请联系银行工作人员!')
  58.                     judge = False
  59.                     break
  60.                
  61.     else:
  62.         print('错误次数过多,退出')
  63.         goto()
  64.         break
  65.         
  66. print('|\n|---正在退出程序',end='')
  67. goto()
  68. print('\n|\n|---感谢使用中国工商银行查询系统!祝您生活愉快~再见!')

复制代码

评分

参与人数 1荣誉 -1 鱼币 -1 收起 理由
Tip0 -1 -1 你这明显抄袭3L大佬的

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 17:31:02 From FishC Mobile | 显示全部楼层
学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 20:05:26 | 显示全部楼层
头脑风暴,获益匪浅
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 04:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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