我的程序应该猜一个数字。首先,用户猜出一个数字(在脑海中),而不告诉计算机。然后,计算机开始猜测该数字。用户看到计算机猜到的数字并发送三种类型的字符串之一:

  • 'c'表示正确并完成
  • 'b'意味着更大的数字
  • 'l'表示较低的数字。

  • 我有一个问题:当系统猜测数字时,找到答案的时间太长,因为程序中随机范围不会改变。有人可以帮助我改善代码以提高效率吗?
    import random
    b = 0
    a = 0
    hads = random.randint(1,99)
    print(hads)
    user = str(input('bigger or lower number : '))
    while user != 'c':
       if user == 'b':
           a = hads
           b = 99
       elif user == 'l':
           b = hads
           a = 1
       hadss = random.randint(a,b)
       print(hadss)
       user = str(input('bigger or lower number : '))
    print('woooow')
    

    最佳答案

    我认为您应该从一开始就启动a和b,然后在循环中只需更改一个变量即可。您遇到的问题是,您不断将ab重置为其初始值199,因此基本上您的代码只是在199之间随机猜测,这就是为什么要花这么长时间的原因!

    import random
    b = 99
    a = 1
    
    hads = random.randint(a,b)
    print(hads)
    user = str(input('behem begoo cheghadr fasele daram : '))
    
    while user != 'c':
       if user == 'b':
           a = hads
       elif user == 'l':
           b = hads
       hads = random.randint(a,b)
       print(hads)
       user = str(input('behem begoo cheghadr fasele daram : '))
    print('woooow')
    

    关于python - python以不同的方式猜测数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59143780/

    10-12 00:22
    查看更多