ex19-20 函数、变量和文件
ex19
函数中的全局变量和脚本中的变量没有联系,函数中的变量可以通过多种方式赋予。
1 #-*- coding: UTF-8 -*- 2 def cheese_and_crackers(cheese_count,boxes_of_crackers): 3 print "You have %d cheese!" % cheese_count 4 print "You have %d boxes of crackers!" % boxes_of_crackers 5 print "Man that's enough for a party!" 6 print "Get a blanket.\n" 7 #创建函数:设置两个参数;四个包含了参数的print。 8 9 10 print "We can just give the function number directly:" 11 cheese_and_crackers(20,30) #直接对函数中的参数赋值 12 13 print "OR,we can use variables from our script." 14 amount_of_cheese = 10 15 amount_of_crackere = 5 16 #要查看变量类型,可以输入type(amount_of_cheese) 17 cheese_and_crackers(amount_of_cheese,amount_of_crackere)#通过脚本中的变量来对函数的参数赋值 18 19 print "We can even do math inside too." 20 cheese_and_crackers (10+20,5+6)#在函数内进行运算 21 22 23 print "And we can combine the two,variable and the math." 24 cheese_and_crackers(amount_of_cheese+10,amount_of_crackere+1000)#在函数内进行运算,并通过脚本中的变量进行 25 #发现一个特点,创建的这个函数,不仅仅是包括参数,还包括下边二级代码的那一系列指令。
附加练习:自己编写一个函数,并至少用10种方式运行(我只用了3种 ==)
1 #-*- coding: UTF-8 -*- 2 def shopping_list (what_I_want,price):#老是会忘记冒号,要经常提醒自己。 3 print "So I wanna %s And its price is %d RMB"% (what_I_want,price)#前面设置两种不同的格式化字符,后边也可以给放到一个括号里边) 4 print "Fine,let us just take it." 5 6 print "Now I gonna go shopping." 7 shopping_list ("Juice" ,10) 8 9 print "Now I want two kinds of beer." 10 shopping_list("IPA"+"\tLager",10+15)#如果想要\t起到空格的作用,那么就需要在前面设置为%s 11 12 print "OK i also wanna something for dinner." 13 dish = "pork"+"&eggs" 14 the_price = 30+10#要非常注意,脚本中的变量和函数中的全局变量不要设置成相同 15 shopping_list(dish,the_price) 16 17 print "HAHA man you look just like a idiot."
ex20
1 #-*- coding: UTF-8 -*- 2 from sys import argv 3 4 script,input_file = argv 5 6 def print_all(f):#创建函数,读取并打印文件内容 7 print f.read()#后边如果不加(),就没法读,或者读了也没法打印 8 9 def rewind (f):#创建函数,把文件指针设置到从头开始 10 print f.seek(0) 11 12 def print_a_line(line_count,f):#创建函数,按照行来读取并打印文件 13 print line_count,f.readline() 14 15 current_file = open(input_file)#打开文件 16 17 print"First lets read the whole file.\n" 18 19 print_all (current_file) #一开始还疑惑是否可以直接用 Input_file ,后来发现自己傻了,肯定要先打开啊~~ 20 21 print "Now let's rewind,kind of like a tape."#不是很明白这里rewind的意义,难道在进行上一步之后指针到了最后了? 22 23 rewind(current_file) 24 25 print "Let's print three lines." 26 #逐行读取并打印 27 current_line = 1 28 print_a_line(current_line,current_file) 29 30 current_line = current_line + 1 #也可以写成current_line += 1 31 print_a_line(current_line,current_file) 32 33 current_line = current_line + 1 34 print_a_line(current_line,current_file) 35 36 ''' 37 file.seek()方法标准格式是:seek(offset,[whence=0])offset:相对于whence的偏移量,字节数,可以为负数, 38 whence省略时,默认从文件开头算起 39 whence:给offset参数的偏移参考,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起 40 '''