基础数据类型

  • 什么是数据: 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())  # 字符串只由数字组成