我一直在研究使用pygame和python开始游戏开发,并且遇到了定义具有参数的函数的障碍。第一个工作,我试图用一个参数制作一个更简单的版本。它一直说明c
没有明确定义。我不明白为什么。对此有何建议或想法?我也有
def fugu_tip(price, num_plates, tip):
total = price * num_plates
tip = total * (tip / 100.)
return tip
def Character(c):
a = input("Enter a number 1 - 100")
b = input("Enter A Number 1 - 100")
c = 0
c = a + b
return c
Character(c)
我感谢所有帮助人员! 这是我项目的修订代码: '$' 导入pygame 随机导入 全球现金 全球PName 全球PHealth 全球PHunger 全球PJob 全球员工
def Character1():
Cash = 0
PName = raw_input("Please Enter Name: ")
PHealth = 100
PHunger = 100
PJob = ""
PEmployeed = False
print PName, Cash, PHealth, PHunger, PJob, PEmployeed
Character1()
'$'
答案 0 :(得分:2)
我要修改你的一些代码,而不是完全改写。你缺少的是范围。在内部,您的功能c
是定义的。但是,在函数之外,您尝试传入一个名为c
的未定义的变量。
这是你的代码,修好了。
#it's true that by convention, functions generally start with lowercase
# and Classes being with uppercase characters
def character(c = 0):
a = input("Enter a number 1 - 100")
b = input("Enter A Number 1 - 100")
return c * (a + b)
myValue = 3 #note that the variable that you pass in
# to your function does not have to have the same name as the parameter
character(myValue)
注意,我修改了函数的行为,以便我使用参数c。现在,c,输入参数,用于乘以两个用户输入的总和。当我调用该函数时,c
的值变为3,因此用户输入的内容将被添加,然后再乘以3.
此外,def character(c):
和def character(c=0):
之间存在差异。在第一种情况下,必须在调用时将值传递给函数。在第二种情况下,您可以跳过将值传递给函数,因为我们已经使用默认参数值定义了函数。所以第二个函数可以直接调用:
character(3)
character()
但第一个只能用
正确调用character(3)
答案 1 :(得分:1)
c
在您的函数中定义 - 但不是您调用Character
的位置。
你似乎在你的函数中将c
设置为0
- 为什么还有任何参数呢?
最后,您不应该给出以大写字母开头的函数名称,例如按照为类保留的约定。
修改强>
def get_sum():
a = input("Enter a number 1 - 100")
b = input("Enter A Number 1 - 100")
c = a + b
return c
答案 2 :(得分:1)
嗯,问题是 c在当前范围内未定义。在您的情况下,c
仅在函数Character
内部可见,但不在外部。所以,你调用函数的地方不知道c
是什么。只要您定义c
,您的代码就可以正常运行。
def Character(c):
a = input("Enter a number 1 - 100")
b = input("Enter A Number 1 - 100")
c = 0
c = a + b
return c
c = 0
Character(c)
或者类似这样的东西(编辑)
def Character(c):
a = input("Enter a number 1 - 100")
b = input("Enter A Number 1 - 100")
c = 0
c = a + b
return c
def call_character():
c = 0
Character(c)
call_character()
答案 3 :(得分:0)
问题在于您致电Character(c)
。 c
已定义 。我无法建议你应该做什么,因为我不知道你想做什么,但那是你的问题。您使用的内容取决于您要为Character()
提供的参数。
答案 4 :(得分:0)
C作为参数传递给函数Character
,因此应该在调用then函数之前定义它。
您无需将任何参数传递给
Character
因为给定的行为不需要它。只需做
Character()
。 并且还从函数定义中删除C.
def Character():
a = input("Enter a number 1 - 100")
b = input("Enter A Number 1 - 100")
c = 0
c = a + b
return c
Character()
编辑:基于用户评论