Python3学习笔记(一)
计算符
除法:
4/3 = 1.333333333 有多少小数取决于系统位数
4//3 = 1 "地板除"和python2的除法 4/3是一样的,只取整数
4//3.0 = 1.0 低精度与高精度运算,结果自动转成高精度
不可变数据类型
整型
字符串
布尔
元祖
无法更改,只能复制更改
pyhton中变量存储的都是指向(引用),也就是存储的是地址,不是值
Python元素
1.定义: 赋值,取值
2.切片 、索引
3.方法
字符串,可以取某一位,但是不能改某一位的值
取某一位的值如下:
a = ‘sssssss’
print(a[0])
切片
a[x:y:z] x:start 0 y:end 结尾 z:步长
a='asssssb'
a[1:] 从第一个开始取,取到结尾
a[:-1] 因为不包含下边界,所以会将最后一位去掉 结果是:‘asssss’
a[:] 不写就是从头到结尾 结果是:'asssssb'
a[::-1]字符串反转 结果是:bsssssa
Python中很多函数都是包含上边界,不包含下边界
面试题:
Python深copy 浅copy
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象
深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝了父对象及其子对象
实例:
import copy
a=[1,[2,3],4]
b=copy.copy(a)
b[1][1] = 0 -----> b[1][1]是[2,3]中的3 --下标从0 开始
print(a)
print(b)
结果:
[1[2,0],4]
[1[2,0],4]
这是因为浅copy只能复制最外的一层,里面嵌套的[2,3]使用的是引用,还是指向a的[2,3]
如果想把嵌套都copy过去,使用deepcopy
b=copy.deepcopy(a)
b[1][1]=0
print(a)
print(b)
结果是:
[1,[2,3],4]
[1,[2,0],4]

String常用方法
查询字符串
a = ‘sssssss’
print(a.find('z')) ----> 找不到return -1
print(a.index('z')) ----> 找不到 报错
print(a.find('a',4,-1)) ----> 从第4位开始找,找到倒数第2位 不包含倒数第2位
a = ‘sssssss’
a.lower() 转小写
a.upper() 转大写
a.capitalize() 首字母大写
a.strip() 去前后两端空格
a.lstrip() 去
a = ‘sssssss’
a.startswith() 判断是否以XXX开头
a.endswith() 判断结尾是否以XXX结尾 布尔型
分割 & 拼接
a.split() --->list 列表
分隔符.join(列表) --->列表 分隔符 组合成一个字符串 分隔符可以为空 ‘’.join()
a = "1,2,3,4,5"
print(a.split(','))
结果:
['1', '2', '3', '4', '5']
b=['1', '2', '3', '4', '5']
print(&.join(b))
结果:
1&2&3&4&5
c=[1,2,3,4,5]
print(&.join(str(b)) --->强转成字符串
>>> a='aaaabbbbbbbbcc'
>>> print(a.count('b'))
8
a.replace() 生成一个新的字符串,而不是更改原字符串
a = ‘aaabbbbbbccc’
b=a.replace('a','h')
print(a)
‘aaabbbbbbccc’
print(b)
‘hhhbbbbbbccc’
字符串格式化
“尊敬的张先生:您账户5678于1月20日入账工资,人民币2000.00,招行祝您新年快乐”短信内容
1.%
2.format
3.fast-string
---->1
name = '张三‘
money = 2000.00
a='尊敬的' + name + ":您账户5678于1月20日入账工资,人民币" + str(money) + "招行祝您新年快乐"
---->2
a = “尊敬的%s:您账户5678于1月20日入账工资,人民币%.2f,招行祝您新年快乐”%(name,money)整数用%d
---->3
a=“尊敬的{name}:您账户5678于1月20日入账工资,人民币{money:.2f},招行祝您新年快乐”.format(name=name,money=money)
不用.2f 2000.00 会变成2000.0
{ }大括号中可以写简单的代码,比如{money+money2}
---->4
a=f“尊敬的{name}:您账户5678于1月20日入账工资,人民币{money:.2f},招行祝您新年快乐”

浙公网安备 33010602011771号