python之函数
一、函数
1、定义:函数组织好的,可重复使用,用来实现单一,或者功能的代码片段
2、项目、目录或包、模块(py文件)、函数
3、函数的优点:
a、降低代码的冗余
b、增加代码的复用性,提高开发效率
c、提高程序的拓展性
d、封装
4、自定义函数
格式:
def 函数名(变量名):
函数体
函数名() 调用函数
案例:
def hs():
print(1)
hs()
5、函数调用方法
三种:
第一种:直接在本模块调用
def hs():
print(1)
hs()
第二种:main方法 ,叫主函数调用
def hs():
print(1)
if name == 'main': 当前模块运行,导被导入不被运行
hs()
第三种调用方法:
跨模块调用函数
案例:
aa文件:
def hs():
print("a")
def hsb():
print("b")
hs()
hsb()
if name == 'main':
hs()
hsb()
bb文件:
from bao.aa import * from 项目名.包名.模块 import * * 所有
hs()
6、函数中的参数
案例:
def hsw():
print("无参数")
def hs(a): # 单个参数
print(a+1) #
def hsb(x,y): #有多个参数
print(x+y)
def hsmr(x,y=6): #参数中带有默认参数
print(x+y)
def kbc(x): #可变长参数
print(x)
def kp(y,x): #可变长参数+普通参数
print(y)
print(x)
def zd(d):#可变长字典
print(d)
def qb(x,*y,m):
print(x)
print(y)
print(m)
if name == 'main':
hsw()
hs(1)
hsb(2,3)
hsmr(8,2)
kbc(1,2,3,4,5,6,7,8)
kp(123,43,4,2)
# zd(name="zs",age="ls") #{'name': 'zs', 'age': 'ls'}
dict={"name":"ls","age":12,"fs":80}
# zd(dict)
qb(1,2,3,4,5,6,7,dict)
7、函数变量
(1)局部变量:在函数体中定义的变量,被成为局部变量
(2)全局变量:在函数内外都可以引用
(3)通过globla将变量设置成全局变量(globla全部变量要大于函数外的全局变量)
案例:
a=100 #全局变量
def hs():
a=200 #局部变量
print(a)
def hs2():
print(a)
hs() #200
hs2() #100
案例1:
a=100 #全局变量
def hs():
global a
a=200 #局部变量
print(a)
def hs2():
print(a)
hs() #200
hs2() #100
8、return函数 返回值
案例:
def hs():
x=9+1
return x
def hs2(b):
js=hs()
print(js+b)
hs2(3)
作业:
返回值实战练习
需求:登录银行系统并显示余额,有两个功能第一个是登录,第二个是登录
后显示余额,先登录然后根据登录是否成功然后是否显示余额。
分析思路:如果想查询到余额,前提必须登录,所以现在我们用两个函数来
处理,第一个函数实现登录,第二个函数实现余额查询,调用第一个函数得
到的结果给第二个函数,然后第二个函数根据结果进行代码处理。
9、内置函数
(1)format
函数是一种格式化字符串的函数 ,该函数增强了字符串格式化的功能。
基本语法:是通过 {} 来代替以前的 %
1、
a="{}{}".format("a","b") #不设置指定位置,按默认顺序
print(a)
2、
a="{2}{1}".format("a","b","c") #设置指定索引位置输出
print(a)
3、
a="姓名:{name},年龄{age}".format(name="a",age=19) #设置参数输出
print(a)
4、
对列表进行格式化
案例:
a=['多测师','www.duoceshi.com']
b=['百度','www.baidu.com']
print("公司名称:{0[0]} ,网站:{1[1]}".format(a,b))
5、对字典进行格式化 ""表示可变长字典
案例:
a={"name":"多测师","url":"www.duoceshi.com"}
print("公司名称:{name}, 网站{url}".format(a))
(2)zip 压缩包
a、压缩
a=['name','url',"aa"]
b=['duoceshi','www.duoceshi.cn']
c=zip(a,b) #<class 'zip'>
print(type(c))
print(dict(c))
print(list(c))
print(tuple(c))
b、反解(zip)
a=['name','url',"aa"]
b=['duoceshi','www.duoceshi.cn']
m,n=zip(zip(a,b))
print(m)
print(n)
(3)open函数
open() 函数用于打开一个文件,创建一个 file 对象
语法:open(file, mode),模式有r(只读),w(写入覆盖),a(写入追加)
url="C:\Users\Administrator\PycharmProjects\untitled\bao\aa.py"
注意:路径前+r,或者反斜杠
使用opn函数
r 读
案例:
url=r"C:\Users\Administrator\PycharmProjects\untitled\bao\aa.py"
url1=r"E:\az\ck\mm"
wj=open(url1,"r",encoding="utf-8")
print(wj.read())
print(wj.read()) #读取的内容所有,返回的是字符类型
print(wj.readline()) #取的内容一行
print(wj.readlines()) #读取的内容所有,返回的是列表的类型
w 写
url=r"C:\Users\Administrator\PycharmProjects\untitled\bao\aa.py"
url1=r"E:\az\ck\mm"
wj=open(url1,"w",encoding="utf-8")
print(wj.write("dcs"))
a 追加
url=r"C:\Users\Administrator\PycharmProjects\untitled\bao\aa.py"
url1=r"E:\az\ck\mm"
wj=open(url1,"a",encoding="utf-8")
print(wj.write("hjkj\nzhuijia"))
(4) with open
a
url=r"C:\Users\Administrator\PycharmProjects\untitled\bao\aa.py"
url1=r"E:\az\ck\mm"
with open(url1) as f:
# print(f.read())
# print(f.readlines())
print(f.readline())
拓展:
a=-1
print(abs(a)) #1 绝对值
list1=[1,2,3,6,9]
print(max(list1)) #9 最大数
print(min(list1)) #1 最小数
print(sum(list1)) #求和
print(sum(range(1,101))) #5050
print(len(list1)) #5 计算长度
print(id(list1)) #返回对象唯一表示
print(help(open)) #查看函数模块用途的详细说明
print(float(12)) #12.0 浮点数
print(bin(3)) #0b11 将整数转换成二进制