字符串

字符串

一、字符串的定义与创建

(一)字符串的定义

字符串是Python中最常用的数据类型,是不变序列的一种。我们可以使用英文(半角)引号(单引号' 或 双引号“)来创建。

(二)字符串的创建

  1. 直接建立

    s1 = 'Hello'
    s2 = "World"
    
  2. 通过str()建立

    n = 123
    s = str(n)
    print(s)
    print(type(s))
    
    image-20230712213244522

二、不可变序列的通用操作在字符串中的应用

(一)字符串的访问

直接使用 字符串名[下标] 的方式进行访问。

s = "Hello Python!"
print(s[0])
print(s[-1])
image-20230712212634060

(二)字符串的截取

字符串的截取与列表、元组的截取没有什么差别,详细可参考列表那一章。

(三)其他通用的操作

  1. len():获取字符串长度

  2. in:检查某一个字符或字符串是否包含在字符串中

    s = "Hello"
    print('H' in s)
    print('Hel' in s)
    print('A' in s)
    
    image-20230712212706660
  3. max():求字符串中Unicode编码最大的元素(数字 < 大写字母 < 小写字母)

  4. min():求字符串中Unicode编码最小的元素(数字 < 大写字母 < 小写字母)

  5. +:将两个字符串连接在一起

  6. *:将字符串重复相应的次数

  7. index():查找某个元素在字符串中第一次出现的位置,用法同列表的index()

    s = "Hello"
    print(s.index("l"))
    print(s.index("el"))
    
    image-20230712212822395
  8. count():统计某个字符或者字符串在整个字符串中出现的次数,用法同列表的count()

    s = "Hello"
    print(s.count("l"))
    print(s.count("ll"))
    
    image-20230712212900641
  9. sorted():由于字符串也是不可变序列,所以不可以使用sort()进行排序


三、字符串特有的相关操作

(一)Python中的转义字符

Python中的字符串是用引号引用起来的,但是我们有时候需要输出一些特殊的字符,比如引号、缩进换行等,为了更好地实现这些功能,大部分编程语言在字符串中都有转义字符。

Python中的转义字符使用反斜杠 \ 来表示,转义字符有很多,常用的以下几种:

转义符 描述 案例
\\ 反斜杠 print('\\') 将输出
\
\' 单引号 print('\'') 将输出
'
\" 双引号 print('\"') 将输出
"
\b 退格键 print('Hello\bWorld!') 将输出
Hello World!
\n 换行 print('Hello\nWorld!') 将输出
Hello
World!

(二)格式化输出

Python支持格式化输出字符串,格式化输出的本质就是两个步骤:

① 使用特定的符号在原始字符串中进行占位

② 将变量或字面量填充到所占的位置中

格式化输出有三种方式:%格式化输出、format格式化输出、f-string格式化输出

  1. %格式化输出

    在Python中,%格式化输出要求比较严格,要求元素的数量和数据类型必须一一对应。常用的%格式化输出形式由以下几种:

    • %d:格式化整数,如果d前面有数字,则代表该整数所要占的位置

      print("张三今年%d岁了" %18)
      print("张三今年%4d岁了" %18)	# 18的前面有3个空格
      
      image-20230713092222639
    • %f:格式化输出浮点数,%f可以由两个参数,有小数点隔开。比如 %3.2f,小数点前面的数字代表整个小数的占位数量,如果数位不够,则用空格在前面补齐;小数点后面的数字代表小数位数,如果小数位数不够,则用0补齐。

      print("3.1415926保留两位小数为: %.2f" %3.14)
      print("有一个数是: %10.5f" %1.2)	# 1的前面有3个空格,整个小数一共10个字符
      
      image-20230713092704164
    • %s:格式化字符串,如果前面有数字,则代表字符串的长度,。如果字符串长度超出了该数字,则显示全部字符串;如果没有超出,则在字符串前面用空格补齐。

      print("张三喜欢的科目是%s" %"数学和英语")
      print("张三喜欢的科目是%2s" %"数学和英语")
      print("张三喜欢的科目是%10s" %"数学和英语")	# 前面有5个空格补全
      
      image-20230713093103395

      值得注意的是%s同样支持格式化整数,用法和%d相同。

      print("张三今年%s岁了" %18)
      print("张三今年%4s岁了" %18)	# 18的前面有3个空格
      
      image-20230713093241309

    %格式化输出可以混合使用,但是每个%对应一个内容,必须用元组意义对应标注出来。

    print("我叫%s, 今年%d岁了, 我的身高是%.2fm" %('张三', 18, 1.780))
    
    image-20230713093548263
  2. format格式化化输出

    format格式化输出常用的有两种格式:

    • 使用format后面的元组索引位置格式

      print("我叫{0}, 今年{1}岁了, 我的身高是{2}m".format('张三', 18, 1.78))
      
      image-20230713093755261
    • 使用命名方式,给每个需要格式化的位置命名,然后在format中进行变量赋值

      print("我叫{name}, 今年{age}岁了, 我的身高是{height}m".format(name='张三', age=18, height=1.78))
      
      image-20230713093845751
  3. f-string格式化输出

    f-string是Python3.6之后新增的一种格式化输出方式,它将格式化输出的两个步骤:占位和填充,合并成了一个操作。

    使用f-string时,要在字符串的引号前加上字母f,然后将变量直接填入占位符{}中

    # 可以使用变量
    name = '张三'; age=18; height=1.78
    print(f"我叫{name}, 今年{age}岁了, 我的身高是{height}m")
    
    # 也可以直接赋值
    print(f"我叫{'张三'}, 今年{18}岁了, 我的身高是{1.78}m")
    
    image-20230713094301915

(三)split()和join()

split()和join是一对相反的操作,split是将字符串分割并转换为列表;而join则是将列表连接为字符串。

  1. split()

    • 格式:str_name.split(separator, num)
    • 参数:str_name代表字符串名;separator代表分割符;num代表分割次数,默认分割所有
    • 作用:将一个完整的字符串使用分割符分割成字符串列表
    fruits = "苹果, 香蕉, 桃子, 西瓜"
    fruits_list = fruits.split(",")	# 以逗号,为分割符,将字符串分割并转换成列表
    print(fruits_list)
    
    url = "www.baidu.com"
    url_list = url.split(".")	# 以点号.为分割符
    print(url_list)
    
    url = "www.baidu.com"
    url_list = url.split(".", 1)	# 以点号.为分割符,并且只分割一次
    print(url_list)
    
    image-20230713095047906
  2. join()

    • 格式:separator.join(sequence)
    • 参数:separator代表分隔符;sequence要连接的元素序列(这里一般就是列表)。
    • 作用:将列表结合为字符串
    fruits_list = ["苹果", "香蕉", "桃子", "西瓜"]
    fruits = ",".join(fruits_list)
    print(fruits)
    
    url_list = ["www", "baidu", "com"]
    url = ".".join(url_list)
    print(url)
    
    image-20230713095407941

四、字符串中常用的内置函数

posted @ 2023-10-16 11:48  离渊灬  阅读(36)  评论(0)    收藏  举报