2018.6.4 Python第三课

时间:2021-11-13 20:13:21

Python第三课,主讲字符串

1.字符串定义

字符串是一种数据类型,也是python中最常用的一种数据类型。在python中可以用单引号或者双引号来定义字符串,当然也可以用三引,三引号表示换行字符串。

a='这是单引号的字符串'
b="这是双引号的字符串"
c='''这是多行字符串 多行字符串会以原型输出 多行字符串中转移符同样有效 比如(\t) 又比如【\n】 '''
print(a,b,c)

以上代码输出结果为:
这是单引号的字符串
这是双引号的字符串
这是多行字符串
多行字符串会以原型输出
多行字符串中转移符同样有效
比如( )
又比如【

2.字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。俗称占位符。常用的字符串占位符有s%(格式化字符串)和d%(格式化整数)

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

以上实例输出结果为:
我叫 小明 今年 10 岁!


.format()函数
基本语法为:
print(“xxxx{0}xxxx{1}”.format(变量1,变量2))
print(“xxxx{name}xxxx{age}”.format(name=变量1,age=变量2))
如果想输出一个{},那就写两个{{}},print(‘aaa{{}}’.format()),此时花括号内的内容不会被改变

username="张三"
age=21
print("我的姓名{0},年龄:{1}".format(username,age))
print("我的姓名:{name},年龄:{age}".format(name=username,age=age))
print('aaa{{0}}'.format("abc"))#此时花括号内的内容不会被format函数内部命令改变,所以输出结果为aaa{0}

以上输出结果为:
我的姓名张三,年龄:21
我的姓名:张三,年龄:21
aaa{0}


3.字符串切片
-可以使用中括号和下标来获取单个字符,或截取字符串:
mystr[2],取字符串中下标为2的那个字符
–切片字符串是python独有的功能,这个功能使用非常灵活
mystr[起始索引:结束索引:步长],注意:结束索引取不到
mystr[1:5]截取1到4下标的字符串
mystr[:6]截取从0到5下标的字符串
mystr[:]打印所有
mystr[3:]打印从3开始到最后一个字符,即第一个冒号后面什么都不写,表示到一个自然的结果
mystr[-2:]截取从后数第二个开始,到最后一个字符结束
mystr[-1:]截取从后数第一个开始,到最后一个字符结束,也就是指截取最后一个字符,同mystr[-1]
mystr[3,2]如果前面大于后面,则什么都不输出
mystr[1:6:2]从下标为一开始截取到下标为5的字符,截取步长为2,中括号内最后一个参数代表步长
mystr[-1::-1],mystr[::-1],mystr[-1:0:-1]三个方法都可以实现反序截取字符串,起始索引和结束索引可以同为正也可以同为负还可以一正一副,但需要注意的是截取结果同样不包括结束索引的那个字符。(人生苦短我用python,真的是非常灵活)


4.字符串的一些方法

  1. in:成员运算符 - 如果字符串中包含给定的字符返回 True
  2. not in:成员运算符 - 如果字符串中不包含给定的字符返回 True
  3. r/R:原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊(可以理解为转移符不能生效)或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

a = "Hello"
if( "H" in a) :
    print("H 在变量 a 中")
else :
    print("H 不在变量 a 中")

if( "M" not in a) :
    print("M 不在变量 a 中")
else :
    print("M 在变量 a 中")
#r可以是小写也可以为大写,所有的字符串都是直接按照字面的意思来使用
print (r'\n')
print (R'\n')

以上实例输出结果为:
H 在变量 a 中
M 不在变量 a 中
\n
\n


5.python内置的字符串函数
len(mystr)字符串的长度
count():mystr.count(“l”)返回有几个字符
capitalize():mystr.capitalize()将字符串的第一个字符转换为大写
title():将每一个单词首字母大写
find():mystr.find(“l”)找字符串,返回找到的字符串的下标,如果不存在返回-1,存在且存在多个的时候只返回第一个
rfind()从右面开始找
index():和find()一样,找存在的下标,
rindex():从右面开始找
find() vs index():如果找不到,index()产生异常,find()则返回-1
replace():mystr.replace(“ll”,”LL”),替换字符,但是原字符串不会被改变
split():mystr.split(” “):以某个元素为单位进行拆分,如果split()什么都不写,就是将通过\t和空格进行拆分,拆分结果会返回一个列表
startswith():以某元素开头
endswith():以某元素结尾
lower():转成小写
upper():转成大写
ljust(),rjust(),center():字符串输出时怎样对齐,括号里写长度
strip(),lstrip(),rstrip()去除空格
partition():mystr.partition(“xxx”)以此字符串为节点拆分,包括拆分元素自己在内,差分为三个元素且只能差分为三个
splitlines():按照换行符进行拆分,如果字符串中有”\n”
isalpha():判断字符串是否是字母
isdigit():判断字符串是否是数字
isalnum():判断字符串是否是数字和字母
join(): 将列表组成字符串,mystr.join(” “)


6.转义符
在需要在字符中使用特殊字符时,python用反斜杠()转义字符

转义字符 描述
\ (在行尾时) 续行符
\ \ 反斜杠符号
\’ 单引号
\” 双引号
\a 响铃(系统提示音)
\b 退格(Backspace)
\n 换行
\t 横向制表符
\r 回车
\’f 换页