一、函数
将一段一定功能的代码封装到一起并起一个名字,在使用时使用代码的名字调用函数,提升代码复用率
函数定义的格式:
def 函数名(参数):# ()可以理解为函数的身份证,区分函数名和变量标识符
函数功能
定义函数时运行不会执行函数中的代码
函数调用时才会执行函数中的功能代码
函数调用过程
- 函数定义时代码不执行(仅仅登记有这个功能)
- 做函数调用时跳转到定义函数中的功能代码
- 函数调用运行结束后回到调用处后继续向后执行
示例:
def show():
print('show')
print('start')
show()
print('end')
函数说明文档DocString)
卸载程序文件开头位置时候是文件的DocString
写在函数文档开头则是函数的DocString
'''
函说明文档,DocString
'''
def show():
'''
这是show函数的说明文档
show函数的作用是用来显示一个字符串
'''
print('hello world')
show()
help(show) # 获取函数的DocString
函数的实参和形参
实参: 在函数调用时()中出现的数据
形参: 并不真正存在,用于函数被调用时接收函数调用传递过去的实参数据
在传递时要一一对应
示例一:
def say_hi(name): # name是形参
print('hello',name)
say_hi('tom') #name是实参 函数调用时tom传递给name name=tom
示例二:
def my_sum(a,b): #别忘了冒号
print(a+b)
my_sum(1,2) # 一一对应
函数返回值(重点)
return 返回一个函数的结果
格式:
return 数据
一个函数,无论在哪里遇到return,那么这个函数都会直接结束执行,回到函数调用处,return后面可以没有数据
函数若没有return则返回none
def get_num():
return 1
print(get_num())
输出结果为:1
def show():
print(1)
print(2)
return
print(3)
print(4)
print(show())
输出结果:
1
2
none
# 需求:封装一个函数 从键盘获取一个数字
def get_num():
k=input('请输入一个数字:')
return k
print(get_num() // 2) #会报错,input默认字符串格式 TypeError
改正:
def get_num():
k=input('请输入一个数字:')
k=int(k)
return k # 不写会默认返回none
print(get_num() // 2)
传参示例:定义一个函数传入两参数并计算参数累加和返回
def my_sum(a,b): # 当有参数后不需要对参数重新从键盘进行输入新数据
return a+b
s=my_sum(11,2)
print(s)
顺序函数多个return
一个函数中可以存在多个return但是只能有多个语句有效(一旦遇到return程序不执行),在执行顺序上第一个遇到的return有效(注意不是书写顺序)
def get_num():
return 1
return 2 # 执行不到
return 3 # 执行不到
print(get_num())
# 同级别代码缩进保持一致 否则报IndentationError
二、判断语句和循环语句
if_else语句的格式和作用
if使用格式:
if 条件:
满足条件执行的代码
示例:
def is_net(age): # 别忘了“:”
if age>=18:
print('可以上网')
else:
print('滚去学习')
age = int(input ('输入你的年龄:'))
is_net(age)
示例2:定义一个函数判断接收的数据时候否是偶数
def is_even(n):
if n % 2 == 0:
print(f'{n}是偶数')
else:
print(f'{n}是奇数')
m = int(input('please input number:'))
is_even(m)
if_elif_else语句格式和使用
if 条件1:
满足条件1时执行的代码
elif 条件2:
满足条件2时候执行的代码
elif 条件3:
满足条件3时候执行的代码
…
else
不满足上面条件时执行的代码 # else是一个可选的模块可以省略不写 一般会写上容错
示例:
def is_week_day(day):
if day == '1' or day == '一':
print('星期一')
elif day == '2' or day == '二':
print('星期二')
elif day == '3' or day == '三':
print('星期三')
elif day == '4' or day == '四':
print('星期四')
elif day == '5' or day == '五':
print('星期五')
elif day == '6' or day == '六':
print('星期六')
elif day == '7' or day == '七':
print('星期日')
else
print('啊错错错')
d = input('输入一个数字:')
is_week_day(d)
if语句的嵌套的作用
格式:
if条件:
if条件:
if条件:
示例:定义一个函数用来判断成绩的优良中差不及格
def is_score_level(score):
#先判断输入的成绩是否有效
if score >=0 and score <=100:
if score >= 90:
print(f'得分{score},级别优')
elif score >= 80:
print(f'得分{score},级别良')
elif score >= 70:
print(f'得分{score},级别中')
elif score >= 60:
print(f'得分{score},级别差')
else:
print(f'得分{score},不及格')
else:
print('输入成绩不合法')
s = int(input('输入成绩:'))
is_score_level(s)
三、 Debug工具的使用
- 点小红点
- 蓝色光标在哪行代表正要执行还没有执行哪行
- 报错会有小闪电
- 可以查看程序的执行流程
四、 随机数random
1、导入random模块
2、random.randint(n1,n2)
# 导入模块
import random
# 使用随机数模块获取一个随机数
n = random.randint(0,2) # [0,1,2]