楪祈53409 发表于 2021-4-16 13:43:45

关于有限次数循环

本帖最后由 楪祈53409 于 2021-4-16 13:46 编辑

在2016版python教程p5中,我想实现有限次数的循环,定义函数time=time+1,会报错,这样的定义无效。求助!如果不加这一部分内容,代码可以成功运行。原始代码如下:
{code}
import random
secret=random.randint(5,20)
print('-------------------------姬骑士的末路----------------------------')
temp = input("你抓到了一个姬骑士,她掌握了重要的情报,你将负责拷问出这些情报。\n现在,你需要输入调教的时间\n请注意:太少无效,太多则会导致人物坏掉而任务失败.\n输入:")
guss = int(temp)
print("'咕,杀了我'")
while ( guss != secret ) :
    if guss==secret:
      print("要。。坏掉了。。。求求你,停下。。。我说!所以不要在继续了!")
      print("已经。。。回不去了。。。。")
    else:
      if guss<secret:
                print("就这?\n我是绝对不会屈服的!")
      else:
            if guss>secret:
                print("阿巴阿巴阿巴.....\n(她已经无法思考,彻底的坏掉了)\n任务失败")
      temp = input("\n时间回溯,你又获得了一次机会")
      guss = int(temp)
else:
    print("要。。坏掉了。。。求求你,停下。。。我说!所以不要在继续了!")
    print("’已经。。。回不去了。。。。'\n任务成功")

{/code}


而我加循环次数以后的代码是:
{code}
import random
secret=random.randint(5,20)
print('-------------------------姬骑士的末路----------------------------')
time=time+1
temp = input("你抓到了一个姬骑士,她掌握了重要的情报,你将负责拷问出这些情报。\n现在,你需要输入调教的时间\n请注意:太少无效,太多则会导致人物坏掉而任务失败.\n输入:")
guss = int(temp)
print("'咕,杀了我'")
while ( guss != secret ) and ( time < 5 ) :
    if guss==secret:
      print("要。。坏掉了。。。求求你,停下。。。我说!所以不要在继续了!")
      print("已经。。。回不去了。。。。")
    else:
      if guss<secret:
                print("就这?\n我是绝对不会屈服的!")
      else:
            if guss>secret:
                print("阿巴阿巴阿巴.....\n(她已经无法思考,彻底的坏掉了)\n任务失败")
      temp = input("\n时间回溯,你又获得了一次机会")
      guss = int(temp)
else:
    print("要。。坏掉了。。。求求你,停下。。。我说!所以不要在继续了!")
    print("’已经。。。回不去了。。。。'\n任务成功")

{/code}

我知道我这个东西各种意义上都不对劲,不过首先我关于代码方面想要求教!到底应该怎么定义迭代函数?

yuxijian2020 发表于 2021-4-16 13:51:10

是这样吗?

import random

secret = random.randint(5,20)
print('-------------------------姬骑士的末路----------------------------')
# 这里定义变量用于计算循环次数
time = 0

temp = input("你抓到了一个姬骑士,她掌握了重要的情报,你将负责拷问出这些情报。\n现在,你需要输入调教的时间\n请注意:太少无效,太多则会导致人物坏掉而任务失败.\n输入:")
guss = int(temp)
print("'咕,杀了我'")
while ( guss != secret ) and ( time < 5 ) :
    if guss == secret:
      print("要。。坏掉了。。。求求你,停下。。。我说!所以不要在继续了!")
      print("已经。。。回不去了。。。。")
    else:
      if guss < secret:
                print("就这?\n我是绝对不会屈服的!")
      else:
            if guss > secret:
                print("阿巴阿巴阿巴.....\n(她已经无法思考,彻底的坏掉了)\n任务失败")
      temp = input("\n时间回溯,你又获得了一次机会")
      guss = int(temp)
    # 本次循环完成,计数器 +1
    time += 1
else:
    print("要。。坏掉了。。。求求你,停下。。。我说!所以不要在继续了!")
    print("’已经。。。回不去了。。。。'\n任务成功")

楪祈53409 发表于 2021-4-16 14:04:25

yuxijian2020 发表于 2021-4-16 13:51
是这样吗?

谢谢,就是这样.明白了。我之前是吧time+=1放在循环外面导致要么无法定义,要么就无法生效
页: [1]
查看完整版本: 关于有限次数循环