Day 6 字符类型内置方法

chsun12 / 2024-09-27 / 原文

今天没有昨日回顾,做了几道题,有生成*的金字塔,进阶猜年龄等等。今天主要学了字符类型的内置方法,就目前而言,还不知道这些有序无序,可变不可变等信息有何作用,但先学着呗,万一有用的,。但是这些快捷方式应该挺好用的,还不错。!

目录
  • 1 为什么要有数据类型?
  • 2 数字类型内置方法
    • 2.1 整形
    • 2.2 浮点型
  • 3 字符串类型内置方法
    • 3.1优先掌握
    • 3.2 需要掌握
    • 3.3 了解

1 为什么要有数据类型?

  • 对于不同类型的变量需要不同的数据类型去描述
  • 名字-字符串,爱好-列表,个人信息-字典

2 数字类型内置方法

2.1 整形

  • 作用:身高,体重,年龄,id号
  • 定义方式: y = 10
  • 方法: print(y+x)+ - * / % //
  • 存储一个值or多个值:一个
  • 有序or无序:没有有序无序这一说
    • 有序:有索引
    • 无序:无索引
  • 可变不可变:不可变
    • 可变:值变id变
    • 不可变:值变id不变

2.2 浮点型

  • 作用:钱,商品价格,导弹轨迹计算
  • 定义方式: y = 1.1, x = 2.2
  • 方法: print(y+x) + - * / % //
  • 存储一个值or多个值:一个值
  • 有序or无序:没有有序无序这一说
    • 有序:有索引
    • 无序:无索引
  • 可变不可变:不可变
    • 可变:值变id变
    • 不可变:值变id不变

3 字符串类型内置方法

  • 作用:女朋友名字,性别
  • 定义方式: name = 'sunch' , name = "wangby" ,name = str(10)
  • 方法: 优先掌握,需要掌握,了解
  • 存储一个值or多个值:一个值
  • 有序or无序:有序
    • 有序:有索引
    • 无序:无索引
  • 可变不可变:不可变
    • 可变:值变id变
    • 不可变:值变id不变

3.1优先掌握

name = ' sun cheng hao xue rui qing '
# 按索引取值
print(name[0])  #正向取第一个
print(name[-1])   #反向取第一个
# 切片:步长为正数,从左到右切片,负数从右到左切片
print(name[0:13:2])   #从0到12,顾头不顾尾
print(name[-12:])  #从倒数第12个取到最后一个
print(name[-1:-4:-1])  #此时仍是顾头不顾尾,即从右数第一个到第三个
print(name[-1::-1])
# 长度
print(len(name))  #计算字符串的长度
#成员运算 in|not in
print('sun' in name)
print('wang' in name)
print('xue' not in name)
print('liang' not in name)
# 移除空白,strip 移除两端的空格,括号里可以填想移除的,但必须在边缘
print(name.strip())  #成功移除两端空格
print(name.strip('qing'))     #因为右端有空格移除不了qing
print(name.strip('qing '))    #给qing加上空格qing 就在右端就可以移除了,只要遇到了就都移除,所以他继续把空格和i移除了
# 切分(切割)split
print(name.split(' '))   #以空格为界把他切开形成列表
#循环取值
name_list = name.split(' ')
for i in name_list:
    print(i)

3.2 需要掌握

s = '12345上山打老虎TIGER老虎没打着打到一直mouse小老鼠'
print(s.lstrip('13252'))
print(s.lstrip('15423'))
print(s.rstrip('老小鼠12'))
# 在Python中使用 lstrip 方法时,如果传入的是一个字符集合,那么它会移除字符串开头的所有这些字符,
# 直到遇到不在指定字符集合中的字符为止。这意味着,如果字符串开头的字符都在指定的字符集合中,那么这些字符都会被移除。
# l 从左开始  r 从右开始
print(s.lower())  #大写变小写
print(s.upper())  #小写变大写
print(s.startswith('1',0,3))   # 检查字符串中索引从2开始到3结束的字符串是否以’1‘开头,
                                                    # 返回值为true or false
print(s.endswith('鼠',10))   # 检查字符串中索引从2开始到3结束的字符串是否以’鼠‘结尾,
                                           # 返回值为true or false,第二个值可省略,默认到最后
name = 'xiaowang xiaoliang xiaosun xiaoxue xiaoxiao xiaoliang'
print(name.split(" ",1))  #第一个为切割字符,第二个为切割次数,切割后成列表
name_list = name.rsplit(" ")
print(name.rsplit(" ")) #rsplit表述从右切,默认为左
print('.。。'.join(name_list))  #join用前面的字符把列表中的所有元素拼接起来
print(name.replace('xiaoliang','xiaowu',1))
print(name.replace('xiaoliang','xiaowu'))
#replace将旧的字符串替换成新的字符串,第一个为旧的,第二个是新的,第三个是替换个数,不写默认全部替换
print(name.isdigit())
print('10'.isdigit())
# isdigit 方法用于检查字符串是否只包含数字,并且是非空的。如果字符串至少有一个字符,并且所有字符都是数字,则返回 True;否则返回 False。

3.3 了解

s = 'zhihuzheyeyezhehuzhi'
print(s.find('zhe'))   #从右往左找zhe
print(s.rfind('zhe'))   #从左往右找zhe
#  print(s.find('asdad'))   #找不到返回值 -1
print(s.index('zhe'))    #从左往右找zhe
print(s.rindex('zhe'))    #从右往左找zhe
#  print(s.index('sadsad'))    #找不到就报错
print(s.count('zhe'))   #计算zhe出现的次数
print('zhe'.center(50,'-')) # 50是总长度,center前面的是居中的字符串,剩余部分用第二个字符'-'填满
print('zhe'.ljust(50,'-'))  # 50是总长度,center前面的是左侧的字符串,剩余部分用第二个字符'-'填满
print('zhe'.rjust(50,'-'))  # 50是总长度,center前面的是右侧的字符串,剩余部分用第二个字符'-'填满
print('zhe'.zfill(50))   # 50是总长度,zfill前的字符放在最后面,前面填0填够总长度
print(s.expandtabs())