我是编程的新手(python),最近做了一些功课,但我真的被这个简单的函数实现卡住了。本质上,我必须请求在main()中执行的用户输入,然后定义另一个函数,用分配给用户输入的变量来计算。怠速运行时,输出0。任何帮助或提示都会非常有帮助,谢谢。以下是我目前掌握的代码:
#global variables
firstClass = 0.0
businessClass = 0.0
economyClass = 0.0
soldFirstClass = 0.0
soldBusinessClass = 0.0
soldEconomyClass = 0.0
totalFC = 0.0
totalBC = 0.0
totalEC = 0.0
######################################
###########MAIN FUNCTION#############
######################################
def main():
print('***WELCOME***\n')
print('***Please ENTER the Airlines ticket prices***\n')
firstClass = float(input ('Please ENTER a ticket price for First Class: '))
businessClass = float(input ('Please ENTER a ticket price for Business Class: '))
economyClass = float(input ('Please ENTER a ticket price for Economy Class: '))
print('\nThank You\n')
soldFirstClass = float(input ('Please ENTER the number of sold tickets for First Class: '))
soldBusinessClass = float(input ('Please ENTER the number of sold tickets for Business Class: '))
soldEconomyClass = float(input ('Please ENTER the number of sold tickets for Economy Class: '))
calcClass()
def calcClass():
global firstClass, soldFirstClass, businessClass, soldBusinessClass, economyClass, soldEconomyClass
totalFC = firstClass*soldFirstClass
print('Total money earned for First Class = %0.0f ') % totalFC
totalBC = businessClass*soldBusinessClass
print('Total money earned for Business Class = %0.0f ') % totalBC
totalEC = economyClass*soldEconomyClass
print('Total money earned for Economy Class = %0.0f ') % totalEC
main()
您的
main()
正在分配给局部变量。将global …
语句从calcClass()
复制到main()
。在尽管如此,使用全局变量来传递信息几乎总是一个坏主意。应将它们作为参数传递:
不要使用全局变量。相反,让
calcClass
获取参数,如下所示:代码中的第一个问题是反向使用
global
(这实际上是python中更令人困惑的事情之一)。在你要使用全局变量来声明全局变量。只要不写入与全局变量同名的变量,就可以从该全局变量中读取,而不必使用全局声明。在
分配两个全局变量是正确的,你可以相应地添加全局变量。在
然而,右要做的是消除任何要写入的全局变量。相反,向函数添加参数,并使用参数在函数之间传递值。在
相关问题 更多 >
编程相关推荐