python零基础课后题009
#验证用户密码程序这里i = 3
answer = 'FISHC.COM'
while i > 0:
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i, "次机会!请重新输入密码:")
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!请输入密码:')
i -= 1
#我有个小疑问:
1、写好了程序后发现,无论怎么运行,print打印的结果总是又重复了一遍第4行temp = input(“请输入密码:”),在第7行加continue函数或者是最后一行i -= 1 ,删掉一个tab缩进都没法改变,哭了
2、最后一行的 i -= 1 ,这个的缩进现在是在else的条件下的,但是我把缩进对准else也是一样的答案,这两个位置的区别是?
#三色球的那里我也有个问题:
我写的代码是这样的:
import random
while True:
i = ['r1','r2','r3','h1','h2','h3','g1','g2','g3','g4','g5','g6']
print(random.sample(i,k=8))
#题目说摸出球的颜色匹配,我就想到了用sample函数,但是while就会无限循环,结果肯定是有限个的,还请各大佬不吝赐教(抱拳)
第二问
i = ['r1','r2','r3','h1','h2','h3','g1','g2','g3','g4','g5','g6']
print(random.sample(i,k=8))
就好了吧,不用循环吧 本帖最后由 昨非 于 2020-10-21 11:30 编辑
i = 3
answer = 'FISHC.COM'
while i > 0:
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i, "次机会!请重新输入密码:")
i-=1 #这里同样浪费了一次机会,要减一的
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!')
i -= 1 #上面加上那个减一之后,这个只需要写在else里就好了
#区别,写在else外面,每循环一次必定减一,不存在被else跳过的情况
或者:
i = 3
answer = 'FISHC.COM'
while i > 0:
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i, "次机会!请重新输入密码:")
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!')
i -= 1
#写在else外面,每循环一次(除了输入正确break了)必定减一,就不用加在上面了 第一问:你的程序没问题的,之所以 你觉得会重复重复 第四行 输入密码的是因为
else:
print('密码输入错误!您还有', i-1, '次机会!请输入密码:')
i -= 1
打印里 最后请输入密码:跟 输入提示的字一样, 你把打印里的这句话删掉就不会这种错觉了 三色球用随机数的方法不可取,有限的循环次数得不到所有的结果,还会有许多重复的结果。 i = 3
answer = 'FISHC.COM'
while i > 0:
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i, "次机会!请重新输入密码:")
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!')
if i-1!=0: #多打印一次的问题,只需要在这里加一个判断,分开打印就好
print("请重新输入密码:")
i -= 1
#写在else外面,每循环一次(除了输入正确break了)必定减一,就不用加在上面了 昨非 发表于 2020-10-21 11:32
感谢大佬!!!{:5_109:}{:5_109:}我明白那个i -= 1的位置的区别了!嘻嘻
但是那个重复打印的问题,我按照你教的,分开打印了还是没有改变它重复的问题{:5_96:}
还劳烦您在帮我看下,是缩进的问题?{:5_109:} 冬雪雪冬 发表于 2020-10-21 11:32
三色球用随机数的方法不可取,有限的循环次数得不到所有的结果,还会有许多重复的结果。
十分感谢您的回复!!!!我当时也想,可能会有重复的问题,由于刚学第9课,所以没什么好的办法解决它,只是觉得用这个方法来是不是也可以得到答案嘻嘻嘻{:5_109:}还是十分感谢您的!! LuLD 发表于 2020-10-21 11:29
第一问:你的程序没问题的,之所以 你觉得会重复重复 第四行 输入密码的是因为
else:
print(' ...
我试过了,把重复词语换掉或者是删掉,但是还是没有改变,哎,这到底是我哪里出了错{:5_100:}
不过还是感谢您的回复!嘻嘻 1、
i = 3
answer = 'FISHC.COM'
while i > 0: #第1次进入循环,i=3,因此执行循环代码段
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i, "次机会!请重新输入密码:")
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!请输入密码:') #第1次打印'2次'。当i=1的时候,还是进入循环的,因此打印'0次',想正确打印就改算法
i -= 1 #把i自减1(此时表示输入的密码不带*也不正确才减1),改缩进的话,每次循环都减1(按你的代码就是不管是否输入了*都减1)
#代码段执行结束再判断是否进入循环
==============想正确打印就改算法咯,例如先i -= 1,再print()============
2、sample(list, k)返回一个长度为k新列表,新列表存放list所产生k个随机唯一的元素
一直循环一直随机,就算你给出判断跳出循环,你也不能确定获得了全部的结果
因此用随机这算法是不能获得所有结果的,只能用枚举。。。作业答案的算法就是
枚举A,枚举B,再枚举C,相加结果为8则打印,否则继续枚举 ricky$ 发表于 2020-10-21 13:33
感谢大佬!!!我明白那个i -= 1的位置的区别了!嘻嘻
但是那个重复打印的问题,我按 ...
i = 3
answer = 'FISHC.COM'
while i > 0:
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i-1, "次机会!")
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!')
i -= 1
if i==0:
print("验证失败!")
这样就没问题了,满意的话请设为最佳答案 ricky$ 发表于 2020-10-21 13:37
我试过了,把重复词语换掉或者是删掉,但是还是没有改变,哎,这到底是我哪里出了错
不过还是 ...
你看,我复制你的代码,第一次是没删除的,第二次是删除了那句话后
下面代码
i = 3
answer = 'FISHC.COM'
while i > 0:
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i, "次机会!请重新输入密码:")
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!')
i -= 1
昨非 发表于 2020-10-21 14:22
这样就没问题了,满意的话请设为最佳答案
谢谢您! LuLD 发表于 2020-10-21 17:07
你看,我复制你的代码,第一次是没删除的,第二次是删除了那句话后
下面代码
谢谢您!! ricky$ 发表于 2020-10-22 09:09
谢谢您!!
所以,这样修改后还是不行么?
LuLD 发表于 2020-10-22 10:38
所以,这样修改后还是不行么?
按照您的方法修改后,不会重复出现“请输入密码”了,但是我很好奇的是,为什么不能在同一行里进行提示,而非要在下一行提示,才不重复,如果是同一行里可以做怎样的修改呢 ricky$ 发表于 2020-10-24 09:58
按照您的方法修改后,不会重复出现“请输入密码”了,但是我很好奇的是,为什么不能在同一行里进行提示, ...
print() 函数的应用
https://fishc.com.cn/forum.php?mod=viewthread&tid=141463&highlight=print
在函数的最后添加end = ‘’
print('密码输入错误!您还有', i-1, '次机会!',end='') LuLD 发表于 2020-10-24 10:27
print() 函数的应用
https://fishc.com.cn/forum.php?mod=viewthread&tid=141463&highlight=print
在函 ...
i = 3
answer = 'FISHC.COM'
while i > 0:
temp = input("请输入密码:")
if '*' in temp:
print("密码中不能含有'*'号!您还有", i, "次机会!", end='')
elif temp == answer:
print("密码正确,进入程序……")
break
else:
print('密码输入错误!您还有', i-1, '次机会!', end='')
i -= 1
if i == 0 :
print("验证失败!")
哈哈哈哈哈哈哈哈哈哈哈哈!苍天!我终于写成满意答案了!!!谢大佬!! ricky$ 发表于 2020-10-24 11:20
哈哈哈哈哈哈哈哈哈哈哈哈!苍天!我终于写成满意答案了!!!谢大佬!!
{:5_109:}学会了就很棒
页:
[1]