Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 学习python——不能';我不能算出random.randint_Python 3.x - Fatal编程技术网

Python 3.x 学习python——不能';我不能算出random.randint

Python 3.x 学习python——不能';我不能算出random.randint,python-3.x,Python 3.x,我正在学习python atm,并从中做了一个练习-- 指示用户选择1到100之间的任意数字,并在七次尝试中正确猜测。在每次猜测之后,用户必须知道他们的数字是高于、低于还是等于您的猜测 我编写的代码,但与解决方案不匹配,是这样的-- 随机导入 pick=int(输入('number')) 计数=0 计数时,这里的错误是使用=。这些值分别表示小于或等于和大于或等于。因此,您的代码永远不会到达elif number==pick:行,因为前两条语句中的一条始终为true。很明显,如果number==p

我正在学习python atm,并从中做了一个练习--

指示用户选择1到100之间的任意数字,并在七次尝试中正确猜测。在每次猜测之后,用户必须知道他们的数字是高于、低于还是等于您的猜测

我编写的代码,但与解决方案不匹配,是这样的--

随机导入
pick=int(输入('number'))
计数=0

计数时,这里的错误是使用
=
。这些值分别表示
小于或等于
大于或等于
。因此,您的代码永远不会到达
elif number==pick:
行,因为前两条语句中的一条始终为true。很明显,如果
number==pick
,那么第一条语句将为true,并且程序将提示用户
如果更高,则按enter键


答案是什么?更改
。这样,测试只适用于
小于
大于

的情况。这里的错误在于使用
=
。这些值分别表示
小于或等于
大于或等于
。因此,您的代码永远不会到达
elif number==pick:
行,因为前两条语句中的一条始终为true。很明显,如果
number==pick
,那么第一条语句将为true,并且程序将提示用户
如果更高,则按enter键


答案是什么?更改
。这样,测试只针对
小于
大于

的学生。下面是我根据您发布的问题文本所做的快速重写:

import random
input("Think of a number from 1 to 10, then press enter.  Don't tell me, I'll guess it.")
low = 1
high = 10
done = False

for guesses in range(7):
    number = random.randint(low, high)
    print("I'm guessing", number)
    happy = False
    while not happy:
        resp = input('Enter H if your number is higher, L if lower or E for equal: ')[0].upper()
        if resp == 'E':
            if guesses:
                plural = 'es'
            else:
                plural = ''
            print('Yay!  I got it in {} guess{}.'.format(guesses+1, plural))
            happy = True
            done = True
            break
        elif resp == 'H':
            happy = True
            low = number + 1
        elif resp == 'L':
            happy = True
            high = number -1
        else:
            print("That wasn't a valid response.")
    if done:
        break

print('end')
我所做的不同:

  • 程序没有把你的号码作为输入(它毕竟是在试图猜测)
  • 我将low&high设置为初始范围,并设置一个done标志,因为我需要在成功时打破两个级别的循环
  • 下一步我猜是基于低-高范围
  • 要求H、L或E来表示我的猜测落在哪里
  • 根据用户告诉我的内容修改范围

主要区别在于,这段代码有点智能地猜测数字。(尽管有7次猜测可能仍然失败。)一个更智能的算法是每次猜测中点,而不是随机猜测。

好吧,这里是我根据你发布的问题文本快速重写的:

import random
input("Think of a number from 1 to 10, then press enter.  Don't tell me, I'll guess it.")
low = 1
high = 10
done = False

for guesses in range(7):
    number = random.randint(low, high)
    print("I'm guessing", number)
    happy = False
    while not happy:
        resp = input('Enter H if your number is higher, L if lower or E for equal: ')[0].upper()
        if resp == 'E':
            if guesses:
                plural = 'es'
            else:
                plural = ''
            print('Yay!  I got it in {} guess{}.'.format(guesses+1, plural))
            happy = True
            done = True
            break
        elif resp == 'H':
            happy = True
            low = number + 1
        elif resp == 'L':
            happy = True
            high = number -1
        else:
            print("That wasn't a valid response.")
    if done:
        break

print('end')
我所做的不同:

  • 程序没有把你的号码作为输入(它毕竟是在试图猜测)
  • 我将low&high设置为初始范围,并设置一个done标志,因为我需要在成功时打破两个级别的循环
  • 下一步我猜是基于低-高范围
  • 要求H、L或E来表示我的猜测落在哪里
  • 根据用户告诉我的内容修改范围

主要区别在于,这段代码有点智能地猜测数字。(虽然有7次猜测可能仍然失败。)更智能的算法是每次猜测中点,而不是随机猜测。

代码的缩进似乎被破坏了。请对照您的原始代码进行检查。代码的缩进似乎已损坏。请对照您的原始代码进行检查。澄清--14至17行('如果猜测:');这些是做什么用的?谢谢嘿,对不起,这是在处理我的一个讨厌的问题。多元挑战的程序。。。它所做的是,如果猜测是非零的(除了第一次通过循环外,它都处于启用状态),它会将“es”赋值给字符串复数形式,因此输出为“Yay!”!我猜了三次。当第一次通过循环时,它会输出“耶!我猜了一次。”澄清——第14行到第17行(“如果猜:”);这些是做什么的?谢谢!嘿,对不起,这是在处理我的一个讨厌的问题。程序是复数挑战的…它所做的是如果猜是非零的(除了第一次通过循环外,它都处于启用状态),它将“es”赋值给字符串复数形式,因此输出为“耶!我猜了3次才得到”。而在第一次通过循环时,它将输出“耶!我猜了1次。”