2020.5.7 python学习

字符串的相关操作

(1)字符串的拼接 +

str1 = "美丽的"
str2 = "大好河山"
res = str1 + str2
print(res)

(2)字符串的重复 *

str1 = "重要的事情说三遍"
res = str1 * 3
print(res)

(3)字符串跨行拼接 \

str1 = "sdfsdffsdfsfsfdfsdfsfdff" \
"45245324534523" 
print(str1)

(4)字符串的索引

		# 0  1  2
strvar = "好天气"
		#-3 -2 -1
print(strvar[-1])

(5)字符串的切片:(截取)
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]

(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串

strvar = "我爱你亲爱的姑娘,见到你,我就心慌"

(1)[开始索引:] 从开始索引截取到字符串的最后

res = strvar[3:]
print(res)

(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)

res = strvar[:5]
print(res)

(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)

res = strvar[9:12]
print(res)

(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符

# 0 3 6 9 12 15 .... 我 亲 姑 见 , 心
# 正向截取
res = strvar[::3]	
print(res)
# 逆向截取
# -1 -2 -3 -4 ...
res = strvar[::-1]
print(res)

(5)[:]或[::] 截取所有字符串

res = strvar[:]
print(res)

字符串的相关函数

capitalize: 字符串首字母大写
title :每个单词的首字母大写
upper: 将所有字母变成大写
lower :将所有字母变成小写
swapcase: 大小写互换
len :计算字符串的长度
count: 统计字符串中某个元素的数量
find :查找某个字符串第一次出现的索引位置
index: 与 find 功能相同 find找不到返回-1,index找不到数据直接报错startswith: 判断是否以某个字符或字符串为开头
endswith :判断是否以某个字符或字符串结尾

isupper 判断字符串是否都是大写字母
islower 判断字符串是否都是小写字母
istitle 判断字符串是否每个单词都首字母大写
isalnum 判断字符串是否是由数字、字母、汉字组成
isalpha 判断字符串是否由字母和文字组成
isdigit 检测字符串数是数字组成 接受二进制字节流
isdecimal 检测字符串是否以数字组成 必须是纯数字
isnumeric 检测字符串是否以数字组成 接受中文"四"
isspace 判断字符串是否由空白符组成

split 按某字符将字符串分割成列表(默认字符是空格)
join 按某字符将列表拼接成字符串(容器类型都可)
splitlines 按换行来进行切分(\n)
zfill 填充字符串(默认填充0,原字符串右对齐)
ljust 填充字符串,原字符居左 (默认填充空格)
rjust 填充字符串,原字符居右 (默认填充空格)
center 填充字符串,原字符居中 (默认填充空格)
strip 默认去掉首尾两边的空白符
rstrip 去掉右边某个字符
lstrip 去掉左边某个字符

replace()
功能: 把字符串的旧字符换成新字符
格式: 字符串.replace(‘旧字符’,‘新字符’[, 限制替换的次数])
返回值: 替换之后的字符串

maketrans translate 是一对
maketrans()
功能: 制作用于字符串替换的映射表
格式: 字符串.maketrans(‘查找字符’,‘替换字符’)两个字符必须长度相等
返回值: 字典

translate()
功能: 进行字符串替换操作
格式: 字符串.translate(maketrans返回的字典)
返回值: 替换之后的字符串

字符串的格式化format

(1)顺序传参

strvar = "{}向{}开了一枪,银弹而亡"
res = strvar.format("黄俊","刘伟")
print(res)

(2)索引传参

strvar = "{1}给{0}一个大大的拥抱"
res = strvar.format("魏富强","李天兆")
print(res)

(3)关键字传参

strvar = "{who2}向{who1}发起猛攻,进行扫射,嘴里大喊: 丫子给给~"
res = strvar.format(who1="黎建忠",who2="刘敏")
print(res)

(4)容器类型数据(列表或元组)传参
方法一

strvar = "{0[0]}向{1[0]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( ["刘思敏","陈芮"] , ("黄俊","朱佳怡"))
print(res)

方法二

strvar = "{woman[1]}向{man[1]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( woman = ["刘思敏","陈芮"] , man = ("黄俊","朱佳怡"))
print(res)

方法三 (字典 在format当中,不要加上引号)

strvar = "{woman[sm]}向{man[0]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( woman = {"cr":"陈芮","sm":"刘思敏"} , man = ("黄俊","朱佳怡"))
print(res)

(5)format的填充符号的使用( ^ > < )

^ 原字符串居中
> 原字符串居右
< 原字符串居左

{who:!<10}
who : 关键字
! : 要填充的字符
< : 填充的方向,原字符串居左
10 : 字符串的总长度10
总长度10 = 原字符串长度 + 填充字符的长度

strvar = "{who:你^10}在长春长生公司{do:@>10},感觉{feel:!<10}"
res = strvar.format(who="wfq",do="扎疫苗",feel="血巢被掏空")
print(res)

(6)进制转换等特殊符号的使用( :d :f : s :, )
:d 整型占位符 (要求必须是整型)

strvar = "{:d}月{:d}号,是母亲节"
res = strvar.format(5.9,10.8)
print(res)

:2d 占用2位,原字符串居右

strvar = "母亲节,给自己的老妈,买了{:2d}个康乃馨"
res = strvar.format(1)
print(res)

strvar = "母亲节,给自己的老妈,买了{:<2d}个康乃馨"
res = strvar.format(1)
print(res)

strvar = "母亲节,给自己的老妈,买了{:^3d}个康乃馨"
res = strvar.format(1)
print(res)

:f 浮点型占位符 (要求必须是浮点型)

strvar = "买花一共花了{:f}元"
res = strvar.format(9.9)
print(res)

:.2f 保留二位小数,存在四舍五入的情况

strvar = "wz开工资了,一个月{:.2f}元"
res = strvar.format(98.319)
print(res)

: s 字符串占位符 (要求必须是字符串)

strvar = "{:s}"
res = strvar.format("中国疫情正在渐渐的变好,但是美国的疫情一天不如一天")
print(res)

:, 金钱占位符

strvar = "{:,}"
res = strvar.format(123456789)
print(res)

综合案例

strvar = "{:s}看好了一辆兰博基尼,价格是{:.1f}元,打算买{:d}个"
res = strvar.format("杨浩",9.9,10)
print(res)

列表相关操作

一.列表的拼接 (同元组) +

lst1 = [1,2]
lst2 = [3,4]
lst = lst1 + lst2
print(lst)

二.列表的重复 (同元组) *

lst1 = [1,2]
lst = lst1 * 3
print(lst)

三.列表的切片 (同元组)
语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]

(1)[开始索引:] 从开始索引截取到列表的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
(5)[:]或[::] 截取所有列表

lst = ["wyy","zjy","yc","zs","lm","wz","yh"]

(1)[开始索引:] 从开始索引截取到列表的最后

res = lst[2:]
print(res)

(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)

res = lst[:4]
print(res)

(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)

res = lst[3:5] # 3 4
print(res)

(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值

# 0 5  .. 
# 正向截取
res = lst[::5]
print(res)
# 逆向截取
# -1 -2 -3 -4 -5
res = lst[::-1]
print(res)

(5)[:]或[::] 截取所有列表

res = lst[:]
res = lst[::]
print(res)

四.列表的获取 ( 同元组 ) ***

#       0   1   2
lst = ["a","b","c"]
#       -3  -2  -1
print(lst[0])

五.列表的修改 ( 可切片 ) ***

lst[0] = "ddd"
print(lst)

赋值时,修改的数据要求是: >可迭代性的数据< iterable

# 利用切片进行修改(切一段,放进去所有值)
lst = ["wyy","zjy","yc","zs","lm","wz","yh"]
lst[1:3] = ["jbq","wqy","aaa","bbb","cccc"]
# lst[1:3] = "1234"
print(lst)
# 带有步长的切片修改(切几个改几个)
# 0 2 4 6 8 .... ['wyq', 'qyl', 'lm', 'yh']
# lst[::2] = ("a","b","c","d")
# print(lst)

六.列表的删除 ( 可切片 )

lst = ["猪八戒","唐僧","孙悟空","沙僧","白龙马"]
# 删除单个
'''
del lst[0]
print(lst)
'''
# 删除一段 (通过切片删除)
del lst[1:4]
print(lst)

注意点: res是变量 del 删除的是res 不是列表

lst = ["猪八戒","唐僧","孙悟空","沙僧","白龙马"]
res = lst[1:4]
del res
print(lst)
"""
地址:
	["猪八戒","唐僧","孙悟空","沙僧","白龙马"] => 0x101
	["唐僧","孙悟空","沙僧"] => 0x100
"""

你可能感兴趣的:(python学习)