博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python -- 字符串操作
阅读量:5077 次
发布时间:2019-06-12

本文共 4710 字,大约阅读时间需要 15 分钟。

一、字符串的拼接

a.加号(+)拼接

str = “Hello” + “ “ + “python” + “!”

# ----------------------------------------

# 字符串的拼接:+、join函数、格式化
# ----------------------------------------
# +(加号) 将两个字符串连接起来,成为一个新的字符串
str1 = "Hello"
str2 = "python"
str3 = "!"
str_new = str1 + " " + str2 + str3
print(str_new)

# 也可以使用加法赋值运算符(+=)进行连接

str_new += "^-^"
print(str_new)

b.join函数拼接

str = sep.join(seq)

sep:分隔符;seq:要连接的字符串序列

# join函数 'sep'.join(seq)

# sep:分隔符;seq:要连接的字符串序列
sep = " "
str4 = sep.join("Hello")
print(str4)

seq = ['10', '20', '30', '40']

str5 = sep.join(seq)
print(str5)

c.字符串格式化

1.使用字符串操作符%

2. 使用str.format()函数(推荐)

# 字符串格式化:%、str.format()

# 使用字符串操作符%来格式化字符串
major_version = 3
minor_version = 6.400
str6 = "使用%%格式化输出:%s %s %d.%.1f!" % (str1, str2, major_version, minor_version)
print(str6)

num = 1

str7 = "如果只有%d个参数,可以省略括号" % num
print(str7)
# char = 'A'
char = 65 # 输出ASCII码对应的字符 a:97
str8 = "%%c用来格式化字符及其ASCII码:%c" % char
print(str8)

# 可以用数字指定输出数据的长度

# -,左对齐标志,默认为右对齐
# 0,表示数据长度不够时,用0填充。默认用空格填充
str9 = "%5s的总成绩是%3d\n%-5s的总成绩是%03d" % ("李宇", 99, "刘晓", 96)
print(str9)
# +,表示正负号都要输出,默认只输出负号
str10 = "广州的温度为%+d,哈尔滨的温度为%+d" % (18, -18)
print(str10)

# 使用str.format()格式化字符串

# {}及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换
# 1、按默认的顺序输出对应的参数(自动编号)
print("主流的搜索引擎是:{}和{}\n".format('百度', 'Google'))

# 2、在括号中用数字指定format中参数的位置(手动编号)

print("主流的搜索引擎是:{0}和{1}".format('百度', 'Google'))
print("主流的搜索引擎是:{1}和{0}\n我使用{0}多一些".format('百度', 'Google'))

# 3、给参数定义关键字,并且与其它方式组合使用

# 注意:不能将自动编号和手动编号的方式混合起来使用。并且位置参数不能排在关键字参数的后面。
print("搜索引擎有:{0}、{1}和{sou_gou}等等".format('百度', 'Google', sou_gou='搜狗'))
print("搜索引擎有:{}、{sou_gou}和{}等等".format('百度', 'Google', sou_gou='搜狗'))

# print("搜索引擎有:{0}、{1}和{2}等等".format('百度', 'Google', sou_gou='搜狗'))

format_str1 = "保留小数点后两位数:{:.2f}".format(3.1415926, 8.888, pi=3.1415926)

print(format_str1)
format_str2 = "保留整数,不带小数位,并且保留正负号:{:+.0f}".format(3.1415926)
print(format_str2)

# <,左对齐,右边填充空格;>,右对齐,左边填充空格

format_str3 = "默认左对齐:{:20s} Python!".format("Hello")
print(format_str3)
format_str4 = ">右对齐:{:>20s} Python!".format("Hello")
print(format_str4)
format_str5 = "默认填充空格,改为填充-:{:->20s} Python!".format("Hello")
print(format_str5)

format_str6 = "指定数据长度为3,右对齐,不够时左边填充0:{:0>3d}".format(9)

print(format_str6)
format_str7 = "指定数据长度为3,左对齐,不够时右边填充0:{:0<3d}".format(9)
print(format_str7)

字符串格式化符号:

 

二、字符串的转义

字符串的转义符号

 

三、字符串的截取

使用str[x]、str[x:y]截取字符串中指定范围的字符,包含x,但不包含y。

# ----------------------------------------
# 字符串的截取:[]、[:]
# ----------------------------------------
string = "字符串的截取操作!"

# str[i] 表示截取第几个字符,字符索引值从0开始

print("string[1]:", string[1])

# str[x:y] x表示开始截取的索引值,y表示停止截取的索引值(包含x,但不包含y)

print('string[2:5]:', string[2:5])

# 如果省略开始索引值,就从第一个字符到结尾索引值

print('string[:5]:', string[:5])

# 如果省略结尾索引值,就从开始索引值到最后一个字符

print('string[2:]:', string[2:])

# 更新字符串

# string[3] = "被"
string = string[:3] + "被" + string[4:]
print(string)

# 使用in和not in判断某个字符或字符串是否存在于另一个字符串中

sub_string = "截取"
if sub_string in string:
print("in")
else:
print("not in")

sub_string = "是"

if sub_string not in string:
print("not in")
else:
print("in")

四、字符串的常用函数

count():统计字串里某个字符出现的次数

len():返回字符串的长度

find():检测字符串中是否包含子字符串

replace():把字符串中的旧字符串替换为新字符串

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

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

swapcase():对字符串中的大小写字母进行相互转换

strip():删除字符串左右两侧的空格或指定的字符

isalnum():检测字符串中的字符是否全部由字母或数字组成

# ----------------------------------------

# 字符串的常用函数
# ----------------------------------------
# count() 用于统计字符串里某个字符出现的次数
string = "Hello python!"
sub_str = 'o'
print("字符o出现的次数为:", string.count(sub_str))
# len()返回字符串的长度
print("字符o出现的次数为:", string.count(sub_str, 5, len(string)))

# find() 检测字符串中是否包含子字符串。如果包含,返回开始的索引值;否则返回-1。

sub_str1 = "py"
sub_str2 = "pn"
print("查找子串py,返回索引值:", string.find(sub_str1))
print("查找子串pn,返回索引值:", string.find(sub_str2, 2))
print("查找子串py,返回索引值:", string.find(sub_str1, 3, 8))

# index()与find()函数的用法相同,只是当字符串中没有包含指定的子串时,会报一个异常,而不是返回-1。

# replace() 把字符串中的旧字符串替换为新字符串

print(string.replace("python", "word")) # 默认是进行全部替换
print(string.replace("o", "w", 1)) # 也可以指定替换的最大次数

# swapcase() 对字符串中的大小写字母进行相互转换

print("swapcase:", string.swapcase())

# lower() 转换字符串中所有大写字符为小写

print("lower:", string.lower())

# upper() 转换字符串中所有小写字母为大写

print("upper:", string.upper())

# strip() 删除字符串左右两侧的空格或指定的字符

string2 = "------ch02_基础语法--------"
print("strip:", string2.strip('-'))

string1 = "Python3"

# isalnum() 如果字符串至少有一个字符,并且所有字符都是字母或数字则返回True,否则返回False。
print("isalnum:", string1.isalnum())
# isalpha() 如果字符串至少有一个字符,并且所有字符都是字母则返回True,否则返回False。
print("isalpha:", string1.isalpha())
# isdigit() 如果字符串只包含数字则返回True,否则返回False。
print("isdigit:", string1.isdigit())

# title() 返回一个标题化的字符串(即所有单词以大写开头,其余字母均为小写)

print(string.title())

# center() 返回一个指定宽度并且居中显示的字符串,并在左右两侧填充指定的字符,默认为空格

print("center:", string.center(40, '-'))

 

转载于:https://www.cnblogs.com/Teachertao/p/11204423.html

你可能感兴趣的文章
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
bcb ole拖拽功能的实现
查看>>
生活大爆炸之何为光速
查看>>
bzoj 2456: mode【瞎搞】
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
[GraphQL] Reuse Query Fields with GraphQL Fragments
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
两种最常用的Sticky footer布局方式
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
数据库链路创建方法
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>