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 !")
...全文
479 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判断次数就好
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

37,739

社区成员

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

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