1 #!/usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 4 #01 函数的定义,调用 5 #生日歌 6 def happy(): 7 print("Happy birthday to you!") 8 9 def sing(person): 10 happy() 11 happy() 12 print("Happy birthday, dear", person + "!") 13 happy() 14 15 def main(): 16 sing("Mike") 17 print() 18 sing("Lily") 19 print() 20 sing("Elmer") 21 22 main() 23 24 25 ''' 26 02 改变参数值的函数: 27 函数的形参只接收了实参的值,给形参赋值并不影响实参 28 Python可以通过值来传递参数 29 什么是函数的形参 和 实参? 30 一种是函数定义里的形参,一种是调用函数时传入的实参 31 ''' 32 33 #例1 利息计算 addinterest1.py 34 def addInterest(balance,rate): # balance 和 rate 是函数addInterest的形参 35 newBalance = balance * (1 + rate) 36 balance = newBalance 37 38 def main(): 39 amount =1000 40 rate = 0.05 41 addInterest(amount,rate) #amount 和rate 是函数addInterest 的实参 42 print(amount) 43 44 main() 45 46 #例2 利息计算 addinterest2.py 47 48 def addInterest(balance, rate): 49 newBalance = balance * (1 + rate) 50 return newBalance 51 52 def test(): 53 amount = 1000 54 rate = 0.05 55 amount = addInterest(amount, rate) 56 print(amount) 57 58 test() 59 60 #例3: 处理多个银行账户的程序 61 #addInterest3.py 62 def createTable(principal, apr): 63 #为每一年绘制星号的增长图 64 for year in range(1,11): 65 principal = principal * (1 + apr) 66 print("%2d"%year, end = "") 67 total = caulateNum(principal) 68 print("*" * total) 69 print("0.0k 2.5k 5.0k 7.5k 10.0k") 70 def caulateNum(principal): 71 #计算星号数量 72 total = int(principal * 4 / 1000.0) 73 return total 74 def main(): 75 print("This program plots the growth of a 10-year investment.") 76 # 输入本金和利率 77 principal = eval(input("Enter the init principal: ")) 78 apr = eval(input("Enter the annualized interest rate: ")) 79 #建立图表 80 createTable(principal,apr) 81 main()