说起来,函数其实就是简化了需要重复使用某片代码时重写的麻烦。换做我原来的理解,总是认为函数就是将原本意思的代码片给简化了,其实不是,若在一个程序中,暂时只用到了一次这个代码片,那么我们也需要把这片代码该表达的意思都码出来。例如我们最常举的例子加法,写出一个函数,是什么样子呢?
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,执行完即相当于退出函数