鱼C论坛

 找回密码
 立即注册
查看: 1958|回复: 4

[已解决]关于密码设置代码的疑问

[复制链接]
发表于 2017-9-29 16:56:42 | 显示全部楼层 |阅读模式

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

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

x
第9讲的课后作业中,动动手的习题,要求设计一个代码,提供三次输入机会,验证密码。
我有几点疑问,请大神们指点迷津:
  1. time = 3
  2. password = 'FishC.com'
  3. while time:
  4.     passwd = input('请输入密码:')
  5.     if passwd == password:          #这里为什么不对passwd先赋值?之前的猜数字游戏中,都对类似变量先赋值了啊~~是因为之前的猜数字游戏的答案是随机的原因吗?
  6.         print('密码正确,进入程序......')
  7.         break
  8.     elif '*' in passwd:
  9.         print('密码中不能含有"*"号,您还有',time,'次机会!请输入密码:', end = '')
  10.         continue
  11.     else:
  12.         if time > 0:
  13.             print('密码输入错误!您还有',time-1,'次机会,请输入密码:', end = '')  # 这里的time与前后语句的连接,为什么不能用拼接符号?
  14.             time -=1
  15.         else:
  16.             print('输入次数超过3次,机会用光咯!')  #这里,我想多增加个输入次数超过3次,不得输入的要求,可是无法实现~~改怎么改?
复制代码
最佳答案
2017-9-30 08:15:48
这样改:
  1. ime = 3
  2. password = 'FishC.com'
  3. while time:
  4.     passwd = input('请输入密码:')
  5.     if passwd == password:          #这里为什么不对passwd先赋值?之前的猜数字游戏中,都对类似变量先赋值了啊~~是因为之前的猜数字游戏的答案是随机的原因吗?
  6.         print('密码正确,进入程序......')
  7.         break
  8.     elif '*' in passwd:
  9.         print('密码中不能含有"*"号,您还有',time,'次机会!请输入密码:', end = '')
  10.         continue
  11.     else:
  12.         if time > 1:
  13.             print('密码输入错误!您还有',time-1,'次机会,请输入密码:', end = '')  # 这里的time与前后语句的连接,为什么不能用拼接符号?
  14.         time -=1
  15. else:
  16.     print('输入次数超过3次,机会用光咯!')  #这里,我想多增加个输入次数超过3次,不得输入的要求,可是无法实现~~改怎么改?

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-29 17:11:06 | 显示全部楼层
time = 3
password = 'FishC.com'
while time:
    passwd = input('请输入密码:')
    if passwd == password:          #这里为什么不对passwd先赋值?之前的猜数字游戏中,都对类似变量先赋值了啊~~是因为之前的猜数字游戏的答案是随机的原因吗?
如果在while语句判断就需要先赋值
        print('密码正确,进入程序......')
        break
    elif '*' in passwd:
        print('密码中不能含有"*"号,您还有',time,'次机会!请输入密码:', end = '')
        continue
    else:
        if time > 0:
            print('密码输入错误!您还有',time-1,'次机会,请输入密码:', end = '')  # 这里的time与前后语句的连接,为什么不能用拼接符号?
前后是字符串,time-1是整数,无法拼接。
            time -=1
        else:
            print('输入次数超过3次,机会用光咯!')  #这里,我想多增加个输入次数超过3次,不得输入的要求,可是无法实现~~改怎么改?
没明白
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-30 08:11:13 | 显示全部楼层
冬雪雪冬 发表于 2017-9-29 17:11
time = 3
password = 'FishC.com'
while time:

小甲鱼老师的原始代码是:
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
没有输入次数超过3次,无法输入的提示~~所以我想增加这个提示,告诉用户输入机会已经用光。
可是我试了好几次,都没法增设这个提示~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-30 08:15:48 | 显示全部楼层    本楼为最佳答案   
这样改:
  1. ime = 3
  2. password = 'FishC.com'
  3. while time:
  4.     passwd = input('请输入密码:')
  5.     if passwd == password:          #这里为什么不对passwd先赋值?之前的猜数字游戏中,都对类似变量先赋值了啊~~是因为之前的猜数字游戏的答案是随机的原因吗?
  6.         print('密码正确,进入程序......')
  7.         break
  8.     elif '*' in passwd:
  9.         print('密码中不能含有"*"号,您还有',time,'次机会!请输入密码:', end = '')
  10.         continue
  11.     else:
  12.         if time > 1:
  13.             print('密码输入错误!您还有',time-1,'次机会,请输入密码:', end = '')  # 这里的time与前后语句的连接,为什么不能用拼接符号?
  14.         time -=1
  15. else:
  16.     print('输入次数超过3次,机会用光咯!')  #这里,我想多增加个输入次数超过3次,不得输入的要求,可是无法实现~~改怎么改?

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

使用道具 举报

 楼主| 发表于 2017-10-2 06:10:12 | 显示全部楼层

谢谢!
我核对了下,你就是把我原来的if time > 0 改成了 if time > 1,就可以了吧~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-4 04:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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