脚本宝典收集整理的这篇文章主要介绍了python基础7,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
str
tuple
list
在循环列表时,不建议改变列表的大小,因为改变列表的大小会导致数据的挪动,改变元素的索引,导致操作出错或报错
list.index():根据元素返回index,找不到就报错
l1 = [1,2,3]
l1.index(1) # 0
list.count()
list.sort():给列表排序(一般是给全数字元素的;列表排序),参数reverse:默认从小排到大,为True时,从大到小
list.reversed():翻转列表
列表能相加,【合并两个列表,生成一个新的列表】
l1 = [1,2,]
l1 += [3,4]
PRint(l1) # [1,2,3,4]
列表能乘数字【使列表内的元素,复制n份】
l = [1,2,'蔡学明',[1,2,3]]*2
print(l)
print(l[3] is l[-1])
记得是复制哦
dict
int <--> str
要注意,字符串要想转成int,字符串内的所有元素必须都得是数字字符
i = 100
s = str(i)
s1 = '123'
i1 = int(s1)
int <-->bool
非零即为True,零为False
i = 0
print(bool(i)) # False
bool <--> str
非空字符串就为True,bool转为str毫无意义,就只是多了两个单词
print(bool(' ')) # True
str <-->list
一般采用join和split方法【join方法要注意可迭代对象内的元素必须全是字符串】
s = '1,2,3,4'
l = s.split(',') # l = ['1','2','3']
s1 = '+'.join(l) # s1 = '1+2+3'
list <--> set
一般用于列表去重,不过set是无序的,所有去重后的列表会被打乱
l = [1,2,3,3]
l = list(set(l))
可以转成False的值
{},set(),'',0,None,[],(,)
在内存中,所有的数据都是以Unicode的编码形式存在,但是网络传输和储存时,都不能使用Unicode编码
在应用层时,所有的加载的数据都会解码成Unicode,但存储时,会被编码成各种编码的文件
不同编码之间是不能直接识别和转换的,即以Utf-8编码的文件要以Utf-8解码,否则就会乱码,而且utf-8是无法直接转成gbk编码的
在Python中有一类特殊的数据类型【byter】:该种数据类型在python程序运行在内存中时,是非Unicode编码的形式存在的。
byter是类似的字符串的数据类型,拥有字符串的大部分操作方法
用byter和Unicode作为编码之间互相转换的交换区【主要原因是byter可以从任何形式的编码文件变成Unicode,再从Unicode变成任何编码的byter】
主要使用两个方法
方法一:str.encode('编码方式')
方法二:byter.decode(‘解码方式'')
b = b'xe4xb8xadxe5x9bxbd' #一utf-8编码的bytey
s = b.decode('utf-8') # s = '中国'
b1 = s.encode('gbk') #b'xd6xd0xb9xfa'
注意:解码时,要注意编码是用什么编码的,即编码是什么格式,解码就得是什么格式,否则会出错
文件操作初始
文件操作三部曲
打开文件
f = open(路径,encoding=编码方式,mode=打开模式)
操作文件
f.操作方法
关闭文件
f.close()
操作详解
文件的打开模式
读模式: r(文本读) 、rb(字节读)
F1 = open('路径',encoding='编码方式',mode='r')
默认mode是r,所以如果是mode是r时,可以不写
如果mode是rb时,不用写encoding方法
在该模式下,文件有多种操作方法
f1.read(n)【n为读取的字符长度,当模式是rb时就是字节长度,如果不写,就是全读】
f1.read(n)
f1.readline()【按行读取文本】
f1.readline()
f1.readlinese()【按行读取文本,将每一行读取到一个列表内】
l = f1.readlinese()
for i in f1【以for循环的方式,读取每一行文本,推荐使用,不同一次加载过多文件数据在内存】
for line in f1:
print(line)
写模式:w(文本写),wb(字节写)
当mode是wb,不用写编码方式
如果没有该文件就会创建一个新的文件
要注意以w模式下,在打开文件时,第一步就会清空文件内的数据
在w打开的模式下,无论多少次写的操作都不会触发清空,直到以w模式再次打开文件才会
在该模式下只有一种操作方法,往文件内写入数据
f1.write()
f1.writeline() # 其实两者差不多是一种方法,一行写入,和一次性写入,很少使用writeline
追加模式:a(文本追加),ab(字节追加)
其他模式
r+:读写模式,不会创建文件,不会清空文件
要注意读写的顺序,必须是先读后写
with open('文件的其他操作模式',encoding='utf-8',mode='r+') as f1:
for line in f1:
print(line.strip())
f1.write('n大傻逼蔡观河')
f1.writelines('大傻逼')
w+:写读模式,会创建文件,也会清空文件,所以读写的顺序是,先写将游标跳到最前端后读
with open('文件操作的w+操作',encoding='utf-8',mode='w+') as f2:
f2.write('ashdjasj1')
f2.seek(0)
for i in f2:
print(i)
f2.write('你什么')
a+:追加读写模式,会创建文件,不会清空文件,读写顺序可以随意,但读得先将游标跳到开端
with open('文件操作的a+操作',encoding='utf-8',mode='a+') as f2:
f2.seek(0)
for i in f2:
print(i)
f2.write('1223')
文件操作的其他方法
seek(0)
,结尾是seek(0,2)
文件操作的先进方法
with方法的优点:
能一次性打开多个文件
单一文件操作
with open(路径,编码方式,打开模式) as 变量:
多个文件操作【表示本行未结束,下一行也是本行的延申】
with open(路径,编码方式,打开模式) as 变量,
with open(路径,编码方式,打开模式) as 变量:
函数的初识
函数的结构
函数由关键字、函数名、小括号、函数体组成
def 函数名():
函数体
def是定义函数的关键字,以该关键字开头,是告诉解释器,接下来的一段代码是函数
函数名其实也是变量,定义函数名的要求与变量相同,但更要求语义化,让人见名知义
小括号内包裹的是函数内预先定义的变量,也叫形参,命名同变量
函数体内写的是函数实现的功能
函数的返回值【return】
函数的调用:在函数名后跟小括号,小括号内添加的数据就是实参
函数的参数
实参的传参方式
位置传参:根据形参的位置和个数传入数据
关键字传参:根据要传入的形参的变量名,一一对应传入参数
混合传参:可以将位置传参和关键字传参混合传参
def func(key,key2):
pass
func(value,value) # 位置传参
func(key=value,key2=value2) #关键字传参
func(value,key2=value1) #混合传参
形参的定义方式
位置形参:能接收位置参数和关键字参数
def func(变量,变量1):
pass
func(value,value)
默认参数形参:在函数定义形参变量时就赋予默认值,函数调用时可以不传入该参数,如果传入就覆盖该默认值
def func(变量=value):
pass
func()
万能位置形参:进阶的位置形参,贪婪原则,尽可能的接收位置参数,使函数能接收更多的位置参数
def func(*args):
pass
func(value,value1,value2,value3)
万能关键字形参:贪婪原则,尽可能的接收关键字参数
def func(**kwargs):
pass
func(name=value,age=value,sex=value)
仅限关键字形参
位置处于万能位置形参和万能关键字形参之间
只能以关键字传参的方式传入数据
def func(*args,变量,**kwargs):
pass
func(变量 = value)
关于函数形参定义的顺序
普通位置形参 > 万能位置形参 >默认形参 and 仅限关键字形参 >万能关键字形参
def func(a,*args,sex='男',b,**kwargs):
pass
关于函数传参顺序
关于*的应用
以上是脚本宝典为你收集整理的python基础7全部内容,希望文章能够帮你解决python基础7所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。