說起來,函數其實就是簡化了需要重複使用某片代碼時重寫的麻煩。換做我原來的理解,總是認爲函數就是將原本意思的代碼片給簡化了,其實不是,若在一個程序中,暫時只用到了一次這個代碼片,那麼我們也需要把這片代碼該表達的意思都碼出來。例如我們最常舉的例子加法,寫出一個函數,是什麼樣子呢?
def sum(x,y,z):
s=x+y+z
return s
r=sum(1,2,3)
print r
就像上述函數,單純的看這個函數,一點也沒覺得這裏簡單了什麼,所以函數在只使用一次的時候,我們並不覺得簡化了什麼,因此,該寫什麼就要寫什麼。(我最初總是覺得該省略很多語句),例如下述語句,我最初覺得應該把while語句給省略了,寫點別的什麼東西,然而省略的話就啥也沒了,,
#coding:utf-8
print"累加1~100"
def sum(n):
sum = 0
i = 0
while i<= n:
sum+=i
i+=1
return sum
x = input("請輸入一個數:")
s=sum(x)
print s
隨後是一些自己加深練習的代碼片:
def xian():
print"------"
print"第一條線"
hua(x) #必須加里面的參數x
def hua(x):
a=1
while a<=x:
print"---------"
a=a+1
x=input("輸入你想要的線數")
xian()
這裏用到啦函數的嵌套,其中調用函數時,如若函數有參數,我們調用的時候是不能忽略參數的。
函數先求和,再求平均值。
#coding:utf-8
def sum(x,y,z):
s=x+y+z
return s
r=sum(1,2,3)
print r
def ping(a,b,c):
global r #此處r不需要定義全局變量,我只是試試
r=sum(a,b,c)
ping=r/3.0
return ping
a=input("請輸入a的值:")
b=input("請輸入b的值:")
c=input("請輸入c的值:")
print("%s"%ping(a,b,c))
附貼一個函數關於名片的全套操作。這是最基礎的簡單的嵌套。可以看到裏面的Input爲raw_input,
coding:utf-8
card_infors = []
def print_menu():
""" 完成打印功能菜單"""
print("="*50)
print(" 名片管理系統V0.01")
print("1.添加一個新的名片")
print("2.刪除一個名片")
print("3.修改一個名片")
print("4.查詢一個名片")
print("5.顯示所有的名片")
print("6.退出系統")
print("="*50)
def add_new_card():
new_name =raw_input("請輸入新的姓名:")
new_qq = raw_input("請輸入新的qq:")
new_weixin = raw_input("請輸入新的微信:")
new_addr = raw_input("請輸入新的地址:")
new_infor = {}
new_infor['name']=new_name
new_infor['qq']=new_qq
new_infor['weixin']=new_weixin
new_infor['Addr']=new_addr
global card_infors
card_infors.append(new_infor)
def find_card_infor():
global card_infors
find_name = raw_input("請輸入要查找的姓名:")
find_flag = 0
for temp in card_infors:
if find_name == temp["name"]:
print("%s\t%s\t%s\t%s"%(temp['name'], temp['qq'], temp['weixin'], temp['addr']))
find_flag=1
break
if find_flag == 0:
print("查無此人....")
def show_all_infor():
global card_infors
print("姓名\tQQ\t微信\t住址")
for temp in card_infors:
print("%s\t%s\t%s\t%s"%(temp['name'], temp['qq'], temp['weixin'], temp['addr']))
def main():
print_menu()
while True:
num = int(input("請輸入操作序號:"))
if num==1:
add_new_card()
elif num==2:
pass
elif num==3:
pass
elif num==4:
find_card_infor()
elif num==5:
show_all_infor()
elif num==6:
break
else:
print("輸入有誤,請重新輸入")
print("")
main()
總結:1.格式 2.調用時勿忘參數 3.用input的時候要輸入文字的時候記得改成raw_input 4.函數中可以出現多條return語句,但是每個函數只執行一次return,執行完即相當於退出函數