您好我最近被要求做一项任务,我必须创建一个python程序,要求用户输入他们的总工资,然后根据扣除次数计算净工资。扣除应表示为全局常量,程序应包括许多功能。 我没有问题做任务我似乎对全局常量有困难而且我一直收到一个错误,说我的函数没有定义。这是我到目前为止所提出的:
def instructions():
print ("Hello, welcome to the programme")
print ("Please follow the onscreen instructions")
def getOutput():
G = int(input("Enter gross income: "))
return G
def displayBreak():
print("")
print("Less deductions")
print("---------------")
def doDeductions():
Value=G*.03
Health=G*.04
Pay=G*.41
Social=G*.07
Net=G-Value-Health-Pay-Social
print("PRSI ",Value)
print("Health Contrb. ",Health)
print("PAYE ",Pay)
print("USC ",Social)
print("")
print("Net Pay ",Net)
print("Programme Complete")
################################################
instructions()
print("")
getOutput()
displayBreak()
print("")
doDeductions()
答案 0 :(得分:0)
这应该有效:
我把%2f
放在你的变量应该作为字符串格式的一种形式。 %2f
将一个四舍五入的浮点数插入到一个字符串中。那你就做%("Variable")
。 “变量”是int或float数,不能在不成为字符串的情况下插入到字符串中。将整数或浮点数转换为字符串的另一种方法是str(“variable”),但我发现字符串格式更整洁。
你会global "variableName"
做一个全局变量,所以你可以在函数之外使用它。
def instructions():
print ("Hello, welcome to the programme")
print ("Please follow the onscreen instructions")
def getOutput():
global G
G = int(input("Enter gross income: "))
return G
def displayBreak():
print("")
print("Less deductions")
print("---------------")
def doDeductions():
global Value
Value=G*.03
global Health
Health=G*.04
global Pay
Pay=G*.41
global Social
Social=G*.07
global Net
Net=G-Value-Health-Pay-Social
################################################
instructions()
print("")
getOutput()
displayBreak()
print("")
doDeductions()
print("PRSI %2f" %(Value))
print("Health Contrb. %2f" %(Health))
print("PAYE %2f" %(Pay))
print("USC %2f" %(Social))
print("")
print("Net Pay %2f" %(Net))
print("Programme Complete")
在调用函数后,您将在底部插入所有打印件,或者在使用它们之前调用变量,这会导致程序出错。
答案 1 :(得分:0)
如果在代码主体中定义变量,则它是一个全局变量。局部变量在函数内定义,范围有限。这意味着局部变量只能从它们定义的函数中访问,而不像全局变量,可以在程序中的任何地方访问。
您可以使用关键字' global'像这样:'全球变量名'使地方变量(在函数中定义)可以在任何地方访问。
目前,你所做的与你的任务要求的完全相反。它希望您使用全局变量,但是您在函数中定义它们,使它们成为本地变量。解决这个问题的简单方法是在函数之外定义这些变量;在这种情况下,摆脱" def doDeductions():",但保留变量赋值并取消它们。