鱼C论坛

 找回密码
 立即注册
查看: 6266|回复: 5

设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中...

[复制链接]
发表于 2020-3-2 22:42:28 | 显示全部楼层 |阅读模式

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

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

x
设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
count = 3
password = 'FishC.com'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
        print('密码正确,进入程序......')
        break
    elif '*' in passwd:
        print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
        continue
    else:
        print('密码输入错误!您还有', count-1, '次机会!', end=' ')
    count -= 1



print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
这句代码中,count=3,count应该是整型(int)吧,而代码中的文字是字符串类型,怎么不会出现输出错误?


我的代码:
password='13579'
password1=input('请输入密码:')

i=3
while i<=3:
    if password1==password :
        print("密码验证成功")
        break
    if '*' in password1:
        print('请重新输入!')
        password1 = input('请输入密码:')
    else:
        i-=1
        print("密码验证失败",'还有',i-=1,'机会!')
      

        password1 = input('请输入密码:')




print("密码验证失败",'还有',i-=1,'机会!')我写的代码为什么i-=1也是整型数据,却会出现输出类型不一样的错误


求解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-2 23:32:10 | 显示全部楼层
i-=1 等价于i=i-1,是赋值运算。正确代码如下
password='13579'
password1=input('请输入密码:')

i=3
while i:
    if password1==password :
        print("密码验证成功")
        break
    if '*' in password1:
        print('请重新输入!')
        password1 = input('请输入密码:')
    else:
        i-=1
        print("密码验证失败",'还有',i,'机会!')
      
        password1 = input('请输入密码:')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 16:37:26 | 显示全部楼层
楼上正解。赋值表达式不是字符串,它不能直接和其他字符一起输出,除非给表达式加上表示字符串特征的引号,像这样:  “i -= 1”  ,只是加了引号表达的意思不是你原来想要的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-11 22:35:09 | 显示全部楼层
code="FishC.com"
times=3

while times:
    i=input("请输入密码:")
    if i==code:
        print("密码正确,进入程序···")
        break
    elif '*' in i:
        print("密码中不能含有'*'号,您还有',times,'次输入机会!",end='')
        continue #终止本轮循环,并判断while times:是否为真,若为真则继续进行下一次循环
    else:
        print("密码输入错误!您还有',times-1,'次机会!",end='')
    times -= 1

为什么这段程序运行后,times具体是多少显示不出来呢?只会显示:密码中不能含有'*'号,您还有',times,'次输入机会!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-11 14:18:04 | 显示全部楼层

改成print('密码输入错误!您还有',times-1,'次机会!',end='')
"  "告诉python直接打印双引号的内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-11 15:42:23 | 显示全部楼层
别的不用动
 print("密码验证失败",'还有', i, '次机会!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 23:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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