【问题标题】:How to use the output of randint in an if statement (Python)如何在 if 语句中使用 randint 的输出(Python)
【发布时间】:2018-03-17 13:51:22
【问题描述】:

我正在学习 Python (3.6.3) 并开始制作一个愚蠢(而且非常线性)的聊天机器人。有一次,聊天机器人要求您猜测它的年龄,我使用 randint 生成一个介于 1-1000 之间的数字,并希望在 if 语句中使用输出的随机整数(因此聊天机器人对您的回答感到高兴或不安,具体取决于关于你是否认为它比实际年龄更老)。 用户的输入是一个名为guess的var,我假设(因为我在网上找不到类似的例子)我可以在if语句中引用guess和randint来打印所需的输出,但我得到一个错误,提示radit没有定义当我运行 prog -

    print('guess how old I am')
    guess = input()
    import random
    for x in range(1):
        time.sleep(0.4)
        print ('nope, I\'m ' + (str(random.randint(1,1000))) + ' actually')
        time.sleep(0.88)
    if randint <= guess 
        print('(so rude...)')
    else:
        print('aw thanks')

如果我的 StackExchange 语法也被破坏,我们深表歉意,感谢任何帮助,谢谢

【问题讨论】:

  • randint后面少了一个冒号

标签: python random


【解决方案1】:
- you need to define your randint variable
- import time
- fix: you left out colon after "if randint <= guess"
- you need to make your input guess an integer in order to perform comparison

print('guess how old I am')
guess = int(input())
import random
import time
randint = random.randint(1,1000)
for x in range(1):
    time.sleep(0.4)
    print ('nope, I\'m %s actually' % randint)
    time.sleep(0.88)
if randint <= guess:
    print('(so rude...)')
else:
    print('aw thanks')

【讨论】:

  • 非常感谢,拉里! - 我猜这是我的主要错误,所以 randint 在 if 语句之外定义,然后在其中称为 %s ?你能解释一下那里的语法吗? %s 实际上做了什么,为什么该字符串后跟 %randint? (我认为 % 是模数..?) - 时间是较早导入的,抱歉应该提到这一点。 - 该死的冒号 - 当然,将输入设为 int..
  • "%s" 用于字符串格式化。它用作变量的占位符您可以了解更多信息here
【解决方案2】:

这是您的聊天机器人的更正版本:

import time
import random


guess = input('guess how old I am: ')
random_guess = random.randint(1,1000)
time.sleep(0.4)
print ('nope, I\'m {} actually'.format(random_guess))
time.sleep(0.88)
if random_guess <= guess:
    print('(so rude...)')
else:
    print('aw thanks')

我只是要记下错误的地方和一些好的做法,以便你在学习 python 时可以遵循它(我也刚学过):

  1. 在 if 语句中,您正在比较 randint &lt;= guess,这是不可能的,因为 randint 没有在任何地方保存为变量。您第一次使用random.randint(1, 1000) 它是静态添加的,仅用于打印语句。所以我在这里所做的是将random.randint(1,1000) (你可以看到randint 是python 的随机模块中的一个方法) 保存到一个名为random_guess 的变量中进行比较。它返回一个随机整数,如random.randint 中所述。
  2. 由于您的random_guess 将是 输入int,使用格式化字符串将是一个不错的选择。

  3. 始终在文件顶部使用 import 语句,以便 更改进口的一站式场所。

  4. 也看看这个input()方法,我传入了一个 string 自动打印出传递的字符串而不是 单独的打印语句

  5. 我还删除了 for 循环,因为它一直循环一次(我 知道你需要多次调用它,anywho..)

  6. 编辑:哦,你在 if 语句中漏掉了一个冒号!

我希望这能消除你的疑虑。

【讨论】:

  • 谢谢!用两种不同的方法回答我的问题确实有助于我理解我需要如何使用输入以及如何在表达式中使用。感谢您的帮助!
猜你喜欢
  • 2017-09-25
  • 1970-01-01
  • 2012-12-22
  • 2019-08-26
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多