一、自定义函数
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()