乐趣区

关于python:Python自学教程5字符串有哪些常用操作

任何编程语言,不论是 Python、Java 还是 Golang,字符串都是最重要的一种数据类型。然而字符串的操作又很多,初学者常常毫无脉络,不晓得从哪儿学起,也不晓得哪些操作用得多,明天九柄就和你来扒一扒 Python 当中,怎么应用字符串比拟适合。

字符串是什么

能够说,你在世界上看到的任意文字都将以字符串的模式展现,任何数据和内容也都能够用字符串示意,为了不便,咱们就把字符串称为文字吧。

在 Python 中示意字符串有很多模式。在数据左右两边加一对引号,能够是单引号,双引号和三引号。引号是英文半角,全角会报错。

  # 双引号
  a = "jiubing"
  
  # 单引号
  a = 'jiubing'
  
  # 三引号
  a = '''jiubing'''
  a = """jiubing"""
  
  # 全角 Error
  a =‘jiubing’

三引号既能够示意字符串,又能够示意正文。它们的区别在于是否应用变量存储,没有存储的字符串,无奈复用,就是正文。

字符串如何获取某个字符

从字面上看,字符串是用字符串起来的,和羊肉串、牛肉串差不多,在吃羊肉串的时候,有的人习惯一口一串,从签子底部用嘴一划,所有的肉都被收进嘴里,而我看到一些女生,吃羊肉串十分斯文,她会先用筷子把一块肉挑到碗里再吃。

字符串也能够一个个字符的取,大多数状况下,都能够应用索引形式失去某个繁多字符。索引的作用是取出一个字符,索引从 0 开始

  man = "kang li"
  print(man[1]) #a
  print(man[0]) #k

索引能够是正数,示意倒数第几个,也就是从字符串的左边数到右边。索引为 -1 示意获取倒数第一个字符,索引为 -2 示意获取倒数第二个字符。为什么正序数的索引从 0 开始,倒序就不能从 0 开始呢?因为索引为 0 不能同时示意两个字符,会造成指令的抵触。

  print(man[-1]) #i

超出索引范畴报 IndexError 谬误

  print(man[8])

字符串截取

索引一次只能获取一个字符,切片能够一次获取多个。如果想获取字符串的某些子串,能够通过切片实现。切片的示意办法是:var[start: end]。start 示意开始地位的索引号,end 示意完结地位的索引号,然而不蕴含 end。

  girl = "Smile 沫沫"
  part_of_girl = girl[0:1]
  print(part_of_girl)  # S

切片的索引号也能够是正数,然而在应用的时候要确保 end 是在 start 的左边,end – start > 0。

  girl = "Smile 沫沫"
  print(girl[0: -2])  # Smile
  print(girl[-2: -4])  # 空字符串,取不到字符 

切片的索引号超出范围是不会报错的,取到止境为止。

  girl = "Smile 沫沫"
  print(girl[0:100000000000])

切片的 start 和 end 都能够省略。

  girl[1:]
  girl[:-1]
  girl[:]

切片能够加第三个参数,girl[start:end:step], 其实应用切片时,默认的步长是为 1。

  girl[0:3:2]

字符串逆序输入

步长为 -1,示意从前面往前面数,girl[::-1],反转字符串。

  girl[::-1]

获取字符串长度

  len(girl)

字符串格式化

格式化相当于一个模板,模板中有些空位须要动静的填入数据。

  from_name = '张三'
  title = '学费'
  money = 500
  to_name = '李四'
  
  info = f"""
  明天收到 {from_name}
  交   来 {title}
  人民币   {money} 元
  收款人   {to_name}
  """

更高级的字符串模板能够应用 template, 它次要避免用户输出对程序平安造成影响。个别咱们在 web 开发中的模板渲染就是基于这种技术。

字符串宰割

split 通过某个分隔符宰割字符串,宰割后失去一个列表。如果没有指定分隔符,则把整个字符串作为惟一的元素寄存到列表中。

  girls = 'Lucy-Monic-Jessy'
  girl_list = girls.split('-')
  print(girl_list) # ['Lucy', 'Monic', 'Jessy']
  
  girl_list = girls.split()
  print(girl_list) # ['Lucy-Monic-Jessy']

字符串拼接

join 办法是 split 的反向利用,它能够把一个列表通过特定的连接符组成一个字符串。

  a = ['hello', 'world']
  b = "".join(a)
  print(b)

字符串查找

通常,能够应用 find 或者 index 来查找简略的字符:

a = "hello world"
a.find("he")

然而如果波及到简单的匹配规定,个别会用正则表达式。

字符串匹配

正则表达式十分干燥,在没有具体的实战场景前,倡议不必花太多工夫提前理解,不然工夫花了,没几天又忘得一尘不染。这里简略写一个匹配规定,示意匹配一个数字。

import re
string = "ayu7o99"
re.search("\d", string)

字符串替换

replace 替换某个子串。然而原来的数据是不会发生变化的,而是把替换后的字符串用新的变量示意。

  a = "Soul 小芳"
  b = a.replace("Soul", "灵魂歌手")
  print(b) # 灵魂歌手 小芳
  print(a) # Soul 小芳 

字符串删除某个字符

字符串是不可变的数据类型,并不能真的把某个字符删除,然而咱们能够应用 replace 办法间接实现,把指定的字符串替换成空字符串。

 a = "Soul 小芳"
 # 去掉 ou
 b = a.replace('ou', '')

自动化测试场景

1、应用 string 示意测试用例

  username = 'jiubing1'
  password = '123456'
  age = 18
  
  print("用户名", username)
  print("明码", username)
  print("年龄", username)

2、去掉 username 的空格

  username = 'jiubing1'
  first, last= username.split(' ')
  username = ''.join([first, last])

3、格式化输入

  user = f"""
  -------------------------
  用户名:{username}
  明码:{password}
  年龄:{age}
  -------------------------
  """

4、通过 input 打印出测试用例(模仿前端页面)

5、拜访网址拼接

  url = '<http://xxx.com/register>'
  full_url = f'{url}?username={username}&password={password}&age={age}'

6、通过网址获取所有参数 (前面的内容)

  url, params = full_url.split('?')
  info = dict()
  for param in params.split('&'):
  key, value = param.split('=')
  info.update({key:value})
  print(info)
退出移动版