python中for循环问题代码

工具人01 2020-10-17 01:24:36
# 需求:猜测Sun的女朋友的年龄.
# 中间任意一次猜对,游戏通关结束
# 猜错3次,问是否还要继续。
# 如果继续,可继续猜测3次,以此循环;
# 如果停止,则游戏退出;

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Bell Sun

age_of_Sun_gf = 25
i = 0
print(type(i))
for i in range(4):

guess_age_of_Sun_gf = int(input("Please input Bell Sun's girlfriend age:"))
if age_of_Sun_gf == guess_age_of_Sun_gf:
print("Your guess is right !")
break
elif age_of_Sun_gf < guess_age_of_Sun_gf:
print("Your guess is too big !")
else:
print("Your guess is too low !")
print("i =", i)
while i == 3:
guess_continue = input("if you want to continue guess , please don't press 'n' .")
print("this")
if guess_continue != 'n':
i = 0
print("i =", i)
else:
print("See you next time !")
...全文
359 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
工具人01 2020-10-22
  • 打赏
  • 举报
回复
引用 6 楼 丰耳 的回复:
因为你犯了一个认知错误,循环外的变量i和for i in range(4)里的i,不是一个i,for循环的i取值来自range(4),而不是你定义的i=0,这里你即使把i赋值100,在你的for循环中的这个i还是从0开始,这样解释不知道你明白了没,可参见下图:
明白了,原来是这个意思,那在22中i赋值成了0怎么不生效,这个怎么解
丰耳 2020-10-22
  • 打赏
  • 举报
回复
你还是没理解for循环的原理,代码中运算改变的“i”值不会影响for i in range(4)里的这个“i”,具体你可以去了解下for循环的原理,这里给你举个例子,你大概能看明白:
丰耳 2020-10-20
  • 打赏
  • 举报
回复
因为你犯了一个认知错误,循环外的变量i和for i in range(4)里的i,不是一个i,for循环的i取值来自range(4),而不是你定义的i=0,这里你即使把i赋值100,在你的for循环中的这个i还是从0开始,这样解释不知道你明白了没,可参见下图:
工具人01 2020-10-19
  • 打赏
  • 举报
回复
#!/usr/bin/env python 
# -*- coding:utf-8 -*-
# Author:Bell Sun

age_of_Sun_gf = 25
i = 0

while i < 3:
    guess_age_of_Sun_gf = int(input("Please input Bell Sun's girlfriend age:"))
    if age_of_Sun_gf == guess_age_of_Sun_gf:
        print("Your guess is right !")
        break
    elif age_of_Sun_gf <  guess_age_of_Sun_gf:
        print("Your guess is too big !")
    else:
        print("Your guess is too low !")
    print("i =", i)
    i += 1
    if i == 3:
        guess_continue = input("if you want to continue guess , please don't press 'n' .")
        if guess_continue != 'n':
            i = 0
        else:
            print("See you next time !")
外面用while循环是可以实现需求的,但是把外面的替换成for循环就会出现问题,请问有什么合适的方法吗
欢乐的小猪 2020-10-18
  • 打赏
  • 举报
回复
我想你应该了解下递归函数
def func(age_of_Sun_gf):
    for i in range(3):
        guess_age_of_Sun_gf = int(input("Please input Bell Sun's girlfriend age:"))
        if age_of_Sun_gf == guess_age_of_Sun_gf :
            print("Your guess is right !")
            break
        elif age_of_Sun_gf < guess_age_of_Sun_gf :
            print("Your guess is too big !")
        else :
            print("Your guess is too low !")
        i += 1
    if i==3:
        guess_continue = input("if you want to continue guess , please don't press 'n' .")
        if guess_continue != 'n' :
            func(age_of_Sun_gf)
        else :
            print("See you next time !")
    else:
        return True

func(25)
  • 打赏
  • 举报
回复
可以这样做,如下: age_of_Sun_gf = 25 times = 1 # 用于计数猜测的次数 while True: #先判断当前的计数如果大于3了,就询问是否继续,若输入'n'则结束,其他则继续! if times > 3: guess_continue = input("if you want to continue guess , please don't press 'n' .") if guess_continue != 'n': times = 1#如果用户想继续猜,就把计数器times重置为1 continue else: break guess_age_of_Sun_gf = int(input("Please input Bell Sun's girlfriend age:")) if age_of_Sun_gf == guess_age_of_Sun_gf: print("Your guess is right !") break elif age_of_Sun_gf < guess_age_of_Sun_gf: print("Your guess is too big !") times += 1#猜测小于女友年龄,则把猜测次数加1 else: print("Your guess is too low !") times += 1##猜测大于女友年龄,则把猜测次数加1
裸泳摸鱼冠军 2020-10-18
  • 打赏
  • 举报
回复
游戏开始 跳入while死循环,. 里面进行游戏, 然后进行判断跳出
本性之初 2020-10-17
  • 打赏
  • 举报
回复
我觉得while在外面来判定游戏是否结束,然后用一个flag判断次数就好

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧