基础数据类型
- 什么是数据: x = 10, 10是我们要存储的数据
- 为什么分数据类型: 数据是用来表示状态的, 不同的状态就应该用不同的类型的数据去表示。
数字 int
- 数字主要用于计算用
# bit_length() 当十进制用二进制表示时,最少使用的位数v = 11data = v.bit_length()print(data)
布尔值 bool
- 布尔值就两种: True,False。就是反应条件的正确与否
# 真 1 true# 假 0 false
字符串 str
- 字符串的索引与切片
- 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推
a = 'sklhfsos'print(a[0])print(a[6])
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾尾)
a = 'sklhfsos'print(a[0:3])print(a[0:]) # 默认到最后一个print(a[0:-1]) # -1就是最后一个print(a[0:-1:2]) # 加步长 在索引为零到索引为-1的区内每隔一位取值(顾头不顾尾原则)print(a[5:0:-2]) # 反向加步长
字符串常用方法
- upper及lower使用方法
print(name.upper()) # 全部字母大写print(name.lower()) # 全部小写
- captalize, swapcase, title使用方法
name = 'aBCabc'# captalize, swapcase, titleprint(name.capitalize()) # 首字母大写print(name.swapcase()) # 大小写翻转msg = 'sos abc user'print(msg.title()) # 每个单词首字母大写
- center使用方法
# center内同居中,总长度,空白处填充msg = 'sos'a = msg.center(21, "&") # 21:总长度 &:空白处填充print(a)
- count使用方法
msg = '1222322'abc = 'sbsssbb'msg1 = msg.count("2", 0, 5) # 可切片 "2" 需查询的元素 0: 切片头索引 5: 切片尾索引(顾头不顾尾原则)abc1 = abc.count("s", 0, )print(abc1)print(msg1)
- expandtabs使用方法
ke = "abc"ke2 = ke.expandtabs() # 前面的补全# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,# 如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。print(ke2)
- startswith使用方法
msg = "dkfjdkfasf54"msg1 = msg.startswith("dkf", 0, 5) # startswith 判断是否以...开头(顾头不顾尾原则)print(msg2)
- endswith使用方法
msg = "dkfjdkfasf54"msg2 = msg.endswith("54", 0, ) # endswith 判断是否以...结尾print(msg1) #返回bool值
- find及index寻找字符串中的元素是否存在(建议使用find)
msg = 'ssdwfasdw'msg1 = msg.find("sda", 0, ) # find 无法跳着查元素,如果查不到元素,返回 -1msg2 = msg.find("w", 0, ) # 查的到元素返回元素索引msg3 = msg.index("s", 1, ) # 查的到元素返回元素索引# msg4 = msg.index("u", 0, ) # 找不到报错print(msg1)print(msg2)print(msg3)# input(msg4)#10行报错为# msg4 = msg.index("u", 0, ) # 找不到报错# ValueError: substring not found
- split分割
# split 以什么分割,最终形成一个列表此列表不含有这个分割的元素msg = 'title, tilte, atre'.split("i") # 以 i 为分隔,运行后字符串不含 imsg1 = 'title, tslte, atre'.split("t", 1) # 以 第一个 t 为分隔,后面的不执行print(msg)print(msg1)
- format使用方法
# format的三种玩法 格式化输出s1 = '{} {} {}'.format('est', 22, 'kdk3')print(s1)s2 = '{1} {0} {1}'.format('ss', 'tt', 'rr')print(s2)s3 = '{name} {age} {sex}'.format(name='kk', age='ll', sex='66')print(s3)
- strip使用方法
# strip 去除字符串两边指定字符name = '*egon*************'print(name.strip('*')) # 去掉两边*print(name.lstrip('*')) # 去掉左面*print(name.rstrip('*')) # 去掉右面*
- replace替换使用方法
# replacename ='xxxx say :i have one tesla,my name is xxxx'print(name.replace('xxxx', 'SB', 1)) # 将 xxxx 替换为 SB 只将第一个替换
- is系列
name='jx123'print(name.isalnum()) # 字符串由字母或数字组成print(name.isalpha()) # 字符串只由字母组成print(name.isdigit()) # 字符串只由数字组成