for in 循环 +if条件 问题
描述:3次循环结束 是否继续时 输入Y 无作用 仍然直接退出小程序需要实现:3次循环结束后 输入Y 继续3次循环 输入N结束循环 输入其他字符提示需要输入Y/N后,仍然需要输入Y/N(也就是在这块输入Y/N 才能执行)或连续输入其他字符3次(提示错误输入3次游戏结束)
求助:这样要如何才能实现 求老师们指导
for times in range(3):
age=int(input('请输入您要猜的年龄...'))
if age==25:
print('恭喜您猜对了....')
break
pass
elif age >= 26:
print('猜大了,请在试试')
pass
else:
print("猜小了,请在试试'")
pass
times += 1
if times == 2:
choose = input('想不想继续猜呢 Y/N:')
if choose == 'Y' or choose == 'y':
times == 0
pass
elif choose == 'N' or choose == 'n':
times == 3
pass
else:
print('请输入Y/N')
print("游戏结束!!!") 本帖最后由 qiuyouzhi 于 2020-4-22 19:25 编辑
不需要times+1啊
而且,pass代表什么都不做,
你写完代码了还加个pass也是很秀 qiuyouzhi 发表于 2020-4-22 19:23
不需要times+1啊
而且,pass代表什么都不做,
你写完代码了还加个pass也是很秀
我才开始学老师是这样教的以后摒弃 446095563 发表于 2020-4-22 19:26
我才开始学老师是这样教的以后摒弃
要是老师是这么教你的,那个老师肯定有问题
answer = 25
times = 3
while times:
age=int(input('请输入您要猜的年龄...'))
if age==answer:
print('恭喜您猜对了....')
break
elif age > answer:
print('猜大了,请再试试')
times -= 1
else:
print("猜小了,请再试试")
times -= 1
if times == 1:
choose = input("是否再来一次?Y/N").lower()
if choose == 'y':
times = 3
continue
elif choose == 'n':
break
else:
print("输入错误!")
break
print("游戏结束!!!")
改成这样试试 qiuyouzhi 发表于 2020-4-22 19:23
不需要times+1啊
而且,pass代表什么都不做,
你写完代码了还加个pass也是很秀
老师 去掉之后还是不能实现第一步输入Y继续开始循环 qiuyouzhi 发表于 2020-4-22 19:29
要是老师是这么教你的,那个老师肯定有问题
改成这样试试
老师 while 循环的话 最后一步这个代码还没有实现: 输入其他(错误)字符提示需要输入Y/N后,仍然需要输入Y/N(也就是在这块输入Y/N 才能执行)或连续输入其他字符3次(提示错误输入3次游戏结束)
老师可以用for in循环 教我实现吗 446095563 发表于 2020-4-22 19:37
老师 while 循环的话 最后一步这个代码还没有实现: 输入其他(错误)字符提示需要输入Y/N后,仍然需要输 ...
很难用for循环吧
如果用了for
times基本没多大意义了 qiuyouzhi 发表于 2020-4-22 19:23
不需要times+1啊
而且,pass代表什么都不做,
你写完代码了还加个pass也是很秀
秀儿 + 1 _荟桐_ 发表于 2020-4-23 07:56
很难用for循环吧
如果用了for
times基本没多大意义了
哦 那老师 while 循环的话 最后一步这个代码怎么实现?: 输入其他(错误)字符提示需要输入Y/N后,仍然需要输入Y/N(也就是在这块输入Y/N 才能执行)或连续输入其他字符3次(提示错误输入3次游戏结束) - Python pass 是空语句,是为了保持程序结构的完整性。
- pass 不做任何事情,一般用做占位语句。
- 上面两句摘自菜鸟教程
- 你的for循环循环三次就执行结束,如果想实现在循环结束后输入y再次循环,可以用递归
- 如果想加计数器也就是你的times,建议用while循环更好控制 446095563 发表于 2020-4-23 10:00
哦 那老师 while 循环的话 最后一步这个代码怎么实现?: 输入其他(错误)字符提示需要输入Y/N后 ...
凑乎能用
answer = 25
times = 3
a = False
while times:
age=int(input('请输入您要猜的年龄...'))
if age==answer:
print('恭喜您猜对了....')
break
elif age > answer:
print('猜大了,请再试试')
times -= 1
else:
print("猜小了,请再试试")
times -= 1
if times == 0:
for i in range(3):
choose = input("是否再来一次?Y/N").lower()
if choose == 'y':
times = 3
a = False
break
elif choose == 'n':
a = True
break
else:
print("输入错误!")
continue
else: # 这个else的意思是如果for循环完整的执行完了(没有break过),执行else语句
break
if a:
break
print("游戏结束!!!") _荟桐_ 发表于 2020-4-23 12:08
凑乎能用
老师谢谢您!!! _荟桐_ 发表于 2020-4-23 12:08
凑乎能用
老师
第18行 lower 在这里 表示什么意思呢?
a = false 与 a = True 是什么意思呢?
求解 446095563 发表于 2020-4-23 14:54
老师
第18行 lower 在这里 表示什么意思呢?
a = false 与 a = True 是什么意思呢?
**choose是字符串内置方法,把所有字符串内的字母变小写,这样判断时就只用判断是y还是n了,不用管大小写
choose是‘n’时,a是True,就跳出循环
choose是‘y’时,a为False,在重新猜年龄 _荟桐_ 发表于 2020-4-23 15:49
**choose是字符串内置方法,把所有字符串内的字母变小写,这样判断时就只用判断是y还是n了,不用管大小 ...
谢谢老师!!! _荟桐_ 发表于 2020-4-23 15:49
**choose是字符串内置方法,把所有字符串内的字母变小写,这样判断时就只用判断是y还是n了,不用管大小 ...
choose是‘n’时,a是True,就跳出循环
choose是‘y’时,a为False,在重新猜年龄
老师我刚试了下a=true 和 a=false 在代码中没有什么意义 ,我删去后 也是正常运行的 446095563 发表于 2020-4-23 16:21
choose是‘n’时,a是True,就跳出循环
choose是‘y’时,a为False,在重新猜年龄
不好意思 我设置错误了
页:
[1]