运行此程序时,我得到“无”答复,而不是我的问题

时间:2019-04-06 00:45:12

标签: python function

运行代码时,我希望用户响应“您想要什么?”行。而是在“无”旁边显示输入行。另外,PyCharm在我的def shop_interface行中说了一些有关“期望两个空白行,但得到0”的内容。我包括了该函数的其余部分,以防万一我需要放一些东西。

我将其放在功能块中,但我认为我缺少了一些东西,我尝试将item_wanted输入放入功能中,但我认为这会使情况变得更糟。

yes = "yes"
print("Welcome to Python's Shop! What can I do for you?")
item_wanted = input(print("What do you want? Food? Bed?: "))
def shop_interface():
    gold = 200
    if item_wanted == "food":
        print("I have some apples to buy! 20G Each!")
    input("Want them?:")
    if yes:
        gold = gold - 20
        print("You have " + str(gold) + "G left")
    elif item_wanted == "bed":
        print("I have a room for about 15G...want it?")
    elif item_wanted == "weapon":
        print(" There's an old sword in the back, I'll give it to you for 100G.")
    else:
        print("Don't have that, we have food and bed though!")

我希望输入行位于“您想要什么?食物?床?”旁边。行,而不显示任何内容。感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

Tom Karzes是对的;您应该将input(print("..."))更改为input("...")。您当前的操作方式是使用打印输出None。您的代码当前等同于input(None),这就是为什么您得到奇怪的None的原因。正确的代码应为input("What do you want? Food? Bed?: ")

答案 1 :(得分:0)

内置的input()功能用于从键盘读取输入,但也会打印提示。调用input(print("..."))时,print语句返回Noneinput()函数将自动打印提示,因此不需要附加的print语句。

更改

item_wanted = input(print("What do you want? Food? Bed?: "))

item_wanted = input("What do you want? Food? Bed?: ")

答案 2 :(得分:0)

您有这个

item_wanted = input(print("What do you want? Food? Bed?: "))

但是,由于print不返回任何内容,因此无法正常工作。无论您传递给它什么,它都只会打印到sys.stdout(它也可以打印到流)。

您实际上应该这样做

item_wanted = input("What do you want? Food? Bed?: ")