Python基础语法06 字符串

字符串的定义

Python中字符串比较特殊,在一般的其他编程语言中,都是用双引号“”来定义字符串,但是Python中,有多种引号都可以定义字符串。

示例:定义字符串

# 方法1
zs = "张三"
print(zs, type(zs))

# 方法2
ls = '李四'
print(ls, type(ls))

# 方法3
ww = '''王五'''
print(ww, type(ww))

# 方法4
zl = """赵六"""
print(zl, type(zl))

# 方法5
s1 = f"{3} + {4} = {3 + 4}"
print(s1, type(s1))

# 方法6
s2 = "我的名字是:%s" % zs
print(s2, type(s2))

输出结果:

张三 <class 'str'>
李四 <class 'str'>
王五 <class 'str'>
赵六 <class 'str'>
3 + 4 = 7 <class 'str'>
我的名字是:张三 <class 'str'>

转义字符

转义字符指的是有特殊意义的字符串,常见的如下:

  • n:表示换行
  • t:表示制表符,一般用于调整输出格式
  • //:表示一个斜杆,一般用于表示Windows操作系统中的路径
  • ":表示双引号,一般用于表示JSON字符串中嵌套的双引号

示例:转义字符的基本使用

# `n`:表示换行
print("第一行n第二行")

# `t`:表示制表符,一般用于调整输出格式
print("张三t22t男")

# `//`:表示一个斜杆,一般用于表示Windows操作系统中的路径
print("D://img/bg.img")

# `"`:表示双引号,一般用于表示JSON字符串中嵌套的双引号
print("name = "张三"")

输出结果:

第一行
第二行
张三 22 男
D://img/bg.img
name = "张三"

字符串的输出

Python中输出字符串有多种方式,常见的有:

  • 直接输出
  • f字符串输出
  • format字符串输出
  • %字符串输出

示例:字符串输出

name = "张大鹏"

# 直接输出
print("我的名字是:", name)

# `f`字符串输出
print(f"我的名字是:{name}")

# `format`字符串输出
print("我的名字是:{}".format(name))

# `%`字符串输出
print("我的名字是:%s" % name)

输出结果:

我的名字是: 张大鹏
我的名字是:张大鹏
我的名字是:张大鹏
我的名字是:张大鹏

字符串的输入

Python中要输入字符串,使用input函数即可。

示例:输入用户名和密码

username = input("请输入用户名:")
password = input("请输入密码:")

if username == "zhangdapeng" and password == "zhangdapeng":
    print("登录成功")
else:
    print("用户名或密码错误")

输出结果:

请输入用户名:zhangdapeng
请输入密码:zhangdapeng
登录成功

下标

字符串可以看成是一种字符串序列,又一个一个的字符组成,每个字符都有自己的位置。

字符的位置是从0开始的有序整数。比如字符串abcde,那么字符的位置就是a:0, b:1, c:2, d:3, e:4

Python中,通过字符串变量[字符位置]能够获取对应位置上的字符,字符的位置又叫做索引,或者叫做下标。

示例:通过索引获取字符串中的每个字符

s = "abcde"

# 方法1
print(s[0], s[1], s[2], s[3], s[4])

# 方法2,使用循环
for i in range(5):
    print(s[i], end="t")
print()

# 方法3,for可以直接遍历字符串
for i in s:
    print(i, end="t")
print()

输出结果:

a b c d e
a b c d e 
a b c d e

切片

通过索引可以获取字符串中的某个字符,但是通过切片,可以获取字符串中的某些字符。切片是直接从字符串中截取一段内容出来。

切片的语法如下:

字符串变量[开始索引:结束索引:步长]
  • 开始索引,结束索引,步长都是整数。可以是正整数,0,或者负整数。
  • 开始索引,结束索引,步长都有默认值,都可以省略不写。开始索引的默认值是0,表示开始;结束索引的默认值是-1,表示结束;步长的默认值是1,表示一次截取一个字符,挨个儿截取,不跳过。

示例:字符串切片的基本用法

s = "你好,我是张大鹏"

# 截取出名字
# 方法1:表示从索引5截取到末尾
print(s[5:])

# 方法2:表示从倒数第三个截取到末尾
print(s[-3:])

输出结果:

张大鹏
张大鹏

利用切片反序字符串

切片的步长是可以是负数的,所以有一种特殊的用法,可以利用步长让字符串反序。

示例:字符串反序

s = "12345"
print(s)

# 反序
print(s[::-1])

输出结果:

12345
54321

截取偶数位

如果将步长设置为2,那么我们就是每隔两个位置取一个字符。利用这个特点,我们可以取出偶数位置上或者奇数位置上的字符。

示例:截取偶数生成一个新的数字

s = "12345"
print(s)

# 使用偶数生成一个新的数字
s1 = s[1::2]
print(s1, int(s1))

输出结果:

12345
24 24

查找子串的索引

通过index方法或者find方法,能够找到子串的索引。如果找不到,index返回-1,find会报错。还有rfind方法和find方法的功能是一样的,不过是先从右边开始查找。rindexindex的功能是一样的,也是先从右边开始查找。

练习:从字符串"大家好,我叫张大鹏,我今年22岁了"中找出年龄22

示例:查找子串

s = "大家好,我叫张大鹏,我今年22岁了"

# 查找 今年
child_str = "今年"
print(s.find(child_str))
print(s.index(child_str))

# 提取年龄
start_index = s.index(child_str)
end_index = s.index("岁")
age = s[start_index + len(child_str):end_index]

print(age)

输出结果:

11
11
22

统计子串的个数

使用count方法可以统计子串在字符串中出现的次数。

练习:统计篮球在字符串“张三的爱好是篮球,羽毛球,乒乓球。李四的爱好是篮球,游泳,爬山。王五的爱好是看电影,玩游戏,写代码。”出现了多少次。

示例:统计子串出现的次数

s = "张三的爱好是篮球,羽毛球,乒乓球。李四的爱好是篮球,游泳,爬山。王五的爱好是看电影,玩游戏,写代码。"
child_str = "篮球"

# 统计
child_count = s.count(child_str)

# 输出
print(f"{child_str}在字符串中出现了{child_count}次")

输出结果:

篮球在字符串中出现了2次

字符串替换

使用replace方法可以替换字符串中的子串。这个方法用的比较多,比较敏感词过滤,特殊字符处理等。

示例1:使用replace方法替换字符串

s = "你好,世界"
print(s)

# 替换
s = s.replace("世界""张大鹏")
print(s)

输出结果:

你好,世界
你好,张大鹏

切割字符串

有一种文件格式叫做.csv,这种文件在数据分析中经常用到。其特点就是用逗号,分割一组数据,用换行n表示一组数据。要处理csv文件,往往就需要用到字符串切割方法。

在Python中,使用split方法可以切割字符串。

示例:切割字符串

s = "张三,男,22"

# 切割
arr = s.split(",")

# 查看结果
print(arr, type(arr))

输出结果:

['张三', '男', '22'] <class 'list'>

合并字符串

有切割就会有合并。在开发中,我们经常需要将多个字符串按照指定的分隔符合并为一个字符串,这个时候,使用join方法可以轻松实现。

示例:合并字符串

# 将以下数据用逗号合并为一个字符串
name = "张三"
age = 22
gender = "男"

# 方法1:合并元组
# 注意:age是int,不能直接合并,需要先转换为字符串
s = ",".join((name, str(age), gender))
print(s, type(s))

# 方法2:合并列表
s = ",".join([name, str(age), gender])
print(s, type(s))

输出结果:

张三,22,男 <class 'str'>
张三,22,男 <class 'str'>

字符串大小写

在Python中,处理字符串大小写有几个常用的方法:

  • capitalize:字符串首字母大写
  • title:字符串每个单词首字母大写
  • upper:字符串全大写
  • lower:字符串全小写

示例:字符串大小写

s = "hello world"

# `capitalize`:字符串首字母大写
print(s.capitalize())

# `title`:字符串每个单词首字母大写
print(s.title())

# `upper`:字符串全大写
print(s.upper())

# `lower`:字符串全小写
print(s.lower())

输出结果:

Hello world
Hello World
HELLO WORLD
hello world

字符串空格处理

字符串中经常会有空格,有时候空格在左边,有时候空格在右边,有时候两边都有空格。

Python中处理字符串空格的常用方法如下:

  • lstrip:去除字符串左边的空格
  • rstrip:去除字符串右边的空格
  • strip:去除字符串左右两边的空格

示例:字符串空格处理

s = "               abc 123      "

# 注意:这里将空格替换为-,方便查看效果
# `lstrip`:去除字符串左边的空格
print(s.lstrip().replace(" ""-"))

# `rstrip`:去除字符串右边的空格
print(s.rstrip().replace(" ""-"))

# `strip`:去除字符串左右两边的空格
print(s.strip().replace(" ""-"))

输出结果:

abc-123------
---------------abc-123
abc-123

字符串判断前缀和后缀

在开发中,经常需要判断字符串的前缀或者后缀。比如,判断一个字符串是否以http://开头能够知道这个字符串是否为一个url字符串。判断一个字符串是否以.jpg结尾,可以判断这个字符串是否为一个图片地址。

示例:判断字符串前缀和后缀

# 判断是否为URL
s1 = "http://www.baidu.com/"
print(s1.startswith("http://"))

# 判断是否为图片
img = "test.jpg"
print(img.endswith(".jpg"))

输出结果:

True
True

字符串其他判断方法

字符串还有一些其他的判断方法,偶尔会用到。比如:

  • isalpha:是否全部由字母组成
  • isdigit:是否全部由数字组成
  • isalnum:是否由字母和数字组成
  • isspace:是否全部为空格

示例:字符串其他判断方法

# `isalpha`:是否全部由字母组成
print("abc".isalpha())

# `isdigit`:是否全部由数字组成
print("123".isdigit())

# `isalnum`:是否由字母和数字组成
print("abc123".isalnum())

# `isspace`:是否全部为空格
print(" trn".isspace())

输出结果:

True
True
True
True


原文始发于微信公众号(张大鹏520):Python基础语法06 字符串

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/48657.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!