肖sir__python之函数5.1
函数:
一、什么是函数
定义:函数是组织好,可重复使用,用来实现单一,或关联功能的代码段
二、pycharm中的表结构
项目 ,包(init)或目录,py文件,py文件包含多个函数或类等
三、函数的有哪些优点?
1、降低代码冗余
2、增加代码的复用性,提高开发效率
3、提高程序的拓展性
4、封装:就是把代码片段放在函数当中
================================
二、函数的使用
1、自定义函数
2、内置函数
(1)、自定义函数
自己封装的函数
(2)、如何定义一个函数
def
格式:
def 函数名(参数): #定义函数
函数体
函数名( ) #调用函数
案例:
3、调用函数的方法:
(1)第一种:直接调用 函数名()
(2)第二种:mian方法
def hs():
print("上海多测师")
print("杭州多测师")
def hs1():
print("深圳多测师")
print("广州多测师")
if __name__ == '__main__':
hs1()
# hs()
(3)第三种:调用方法:跨模块调用 a 模块 ,b模块
a文件:
b文件:
调用上一个文件中的函数:
先导入模块中函数:
from 项目名.包名.模块名 import (导入) * (*所有的函数)
=================================================
函数中的参数:
1、函数体中无函数
def hz():
print("dcs")
print("hz")
hz()
2、函数中有单个参数
def hz(a):
print(a)
print(a+2)
hz(12)
3、函数中有多个参数
def hz(a,b,c):
print(a)
print(a+b)
print(a+b+c)
hz(1,2,3)
4、函数定义时带上默认参数
c=18 表示默认参数
def hz(a,b,c=18):
print(a)
print(a,b)
print(a,b,c)
hz(1,2)
5、可变长元组
可变长参数中可变长元组“*” ;一个*号
案例1:单独可变长元组使用
def hz(*a):
print(a)
hz(1,2,3,4,5)
案例2:可变长元组使用和普通参数在一起,只能可变长元组在后,否则报错
def hz(b,*a):
print(a)
print(b)
hz(1,2,3,4,5,8)
6、可变长字典
可变长字段用两个** 表示
案例1:单独传字典:
(1)def zd(**d):
print(d)
zd(name="zt",age="18")
(2)
def zd(**d):
print(d)
d={"a":1,"b":2}
zd(**d)
案例2:当可变字典和可变元组在一起,可变元组在前,可变字典在后
def zd(*y,**d,):
print(y)
print(d)
d={"a":1,"b":2}
zd(111,2,**d)
案例3:普通参数,可变长元组,可变长字典
def zd(p,*y,**d,):
print(p)
print(y)
print(d)
d={"a":1,"b":2}
zd("a",111,2,**d)
======================================
变量
函数汇总的变量和作用域
(1)全局变量:在函数内外都可以引用
(2)局部变量:在函数体中定义的变量被称为局部变量
(3)通过局部变量改成成全局变量
1、认识局部变量和全局变量
案例1:
a=10 #全局变量
def s():
a=100 #局部变量
print(a)
def c():
print(a)
if __name__ == '__main__':
s()
c()
备注:局部变量和全局变量在一起,局部变量优先级高于全局变量
2、将局部变量改为全局变量 global
a=10 #全局变量
def s():
global a #通过global 将局部变量改为全局变量
a=100 #局部变量
print(a)
def c():
print(a)
if __name__ == '__main__':
s()
c()
============================================
return 函数
返回值
(1)
def s():
# global a
a=100 #局部变量
return a
def c():
k=s()
k*=2
print(k)
if __name__ == '__main__':
s()
c()
作业:
方法一:
def login (a,b):
if a=="jz" and b=="123":
print("登录成功")
return 0
else:
print("失败")
return 1
def selec (a):
if a==1:
print("尚未登录")
elif a==0:
print("您的余额为0")
if __name__ == '__main__':
b=login("jz","123")
selec(b)
方法二:
def dl():
name=input("请输入用户名:")
if name=="zt":
print("登录成功")
return "登录成功"
else:
print("登录失败")
return "登录失败"
def select():
c=dl()
if c=="登录成功":
print("余额:一个亿")
else:
print("你就是一个乞丐")
if __name__ == '__main__':
select()
方法三: return 1或0 ;return Ture 或falsh ,
return "登录成功"
return "登录成功"
def dl():
name=input("请输入用户名:")
if name=="zt":
print("登录成功")
return 1
else:
print("登录失败")
return 0
def select():
c=dl()
if c==1:
print("余额:一个亿")
else:
print("你就是一个乞丐")
if __name__ == '__main__':
select()
===========================
python内置函数
python内置函数也叫内建函数;python自带的函数
1、format
1.hz="{}".format("dcs","bank")
print(hz)
2\
hz="{},{}".format("dcs","bank")
print(hz)
3\元组范围超出
hz="{}it{}{}".format("dcs","bank")
print(hz)
hz="{0}it{0}".format("dcs","bank") 备注:索引从0开始
print(hz)
3、设置参数输出
a="姓名:{name},年龄:{age}".format(name="duoceshi",age=18)
print(a)
a=[1,2,3] #0
b=[4,5,6] #1
print("中奖号码:{0[2]},兑奖号码:{1[1]}".format(a,b)) #a,b 表示两个列表排序
结果:
a=[1,2,3] #0
b=[4,5,6] #1
print("中奖号码:{1[2]},兑奖号码:{0[1]}".format(a,b)) #a,b 表示两个列表排序
备注:
一个表默认0
两个表就是按0,1索引位表示
取值也是按括号内索引位来取值
5、对字典进行格式化 "**"表示可变长字典
a={"name":"多测师","url":"www.duoceshi.com","zj":"100w"}
b="网站名:{name}, 网站:{url},资金:{zj},品牌:{name}".format(**a)
print(b)
============================================
zip函数
a=["a","b","c"]
b=[4,5,6,7,8]
c=zip(a,b) #<class 'zip'>
print(type(c))
c=dict(c)
print(c)
案例2元组:
a=["a","b","c"]
b=[4,5,6,7,8]
c=zip(a,b)
print(type(c))
c=tuple(c)
print(c)
结果:
(('a', 4), ('b', 5), ('c', 6))
(2)zip解压
zip(*)
a=["a","b","c","a"]
b=[4,5,6,7,8]
x,y=zip(*zip(a,b))
print(x)
print(y)
============================================
open函数
(3)读取本地文件内容:
地址:E:\az\ls\tt.txt
新建一个txt文档:
案例
url2=r"D:\ls\cms.txt"
wj=open(url2,"r",encoding="utf-8")
print(wj.read())
(4)'r'读取的三种方式
1、read #读取文件中所有内容返回字符串
案例:
url2=r"D:\ls\cms.txt"
wj=open(url2,"r",encoding="utf-8")
print(wj.read())
2、readline ##读取文件中第一行内容
url2=r"D:\ls\cms.txt"
wj=open(url2,"r",encoding="utf-8")
print(wj.readline())
3、readlines ##读取文件中所有内容返回列表
url2=r"D:\ls\cms.txt"
wj=open(url2,"r",encoding="utf-8")
print(wj.readlines())
================================================
写入文件
url2=r"D:\ls\cms.txt"
wj=open(url2,"w") #打开并写入
wj.write("2022新年好11") #写入内容
wj.close() #关闭文件,释放资源
r=open(url2,"r")
print(r.read())
================================================
a追加:
案例:追加的模式:a(写入追加)
url2=r"D:\ls\cms.txt"
wj=open(url2,"a") #打开并写入
wj.write("2022大家暴富") #写入内容
wj.close() #关闭文件,释放资源
r=open(url2,"r")
print(r.read())
==========================
案例1:read()
url2=r"D:\ls\cms.txt"
with open (url2,"r") as f:
a=f.read()
print(a)
案例2:readlines()
url2=r"D:\ls\cms.txt"
with open (url2,"r") as f:
a=f.readlines()
print(a)
案例3:readline()
url2=r"D:\ls\cms.txt"
with open (url2,"r") as f:
a=f.readline()
print(a)
===================================
long函数在python3中已删除
len函数:
返回一个内容的长度
语法:len(内容)
内容:字符串,列表,字典,元组等
案例1:计算字符
str="abcde"
print(len(str)) #结果:5
案例2:计算列表
list=[1,2,3,4]
print(len(list)) 结果:4
案例3:计算字典
d={"name":"zt","age":"18"}
print(len(d)) #结果:2
案例4:计算元组
t=(1,2,3,4)
print(len(t)) #结果:4
===================================
abs函数 绝对值
案例:
a=-1
print(abs(a)) #结果:1
===================================
sum 函数 求和
print(sum(range(1,101)))
===================================
id 函数返回对象唯一标示,标示是一个整数
a=[1,3]
b=[2,5,6]
print(id(a)) #1636447642248
print(id(b)) #1636447642312
d={"name":"zt","age":"18"}
a=d
c=d.copy()
print(id(a)) #1947478161736
print(id(d)) #1947478161736
print(id(c)) #1510760806800
===================================
min 最小
返回给定参数最小值或传入可迭代对象元素中的最小值
案例1:数字排列
a=[1,2,3,4,5]
print(min(a))
案例2:
str1="abik"
print(min(str1))
案例3:数字和字符
str="a0b12kq3p"
print(min(str))
===================================
max
返回给定参数的最大值,参数可以为序列。
a=[1,2,3,4,5]
print(max(a)) #5
str="a0b12kq3p"
print(max(str)) #q
str1="abik"
print(max(str1)) #k
===================================
file 函数用于创建一个file对象,它有一个别名叫open()
===================================
help函数的作用:
help函数查看函数或模块用途的详细说明
案例:
help("sys")
help("str")
print(help(list))
===================================
dir()函数是查看函数或模块内的操作方法有什么,输出的是方法列表
案例:dir查询一个类或者对象素有属性
print(dir(list))
结果:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
===================================
float 浮点值,必须在python中将其转换为浮点值
print(float(12))
print(float(126))
print(float("1")) #将字符串转换成浮点数
a=[1,2,3,4,5]
print(max(a))
str="a0b12kq3p"
print(max(str))
str1="abik"
print(max(str1))
=============================================
bin
用法:
主要用于将整数转换为二进制字符串。
1、print(bin(10))===0b1010 print(a[2:]) 或者print(a.replace('0b',''))===#1010
2.divmod():此函数用于同时获取两个数的商和余数。例如,divmod(7, 3)将返回(2, 1),其中2是商,1是余数。
3、eval():此函数用于计算存储在字符串中的有效Python表达式,并返回结果。例如,eval('2 + 3')将返回5。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!