Python 我对编程很陌生。这可以接受吗?
使用这样的函数可以接受吗?我不确定我是否做对了。这是将值传递到数组中的正确方法吗Python 我对编程很陌生。这可以接受吗?,python,function,Python,Function,使用这样的函数可以接受吗?我不确定我是否做对了。这是将值传递到数组中的正确方法吗 def calculateTuitionIncrease(cost, increase, years): counter = 1 costsPerYear = [] while counter <= years: cost = (cost)+(cost*increase) costsPerYear.append(cost)
def calculateTuitionIncrease(cost, increase, years):
counter = 1
costsPerYear = []
while counter <= years:
cost = (cost)+(cost*increase)
costsPerYear.append(cost)
counter = counter + 1
return costsPerYear
def calculateTotalCost(terms,tuition,creditHours,books,roomAndBoard,scholarships):
totalBookCost = (books*terms)
totalRoomAndBoard =(roomAndBoard*terms)
totalCost = (totalBookCost+tuition+totalRoomAndBoard)-(scholarships)
return totalCost
这里似乎有两个无关的问题 首先是CalculateUtiationIncrease函数是否正确地创建了一个随时间变化的成本值列表 确切地说,这并不坏,但可能会更好。首先,可以在一个范围内使用for循环,而不是使用while循环测试手动递增的整数。一种更具python风格的代码是,当您想从一些其他序列(如年号范围)创建项目列表时,使用列表理解。在这种情况下,这需要稍微不同的数学计算,但结果应相同:
costs_per_year = [cost * (1+increase)**year for year in range(1, years+1)]
您的第二个问题似乎是关于是否应该保留询问用户是否希望在单独的函数中退出的代码。这是相当主观的,所以真的没有一个正确的答案。我认为有两个很好的理由可以让它发挥自己的作用
首先,它有助于简化其他代码,特别是如果其他大部分工作也被划分为函数:
def main():
while True:
input_data = get_input()
results = calculate_results(input_data)
display_results(results)
if ask_to_exit():
break
您目前看不到这有什么好处,因为您的主要功能已经相当长且复杂
第二个原因是,您可能希望在其他代码中的多个不同位置调用它。例如,如果您有两个不同的循环,那么使用相同的函数询问用户是否在每个循环中都执行了这些操作可能是有意义的。但这并不适用于您的代码,因为您只在一个地方调用exitProgram函数
因此,最后,这两个理由都不能有力地说明你的处境。但这并不一定意味着你应该把exitProgram的内容放回main。例如,如果您认为您可能会更改其他代码,通过将您在main中经历的其他步骤分解为它们自己的函数,那么将exitProgram作为一个单独的函数来保留可能是有意义的
还有几点建议:
如果选择保留exitProgram函数,请为其选择其他名称。函数的名称通常是描述其功能的动词。不过,您的exitProgram函数有误导性,因为它实际上并不会导致程序退出,它只是返回用户希望退出的内容。我建议您让它也返回bool值,而不是调用者需要测试的y或n字符串
此外,Python代码约定的函数和变量以小写字母命名,并使用下划线格式,而不是像您当前使用的大小写。获取更多Python风格的建议。无法理解您真正的意思吗?创建函数是允许用户退出程序的最佳方式,还是我不应该创建函数并将所有代码保留在主模块中?使用模块。这将使你的代码更清晰。谢谢你,这很有帮助。我刚刚开始学习Python,所以我有很多东西要学。我该如何让exitProgram函数返回bool值而不是y或n字符串?@slobiwan:我可能会返回quitProgram==y,而不仅仅是返回quitProgram。
def main():
while True:
input_data = get_input()
results = calculate_results(input_data)
display_results(results)
if ask_to_exit():
break