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]

image

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},招行祝您新年快乐”

posted @ 2021-05-30 12:36  余、笙  阅读(135)  评论(0)    收藏  举报