鱼C论坛

 找回密码
 立即注册
查看: 1608|回复: 6

[已解决]关于小甲鱼第009讲中的密码设置的代码疑问

[复制链接]
发表于 2017-8-8 06:13:21 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼老师的009讲的课后习题中,要求编写一个密码识别程序,只有3次输入机会。但是输入密码中有*号,不扣除输入次数。
他的代码如下:
  1. count = 3
  2. password = 'FishC.com'

  3. while count:
  4.     passwd = input('请输入密码:')
  5.     if passwd == password:
  6.         print('密码正确,进入程序......')
  7.         break
  8.     elif '*' in passwd:
  9.         print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
  10.         continue
  11.     else:
  12.         print('密码输入错误!您还有', count-1, '次机会!', end=' ')   
  13.     count -= 1
复制代码

我的疑问是,第13行中,else语句下的print里面,为什么最后是end = '', 其实际运行时,如果密码输入错误,提示是“密码中不能含有"*"号!您还有 2 次机会!请输入密码:”? 我记得以前提过,end = ''是用来换行的。。为什么会自行多出“请输入密码:”这样一句话?
我也改过,print里面如果是‘密码输入错误!您还有', count-1, '次机会!,请输入密码:’,其情况也是一样的~~~,迷糊了。。
最佳答案
2017-8-8 08:45:31
end = ''时表示后面不要换行
end = ' '时表示要换行
记住哈
所以打印完“密码中不能含有"*"号!您还有 2 次机会!”
下一行还有一个continue
所以跳回到输入密码环节
由于他后面后一个end = ''
所以请输入密码就不会换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-8 07:57:19 | 显示全部楼层
你说的问题更迷糊,看不懂你想问什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 07:58:08 | 显示全部楼层
Krant5 发表于 2017-8-8 07:57
你说的问题更迷糊,看不懂你想问什么

end=' '用来控制换行,再出现请输入密码是因为 while循环 又回去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 08:30:43 | 显示全部楼层
用end = ''来设置不换行。将后面的输出和该语句在一行上面输出。
print(' ',end='')这个语句中,' '这个单引号里面是个空格,意思是打印空格,后面的end=''意思是不换行,因为print()默认是换行的,用这个可以不换行打印
>>> i = 2
>>> while i:
        i -=1
        print('小甲鱼')

       
小甲鱼
小甲鱼
>>> i =2
>>> while i:
        i -=1
        print('小鲫鱼',end =' ') #这里我在end=''的单引号中加入空格,所以输出见有个空格,但是不换行,若是什么都不加,这输出会相邻挨着

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

使用道具 举报

发表于 2017-8-8 08:45:31 | 显示全部楼层    本楼为最佳答案   
end = ''时表示后面不要换行
end = ' '时表示要换行
记住哈
所以打印完“密码中不能含有"*"号!您还有 2 次机会!”
下一行还有一个continue
所以跳回到输入密码环节
由于他后面后一个end = ''
所以请输入密码就不会换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 13:57:53 | 显示全部楼层
Krant5 发表于 2017-8-8 07:57
你说的问题更迷糊,看不懂你想问什么

呵呵,不好意思~~水平太菜,问题没描述清楚~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-10 09:35:04 | 显示全部楼层
end=''是不换行意思吧 。
也就是说 打印 :密码输入错误!您还有', count-1, '次机会! 后, 因为end=''表示不换行, 所以下一次循环时第五行的input("请输入密码:") 将会接在后面而不是在下一行出现:请输入密码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 10:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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