鱼C论坛

 找回密码
 立即注册
查看: 2056|回复: 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.如何把能进行多账户,转账操作,并且余额同时会变动。



以上问题求助各位大佬,兴趣使然,感谢传授指导。
想知道小甲鱼最近在做啥?请访问 -> 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.多账户,数据更改这样的操作,可以考虑数据库,能够方便的实现你的这些要求,但是目前代码太过于简单,需要重新设计。
想知道小甲鱼最近在做啥?请访问 -> 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.深夜敲码不易,如果对你有帮助记得给个【最佳答案】哈~

完整代码:
import time

print('''
┌--------------------------------------┐
|                                      |
     ¥欢迎您使用中国工商银行 电子银行¥
|                                      |
└--------------------------------------┘''')

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

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

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

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

end=’   ’这个代表什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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



end 是 print 函数的默认参数,而且是在 print 内容打印结束后,自动追加打印一个 end ,他的默认值为 end ='\n' 换行符号 我们用end="" 覆盖他的默认值 print 函数就不会自动换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-20 23:39:48 | 显示全部楼层
学到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-21 01:35:26 | 显示全部楼层
知識+1 謝謝
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

啊,终于写完啦
改变了一下3L大佬的
import time as t
import random as r

def goto():
    print()
    for j in range(3):
        for i in range(10):
            print('.',end='')
            t.sleep(0.1)
        print()

def error():
    while True:
        print('error',end='')

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

print('''
╔═════════████═════════╗
║                                            ║ 
║     ¥欢迎您使用中国工商银行电子银行¥     ║
║                                            ║
╚═════════████═════════╝
''')

t.sleep(1)

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

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

    if cw <= 10:
        if cinzh == '1766666666666666':
            print('|\n|--卡号正确!登入中,请稍后', end='')
            goto()
        else:
            print('|\n|--账号错误,请仔细核对卡号!\n|-请重新输入您的银行卡账号:', end='')
            continue
        cinmm = input('|\n|---请输入您的银行卡密码:')
        mmcw = 5
        while True:
            if cinmm == '888888888888888A':
                print('|\n|---密码正确!正在获取用户数据,请稍后', end='')
                goto()
                print()
                print(f'|---你的账户余额为{money}元')
                yesnodl = False
                break;
            else:
                mmcw -= 1
                if mmcw != 0:
                    print(f'|\n|---密码错误,您还有{mmcw}次机会,若多次输入错误,账号将被暂时冻结!\n|\n|---请再次输入您的银行卡号:',end='')
                else:
                    print('|\n|---用户密码多次输入错误,该银行卡号已经冻结,如有问题,请联系银行工作人员!')
                    judge = False
                    break
                
    else:
        print('错误次数过多,退出')
        goto()
        break
        
print('|\n|---正在退出程序',end='')
goto()
print('\n|\n|---感谢使用中国工商银行查询系统!祝您生活愉快~再见!')

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 17:31:02 From FishC Mobile | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 20:05:26 | 显示全部楼层
头脑风暴,获益匪浅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 10:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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