05-字符串的操作

字符串的操作方法

  • [] 字符串索引操作,通过索引访问指定位置的字符,索引从0开始
  • [::] 字符串取片操作
    完整格式:[开始索引:结束索引:间隔值],左闭右开区间,间隔值默认为1
    [:结束索引] 从开头截取到结束索引之前
    [开始索引:] 从开始索引截取到字符串的最后
    [开始索引:结束索引] 从开始索引截取到结束索引之前,开始到结束的索引方向应该和间隔值的方向相同
    [:] 截取所有字符串
    [开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
  • r'字符串' 元字符串,所有字符串中的转义字符不会转义,当作普通字符
+  字符串连接操作
str1 = "大金链子"
str2 = "小手表"
str3 = str1 + str2
print(str3)
*  字符串复制操作
str1 = "大金链子"
str2 = "小手表"
str3 = str1*3
print(str3)

str1 = "大金链子小手表,一天三顿小烧烤,青春献给小酒桌,怎么澎湃怎么喝!"

print(str1[:7])
print(str1[12:15])
print(str1[-8:])
print(str1[36:])
print(str1[::3])
print(str1[::-2])
#截取"烤烧小"
print(str1[11:14:-1])
#截取 桌小献
print(str1[-10:-15:-2])
print(str1[22:17:-2])

字符串函数

capitalize() 首字母大写 常用

title() 每个单词首字母大写

str2 = str1.capitalize()
str3 = str1.title()
print(str2)
print(str3)

upper()将所有小写字母变成大写

lower()将所有大写字母小写 常用

# str2 = str1.upper()
# print(str2)
# str3 = str2.lower()
# print(str3)

swapcase() 大小写互换

# str2 = str1.swapcase()
# print(str2)

len() 计算字符串的长度 常用

# val = len(str1)
# print(val)

count() 统计字符串中某个元素的数量 常用

# val = str1.count("a")
# print(val)

find() 查找某个字符串第一次出现的索引位置 常用

# str2 = str1.find("t",2,10)
# print(str2)

startswith() 判断是否以某个字符为开头 常用

# str2 = str1.startswith("t",4)
# print(str2)

endwith() 判断是否以某个字符结尾 常用

# str2 = str1.endswith("T")
# print(str2)

isupper() 判断字符串是否都是大写字母 一般

# str3 = "THIS Is A"
# str2 = str3.isupper()
# print(str2)

islower() 判断字符串是否都是小写字母 一般

# str3 = "this is "
# str2 = str3.islower()
# print(str2)

isalnum() 判断字符串是否是由数字、字母、汉字组成

# str3 = "thisisa12"
# str2 = str3.isalnum()
# print(str2)

isalpha() 判断字符串是否由字母和文字组成

# str3 = "thisisπ"
# str2 = str3.isalpha()
# print(str2)

isdigit() 判断是否是由十进制数字组成的 常用

# str2 = "15"
# str3 = str2.isdigit()
# print(str3)

isnumeric() 判断是否是数字组成的字符串

# str2 = "123"
# str3 = str2.isnumeric()
# print(str3)

isdecimal() 判断是否是数值组成的字符串

# str2 = "123"
# str3 = str2.isdecimal()
# print(str3)

# L = ["A","1","bc","26","89",22]
# sum1 = 0
# for val in L:
#     if val.isdigit():
#         val1 = int(val)
#         sum1 += val1
# print(sum1)

isspace() 判断字符串是否由空白符组成

# str3 = "\r\n"
# str2 = str3.isspace()
# print(str2)

istitle() 判断字符串是否每个单词都首字母大写

# str3 = "This Is a Test"
# str2 = str3.istitle()
# print(str2)

split() 按照指定的字符进行切分 常用

  • 第一个参数是切分的标识符,输出时不会输出标识符
  • 第二个参数是切分的次数
  • 默认输出列表
# str2 = str1.split()
# print(str2)
# str3 = str1.split("T")
# print(str3)

splitlines() 按照换行来进行切分

# str3 = "this is \n a \n test"
# str2 = str3.splitlines()
# print(str2)

# str3 = """this is
# a
# test"""
# str2 = str3.splitlines()
# print(str2)

join() 字符串拼接

  • 每两个字符之间增加拼接的字符串
# str1 = "@"
# str2 = "this"
# str3 = str1.join(str2)
# print(str3)
# str4 = " ".join(str2)
# print(str4)
# str5 = ["this "," is","a","test"]
# str6 = str1.join(str5)
# print(str6)

zfill() 填充字符串

  • 参数为整型,表示填充后字符串的宽度,只能用零填充,且是左填充
# str1 = "this"
# str2 = str1.zfill(10)
# print(str2)

center() 填充字符串 然后字符串居中

  • 第一参数为整型,表示填充后字符串的宽度
  • 第二个参数为字符串,表示填充的字符
  • 若第一参数小于字符串本身长度,则不填充
# str1 = "this"
# str2 = str1.center(10,"#")
# print(str2)

ljust() 字符串居左填充

# str1 = "this"
# str2 = str1.ljust(10,"$")
# print(str2)

rjust() 字符串居右填充

# str1 = "this"
# str2 = str1.rjust(10,"%")
# print(str2)

strip() 去掉指定的字符串

  • 默认去除首尾的字符,若该字符不在开头也不在结尾,则无法去掉
  • 只有一个参数,如果不传参数,则默认去除换行
# str1 = "this"
# print(str1)
# str2 = str1.strip("t").strip("h")
# print(str2)

rstrip() 从右边去掉某个字符

  • 只能去除右边开头的字符,若去除的字符不是开头,则无法去除
# str1 = "this"
# print(str1)
# str2 = str1.rstrip("s")
# print(str2)

lstrip() 从左边去掉某个字符

  • 只能去除左边开头的字符,若去除的字符不是开头,则无法去除
# str1 = "this"
# print(str1)
# str2 = str1.lstrip("t")
# print(str2)

maketrans() 和 translate()

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

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

# str1 = "this is a test"
# str2 = str1.maketrans("t","Y")
# print(str2)
# str3 = str1.translate(str2)
# print(str3)

format 格式化字符串

语法: 它通过{}和:来代替%。

注意: 字符串的format函数可以接受无限个参数,位置可以不按顺序,可以不用或者用多次,不过python2.6不能为空{},python2.7才可以。

顺序传参

# str1 = "{} say hello to {}"
# str2 = str1.format("jack","jerry")
# print(str2)

按照索引值进行传参 注意:大括号中传递得是Index值,不要超出索引范围

# str1 = "{1} say hello to {0}"
# str2 = str1.format("jack","jerry")
# print(str2)

按照索引来进行传参

# str1 = "{0[1]} say hello to {0[0]}"
# str2 = str1.format(["jack","jerry"])
# print(str2)

关键字来进行传参

# str1 = "{name} is {age} years old!"
# str2 = str1.format(name = "tom",age = 100)
# print(str2)

填充

  • 格式:{:要填充的字符+符号+要填充成的宽度}
    • 符号:居中 ^ 左对齐 < 右对齐 >
str1 = "this"
str2 = "{:$^10}".format(str1)
print(str2)

# str1 = "this"
# str2 = "{:$<10}".format(str1)
# print(str2)

# str1 = "this"
# str2 = "{:$>10}".format(str1)
# print(str2)

调整精度(四舍五入)

# str1 = "{:.2f}".format(1.2434)
# print(str1)

进制转换

# str1 = "{:b}".format(17)
# print(str1)
#
# str1 = "{:o}".format(17)
# print(str1)
#
# str1 = "{:d}".format(17)
# print(str1)
#
# str1 = "{:x}".format(17)
# print(str1)

逗号,还能用来做金额的千位分隔符:

# str1 = "{:,}".format(123456789)
# print(str1)

内建函数

类型相关

int()

创建或者将其他数据转化为整型

float()

创建或者将其他数据转化为浮点型

bool()

创建或者将其他数据转化为布尔型

complex()

创建或者将其他数据转化为复数

str()

创建或者将其他数据转化为字符串

list()

创建或者将其他数据转化为列表

tuple()

创建或者将其他数据转化为元组

set()

创建或者将其他数据转化为集合

dict()

创建或者将其他数据转化为字典

变量相关

id()

获取变量的id标志

type()

获取变量的类型字符串

print()

打印变量的值

locals()

打印当前环境中所有的变量

数学相关:

abs() 获取一个数值的绝对值

user = "小明"
# def func():
#     name = "小红"
#     age = 99
#     sex = "girl"
#
#     result = locals()
#     print(result)
#
# func()

print(locals())

sum() 计算一个序列的数值和

# L = [1,2,3,4,5]
# sum1 = sum(L)
# print(sum1)
#
# L1 = range(1,101)
# sum2 = sum(L1)
# print(sum2)

max() 获取一个序列(不包含字符串)最大值

格式1:max(序列)
    返回值:序列中的最大值
格式2:max(参数1,参数2...)
    返回值:多个参数中的最大值
# L = [2,44,12,423,572,32]
# print(max(L))
# L1 = sorted(L)
# L2 = L1[-1]
# print(L2)

min() 获取一个序列(不包含字符串)最小值

格式1:min(序列)
    返回值:序列中的最小值
格式2:min(参数1,参数2...)
    返回值:多个参数中的最小值
L = [2,44,12,423,572,32,0,-65]
print(min(L))

pow() 获取一个数值的N次方

# 前两个数先进行运算  然后再取第三个数的余数
print(pow(2,3,3))

round() 对一个数值进行四舍五入操作

# num = round(3.1255,2)
# print(num)

range()

产生连续数据的序列
格式1:range(结束值)
    返回值:0-结束值之间的序列
格式2:range(开始值,结束值)
    返回值:开始-结束值之间的序列
格式3:range(开始值,结束值,间隔值)
    返回值:开始-结束值之间指定间隔的数据的序列
# num = range(1,11,2)
# for val in num:
#     print(val)

进制相关:


hex()

将十进制转化为16进制
print(hex(22))

oct()

将十进制转化为8进制
print(oct(22))

bin()

将十进制转化为2进制字符串相关:
print(bin(22))

chr()

将ascii编码转化为字符
print(chr(65))

ord()

将字符转化为ascii编码
print(ord("A"))

repr()

获取任意数据的原始格式字符串

eval()

将一个字符串当作python代码执行,字符串需要符合代码规范和repr配合
# num = 10
# str1 = "num+1"
# print(eval(str1))

num = int(input(">>>"))
print(num,type(num))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容