python使用笔记002

一、字符串常用方法

 1 s = '    ha.hahaha.'
 2 print(s.count('a'))#找某一个元素在字符串里出现的次数
 3 print(s.index('a'))#找某一个元素的下标,如果出现多次取第一次出现的下标
 4 print(s.index('a',2))#从指定的位置开始找
 5 print(s.index('f')) #找不存在的元素报错 7 print(s.find('f')) #跟index一样,找不存在的元素,会返回-1
 8 print(s.strip())#默认去掉字符串两边的空格和换行符

 9 print(s.strip('.'))#去掉两边指定的字符串
10 print(s.lstrip())#去掉左边的空格和换行符
11 print(s.rstrip())#去掉右边的空格和换行符
1 s1 = '18612341234sasfdfsFEFRERR'
2 print(s1.startswith('186'))#判断以什么开头,如果正确返回True,如果错误返回False
3 print(s1.endswith('2'))#判断以什么结尾,如果正确返回True,如果错误返回False
4 print(s1.lower())#将字符串全部转为小写
5 print(s1.upper())#将字符串全部转为大写
6 print(s1.islower())#判断字符串是否全部小写
7 print(s1.isupper())#判断字符串是否全部大写
1 s2 = ['1','2','3','4','5','6','10','11','12','123','1234']
2 s3 = '1'
3 print(s3.zfill(4))#用来补零的,传的参数是总的长度
4 for i in s2:
5     print(i.zfill(4))
 1 s4 = 'ma1111   r113232   ry'
 2 s5 = 'lf,fd,wq,er,oi,fer'
 3 s6 = 'fd,rere,df'
 4 print(s5.split(','))#分割字符串
 5 print(s6.split())#什么都不传,默认是以空格来分割,指定的分割符不存在,则直接把整个元素放list里
 6 print(s4.capitalize())#首字母大写
 7 print(s4.replace('1','5',2))#替换(被替换的值,替换后的值,替换的次数默认是全部替换)
 8 print(s4.isdigit())#判断是否为纯数字
 9 print(s4.center(50,'*'))#指定长度,字符串居中
10 print(s4.isspace())#判断是否为空格
1 s7 = ['fd','fdsf','rrewr','rewrw']
2 s8 = [1,2,3,4,5,6]
3 print(','.join(s7))#将list里面的元素用什么连接起来,变成一个字符串
4 print(','.join(s8))#如果list里的元素是int类型的,会报错
5 s9 = 'fdsfsfsfsfsfsrewrewr'
6 print(','.join(s9))#只要是可以遍历的都可以连接
1 s1 = '编号是:{name},{age}'
2 print(s1.format(name='xiaolin',age=19))#字符串格式化
3 s2 = '编号是:{name},{age}'
4 print(s2.format_map({'name':'cjxxl1213','age':18}))#字符串格式化,传参为字典
1 s1 = 'fdsfsdfsrewrwe12'
2 print(s1.isalpha())#如果是大小写字母,汉字返回True,其他字符串返回False
3 print(s1.isalnum())#如果是大小写字母,汉字,数字返回True,其他字符串返回False

二、元组

 1 l = (1,2,3)#元组tuple,不能修改
 2 print(l[0])
 3 #l[0] = 3#这样会报错
 4 print(l[0])
 5 #比如定义一个连接数据库,不能修改,就可以用元组
 6 dbinfo = ('ip','3306','user','password')
 7 print(dbinfo.index('ip'))   #找下标
 8 print(dbinfo.count('ip'))   #统计元组中出现的次数
 9 
10 l2 = (1)  #这个是int类型
11 print(type(l2))
12 
13 l3 = (1,)
14 print(type(l3)) #元组如果只有一个元素时,要加,

三、集合

集合(set)天生可以去重,集合是无序的

 1 #set
 2 #1、集合天生可以去重
 3 #2、集合是无序的
 4 s = {1,2,3,4,5,6,7,7,7,6,6,8,9}
 5 l = [1,2,3,4,5,6,7,7,7,6,6,8,9]
 6 s1 = {} #不是集合,是空的字典
 7 s2 = set()#定义一个空的集合
 8 print(s)
 9 print(l)
10 #给list去重
11 l = list(set(l))
12 print(l)
13 
14 s.add(10)#添加元素
15 print(1)
16 s.update({8,9,10,11,12})#把另外一个集合的加入这个集合里面
17 print(s)
18 s.remove(4)#删除指定元素
19 print(s)
20 s.pop()#随机删除一个元素
21 print(s)
22 
23 
24 #关系测试  交集,并集,差集,对称差集
25 l1 = [1,2,3,4]
26 l2 = [2,3,6,7]
27 l1 = set(l1)
28 l2 = set(l2)
29 print(l1 & l2)#取交集,就是两个集合里相同的元素
30 print(l1.intersection(l2))#取交集,就是两个集合里相同的元素
31 
32 print(l1.union(l2))#取并集,就是两个集合合并到一起
33 print(l1 | l2)#取并集,就是两个集合合并到一起
34 
35 print(l1 - l2)#取差集,l1中存在,l2中不存在的
36 print(l1.difference(l2))
37 
38 print(l1^l2)#对称差集,把a集合和b集合里相同的元素去掉,剩下的叫对称差集
39 print(l1.symmetric_difference(l2))
40 
41 a = {1,2,3,4}
42 b = {2,3}
43 print(a.issuperset(b)) #判断l1是否为l2的父集
44 print(b.issubset(a))#判断l2是否为l1的子集

四、其他小知识

4.1 切片

切片是list范围取值的一种方式

 1 #切片是list范围取值( 1-5)的一种方式
 2 l = list(range(1,11))#1-10
 3 print(l)
 4 print(l[0:5])#取前面5个,切片的下标顾头不顾尾
 5 print(l[:6])#取前面5个,前面一个元素是0,可以不写
 6 print(l[5:11])#取后面5个
 7 print(l[5:])#取后面5个,:后面的元素不写默认取到末尾
 8 print(l[0:11:2])#2-step 步长
 9 print(l[::-1])#步长为负数是从后往前取
10 print(l[0:11:-1])#步长为负数,list的下标就变为-10~-1,这个取不到值
11 print(l[-1:-11:-1])#步长为负数,list的下标就变为-10~-1
12 
13 '''
14 [1,2,3,4,5,6,7,8,9,10]
15 -10-9-8-7-6-5-4-3-2-1
16 1、如果步长为负数的话,就从后面往前取了
17 2、前面指定范围用的下标也得写负数
18 '''
19 
20 #元组也可以用切片取值
21 t = (1,2,3)
22 print(t[::1])
23 
24 #字符串也可以用切片取值
25 s = 'fdsfsfsfsfs'
26 print(s[::-1])

4.2 简化代码的小技巧

1、非空即真,非0即真

 1 True
 2 False
 3 s=''#False
 4 l=[]#False
 5 d={}#False
 6 t=()#False
 7 se=set()#False
 8 num1=1#true
 9 num2=0#false
10 l1=['']#true
11 
12 username = 'fdsfksj'
13 #常规代码
14 if username != '':
15     print('注册账号不为空')
16 #简化后的代码
17 if username:#注册账号不为空,则继续验证
18     print('注册账号不为空111')
原文地址:https://www.cnblogs.com/cjxxl1213/p/12782486.html