在Python中执行函数

在Python中执行函数,python,Python,我对以下脚本有点麻烦,它使用了一个函数: def my_function(arg1, arg2, arg3): print("I love listening to %s" %(arg1)) print("It is normally played at %d BPM" %(arg2)) print("I also like listening to %s" %(arg3)) print("Dat be da bomb playa!") print("What

我对以下脚本有点麻烦,它使用了一个函数:

def my_function(arg1, arg2, arg3):
    print("I love listening to %s" %(arg1))
    print("It is normally played at %d BPM" %(arg2))
    print("I also like listening to %s" %(arg3))
    print("Dat be da bomb playa!")

print("What music do you like listening to?")
ans1 = input(">>")

print("What speed is that usually played at?")
ans2 = input(">>")

print("whats your second favourite genre of music?")
ans3 = input(">>")

my_function(ans1, ans2, ans3)
我进入第一个用户输入:你喜欢听什么音乐?当我输入“House”并按enter键时,我希望显示第二个问题,但我收到以下错误消息:

Traceback (most recent call last): 
File "ex19_MyFunction.py", line 26, in <module> ans1 = input(">>") 
File "<string>", line 1, in <module>
NameError: name 'house' is not defined**
回溯(最近一次呼叫最后一次):
文件“ex19_MyFunction.py”,第26行,在ans1=input(“>>”)中
文件“”,第1行,在
名称错误:未定义名称“house”**

任何帮助都将不胜感激

如果您使用Python2,那么就使用
raw\u input()
,因为
input()
尝试将文本解析为python代码,会出现错误。

您的脚本在Python3中运行得很好,所以我假设您使用的是Python2。将
input
更改为
raw\u input


在Python2中,
raw\u input
将输入转换为字符串,而
input('foo')
相当于
eval(raw\u input('foo'))

。但我还有第二个问题……它与函数第二个参数“print”(通常在%d BPM“%(arg2))中播放)有关……当用户被问到:“print”(“通常以什么速度播放?”)时,输入是“int”格式的,所以我知道为什么会出现错误(我想),因为%d是一个字符串格式化程序…要编写什么样的正确代码才能使参数接受用户的“int”输入?对不起,伙计-忽略我。我找到了答案…我用%s替换了%d,结果成功了!