在 python 3. 数字猜谜游戏中将许多参数传递给输入

Posted

技术标签:

【中文标题】在 python 3. 数字猜谜游戏中将许多参数传递给输入【英文标题】:Passing many arguments to input in python 3. Number guessing game 【发布时间】:2015-05-30 17:06:01 【问题描述】:

我刚开始使用 Michael Dawson 的书学习 Python 编程,想不出通过练习解决问题的方法。它应该是一个“猜数字”游戏,计算机试图猜测我选择的数字。

import random
print("Pick any number between 1-100 and I'll try to guess it")
x = 1
y = 100
tries = 0
answer = "whatever"

while answer != "yes":
guess = random.randint(x, y)
answer = input("Is your number ", guess, "? Or is it 'lo'wer or 'hi'gher?")
if answer == "hi":
    x = guess + 1
if answer == "lo":
    y = guess - 1
tries += 1

print ("Got it! Your number is ", los, "! It took me ", tries, " Tries! :)")
input("End")

如你所料,这就是 python 反馈给我的:

Traceback (most recent call last):
File "/home/Documents/python/numbers.py", line 11, in <module>
answer = input("Is your number ", guess, "? Or is it 'lo'wer or 'hi'gher?")
TypeError: input expected at most 1 arguments, got 3

所以我知道我不应该期望input 接受超过 1 个参数,但我无法真正掌握如何处理这个问题。任何友好的解决方案都将受到高度赞赏:)

【问题讨论】:

如果其中一个问题解决了您的问题,您可以使用投票箭头下方的灰色复选标记将其标记为已接受。 【参考方案1】:

input 需要文档中提到的单个字符串

如果提示参数存在,则将其写入标准输出,不带尾随换行符。

改用format

answer= input("Is your number ? Or is it 'lo'wer or 'hi'gher?".format(guess))

【讨论】:

谢谢先生。有用。我仍然不明白为什么,但我希望它会在以后变得更清楚。 @MichałJasiński 只需阅读文档!他们很清楚。万事如意! "One Plus Two Is ".format("three") ... format 是字符串具有的一种方法,可让您...格式化...您的字符串并替换内容。 我不知道我不接受您的回答。马上修好!【参考方案2】:

您可以在输入上方添加一行并稍微更改输入函数调用。

import random
print("Pick any number between 1-100 and I'll try to guess it")
x = 1
y = 100
tries = 0
answer = "whatever"

while answer != "yes":
  guess = random.randint(x, y)
  input_message = "Is your number ", guess, "? Or is it 'lo'wer or 'hi'gher?"
  answer = input(input_message)

  if answer == "hi":
    x = guess + 1
  if answer == "lo":
    y = guess - 1
  tries += 1

print ("Got it! Your number is ", los, "! It took me ", tries, " Tries! :)")
input("End")

【讨论】:

这种方法对我来说似乎更合乎逻辑。这与在其他回复中使用“格式”有什么大区别吗?是否有某种广泛使用的标准方法或最适合的方法? format 是工业标准的做法。这对学习者来说也是一个好方法(我 +1) 是的,Rao 是正确的。这只是了解python如何作为初学者工作的一种方式。但根据 Rao 建议的“格式”的经验,方法就是这样。

以上是关于在 python 3. 数字猜谜游戏中将许多参数传递给输入的主要内容,如果未能解决你的问题,请参考以下文章

猜谜游戏,discord.py 机器人

AHOI 2015 猜谜游戏

在python 3中将参数传递给exec

数字猜谜游戏

如何使用 python 3.2 生成(和标记)随机整数?

在 Eclipse(Pydev) 中将命令行参数传递给 Python 脚本