python二之函数细节

版权声明:本文为博主原创文章,欢迎转载,注明出处即可。 https://blog.csdn.net/m0_37805490/article/details/76653147
  说起来,函数其实就是简化了需要重复使用某片代码时重写的麻烦。换做我原来的理解,总是认为函数就是将原本意思的代码片给简化了,其实不是,若在一个程序中,暂时只用到了一次这个代码片,那么我们也需要把这片代码该表达的意思都码出来。例如我们最常举的例子加法,写出一个函数,是什么样子呢?
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,执行完即相当于退出函数 





猜你喜欢

转载自blog.csdn.net/m0_37805490/article/details/76653147