字符串的操作

1.int  十进制与二进制之间的转换

  二进制 ---> 十进制

  0010 0111 ---> 1*2**0+1*2**1+1*2**2+1*2**5=39

  十进制 ---> 二进制

  42 ---> 101010

2. str

  python中凡是用引号引起来的都是字符串

  1)存储相对少量的数据

  2)描述信息

  字符串的索引,切片

    s = "python脱产班20期"

    每个字符都有对应的号码,通过索引(切片)出来的内容都是字符串的类型.

    通过索引(下标)号牌找到对应的元素

    

1 s = "python脱产班20期"
2 s1 = s[0]
3 print(s1, type(s1))
4 s2 = s[2]
5 print(s2)
6 s3 = s[-1] # 从后面查从-1开始 
7 print(s3)
8 s4 = s[-2]
9 print(s4)

    按照切片找值,遵循顾头不顾腚

 1 s = "python脱产班20期"
 2 s1 = s[:6] # 从0开始可以省略不写
 3 print(s1)
 4 s2 = s[6:9]
 5 print(s2)
 6 s3 = s[:] # 从头取到尾
 7 print(s3)
 8 s4 = s[6:]
 9 print(s4)
10 
11 # 切片+步长
12 s5 = s[:5:2]
13 print(s5)
14 
15 
16 # 反向取值必须加反向步长。
17 s6 = s[-1:-4:-1]
18 print(s6)
19 
20 s7 = s[-1:-6:-2]
21 print(s7)
# [起始索引: 结尾索引+1: 步长] # 切片取值

  字符串的常用操作方法

    大前提:对字符串的任何操作都是产生一个新的字符串,与原字符串没有关系

  capitalize(首字母大写), upper(每个字母大写), lower(每个字母小写), swapcase(大小写翻转),title(每个单词首字母大写)

  

 1 s = 'asdsads'
 2 print(s.capitalize())
 3 s = "AsdDFGsdsa"
 4 print(s.swapcase())
 5 s = "hello python"
 6 print(s.title())
 7 upper(全部字母大写)
 8 s = "asdsads"
 9 print(s.upper())
10 lower(全部字母小写)
11 s = "SDSADSA"
12 print(s.lower())
13 # 举例:
14 code = 'AeRf'.upper()
15 username = input('请输入用户名:')
16 your_code = input('请输入验证码:').upper()
17 if your_code == 'AERF' or your_code == 'aerf' or .... :
18 if your_code == code:
19     if username =='alex':
20         pass
21 else:
22     print('验证码输入有误')
1 s = 'taiBai'
2 # swapcase 大小写反转  *
3 s4 = s.swapcase()
4 print(s4)
5 
6 s = 'alex wusir*taibai7wuchao'
7 # title 非字母隔开的每个单词的首字母大写  *
8 s5 = s.title()
9 print(s5)

  strip(默认去除字符串两边的空格,换行符,制表符), lstrip(只是去除左边), rstrip(只是去除右边)

  

 1 s = '    alex\n'
 2 s = '\talex\n'
 3 print(s)
 4 s6 = s.strip()
 5 print(s6)
 6 
 7 name = input('请输入姓名:').strip()
 8 if name == 'alex':
 9     print('输入正确')
10 else:
11     print('输入错误')
12 
13 s = 'qw*awle@xyt@'
14 # 可设置去除的字符
15 s6 = s.strip('qyt@w*')
16 print(s6)

  spilt (split ---> list)

  

 1 # 默认按照空格分割
 2 s = '武大, 小潘, 西门'
 3 l = s.split()
 4 print(l)
 5 # 指定字符分割
 6 s = "武大,小潘,西门"
 7 l = s.split(",")
 8 print(l)
 9 # 指定分割次数
10 s = "武大,小潘,西门"
11 l = s.rsplit(",", 1)
12 print(l)

  join 

1 # 操作列表时,列表里面的内容必须全部是字符串类型
2 # 连接符.join(iterable)
3 s = "alex"
4 s1 = "*".join(s)
5 print(s1)
6 l1 = ["wusir", "alex", "taibai"]
7 s1 = ",".join(l1)
8 print(s1)

  startswith

1 # 判断以什么为开头 可以切片。
2 # endswith()
3 # 判断以什么为结尾,可以切片.
4 s = 'alextaibai'
5 s8 = s.startswith('a')
6 s8 = s.startswith('alex')
7 s8 = s.startswith('alex')
8 s8 = s.startswith('ta', 4, 9)  # 顾头不顾腚
9 print(s8)

  find , index

 1 # find :通过元素获取其索引,找到第一个就返回,找不到会返回-1.
 2 # index:通过元素获取其索引,找到第一个就返回,找不到会报错。
 3 s = 'taibai'
 4 s9 = s.find('a')
 5 s9 = s.find('ai')
 6 # 可以切片
 7 s9 = s.find('a',2,)
 8 print(s9,type(s9))
 9 s9 = s.find('W')
10 s9 = s.index('W')
11 print(s9)

  replace

1 s = 'alex 是一个很nb的人,非常nb,太nb了'
2 s10 = s.replace('nb', 'sb')
3 s10 = s.replace('nb', 'sb', 2)
4 print(s10)

  format

 1 s = '我叫{},今年{},性别{}'
 2 # 方法一:
 3 s11 = s.format('美龙', '23', 'man')
 4 print(s11)
 5 
 6 # 方法二:
 7 s = '我叫{0},今年{1},性别{2},我依然叫{0}{0}{0}'
 8 s11 = s.format('美龙', '23', 'man')
 9 print(s11)
10 
11 # 方法三:
12 s = '我叫{name},今年{age},性别{sex},我依然叫{name}'
13 s11 = s.format(name='美龙', sex='man', age='23')
14 print(s11)

  is系列

1 name='taibai123'
2 print(name.isalnum()) #字符串由字母或数字组成
3 print(name.isalpha()) #字符串只由字母组成
4 print(name.isdigit()) #字符串只由数字组成  ***
5 i = '1000a'
6 if i.isdigit():
7     int(i)
8 else:
9     print('重新输入')

  count

1 s = 'fdjskfldjsafkldjasfl'
2 # count 计数:字符串某个字符出现的次数
3 print(s.count('f'))

  len()

 1 # len()获取字符串的字符个数,总长度 2 print(len(s),type(len(s))) 

3.for循环

  

 1 s = 'dkfdsafdasfdasfdaslsfa'
 2 # for 循环:有限循环
 3 '''
 4 for 变量 in iterable:
 5     pass
 6 '''
 7 for i in s:
 8     print(i)
 9     if i == 's':
10         break
11 
12 # break
13 # continue
14 
15 # for else: 用法与while else相同

 

posted on 2019-03-04 21:38  渴死的蟹  阅读(100)  评论(0编辑  收藏  举报

导航