字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。

  • 1.单引号和双引号均可,三引号
  • 2.三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。
  1. v1 = "人生苦短"
  2. v2 = '人生苦短'
  3. v3 = "人'生苦短"
  4. v4 = '人"生苦短'
  5. v5 = """
  6. 吵架都是我的错,
  7. 因为女友真不错。
  8. """

内置方法

1.判断字符串是否以 XXX 开头

  1. v1 = "学编程赚大钱,真好"
  2. result = v1.startswith("学编程赚大钱") # True
  3. print(result) # 值为True

2.判断字符串是否以 XXX 结尾

  1. v1 = "学编程赚大钱,真好"
  2. result = v1.endswith("真好") # True
  3. print(result) # 值为True

3.判断字符串是否是数字

是否是十进制整数

  1. # isdigit还会判断其它数字,如①,因为推荐使用isdecimal
  2. v1 = "123"
  3. print(v1.isdecimal()) # True
  4. print(v1.isdigit()) # True
  5. v2 = "①"
  6. print(v2.isdecimal()) # False
  7. print(v2.isdigit()) # True

4.去除字符串两边的 空格、换行符、制表符

  1. msg = " H e ll o啊,大哥 "
  2. data = msg.strip()
  3. print(data) # 将msg两边的空白去掉,得到"Hello啊,大哥"
  1. msg = " Hello啊,大哥 "
  2. data = msg.lstrip()
  3. print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大哥 "
  1. msg = " Hello啊,大哥 "
  2. data = msg.rstrip()
  3. print(data) # 将msg两边的空白去掉,得到" H e ll o啊,大哥"

再补充:去除字符串两边指定的内容

  1. msg = "哥H e ll o啊,大哥"
  2. data = msg.strip("哥")
  3. print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大"
  1. msg = "哥H e ll o啊,大哥"
  2. data = msg.lstrip("哥")
  3. print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大哥"
  1. msg = "哥H e ll o啊,大哥"
  2. data = msg.rstrip("哥")
  3. print(data) # 将msg两边的空白去掉,得到"哥H e ll o啊,大"

5. 字符串变大小写

字符串变大写

  1. msg = "my name is David queen"
  2. data = msg.upper()
  3. print(msg) # my name is David queen
  4. print(data) # 输出为:MY NAME IS DAVID QUEEN

字符串变小写

  1. msg = "My Name Is David Queen"
  2. data = msg.lower()
  3. print(data) # 输出为:my name is david queen

6.字符串内容替换

  1. data = "你是个好人,但是好人不合适我"
  2. value = data.replace("好人","贱人")
  3. print(data) # "你是个好人,但是好人不合适我"
  4. print(value) # "你是个贱人,但是贱人不合适我"

7.字符串切割

得到一个列表

  1. data = "沐风|QQ|598779784"
  2. result = data.split('|') # ["沐风","QQ","598779784"]
  3. print(data) # "沐风|QQ|598779784"
  4. print(result) # 输出 ["沐风","QQ","598779784"] 根据特定字符切开之后保存在列表中,方便以后的操作

8.字符串拼接

得到一个新的字符串

  1. data_list = ["mufeng", "是", "大帅比"]
  2. v1 = "_".join(data_list) # mufeng_是_大帅比
  3. print(v1)

9.格式化字符串

format函数不会修改原来的字符串,而是复制得到一个新的字符串

  1. name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
  2. data = name.format("老王", "护士", "嫩模")
  3. print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
  4. print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
  5. print('*' * 21)
  6. name = "{1}的喜欢干很多行业,例如有:{1}、{2} 等"
  7. data = name.format("老王", "护士", "嫩模")
  8. print(data) # 护士的喜欢干很多行业,例如有:护士、嫩模 等
  9. print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
  10. print('*' * 21)
  11. name = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"
  12. data = name.format(name="老王", h1="护士", h2="嫩模")
  13. print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等

其它操作

1.相加

字符串 + 字符串

  1. v1 = "mf" + "大sb"
  2. print(v1) # mf大sb

2.相乘

字符串 * 整数

  1. data = "饺子" * 3
  2. print(data) # 饺子

3.长度

  1. data = "嫂子满身大汗"
  2. value = len(data)
  3. print(value) # 6

4.索引

  1. message = "来做点py交易呀"
  2. # 0 1 2345 6 7
  3. # ... -3 -2 -1
  4. print(message[0]) # "来"
  5. print(message[1]) # "做"
  6. print(message[2]) # "点"
  7. print(message[-1]) # 呀
  8. print(message[-2]) # 呀
  9. print(message[-3]) # 呀

注意:字符串中是能通过索引取值,无法修改值。

5.切片

  1. message = "来做点py交易呀"
  2. print(message[0:2]) # "来做"
  3. print(message[3:7]) # "py交易"
  4. print( message[3:] ) # "py交易呀"
  5. print( message[:5] ) # "来做点py"
  6. print(message[4:-1]) # "y交易"
  7. print(message[4:-2]) # "y交"
  8. print( message[4:len(message)] ) # "y交易呀"

6.步长

  1. name = "生活不是电影,生活比电影苦"
  2. print( name[ 0:5:2 ] ) # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
  3. print( name[ :8:2 ] ) # 输出:生不电, 【区间范围的前面不写则表示起始范围为0开始】
  4. print( name[ 2::3 ] ) # 输出:不电,活电苦 【区间范围的后面不写则表示结束范围为最后】
  5. print( name[ ::2 ] ) # 输出:生不电,活电苦 【区间范围不写表示整个字符串】
  6. print( name[ 8:1:-1 ] ) # 输出:活生,影电是不 【倒序】
  1. name = "生活不是电影,生活比电影苦"
  2. print(name[8:1:-1]) # 输出:活生,影电是不 【倒序】
  3. print(name[-1:1:-1]) # 输出:苦影电比活生,影电是不 【倒序】
  4. # 面试题:给你一个字符串,请将这个字符串翻转。
  5. value = name[-1::-1]
  6. print(value) # 苦影电比活生,影电是不活生

7.遍历

  1. # while
  2. message = "来做点py交易呀"
  3. index = 0
  4. while index < len(message):
  5. value = message[index]
  6. print(value)
  7. index += 1
  1. # for
  2. message = "来做点py交易呀"
  3. for char in message:
  4. print(char)
  1. # for
  2. message = "来做点py交易呀"
  3. for i in range( len(message) ): # [0,1,2,3,4,5,6,7]
  4. print(message[i])

类型转换

字符串与数字互转

  1. a = 1
  2. stra = str(a)
  3. print(stra, type(stra)) # 1 <class 'str'>
  4. inta = int(stra)
  5. print(inta, type(inta)) # 1 <class 'int'>

list转str

  1. list1 = [ '1', '2', '3' ]
  2. print(''.join(list1)) # 123

tuple转str

  1. tuple1 = ( '1', '2', '3' )
  2. print(''.join(list1)) # 123