在Python中使用什么来记住循环之间的变量

玉米

首先,我刚刚开始使用Python(所以您也可以忽略所有可怕的分号)。这是一个简单的程序,作为检查您所学知识的最后一章的任务。基本上,这是一个“猜测数字”,但是程序必须猜测您的数字(这是与书中相反的程序)。也许这不是本书的目的,但我还没有学过,但我的好奇心使我尽力而为,所以我不得不问。您如何记住循环之间的变量?我认为我必须使用表,并以此方式在循环之间保存并检查变量,但是Python本身也许有一种更简单的方法。

在代码中,程序会记住它生成的最后一个数字,但是另一个“被遗忘”了-在代码中显然可见。这样做的目的是最大程度地减少程序猜测数字(猜测的窄数字)的尝试。代码来获得程序的想法:

#Program Switcheroo, what is the number?

import random;

print("\t Welcome to game 'What is the number?' where you are picking number!");
print("\nRules are simple and based on your honesty ;)");
print("Think of number between 1 and 100, computer will try to guess it.");
print("If the number is too big you type 'too big', too small 'too small'");
print(", and if computer guessed it right 'right'");
print("\nEverything clear? Let's start!");

guess = random.randint(1, 100);
tries = 1;

print("Your number is...",guess,"?");
print("Answer 'too big', 'too small', 'right'"); 
number = input();
while number != "right":
    if number == "too big":
        tries += 1;
        guess = random.randint(1, guess);
        print ("Your number is...",guess,"?");
        print("Answer 'too big', 'too small', 'right'");
        number = input();
    elif number == "too small":
        tries += 1;
        guess = random.randint(guess, 100);
        print ("Your number is...",guess,"?");
        print("Answer 'too big', 'too small', 'right'");
        number = input();
    else:
        print("Ups!");
        break;
print("I won in", tries, "tries!");

input("\n\nTo end app, press Enter.");
加比

我建议您进行以下优化(为了提高代码质量,几乎没有什么事情要做,例如删除重复的代码并改用函数,但我会留给您):

您可以管理猜测的上下限,并为每个猜测更新上限-如果您的猜测为X且太大,则所有将来的猜测必须小于X,因此您的上限将为X-1(且相同下限)。

这是一个基本的实现:

guess = random.randint(1, 100)
tries = 1
print("Your number is...", guess, "?")
print("Answer 'too big', 'too small', 'right'")
number = input()
upper_bound = 100
lower_bound = 1
while number != "right":
    if number == "too big":
        upper_bound = guess-1 if guess < upper_bound else upper_bound
        tries += 1
        guess = random.randint(lower_bound, upper_bound)
        print(f"lower bound: {lower_bound}, upper bound: {upper_bound}")
        print("Your number is...", guess, "?")
        print("Answer 'too big', 'too small', 'right'")
        number = input()
    elif number == "too small":
        lower_bound = guess+1 if guess > lower_bound else lower_bound
        print(f"lower bound: {lower_bound}, upper bound: {upper_bound}")
        tries += 1
        guess = random.randint(lower_bound, upper_bound)
        print("Your number is...", guess, "?")
        print("Answer 'too big', 'too small', 'right'")
        number = input()
    else:
        print("Ups!")
        break
print("I won in", tries, "tries!")

input("\n\nTo end app, press Enter.")

在此实现中,您不必“记住”所有猜测,因此您的内存占用空间将减小,并且尝试次数将减少。

为了调试目的,我在每次迭代的上下边界都添加了打印内容-向您展示边界是如何变化的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL:在循环中使用变量来创建新表

来自分类Dev

SQL:在循环中使用变量来创建新表

来自分类Dev

在python中循环结束后记住循环变量

来自分类Dev

如何在循环python外的for循环中使用变量

来自分类Dev

为什么在循环中声明变量后输出错误?- (错误问题:如何在递归方法中使用 Promise 来声明变量?)

来自分类Dev

为什么Coffeescript在循环中使用其他变量?

来自分类Dev

为什么Coffeescript在循环中使用其他变量?

来自分类Dev

如何在Java中使用递增循环来获取数量递增的变量(以获取所述变量的值)?

来自分类Dev

jQuery-在每个循环中使用变量名来命名新变量

来自分类Dev

在Python中使用什么代替*和/来避免ValueError?

来自分类Dev

在forEach()循环中使用字符串变量来按角度获取数据

来自分类Dev

在循环bash中使用变量

来自分类Dev

在函数中使用for循环变量

来自分类Dev

在Matlab的'for'循环的'to'中使用变量

来自分类Dev

在for循环中使用变量调用Python子进程

来自分类Dev

为什么我们使用 `i` 作为变量来控制 Javascript 循环?

来自分类Dev

在Python中使用循环

来自分类Dev

为什么我需要在声明中使用类型断言来将变量分配为null?

来自分类常见问题

在while循环内修改的变量不被记住

来自分类Dev

为什么不在python的函数中使用变量值

来自分类Dev

在foreach循环中使用parallel.foreach和task之间的性能差异是什么?

来自分类Dev

更高效的方法来遍历列表,然后在python中使用双循环

来自分类Dev

在python中使用finally语句来打印出Ive经过循环的次数

来自分类Dev

在python中使用lambda或helper方法来避免循环重复

来自分类Dev

如何在python中使用for循环和数组来计算错误传播

来自分类Dev

为什么for..of / for..in循环可以使用const,而普通的for循环只能在JS中使用let或var作为变量?

来自分类Dev

在示例中使用setter方法与简单声明变量之间有什么区别?

来自分类Dev

为什么将length定义为变量,而不是在for循环中使用queue.length?

来自分类Dev

什么时候/为什么要在python中使用struct库来打包和解包?

Related 相关文章

  1. 1

    SQL:在循环中使用变量来创建新表

  2. 2

    SQL:在循环中使用变量来创建新表

  3. 3

    在python中循环结束后记住循环变量

  4. 4

    如何在循环python外的for循环中使用变量

  5. 5

    为什么在循环中声明变量后输出错误?- (错误问题:如何在递归方法中使用 Promise 来声明变量?)

  6. 6

    为什么Coffeescript在循环中使用其他变量?

  7. 7

    为什么Coffeescript在循环中使用其他变量?

  8. 8

    如何在Java中使用递增循环来获取数量递增的变量(以获取所述变量的值)?

  9. 9

    jQuery-在每个循环中使用变量名来命名新变量

  10. 10

    在Python中使用什么代替*和/来避免ValueError?

  11. 11

    在forEach()循环中使用字符串变量来按角度获取数据

  12. 12

    在循环bash中使用变量

  13. 13

    在函数中使用for循环变量

  14. 14

    在Matlab的'for'循环的'to'中使用变量

  15. 15

    在for循环中使用变量调用Python子进程

  16. 16

    为什么我们使用 `i` 作为变量来控制 Javascript 循环?

  17. 17

    在Python中使用循环

  18. 18

    为什么我需要在声明中使用类型断言来将变量分配为null?

  19. 19

    在while循环内修改的变量不被记住

  20. 20

    为什么不在python的函数中使用变量值

  21. 21

    在foreach循环中使用parallel.foreach和task之间的性能差异是什么?

  22. 22

    更高效的方法来遍历列表,然后在python中使用双循环

  23. 23

    在python中使用finally语句来打印出Ive经过循环的次数

  24. 24

    在python中使用lambda或helper方法来避免循环重复

  25. 25

    如何在python中使用for循环和数组来计算错误传播

  26. 26

    为什么for..of / for..in循环可以使用const,而普通的for循环只能在JS中使用let或var作为变量?

  27. 27

    在示例中使用setter方法与简单声明变量之间有什么区别?

  28. 28

    为什么将length定义为变量,而不是在for循环中使用queue.length?

  29. 29

    什么时候/为什么要在python中使用struct库来打包和解包?

热门标签

归档