\ ——用于换行,也叫行连接符。
\ ——用于换行,也叫行连接符。
#序列化
import pickle#引入pickle模块
a1="蜡笔小新"
a2=234
a3=[10,20,30,40]
#把上面的内容添加一个二进制文件中
with open("data.dat","wb") as f:
pickle.dump(a1,f)
pickle.dump(a2,f)
pickle.dump(a3,f)
#现在是乱码状态,下面开始转换成可读的内容
with open("data.dat","rb") as f:
b1=pickle.load(f)
b2=pickle.load(f)
b3=pickle.load(f)
#打印出来
print(b1);print(b2);print(b3)
#测试a1是否于b1相等
print(id(a1));print(id(b1))
#不相等
蜡笔小新
234
[10, 20, 30, 40]
1617878845360
1617920883280
#读取和写入CSV文件
#引入CSV模块
import csv
#打开文件,注意:如果乱码,请在最后标明encoding的类型
with open("efg.csv","r",encoding='utf-8') as f:
a_csv=csv.reader(f)#读出文件内容
# print(list(a_csv))
for row in a_csv:#用循环读出文件内容
print(row)
#打开一个新的文件
with open("ee.csv","w") as f:
#获得一个写入器
b_csv=csv.writer(f)
#一行一行的写
b_csv.writerow(["ID","姓名","年龄"])
b_csv.writerow(["1001","工藤新一","17"])
c=[["1002","希希","18"],["1003","黑羽快斗","16"]]
b_csv.writerow(c)
['\ufeffID', '姓名', '年龄', '破案量']
['1001', '工藤新一', '17', '1000']
['1002', '服部平次', '18', '200']
['1003', '黑羽快斗', '16', '100']
ID,姓名,年龄
1001,工藤新一,17
"['1002', '希希', '18']","['1003', '黑羽快斗', '16']"
with open("e.txt","r",encoding="utf-8") as f:#打开文件
print("文件名是:{0}".format(f.name))#打印文件名
print(f.tell())#返回文件中指针的当前位置
print("读取内容:{0}".format(str(f.readline())))#读取文件的第一行
print(f.tell())#返回文件中指针的当前位置
print("读取内容:{0}".format(str(f.readline())))#读取文件的第二行
print(f.tell())#返回文件中指针的当前位置
递归算法
1.定义递归头
2.递归体
def fact(n):
if n==1:
return n
else:
return n*fact(n-1)
print(fact(5))
import shutil
shutil.make_archive('电影/gg','zip','movie/港台')
import zipfile
z1=zipfile.ZipFile('d:/a.zip','w')
z1.write('1.txt')
z1.write('1_copy.txt')
z.clost()
z2=zipfile.ZipFile('d:/a.zip','r')
z2.extractall('电影')
import shutil
shutil.copyfile('1.txt','1_copy.txt')
shutil.copytree('movie/港台','电影')
import os
path=os.getcwd()
list_files=os.walk(path)
for dirpath,dirnames,filenames in list_files:
for dir in dir names:
print(dir)
import csv
with open('dd.csv','r') as f:
a_csv=csv.reader(f)
print(list(a_csv))
with open('ee.csv','w')as f:
b_csv=csv.writer(f)
b_csv.writerow(['ID','name','age'])
1、行注释:# 这是一行可以编辑中文的备注
2、断注释:三个英文状态下的引号,两行之间可以编辑中文的备注
"""
。。。
。。。
。。。
。。。
"""
1、保存:ctrl+s 随时保存,养成习惯
2、tab键:默认四个空格
3、注释:# 养成习惯,方便自己,方便他人
4、行连接符(代码太长需要分行时用):\
仅仅是分行用的,代码内容没有断
字符串的格式化
format()
填充与对齐
数字格式化
小数f 整数d
常用的查找方法
len
a.startswith('wo')是以wo开头的吗
a.endswith('wo')是以wo结尾的吗
a.find('wo')第一次出现wo的位置
a.rfind('wo')最后一次出现wo的位置
a.count('wo')wo出现了几次
a.isalnum()所有字符全是字母或数字 返回布尔值
去除首尾信息
strip()
大小写转换
a.capitalize()产生新的字符串,首字母大写
a.title()产生新的字符串,每个单词都首字母大写
a.upper()产生新的字符串,所有字符全转成大写
a.lower()产生新的字符串,所有字符全转成小写
a.swapcase()产生新的字符串,所有字母大小写转换
格式排版
center()、ljust()、rjust()
字符串驻留机制
字符串比较
==
!=
is
成员操作符
in
not in
split()分割 join()合并
a.split()把空格作为分隔符
a.split('be')把be最为分隔符
join()
a=['sxt','sxt100','sxt200']列表
'*'.join(a)
'sxt*sxt100*sxt200'
涉及到性能时一般用join(不生成新的对象)
append加元素
字符串切片slice操作
截取字符串
[:]提取整个字符串
[start:]从start-1开始直到最后
[:end]从头又开始直到end-1
包含开头不包含结尾
[start:end:step]
其他操作:
step=-1,从后往前反向提取
str()实现数字转型字符串
使用[]提取字符
replace实现字符串的替换
a=a.replace('c','gao')把c变成gao
转义字符
\续行符
\\反斜杠
\'单引号
\"双引号
\b退格
\n换行
\t横向制表符
\r回车
字符串的拼接
+
b=‘sxt''gaoqi’
形成新的对象
从控制台读取字符串
nyname=input‘请输入你的名字:’
请输入你的名字:
python的字符串是不可变的
字符串的编码:Unicode
ord()字符转换为数字
chr()数字转换为字符
多行 三个单引号
空格
len()查字符串chang'du
同一运算符
is
is not
== 调用 __eq__()方法
整数缓存问题