Python学习笔记7_字符串(String)

Python学习笔记7_字符串(String)


字符串是 Python 中最常用的数据类型。可以使用引号( " )来创建字符串。

var1 = 'Hello World!'
var2="name"

1、访问字符串中的值

  • Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
  • Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量[下标]		# 字符串中字符的访问
变量[头下标:尾下标]		# 子字符串的访问
  • 索引值以 0 为开始值,-1 为从末尾的开始位置。

1.1、字符串切片

切片就是从字符串里复制一段指定内容,生成一段新的字符串

切片语法: 变量名[​start:end:step]

包含start, 不包含end, start 不填写默认从头开始, end不填写默认到最后一个

step 指的是步长, 理解为间隔, 每隔 step-1 个取一个值

step 也可控制取向, 正数从左向右取值; 负数从右向左取值. 默认为1.

n = 'abcdefghijklmnopqrstuvwxyz'		#第一个字符数为0, 从右向左第一个为-1
print(n[2:5])		#cde
print(n[1:9:2])		#bdfh
print(n[::-1])		#倒叙打印
print(n[-5:-2])		#vwx	step默认为1,从左向右输出
print(n[-2:-5:-1])	#yxw

2、字符串更新

1)可以截取字符串的一部分并与其他字段拼接:

>>> var1 = 'Hello World!'
>>> print ("已更新字符串 : ", var1[:6] + 'Runoob!')
已更新字符串 :  Hello Runoob!

3、转义字符

在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符:

转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。
\f换页
\yyy八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行

4、字符串运算符

下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 True‘H’ in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True‘M’ not in a 输出结果 True

5、原生字符串

在字符串前面添加r或R,在Python里表示原生字符串

f = '你好\n世界'	# 这样会打印你好后会换行
g = r'你好\n世界'	# 这样打印就不会换行,而是直接全部原样输出'你好\n世界'

6、字符串格式化输出

在 Python 中,字符串格式化输出使用与 C 中 sprintf 函数一样的语法。

>>> print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
我叫 小明 今年 10 岁!
6.1、python字符串格式化符号:
符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址
6.2、格式化操作符辅助指令:
符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
在正数前面显示空格
#在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
0显示的数字前面填充’0’而不是默认的空格
%‘%%‘输出一个单一的’%’
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
6.3、字符串的 format() 方法
# 使用空{}占位,顺序填入
print('大家好,我是{},今年{}岁,来自{}'.format('张三', 18, 'Handan'))		# 注意format前面是.点
# 输出为:大家好,我是张三,今年18岁,来自Handan

# 使用{数字}占位,按照数字顺序填入,从0开始
print('大家好,我是{2},今年{0}岁,来自{1}'.format(18, 'Handan', '张三'))
# 输出为:大家好,我是张三,今年18岁,来自Handan

# 使用{变量名}占位
print('大家好,我是{name},今年{age}岁,来自{home}'.format(name='张三',home = '邯郸', age=18))
# 输出为:大家好,我是张三,今年8岁,来自邯郸

#{数字}和{变量名}可以混合使用,要求变量要放在最后
print('大家好,我是{1},今年{age}岁,来自{home},今天挣了{0}元'.format(88,'张三',home='Handan',age=18))
# 输出为大家好,我是张三,今年18岁,来自Handan,今天挣了88元

#空{}和{变量名}可以混合使用,要求变量要放在最后
print('大家好,我是{},今年{age}岁,来自{home},今天挣了{}元'.format('张三',88,home='Handan',age=18))
# 输出为大家好,我是张三,今年18岁,来自Handan,今天挣了88元

#空{}和{数字}不能混合使用
6.4、三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

# 输出结果为:
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB (    )。
也可以使用换行符 [ 
 ]
6.5、f-string

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去:

>>> name = 'Runoob'
>>> f'Hello {name}'  # 替换变量
'Hello Runoob'
>>> f'{1+2}'         # 使用表达式
'3'

>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'
  • 在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
>>> x = 1
>>> print(f'{x+1}')   # Python 3.6
2

>>> x = 1
>>> print(f'{x+1=}')   # Python 3.8
x+1=2

7、Python中字符串常用函数

1)capitalize():将字符串的第一个字符转换为大写

2)count(str, beg= 0,end=len(string)):返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

3)endswith(suffix, beg=0, end=len(string))
检查字符串是否以 suffix 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

4)expandtabs(tabsize=8):把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。

5)find(str, beg=0, end=len(string)):检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

6)index(str, beg=0, end=len(string)):跟find()方法一样,只不过如果str不在字符串中会报一个异常。

7)isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

8)isalpha():如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False

9)isdigit():如果字符串只包含数字则返回 True 否则返回 False…

10)islower():如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

11)isnumeric():如果字符串中只包含数字字符,则返回 True,否则返回 False

12)isspace():如果字符串中只包含空白,则返回 True,否则返回 False.

12)isupper():如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

13)join(seq):以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

14)len(string):返回字符串长度

15)lower():转换字符串中所有大写字符为小写.

16)max(str):返回字符串 str 中最大的字母。

17)min(str):返回字符串 str 中最小的字母。

18)replace(old, new [, max]):将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。

19)rfind(str, beg=0,end=len(string)):类似于 find()函数,不过是从右边开始查找.

20)rindex( str, beg=0, end=len(string)):类似于 index(),不过是从右边开始.

21)split(str=“”, num=string.count(str)):以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串

22)startswith(substr, beg=0,end=len(string)):检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

23)swapcase():将字符串中大写转换为小写,小写转换为大写

24)upper():转换字符串中的小写字母为大写

25)isdecimal():检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值