运算符:
算数:+ - * / //(商的整数) %(余数) **(次幂)
比较:== != >= <= < >等
赋值:= += -=
逻辑运算:not and or
成员运算:in not in
数字一般在计算的时候用的多,运算后无理数的话,总共保留16位数字
例如:print(2/3) 结果:0.6666666666666666 print(80/9) 结果为:11.428571428571429
其结果就两种
True 或 1 --》表示真
False 或 0 ---》表示假
优先级的大小:()> not > and >or
字符串一般使用 ’ ‘或 “ ”或 ’‘’ ‘’‘ 给括起来,其中’‘’ ‘’‘在多行字符串中使用
例如:
msg = '''
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
'''
print(msg)
字符串中含有 ’ 号时,其一般使用“”给括起来
例如: msg = "My name is 星辰, I'm 22 years old!"
3.1 字符串------增
str='hello world'
str1='!!!'
str2='oh'
print(str+str1) #使用两种字符串拼接的方式,后拼接 结果 hello world!!!
print(str2,' '+str) #使用两种字符串拼接的方式,前拼接 结果为 oh hello world
str=str * 3 #使用字符串乘法的方式,重复拼接 结果为 hello worldhello worldhello world
print(str)
3.2 字符串-------删
3.2.1 使用strip的方式
strip() 的用法默认删除字符串前后的空格,换行符,制表符,加上参数就能删除相应的字符串
例如:strip('h') -->依次删除首尾处出现 h 的字符,strip使用删除多个字符的情况较复杂,这理先不研究
str='hello world' print(str.strip('h ')) 其结果为ello world
3.2.2 strip的说明
strip 删除是字符串收尾的字符,中间不做考虑
例如:
str="hello ll "
print(str.strip("he")) #删除的字符可以从开头匹配:llo ll 注意最后的空格保留了
print(str.strip(' ll')) #最后的空格可以不匹配:hello 后面没有空格
print(str.strip("ll ")) #连着匹配后面的空格 :hello 后面没有空格
print(str.strip('ll')) #在中间,原字符串不变,中间空格不能省
print(str.strip('llo')) #在中间,字符串不变
3.3 字符串-------改
3.3.1使用replace的方式替
例如:
s="xingchen 啊林凤娇辣椒粉 xingchen 啊链接发垃圾 xingchen"
s8=s.replace("xingchen","hehe") #默认全部替换 结果为:hehe 啊林凤娇辣椒粉 hehe 啊链接发垃圾 hehe
s8=s.replace("xingchen","hehe",1) #替换的数量 结果为: hehe 啊林凤娇辣椒粉 xingchen 啊链接发垃圾 xingchen
3.4 字符串-------查
3.4.1 使用索引,索引默认是从0开始的
例如:
str='abc' print(str[0]) 其结果为 a
print(str[-1]) 结果为 c
3.4.2 使用切片的方式,截取字符串的一段,(原则就是顾头不顾腚)s[起始索引:结束索引+1:步长]
例如:
str='abcdef' print(str[0:3]) 或者 print(str[:3]) --> abc
print(str[3:6]) 或者 print(str[3:100]) --->def
采用步长的方式,默认步长是1,
print(str[0:3:2]) ----》 ac
print(str[-1:-4:-1]) --->fed # -4<-1,步长使用 -
print(str[-1:-4:-2]) --->fd
3.4.3 使用split分割的方式,结果由 str ---> list
s1 = 'alex wusir taibai ritian' print(s1.split()) ---> ['alex', 'wusir', 'taibai', 'ritian'] #默认一空格分割
s2 = 'alex,wusir,taibai,ritian‘ print(s2.split(,)) ----->同上 #指定以,分割
s3 = 'alexwusirtaibairitian' print(s3.split('i',2)) --->['alexwus', 'rta', 'bairitian'] #指定以 i 分割,并指定两个 i,则分成了三段,按照i 出现的位置依次分割
s3 = 'alexwusirtaibairitian' print(s3.split('i',100)) --》['alexwus', 'rta', 'ba', 'r', 't', 'an'] # i最多出现了5次,因此只能分成6 段
3.4.4 让 list ---> str ,可以考虑使用join的方式
l1=['alex','wusir','ritian']
s10=' '.join(l1) print(s10,type(s10)) ---> alex wusir ritian <class 'str'>
s11='_'.join(l1) print(s10,type(s10)) ---> alex_wusir_ritian <class 'str'>
3.4.5-1 通过元素找字符串的索引 ---》find
s = 'alexwausir'
s1=s.find("a") print(s1) ---> 0 #找到a的索引
s2=s.find("al") print(s2) ---> 0 #找到的第一个索引作为结果
s3=s.find("ax") print(s3) ---> -1 #找不到,返回值是-1
3.4.5-2 index 命令和find类似,但是找不到它会报错,而不是-1
s = 'alexwausir' s3=s.index("ax") print(s3) --》ValueError: substring not found
3.4.6 startwith和endwith 以什么为开头或结尾
s = 'alexWUsir'
# s6=s.startswith('a')
# s6=s.startswith('alex') #结果为True
# s6=s.startswith('alexa') #结果为False
# s6=s.startswith('WU',4,) #验证WU是否在索引为4的位置,结果为True
# s6=s.startswith('WU',4,5) #从索引4的位置到5,也即是W,查找WU的位置,结果为False 【4,5)
#s6=s.startswith('WU',4,6) #从索引4的位置到6,也即是W,查找WU的位置,结果为True [4,6)
3.5 字符串的其他用法
3.5.1 计算字符串的个数:s='abcdef' print(len(s)) ---> 6
计算字符出现的个数:print(s.count('a'))
3.5.2 判断字符串的组成
isalnum:由数字或者字母组成
isdigit:由数字组成
isalpha:由字母组成
3.5.3 将字符串填入相应的格式内----》format
第一种用法:s = "我叫{},今年{},爱好{}"
s12 = s.format('太白', '25', '女') print(sl2)
第二种用法:s1 = "我叫{0},今年{1},爱好{2},我依然叫{0}"
s13 = s1.format('太白', '25', '女') print(sl3)
第三种用法:s3 = "我叫{name},今年{age},爱好{hobby}"
s14 = s3.format(age=25,hobby='girl',name='太白') print(sl4)
3.5.4 字符串的大小写转化
s.capitalize() # 首字母大写其余字母小写
s.title() #非字母隔开的每个单词首字母大写
例如: s_s='2alex %wusjlfj**sjflj2%tian%2%' print(s_s.title()) 结果为: 2Alex %Wusjlfj**Sjflj2%Tian%2%
s.swapcase() #大小写反转,即大写变小写,小写变大写
s.upper() 全部大写
s.lower() 全部小写
四 元组 返回头部
元组:只读列表,使用(),里面的内容使用逗号隔开,里面的元素不可更改,但是如果里面嵌入列表或者字典时还是可以修改的
支持count查找某个元素的数量,例如tu.count('name')
注意: tu=(1,) tu=(1,2)是元组,tu(1)不是元组,是int
4.1 单纯的元组
不支持增、删、改,主要讲查
4.1.1 使用for循环遍历
tu = (1, 2, 33, 'alex')
for i in tu:
print i
4.1.2 支持索引查找
print(tu[0]) ----> 1
4.1.3 通过index查找
s=('name','a','name','alex')
print(s.index('name',1)) #从‘a'开始查找
#支持index查找索引,不支持find
print(s.index('name',s.index('a'))) #从a的索引位置往后查找 name
4.2 嵌入式元组
元组中可以有列表,可以嵌入字典,元组中的列表适用列表的方法等等
列表外面使用【】,中间元素使用逗号隔开,列表中可以嵌入列表和元组
5.1 列表的---增
5.1.1 append 其后面只能增加一个元素
例如:s.append('nihao') s.append(1) s.append([1,2,3]) s.append((1,2,3))
5.1.2 insert insert(位置,元素)
例如:s.insert(1,'name')
5.1.3 extend 是可以迭代的
例如:s=[] s.extend('aaa') s.extend([1,2,3]) s.extend((4,5,6)) ---->其结果为: ['a', 'a', 'a', 1, 2, 3, 4, 5, 6]
5.1.4 extend扩展字典时,只保留key
s=['abc']
s.extend({'a':'alex'})
print(s) #['abc', 'a']
5.2 列表的---删
5.2.1 pop 根据索引删除,不能根据元素删除
例如:s.pop(1)
5.2.2 remove 根据元素删除
例如:s.remove('name')
5.2.3 del 根据索引或者切片删除 del s[]
例如:del s[1] del s[0:3]
5.2.4 clear清空列表内的所有元素,也即变成一个空列表
例如:s.clear()
5.2.5 直接使用切片的方式将一段内容清空
例如: li = ['alex','wusir','eric','rain','alex']
li[1:4]=''
print(li) ------>['alex','alex']
5.3 列表的--改
5.3.1 根据索引修改
例如:s[0]='nihao'
5.3.2 根据切片修改
按照切片修改时,将删除切片区域的元素,并将要增加的字符串以单个字符的方式分别加入列表
例如:l=['ni','wo','ta','women']
l[:3]='afdfgaggga %*gaga\tegtgcfjaj;fjinkjnfknk'
print(l) -->结果:['a', 'f', 'd', 'f', 'g', 'a', 'g', 'g', 'g', 'a', ' ', '%', '*', 'g', 'a', 'g', 'a', '\t', 'e', 'g', 't', 'g', 'c', 'f', 'j', 'a', 'j', ';', 'f', 'j', 'i', 'n', 'k', 'j', 'n', 'f', 'k', 'n', 'k', 'women']
另1:加步长的情况,替换前后的元素必须一样多
例如:l=['ni','wo','ta','women']
l[:3:2]='ab'
print(l) ----->结果为:['a', 'wo', 'b', 'women']
另2:使用字典替换的情况,字典的键作为元素替换到列表中,值被抛弃
例如:l=['ni','wo','ta','women']
l[:3]={'username':'xingchen','hobby':'girl'}
print(l) --->结果为:['username', 'hobby', 'women']
另3:使用列表替换元素时,列表的每个元素成为了它的新元素
例如:l=['ni','wo','ta','women']
l[:3]=[11,22,33,44,'abc']
print(l) ---> [11, 22, 33, 44, 'abc', 'women']
5.4 列表的---查
索引查 print(s[0])
切片查 print(s[:3])
切片加步长查 print(s[:3:2])
for循环查 for i in s:
print i
判断是否包含:print('a' in s) -->显示True 或者 False
当列表中嵌入列表时:print([1,2] in s)
5.5列表的其他方式:
# print(len(l)) # 总个数
# print(l.count('a')) # 某个元素出现的次数
# l1 = [1, 9, 8, 4, 3, 2, 6,]
# l1.sort() # 正序排序
# l1.sort(reverse=True) # 倒叙排序
# l1.reverse() # 翻转,前后换位置
# print(l1)
字典:key-values存储,字典的键 必须是唯一的,不可重复,value 可以为任意数据类型或者对象。
字典的键可以使用的数据类型:int str tuple bool
6.1 字典的---增
根据键增加 例如: dic=[] dic['name']='xingchen' #由于name键在字典中没有,所以增加,但是如果存在的话,就会修改值
根据setdefault 例如:dic.setdefault('name','xiaobai') #无则增加,有则不变
6.2 字典的---删
6.2.1 pop 其会返回值
例如:dic.pop('name') ---》其会返回键name对应的值
dic.pop('不存在','此键不存在') --》删除一个不存在的键,可以预定返回的值
6.2.2 popitem 3.5之前是随机删除,3.6之后是删除最后一个键值对,其括号中不加入键名
例如:dic.popitem()
6.2.3 clear清空 例如:dic.clear()
6.2.4 del 从内存层面删除这个字典 例如:del dic
6.3 字典的---改
6.3.1 根据存在的键名改: dic['name']='wuming'
6.3.2 update 根据一个字典去更新另外一个字典
例如:dic = {"name": "jin", "age": 18,"sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic2.update(dic)
print(dic2) ---->结果 {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
6.4 字典的---查
6.4.1 get 有返回值
例如:dic={'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
print(dic.get('name1')) -->返回None
print(dic.get('name1','没有此键')) --》返回 没有此键
6.4.2 for循环查 默认遍历字典的键 keys(),还可遍历字典的值 values() 键值对items()
例如:for i in dic:
print(dic[i])
另:可以键,值分别赋值给变量
for key val in dic.items():
print(key val)
6.4.3 使用键名查 dic['name']
6.4.4 包含查询 print('name' in dic)
6.5 字典的其他用法
fromkeys的用法
例如:
dic=dict.fromkeys('abc',[]) #fromkeys命令建立一个列表,建立一个键值对后,它们指向的是同一个内存
print(dic) #{'a': [], 'b': [], 'c': []}
dic['c'].append(666) #给一个键赋值,其他的也赋了同样的值
print(dic) #{'a': [666], 'b': [666], 'c': [666]}
dic['a'].append(777)
print(dic) #{'a': [666, 777], 'b': [666, 777], 'c': [666, 777]}
#如何脱离这个限制
dic['b']=[666,777]
print(dic) #{'a': [666, 777], 'b': [666, 777], 'c': [666, 777]}
dic['c'].append('其他')
print(dic) #{'a': [666, 777, '其他'], 'b': [666, 777], 'c': [666, 777, '其他']} 结果就脱离限制了
****最后:在循环列表或者字典的时候,千万不要做添加或者删除操作。应借助于其他变量如列表
例如:
将索引为奇数对应的元素删除
l1 = [11, 22, 33, 44, 55]
# for i in range(len(l1)):
# print(i)
# print(l1)
# if i % 2 == 1:
# del l1[i]
# print(i)
# print(l1)
# print(l1) #[11, 33, 44] 结果不是我们想要的
#应使用下面方法
for i in range(len(l1)-1,-1,-1):
if i % 2 == 1:
del l1[i]
print(l1) #[11, 33, 55]
7其他 返回顶部
foramt格式化
例如 2后面两个%是为了打印%,相当于转换命令
# job = input('请输入职业:')
# hobbie = input('请输入爱好:')
# msg = '''------------ info of %s -----------
# Name : %s
# Age : %d
# job : %s
# Hobbie: %s
# ------------- end -----------------
# ''' % (name, name, int(age), job, hobbie)
# print(msg)
# print('我叫%s,今年%d,学习进度2%%' % ('xingchen', 10000))
range 范围
来源:oschina
链接:https://my.oschina.net/u/4413726/blog/3971498