#父与子的编程之旅#第十三章
第十三章将函数
我的理解是,函数是一个方便重复调用的模块,不像命令行每次实现相同的功能都得重新敲一次实现的过程,函数可以有效提高代码的重复利用率
1、使用哪个关键字来创建函数?Python中使用def关键字来定义函数,如:def 函数名()
2、如何调用函数?定义好函数之后,如果一直不调用它,那么函数并没有任何价值,调用函数我们常常直接写:函数名(),就可以完成函数的调用
3、如何向函数传递参数?定义和调用函数的时候,我们常常会使用参数。参数的作用是可以让不同的对象实现相同的功能。比如写一个统计个人信息的函数,如果我想统计一个班级所有人的基本信息,我可以给函数传递一个参数,参数是班级中每个人的学好或者名字,通过传递参数,我们可以针对班级中不同的人实现统计基本信息这个功能。定义:def 函数名(形式参数1,形式参数2,...),调用:函数名(实参1,实参2,...)
4、函数最多可调用多少个参数?一般函数中的参数不超过5至6个,如果超过则使用一个列表将参数都收集进去,然后传递这个列表即可。
5、如何从函数返回信息?Python使用关键字returnl实现返回值的传递。将变量返回到调用该函数的位置。如:return 变量名
6、函数运行结束以后,函数中的局部变量会被删除,局部变量在函数运行结束之后就不存在了。Python中global关键字可以将局部变量强制转换为全局变量。
1 #动手试一试T1。编写一个函数,用大写字母打印你的名字,就像这样: 2 ''' 3 CCCC A RRRRR TTTTTTT EEEEEE RRRRR 4 C C A A R R T E R R 5 C A A R R T EEEE R R 6 C AAAAAAA RRRRR T E RRRRR 7 C C A A R R T E R R 8 CCCC A A R R T EEEEEE R R 9 10 编写一个程序多次调用这个函数 11 ''' 12 13 def yourName(name): 14 if name == 'carter': 15 print ' CCCC A RRRRR TTTTTTT EEEEEE RRRRR ' 16 print ' C C A A R R T E R R ' 17 print 'C A A R R T EEEE R R ' 18 print 'C AAAAAAA RRRRR T E RRRRR ' 19 print ' C C A A R R T E R R ' 20 print ' CCCC A A R R T EEEEEE R R' 21 22 name = raw_input("Enter your name: ") 23 yourName(name) 24 25 #动手试一试T2。建立一个函数,可以打印全世界任何人名、地址、街道、城市、州或省、邮政编码和国家 26 #(提示:这需要7个参数。可以把它们作为单独的参数传入,也可以作为一个列表) 27 28 def whereAreYou(address): 29 n = len(address) 30 for i in range(n): 31 print address[i], 32 address = [] 33 address.extend(raw_input("Enter your information: such as name street \ 34 city province postnumbers and state")) 35 whereAreYou(address) 36 37 #动手试一试T3。尝试使用代码清单13-7的例子,不过要求my_price是全局变量,以便看到结果输出有什么区别。 38 39 def calculateTax(price,tax_rate): 40 total = price + (price * tax_rate) 41 print my_price 42 43 global my_price 44 my_price = 10000 45 print "my_price (inside function) = ",my_price 46 return total 47 48 my_price = float(raw_input("Enter a price: ")) 49 50 totalPrice = calculateTax(my_price,0.06) 51 print "price =", my_price, " Total price =", totalPrice 52 print "my_price (outside function) = ", my_price 53 54 #动手试一试T4。编写一个函数计算零钱的总面值,包括5分币、二分币和一分币 55 #(类似于第5章中最后一个“动手试一试”问题)。函数应当返回这些硬币的总面额值 56 #然后编写一个程序调用这个函数。程序运行时应当得到类似下面的输出; 57 ''' 58 quarters: 3 59 dimes: 6 60 nickels: 7 61 pennies: 2 62 total is $1.72 63 ''' 64 def howMuch(q,d,n,p): 65 total = q * 0.25+d * 0.1+n * 0.05+p * 0.01 66 return total 67 quarters = int(raw_input("quarters: ")) 68 dimes = int(raw_input("dimes: ")) 69 nickels = int(raw_input("nickels: ")) 70 pennies = int(raw_input("pennies: ")) 71 72 print "toptal is $",howMuch(quarters,dimes,nickels,pennies)