字符串

字符串是不可变的对象,任何操作对原字符串是不会有任何影响的.

索引和切片

  1. 索引 . 索引就是下标, 下标从 0 开始, 使用[] 来获取数据
  • s1 = "0123456"
  • print(s1[X]) 获取第X个,若X为负,则从倒数开始.
  1. 切片 我们可以使用下标来截取部分字符串的内容
    语法: str[start: end:step]
    规则: 顾头不顾尾,从start开始截取,截取到end位置,但不包括end.
    跳着截取
print(str[start:end:step] # step表示步长,如果步长是正数,从左往右,负数则从右往左.表示每多少个取一个
print(str[start:end:step] # step表示步长,如果步长是正数,从左往右,负数则从右往左.表示每多少个取一个

字符串的相关操作方法

  1. 大小写转来转去
s = s1.capitalize()   #首字母大写
s = s1.lower ()       #全部转换成小写
s = s1.upper  ()      #全部转换成大写
s = s1.capitalize()   #首字母大写
s = s1.lower ()       #全部转换成小写
s = s1.upper  ()      #全部转换成大写
while True:
 content = input("请输入内容")
 if content.upper == "Q"
     break
 print(content)
while True:
 content = input("请输入内容")
 if content.upper == "Q"
     break
 print(content)
s = s1.swapcase()   # 大小写互换
s= s1.casefold()    #不常用,转成小写,和lower的区别: lower()对某些字符支持不够好,casefold() 对所有字母都有效
s = s1.title()      #每个首字母大写
s = s1.swapcase()   # 大小写互换
s= s1.casefold()    #不常用,转成小写,和lower的区别: lower()对某些字符支持不够好,casefold() 对所有字母都有效
s = s1.title()      #每个首字母大写
  1. 切来切去
s = s1.center(10, "*")    #居中,把原来的字符拉长成10,其余位置补 * 
s = s1.strip()            #去掉左右两端的空格  也可以去掉指定元素
s= s1.lstrip()            #去掉左边空格
s= s1.rstrip()            #去掉右边空格
s = s1.replace('a', 'b', X)  #字符串替换,把a替换成b, X 是替换次数
s = s1.split()        #字符串切割,  默认是空格分割  如果切割福在两端,会出现空字符串( " ")  分割后返回的内容是列表
s = s1.center(10, "*")    #居中,把原来的字符拉长成10,其余位置补 * 
s = s1.strip()            #去掉左右两端的空格  也可以去掉指定元素
s= s1.lstrip()            #去掉左边空格
s= s1.rstrip()            #去掉右边空格
s = s1.replace('a', 'b', X)  #字符串替换,把a替换成b, X 是替换次数
s = s1.split()        #字符串切割,  默认是空格分割  如果切割福在两端,会出现空字符串( " ")  分割后返回的内容是列表
print(" 1 2 3 4 \n 5 6 7")   \n  是换行

   用于模拟登陆,忽略用户输入的空格

   ```python
   count = 1
   while count <= 3:
       username = input("用户名:").strip()
       password = input("密码").strip()
       if username == "Agoni" and password == "123":
           print("登陆成功")
        break
       else:
        print("用户名或者密码错误")
       print("已经登录%s次,剩余%s次" % (count, 3-count))
    count = count + 1
print(" 1 2 3 4 \n 5 6 7")   \n  是换行

   用于模拟登陆,忽略用户输入的空格

   ```python
   count = 1
   while count <= 3:
       username = input("用户名:").strip()
       password = input("密码").strip()
       if username == "Agoni" and password == "123":
           print("登陆成功")
        break
       else:
        print("用户名或者密码错误")
       print("已经登录%s次,剩余%s次" % (count, 3-count))
    count = count + 1
  1. 格式化输出
s1 = "我叫%s, 今年%d岁了, 我喜欢%s" % ('sylar', 18, '周杰伦')  # 之前的写法

#  % 占位符: 声明占位的类型 %s -- 字符串  %d/%i -- 整型  %% 转义 成为普通的%   %() 不能多,不能少,一一对应

name = input("name")
print(f"alex{name},{'aaa'}")
#  打印结果是  alexname,aaa
#  f"{}" 大括号里的内容一般都放变量 字符串单引号  3.6版本及以上才能使用

s1 = "我叫{}, 今年{}岁了, 我喜欢{}".format("周杰伦", 28, "周润发")  # 按位置格式化   顺序填充

s1 = "我叫{0}, 今年{2}岁了, 我喜欢{1}".format("周杰伦", "周润发", 28)  # 指定位置   索引填充

s1 = "我叫{name}, 今年{age}岁了, 我喜欢{singer}".format(name="周杰伦", singer="周润
发", age=28)      # 指定关键字
s1 = "我叫%s, 今年%d岁了, 我喜欢%s" % ('sylar', 18, '周杰伦')  # 之前的写法

#  % 占位符: 声明占位的类型 %s -- 字符串  %d/%i -- 整型  %% 转义 成为普通的%   %() 不能多,不能少,一一对应

name = input("name")
print(f"alex{name},{'aaa'}")
#  打印结果是  alexname,aaa
#  f"{}" 大括号里的内容一般都放变量 字符串单引号  3.6版本及以上才能使用

s1 = "我叫{}, 今年{}岁了, 我喜欢{}".format("周杰伦", 28, "周润发")  # 按位置格式化   顺序填充

s1 = "我叫{0}, 今年{2}岁了, 我喜欢{1}".format("周杰伦", "周润发", 28)  # 指定位置   索引填充

s1 = "我叫{name}, 今年{age}岁了, 我喜欢{singer}".format(name="周杰伦", singer="周润
发", age=28)      # 指定关键字
  1. 查找
s = s1.startswith("XXX") # 判断是否以XXX开头

s = s1.endswith("XXX") # 是否以'XXX'结尾

s = s1.count("a") # 查找"a"出现的次数

s = s1.find("xxx") # 查找'xxx'的位置, 如果没有返回-1

s = s1.find("a", 8, 22) # 切⽚找

s = s1.index("xxx") # 求索引位置. 注意. 如果找不到索引. 程序会报错

s = s1.startswith("XXX") # 判断是否以XXX开头

s = s1.endswith("XXX") # 是否以'XXX'结尾

s = s1.count("a") # 查找"a"出现的次数

s = s1.find("xxx") # 查找'xxx'的位置, 如果没有返回-1

s = s1.find("a", 8, 22) # 切⽚找

s = s1.index("xxx") # 求索引位置. 注意. 如果找不到索引. 程序会报错
  1. 条件判断
# 条件判断
s1 = "123.16"
s1 = "abc"
s1 = "_abc!@"
# 是否由字⺟和数字组成
print(s1.isalnum())

# 是否由字⺟组成
print(s1.isalpha())

# 是否由数字组成, 不包括小数点
print(s1.isdecimal()) #  记这个 判断十进制  返回布尔值
print(s1.isdigit())
print(s1.isnumeric()) # 这个⽐较牛B. 中⽂都识别.
# 条件判断
s1 = "123.16"
s1 = "abc"
s1 = "_abc!@"
# 是否由字⺟和数字组成
print(s1.isalnum())

# 是否由字⺟组成
print(s1.isalpha())

# 是否由数字组成, 不包括小数点
print(s1.isdecimal()) #  记这个 判断十进制  返回布尔值
print(s1.isdigit())
print(s1.isnumeric()) # 这个⽐较牛B. 中⽂都识别.
  1. 字符串长度
s1 = " XXXX,XXXXXX "
s = len(s1)    # 计算字符串的⻓度
注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就⾏
s1 = " XXXX,XXXXXX "
s = len(s1)    # 计算字符串的⻓度
注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就⾏