python生成字符串列表,Python 列表生成式,函数,字符串,文件操作,生成器

知识点

1 ==与is区别:Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

==只比较值,而is比较身份标识也就是内存地址,而且在is比较中关于数据类型也就是只有数值型和字符串型的情况下,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False。

2 浅拷贝和深拷贝:需要使用copy模块

浅拷贝:copy()方法实现 1、对于不可变类型 Number String Tuple,浅复制仅仅是地址指向,不会开辟新空间。

2、对于可变类型 List、Dictionary、Set,浅复制会开辟新的空间地址(仅仅是最顶层开辟了新的空间(地址不相同),里层的元素地址还是一样的),进行浅拷贝

3、浅拷贝后,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象的(可变类型的原始对象变,拷贝对象变);改变原始对象中为不可变类型的元素的值,只有原始类型受影响。

深拷贝:deepcopy()实现 1、浅拷贝,除了顶层拷贝,还对子元素也进行了拷贝(本质上递归浅拷贝)

2、经过深拷贝后,原始对象和拷贝对象所有的元素地址都没有相同的了

3sep=" ",代表每个输出变量之间的方式可改为sep="\n",每行换行

列表生成式

[x*x for x in range(1,11)]

写列表生成式时,把要生成的元素x放在前面后面跟上for循环

还可以在for之后加上if判断语句

生成器(generator)

一遍循环一边计算的机制称为生成器

将列表生成式的[]改成(),就创建了一个生成器

可用next(生成器的名字)获得下一个返回值

g=(x*x for x in range (10))

1.用next(g)打印出下一个元素知道出现StopIteration错误

2.用for循环迭代输出

for n in g:

print(n)

需要全部推算才能使用for迭代输出

3.把print(b)改为yield b就成为生成器了

def fib(max):

n, a, b = 0, 0, 1

while n < max:

print(b)

a, b = b, a + b

n = n + 1

return 'done'

def fib(max):

n, a, b = 0, 0, 1

while n < max:

yield b

a, b = b, a + b

n = n + 1

return 'done'

字符串

capitalize() 把字符串的第一个字符改为大写

casefold() 把整个字符串的所有字符改为小写

center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串

count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可

encode(encoding=‘utf-8‘, errors=‘strict‘) 以 encoding 指定的编码格式对字符串进行编码。

endswith(sub[, start[, end]]) 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。

expandtabs([tabsize=8]) 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8

find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。

index(sub[, start[, end]]) 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。

isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。

isdecimal() 如果字符串只包含十进制数字则返回 True,否则返回 False。

isdigit() 如果字符串只包含数字则返回 True,否则返回 False。

islower()如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False

isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。

isspace() 如果字符串中只包含空格,则返回 True,否则返回 False。

istitle() 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False

isupper()如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False

join(sub)以字符串作为分隔符,插入到 sub 中所有的字符之间。

ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。

lower()转换字符串中所有大写字符为小写。

lstrip()去掉字符串左边的所有空格

partition(sub)找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 (‘原字符串‘, ‘‘, ‘‘)

replace(old, new[, count])把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。

rfind(sub[, start[, end]])类似于 find() 方法,不过是从右边开始查找。

rindex(sub[, start[, end]])类似于 index() 方法,不过是从右边开始。

rjust(width)返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。

rpartition(sub)类似于 partition() 方法,不过是从右边开始查找。

rstrip()删除字符串末尾的空格。

split(sep=None, maxsplit=-1)不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔maxsplit 个子字符串,返回切片后的子字符串拼接的列表。

splitlines(([keepends]))在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。

startswith(prefix[, start[, end]])检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。

strip([chars])删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。

swapcase()翻转字符串中的大小写。

title()返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。

translate(table)根据 table 的规则(可以由 str.maketrans(‘a‘, ‘b‘) 定制)转换字符串中的字符。

upper()转换字符串中的所有小写字符为大写。

zfill(width)返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。

函数

def 函数名(参数列表):

? 函数体

Python有返回值,就返回返回值,没有就返回None

关键字参数:出现在函数调用时:SaySome(words=‘让编程改变世界‘,name=‘小甲鱼’)

默认参数:出现在函数创建时def SaySome(name=‘小甲鱼‘,words=‘让编程改变世界‘)

可变参数:在形参前面加一个*号,意味着该参数可接受多个参数值,这些参数值以元组当成元祖传入,如果后面要跟其他形参责需要用默认参数。

def test(*params,exp=8):

print('参数长度是:',len(params),exp);

print('第二个参数是:',params[1])

文件操作

open(文件名(如果不在同一文件夹下,带上文件路径),文件打开模式)

文件路径接受/或,但是用\需要用\来转义 f=open('E:\\test.txt')

f.read()

打开模式

执行操作

‘r‘

以只读方式打开文件(默认)

‘w‘

以写入的方式打开文件,会覆盖已存在的文件

‘x‘

如果路径下已经存在相同的文件名,使用此模式打开将引发异常(以写入模式打开)

‘a‘

以写入模式打开,如果文件存在,则在末尾追加写入

‘b‘

以二进制模式打开文件

‘t‘

以文本模式打开(默认)

‘+‘

可读写模式(可添加到其他模式中使用)

‘U‘

通用换行符支持

文件对象方法

执行操作

f.close()

关闭文件

f.read([size=-1])

从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回

f.readline([size=-1])

从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符

f.write(str)

将字符串str写入文件

f.writelines(seq)

向文件写入字符串序列seq(如:列表),seq应该是 一个返回字符串的可迭代对象

f.seek(offset(偏移字节), from)

在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节

f.tell()

返回当前在文件中的位置

f.truncate([size=file.tell()])

截取文件到size个字节,默认是截取到文件指针当前位置

f.seek(0,0) 把指针拨到初始位置

for each_line in f:

print(esash_line) 可以一行一行打印

f.write() 写入之前,保证用w或a方式打开文件,当字符串写入之后,应用f.close()关闭写入文件

list(f) 将文件对象f中数据存入列表中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值