一、自定义函数

pyhon的函数学习主要是自定义函数即
定义函数(即怎样制作函数)
调用函数(即怎样使用函数)

一、定义

def 函数名(形参):
函数体

可以发现和c相比 没有了{}, 返回值不太一样;函数定义一定要在函数的调用之前。

二、pass

如果一个函数,暂时不确定函数体的代码,可以用pass先占用位置,这样即没有语法错误,也能够让开发人员知道 这个函数功能没有实现,可以在后面进行编写。

def 函数名():
    passs

示例:要定义4个函数,实现加减乘除的功能,但还不清楚具体功能怎样写,此时就可以用pass
,如果想清楚了具体的函数应该怎样实现,那么把pass删除,补上需要的代码即可

Python代码规范中提到,定了多个函数,那么函数与函数之间空2行

二、内置函数

内置函数:Python自带的函数,它丰富的内置函数,基本上需要的功能Python都有了

比如
cmp():比较大小,注意:cmp在比较字典数据时,先比较键,再比较值
len():读取数据大小,注意:len在操作字典数据时,返回的是键值对个数。
max():找到数据中最大值

三、函数说明文档

相当于c中的函数注释

一、格式

def 函数名():
    """
    用3对双引号进行包裹,这里就是函数的说明文档,用来对函数的功能,使用方式等进行说明
    以便开发人员能够快速的了解此函数
    """
    pass

Python内置了很多的函数,只要有了函数说明文档,我们就能快速的知道这个函数的作用,可以在Python交互模式查看。

help(print)

print(…)
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.

四、函数参数

和c语言语言,只是不需要在函数声明传入参数变量类型

def test(num1, num2):
    print("传递过来的第1个数是:%d" % num1)
    print("传递过来的第2个数是:%d" % num2)
    print("它们俩的和是:%d" % (num1 + num2))


test(100, 200)

五、函数返回值

和c语言语言,只是不需要在函数声明返回类型
return实际上有2个作用,1返回数据给调用方,2结束函数的执行.

def add_2_nums(a, b):
    c = a + b
    return c  # 此时就相当于把变量c的结果返回

c=add_2_nums(20, 200)
print(c)

python 可以返回多个数据,返回列表、集合、字典即可,不能使用元组。

def add_2_nums(a, b):
    c = a + b
    return [a,b,c]  # 此时就相当于把变量c的结果返回

d=add_2_nums(20, 200)
print(d)

变量

a = 100# 定义全局变量

def test1():
    print(a)  # 虽然没有定义变量a但是依然可以获取其数据

test1()# 调用函数

如果一个函数中需要修改全局的值,此时我们需要用globa进行声明

a = 100# 定义全局变量

def test1():
    global  a   #globa进行声明
    a+=1
    print(a)  

test1()# 调用函数

六、学生信息管理系统

import time
import os

studen_list=[]

def shouyie():
    print\
    (
      "----------------------------------------\n"
      "---------------学生管理系统---------------\n"
      "---------------1、添加学生----------------\n"
      "---------------2、删除学生----------------\n"
      "---------------3、修改学生----------------\n"
      "---------------4、查询学生----------------\n"
      "---------------5、显示所有----------------\n"
      "---------------6、退出系统----------------\n"
      "----------------------------------------\n"
        )


def addr_student():
    """
    添加学生
    """
    global studen_list

    student_name= input("输入学生姓名")
    student_class= input("输入学生班级")
    student_numebr=input("输入学生学号")

    for temp_list in studen_list:#遍历列表,但是列表元素是一个字典
        if temp_list['name'] == student_name and temp_list['number'] == student_numebr:
            print("学生信息重复,请重新输入!")
            return

    student_info ={}#构建单个学生的字典
    student_info["name"]=student_name
    student_info["class"]=student_class
    student_info["number"]=student_numebr

    studen_list.append(student_info)#列表中添加学生

    print("ok!!")

def del_student():
    """
    删除学生
    """
    global studen_list

    del_student_temp=int(input("输入要删除学生的序号"))
    i=len(studen_list)
    if i<=del_student_temp or i<0:#数据错误
        print("没有该学生序号")
        return
    del studen_list[del_student_temp]
    print("OK")


def modify_student():
    """
    修改学生
    """
    global studen_list

    modify_number=int(input("输入修改学生的编号"))
    if modify_number < 0 or modify_number> len(studen_list):
        print("输入编号错误")
        return

    studen_list[modify_number]["name"] = input("新的名称为")
    studen_list[modify_number]["class"] = input("新的班级为")
    studen_list[modify_number]["number"] = input("新的学号为")
    print("OK")


def find_student():
    """
    查询学生
    """
    global studen_list
    find_name=input("输入查找的学生姓名")
    i=0
    for find_temp in studen_list:
        if find_temp["name"] == find_name:
            print("该学生的编号是%d,班级是%s,学号是%s" %(i,find_temp["class"],find_temp["number"]))
            i+=1
            return
    print("找不到该学生")


def all_student():
    """
    显示所有
    """
    print("序号-----姓名-------班级-------学号")
    i=0
    for number in studen_list:
        print("%d    %4s    %4s    %4s" %(i,number["name"],number["class"],number["number"]))
        i+=1

def extern_student():
    """
    退出
    """
    exit()


def main():
    switch=0
    while 1:
        shouyie()
        switch= int(input("请输入指令"))
        if switch == 1:
            addr_student()
        elif switch == 2:
            del_student()
        elif switch == 3:
            modify_student()
        elif switch == 4:
            find_student()
        elif switch == 5:
            all_student()
        elif switch == 6:
            break
        else:
            print("输入错误")

        input("\n\n\n按回车键继续....")



main()