python学习之路☞4.Python String

python学习之路☞4.Python String

python学习之路☞4.Python String

#python,#string,

Python String

String

A string is a sequence of characters.

也就是说字符串是一种单字符组成的序列

How to create a string

python字符串需要用引号括起来,字符串类型才会被识别

python 字符串常用 ' 引号,很少用 " 引号,用了也不算错

'hello world!'

0

字符串拼接

字符串可以使用类似加法那样拼接

word_add = 'ab' + 'dc'

1

Escaping 转义

有些时候,一些特殊符号会导致python代码报错,这个时候就需要 / 反斜杠转义

'你好\'世界\''

2

还有很多转移字符

\n 换行
\t 制表符(四个空格)
\r 回车(每行光标回到行头)
\\ 反斜杠,转义后的 \

Multiline strings 多行字符串

由三个 ’ 或 " 构成嵌套字符串的结构可以包含多行字符串

可以看到打印的回显信息

'''你好世界,
abcd,
再见世界
'''

3

多行字符串还可以解决特殊符号转义的问题

'''
你好'世界',
a'b'c'd',
再'见'世'界'
'''

4

String operations 操作字符串变量

字符串变量内置了函数,也可以参考官方的字符串文档,在 REPL 界面可以通过 . 并配合按两次 tab 快捷键即可调用那些函数来操作字符串

str_var='hello world!'
str_var
str_var.

5

.upper() .lower() 大小写字符转换,返回字符串类型的数据

str_var='hElLo WoRlD!'
str_var.lower()
str_var.upper()

6

.replace(,) 替换字符串

将目标字符串替换为其他字符串,返回字符串类型的数据

str_var='hElLo WoRlD!'
str_var.replace('o','你好世界') 

7

.split() 拆分字符串

依据函数内匹配的部分字符串对整个字符串拆分,返回 list 类型的数据

函数默认根据空格字符对整个字符串拆分

str_var='hElLo WoRlD!'
str_var.split()

8

还可以根据其他部分字符拆分

str_var='hElLo WoRlD!'
str_var.split('o')

9

Chaining calls 链式调用字符串变量内置函数

可以连续 . 调用多个字符串变量内置函数来达到特定需求

比如将字符串中的 o 替换为 1234 然后在根据 3 拆分字符串为list类型的数据

str_var='hElLo WoRlD!'
str_var.replace('o','1234').upper().split('3')

10

内置函数 len() 获取字符串长度

len('你好世界!')

11

slicing 切片

切片可以理解为截取,通过索引数值可以截取对应位置的字符,字符串的索引值从0开始-1代表结尾

str_var='abcdefghijklmn'
str_var[0]
str_var[2]
str_var[-1]

12

有趣的玩法利用切片,反转序列

在 Python 中,[::-1] 是一种切片操作,用于反转序列(如字符串、列表、元组等)。原理大概是这样,Python 的切片语法是:sequence[start:stop:step]

  • start:起始索引(包含)。
  • stop:结束索引(不包含)。
  • step:步长(正数表示从左到右,负数表示从右到左)。

[::-1] 的作用,Python 通过 step=-1 让索引从末尾向前遍历。由于 start 和 stop 为空,相当于 start=len(str_var)-1,stop=-1(实际是遍历到索引 0)。Python 创建了一个新的反转后的字符串对象(字符串是不可变对象,因此不会在原地修改)

  • start 省略,默认为 None,相当于从序列的开头开始。
  • stop 省略,默认为 None,相当于到序列的末尾结束。
  • step = -1,表示按照逆序的方式遍历整个序列。
str_var='abcdefghijk123456789'
str_var[::-1]

13

string formatting with f-strings 字符串格式化打印

在字符串前加f前缀并配合{}使用变量或表达式达成字符串格式化打印,使得打印变得优雅

clothes_price=25
pants_price=30
f'你好,这件衣服¥{clothes_price},裤子¥{pants_price},一共是¥{clothes_price+pants_price}' 

14

接下来就练习代码吧

'''
总结:
    字符串:由引号嵌套的数据类型
    转义:\n \r \t \\
    多行字符串 ''' ''' 或 """ """
    字符串变量内置函数:
        .upper() 大写转换
        .lower() 小写转换
        .replace(,) 字符串替换
        .split() 字符串拆分
    字符串变量支持链式调用内置函数
    内置函数:
        len() 获取字符串长度
    slicing 切片:
        squence[start:stop:step]
        [::-1] 反转序列
    f-strings:
        字符串格式化打印
'''
str_var='''
aaabbbbccccddddeeeeffffggggg,
你好世界,其实我很痛苦,我不知道,这种痛苦是来源于家庭,还是来自于社会,亦或是互联网,我从中经历过伤害和痛苦,我身边其实都是人,陌生人,老人,中年人,年轻人,小孩子,我仍感觉痛苦孤独,似乎没人理解我,似乎谁都可以唾弃我,人人都说我不重要,说我不行,只能这样了吗?这样活着吗?
'''
str_var.upper().replace('aaa','zzzz').split('\n')
len(str_var)
str_var[::-1]
f'格式化打印:\n{str_var}'

15

参考

strings
string-methods
python-list

Comments