运行代码时,我希望用户响应“您想要什么?”行。而是在“无”旁边显示输入行。另外,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!")
我希望输入行位于“您想要什么?食物?床?”旁边。行,而不显示任何内容。感谢您的帮助!
答案 0 :(得分:2)
Tom Karzes是对的;您应该将input(print("..."))
更改为input("...")
。您当前的操作方式是使用打印输出None
。您的代码当前等同于input(None)
,这就是为什么您得到奇怪的None
的原因。正确的代码应为input("What do you want? Food? Bed?: ")
。
答案 1 :(得分:0)
内置的input()功能用于从键盘读取输入,但也会打印提示。调用input(print("..."))
时,print
语句返回None
。 input()
函数将自动打印提示,因此不需要附加的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?: ")