python 2乱码,源码混了,代码重复,ascii码 一个字节表示 显示中文 只有英文
python 3 utf-8 三个字节 表示中文
int 整型 str 字符串 类型 bool 布尔值 True False
运算符:
逻辑运算:not and or
比较运算:< > =
赋值运算;*= -= += //= %=
算法运算:- + * ** /
成员运算: in not in
if 语句
if 条件:
结果
if 条件:
结果
else: 二选一
if
elif;(在如果)
elif:(在如果)
while 条件:
循环体
while :
else:
while :
if:
if:
if:
嵌套型语句
() not and or 依次优先
not 1>2 and 3 or 3 and 5>6 or 3 结果为 3
索引
元素的下表
例 s = "dsfdsg" 从左向右数 零开始 从 右向左 -1 -2 -3 负一开始
当你准确取某一个元素时 减一
s1 = s[0]
则 s1 = d
前片
s2 = s[1:2:2] 分号的顺序依次是 起点终点 步长 [-4:-1:1] 输出结果 为左到右 要是从右到左的话 在步长前加一个负号 [头减一 :尾不变] 步长 开始位置后数起
字符串的表示
变量名.swapcase()大小写转化 当也有一个人大写时全部转化为大写
变量名.upper()表示全部大写
变量名.lower()表示全部小写
变量名.capitalize()表示首字母大写
变量名.starswith('')判断以什么开头 输出Boolz值
变量名.endswith('')判断以什么结束输出bool
变量名.split('')表示分割
变量名.replace('老东西','旧东西')替换
len(变量名)取长
name = " aleX leNb "
n = name.strip()
n = n.find('e') 下标为2
n = n.find('e',3) 从位置去找 3第个位置起 下标 为6
变量名.find('元素'),查下标 没有的输出 -1
变量名.index('元素')查下表 没有的报错
变量名.isdigit()判断是不是纯数字,输出bool值
变量名.count('元素')统计出现的次数
n = n.count('l',1,5) #count 可以切片去找
例 s = 'dafdg'
print('_'.join(s)) 下划线 等
d_a_f_d_g
变量名.strip()表示默认删除空格与换行符\n 变量名.strip('')表示删除''里的内容 +++不能用在列表后边
list 列表 []
'增删改查'
增
li = [1,2,3,'nihao','n','你好啊']
li.append('对了')#只能 在后边添加
print(li)
li.insert(0,'gg')#根据索引来添加,是没有默认在后边添加的
print(li)
li.extend('qwer')#把 qwer拆分开 分别加到列表后边,只能有一个''的内容
print(li)
删
li.pop(1)#按索引删除,不能切片删除,
print(li.pop(1))#有返回你要删除的元素
del li#删除整列表
print(li)
del li[1:3]#按切片切忘记了.就长这样的
print(li)
li = [1,2,3,'nihao','n','你好啊']
li = li.clear()#输出 None没有用内容 表示已经清空
print(li)
li.remove('你好啊')# 按元素删除 ,移除的意思
print(li)
改
li[1] = '替换内容'
li[1] = [123,'大宝哥']#列表嵌套列表
print(li)
li[0:3] = 'dasfggdfh'#把字符串改成字符放进去
print(li)
li[0:3] = ('练啊','人才','胸带')#一个位置一个的放进去()与[]是一样的,('练啊','人才','胸带')等于['练啊','人才','胸带']
print(li)
li = [1,2,3,'nihao','n','你好啊']
查
li = li[2]#索引查找
li = li[1:4]#切片查找
for i in li :
print(i)
print(li[3])
公用方法 数字列表排序
li = [1,23,4,6,9,4,2,]
li.sort()#不能写成li =li.sort(),否则输出None.正向排序
print(li)
li = li.sort()#输出None
print(li)
逆向排序
li.sort(reverse=True)#把里边的False改为True
print(li)
反转
li.reverse()#把li反过来
print(li)
元组 uplit 只读 不可更改, 元组里的列表可以改 (儿子不能改,孙子可以改)
li = ('ho','gg',1,3,['cp',75],689,0)
print(li[4][0][1])#找出p
只能查,孙子可改的跟列表一样
数字元组(1,100)表示1234567...100 用range
for i in range(1,88,2): #有步长
print(i)
for i in range(0,10,2):#偶数
print(i)
for i in range(1,10,2):#奇数
print(i)
for i in range(1,88,2):
不可变数据型 列如 bool 元组 int str
字典 用二分法 可以存储大量的数据
dic1 = {'name':'beibi','age':'18','sex':'male'}#键值对
有增删查改
增
dic1['big']= 66 #直接加入键值对.不重复的话直接加入,重复的话直接覆盖
print(dic1)
dic1['name']='gegu'
print(dic1)
用setdefault 去添加.好处是原有的不会被覆盖
dic1.setdefault('name',88)#(键,值)当没有值的时候默认值为None
print(dic1)
dic1 = {'ka':'v1','k2':'v2','ae':'66'}
n = dic1['ka']#输出来的是键对应的值 ka:v1 是一对 所以输出的是 v1
print(n)
#
删 一#删,一样都是用pop
dic1.pop('name')#有返回值 ('键'),当键不存在的话报错 可以改为这样('键','提示语')
print(dic1)
print(dic1.pop('n','不存在'))
dic1.clear()#清空字典{}
print(dic1)
del dic1#删除整个字典
print(dic1)
del dic1['name']#按键删除 键值对
print(dic1)
改 覆盖
dic1['name'] = 14 #直接覆盖了
字典更新 把一更新到原来的
dic1 = {'age':'18','name':'jon','sex':'male',}
dic2 = {'name':'jgv','age':'8','weight':'66',}
dic2.update(dic1)
# print(dic1)
print(dic2)
把一更新到二中 爬虫时用
b1 = 'alexgdgj'
b2=b1.upper().replace('E','o',1).capitalize().split('o')
print(b2)
name = ' 1 + 2 +3+4+5 +6+ 7'
b = name.strip().split('+')
print(b)
格式化输出
format
变量名.format('','','')
s2 = 'fdsa,{2} {1} {0}'
print(s2.format('爱 ','不爱','你猜 ','佛挡 杀佛'))格式化输出的下标 一个逗号隔开来数
输出 e 的下标
name = " aleX leNb "
n = name.strip()
c = 0
for i in n:
print(i)
if i =='e':
print(c)
c +=1