【发布时间】:2016-10-12 04:36:11
【问题描述】:
def main():
def load():
name=0
count=0
totalpr=0
name=input("Enter stock name OR -999 to Quit: ")
while name != '-999':
count=count+1
shares=int(input("Enter number of shares: "))
pp=float(input("Enter purchase price: "))
sp=float(input("Enter selling price: "))
commission=float(input("Enter commission: "))
name = input("Enter stock name OR -999 to Quit: ")
def calc():
amount_paid=shares*pp
commission_paid_purchase=amount_paid*commission
amount_sold=shares*sp
commission_paid_sale=amount_sold*commission
profit_loss=(amount_sold - commission_paid_sale) -(amount_paid + commission_paid_purchase)
totalpr=totalpr+profit_loss
def print():
print("\nStock Name:", name)
print("Amount paid for the stock: $", format(amount_paid, '10,.2f'))
print("Commission paid on the purchase: $", format(commission_paid_purchase, '10,.2f'))
print("Amount the stock sold for: $", format(amount_sold, '10,.2f'))
print("Commission paid on the sale: $", format(commission_paid_sale, '10,.2f'))
print("Profit (or loss if negative): $", format(profit_loss, '10,.2f'))
print("Total Profit is $", format(totalpr, '10,.2f'))
return main()
load() #to input the values
calc()
print()
我不确定我做错了什么:
我应该将变量名放入def load():、def calc(): 和def print(): 吗?
当我现在运行它时,它说"load" 没有定义。我将如何定义load?就此而言,如果我没有定义 def calc(): 和 def print(): 我如何定义它们?
我确实在代码末尾正确地调用它们,按照我想要调用它们的顺序 - load、calc,然后是 print。
我的“return main()”是正确的做法吗?我不知道,我只是希望这段代码能够正常运行而不会出错,仅此而已。我的印象是我只是错过了一些东西。任何帮助,将不胜感激。
【问题讨论】:
-
您在
main内部定义了load,因此在main外部不可见。如果您不打算使用main,为什么还要在main中定义函数? -
好的,我如何使用 main 同时仍然调用 load()、calc() 和 print()?
-
我个人不喜欢使用主函数。我觉得它们是多余的。许多人强烈反对。但如果你是,通常你定义你的函数 outside of
main,然后按照你想要的顺序调用函数 inside ofmain。然后文件的最后一行是对main()的调用。无需从main返回任何内容。 -
无关,但请参阅此处了解如何正确进行字符串格式化。 pyformat.info
-
请注意,一旦你的函数之一被命名为
print,你就不能再使用内置的print了!
标签: python function python-3.x calling-convention