字符串是由数字、字⺟、下划线组成的⼀串字符
注意:
单引号和双引号不能混合使⽤
Python中⽤⼀对双引号或者⼀对单引号包裹的内容就是字符串
转义字符是⼀种特殊的字符常量。转义字符以反斜线""开头,后跟⼀个或⼏个
字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符
\t 表示制表符
\n 表示换⾏符
\ 表示反斜杠
’ 表示 ’
⻓字符串 ⼜叫做⽂档字符串 我们使⽤三重引号来表示⼀个⻓字符串’’’ ‘’’
三重引号可以换⾏,并且会保留字符串中的格式
使用*可以实现字符串复制
我们可以使用 input()从控制台读取键盘输入的内容
str()可以帮助我们将其他数据类型转换为字符串
`
x[::-1]
str = '0123456789′
print str[0:3] #截取第一位到第三位的字符
print str[:] #截取字符串的全部字符
print str[6:] #截取第七个字符到结尾
print str[:-3] #截取从头开始到倒数第三个字符之前
print str[2] #截取第三个字符
print str[-1] #截取倒数第一个字符
print str[::-1] #创造一个与原字符串顺序相反的字符串
print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
print str[-3:] #截取倒数第三位到结尾
print str[:-5:-3] #逆序截取
[起始偏移量 start:终止偏移量 end:步长 step]
操作和说明 | 示例 | 结果 |
---|---|---|
[:] 提取整个字符串 | “abcdef”[:] | “abcdef” |
[start:]从 start 索引开始到结尾 | “abcdef”[2:] | “cdef” |
[:end]从头开始知道 end-1 | “abcdef”[:2] | “ab” |
[start:end]从 start 到 end-1 | “abcdef”[2:4] | “cd” |
[start: end:step]从 start 提取到end-1,步长是 step | “abcdef”[1:5:2] | “bd” |
– | – | – |
“abcdefghijklmnopqrstuvwxyz”[-3:] | 倒数三个 | “xyz” |
“abcdefghijklmnopqrstuvwxyz”[-8:-3] | 倒数第八个到倒数第三个(包头不包尾) | ‘stuvw’ |
“abcdefghijklmnopqrstuvwxyz”[::-1] | 步长为负,从右到左反向提取 | ‘zyxwvutsrqponmlkjihgfedcba’ |
切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始偏移量小于 0 则会当做 0,终止偏移量大于“长度-1”会被当成-1
我们可以直接使用==,!=对字符串进行比较,是否含有相同的字符。
我们使用 is / not is,判断两个对象是否同一个对象。比较的是对象的地址,即 id(obj1)是否和 id(obj2)相等。
in /not in 关键字,判断某个字符(子字符串)是否存在于字符串中
a = "abcde"
print("b" in a)
print("x" in a)
print("x" not in a)
# True
# False
# True
a = "tom,Jack,Tom,xiaohong"
b=a.capitalize()
print(b)#Tom,jack,tom,xiaohong
a = "tom,Jack,Tom,xiaohong"
b= a.title()
print(b)#Tom,Jack,Tom,Xiaohong
a = "tom,Jack,Tom,xiaohong"
b=a.upper()
print(b)#TOM,JACK,TOM,XIAOHONG
a = "tom,Jack,Tom,xiaohong"
b=a.lower()
print(b)#tom,jack,tom,xiaohong
a.swapcase():产生新的,所有字母大小写转换
a = "tom,Jack,Tom,xiaohong"
b=a.swapcase()
print(b)#TOM,jACK,tOM,XIAOHONG
a = "2 ,5 ,6 ,8"
b=max(a)
print(b) #8
min() 最⼩值
注意:
a = [1,5,6,8]
b=max(str(a)) # ]
print(b)
print(type(str(a)))
# <class 'str'>
>>> a="S"
>>> a.center(10,"*")
'***S****'
>>> a.center(10)
' S '
>>> a.ljust(10,"*")
'S*******'
a = "ansdhdnddh-/uuu"
b = a.find("-")
print(b) #10
c = a.find("x")
print(c) #-1
txt = "Hello, welcome to my world."
x = txt.startswith("Hello")
print(x)
#True
endswith()方法:返回结尾字符
index():检测字符串是否包含指定字符,如果包含,则返回开始的索引值,否则,提示错误
txt = "Hello, welcome to my world."
x = txt.index("w")
print(x) 7
x = txt.index("Hello")
print(x) 0
rstrip([chars])删除 string 字符串末尾的指定字符(默认为空格)
lstrip([chars])删除 string 字符串开头的指定字符(默认为空格)
strip([chars])用于移除字符串头尾指定的字符(默认为空格)或字符序列。
可以使用+将多个字符串拼接起来。例如:’aa’+ ’bb’ ==>’aabb’
(1) 如果+两边都是字符串,则拼接。
(2) 如果+两边都是数字,则加法运算。
(3) 如果+两边类型不同,则抛出异常。
可以将多个字面字符串直接放到一起实现拼接。例如:’aa’’bb’==>’aabb’
a = ['yun','s100','st200']
b = '*'.join(a)
print(b)
# yun*s100*st200
使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用 join 函数,因为 join 函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象
推荐使用生成器表达式,如果列表很大,可以节省很多内存空间
li = [3, 'cxk', 'kk', 'caibi']
''.join(str(i) for i in li)
a = "to be or not to be"
a.split()
python 中的 split() 方法 由于 split 一次处理一个分隔符,
使用 re 模块的中 split() 方法,可以一次性分隔字符串
import re
s = "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"
print(re.split('[;/|,.}:*\t]', s))
#['ab', 'fd', 'ft', 'fs', 'f', 'df', 'fss', 'dfd', 'fs', 'uu', 'fsd']
语法: str.partition(sep) -> (head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。
sep —— 指定的分隔符。
如果字符串包含指定的分隔符sep,则返回一个三元元组,第一个为分隔符sep左边的子字符串,第二个为分隔符sep本身,第三个为分隔符sep右边的子字符串。
如果字符串不包含指定的分隔符sep,仍然返回一个三元元组,第一个元素为字符串本身,第二第三个元素为空字符串
str = "https://www.baidu.com/"
print(str.partition("://")) #字符串str中存在sep"://"
print(str.partition(",")) #字符串str中不存在sep",",返回了两个空字符串。
print(str.partition(".")) #字符串str中存在两个"." 但索引到www后的"." 停止索引。
print(type(str.partition("://"))) #返回的是tuple类型, 即元组类型
('https', '://', 'www.baidu.com/')
('https://www.baidu.com/', '', '')
('https://www', '.', 'baidu.com/')
<class 'tuple'>
tr1 = '人生苦短,我用Python!' # 定义字符串
length = len(str1.encode()) # 计算UTF-8编码的字符串的长度
print(length)
#28
str.replace(old, new[, max])
a = "abcde123"
b = a.replace("a","哈哈哈")
print(b)
# 哈哈哈bcde123
t = str.maketrans("ac","65")
str8 = "ace,nice,apple"
str9 = str8.translate(t)
print (str9)
#结果:65e,ni5e,6pple
expandtabs(tabsize=8)
把字符串中的 tab 符号(’\t’)转为空格,tab 符号(’\t’)默认的空格数是 8。
re.sub()函数
快速删除字符串非中文字符:re.sub()函数
import re
str = 'kakka哈哈哈哈,,,L《《《》》'
a = re.sub(r'[^\u4e00-\u9fa5]',"",str) #[^/u4e00-/u9fa5] 运行结果:哈哈哈哈
b = re.sub(r'[\u4e00-\u9fa5]',"",str) #运行结果:kakka,,,L《《《》》
print(a,b)
str = "abd123?,"
a = re.sub(r'[\d|?]',"",str)
print(a)
#abd,
2019-06-12 改成 06-12-2019 格式
#
str = "今天时间:2019-06-12"
b = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2-\3-\1', str)
print(b)
# 今天时间:06-12-2019
eval(str) 功能:将字符串str当成有效的表达式来求值并返回计算结果
numb2 = eval('123')
print (numb2)
numb2 = eval('12+3')
print (numb2)
numb2 = eval('12-3')
print (numb2)
调整字符串中文本的格式
.encode(enconding=‘utf-8’)
data.decode(“utf-8”)
字符串比较大小,从第一个字符开始比较,谁的ASCII码值大谁就大,如果相等会比较下一个字符的ASCII码值大小,那么谁的值大谁就大
print (“bazzzz” > “ba”)
True
# 拼接字符串
str1 = '今天我一共走了' # 定义字符串
num = 12098 # 定义一个整数
str2 = '步' # 定义字符串
print(str1 + str(num) + str2)
今天我一共走了12098步
# 格式化字符串,(1)使用“%”操作符
# %s:字符串,%d:十进制整数
name = "小明"
age = 18
price = 5.8
str = "我叫%s,今年%d岁,买了一本本%f元" % (name,age,price)
print(str)
我叫小明,今年18岁,买了一本本5.800000元
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的
功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序
name = "Q1mi"
age = 18
b = f"My name is {name}.I'm {age}"
print(b)
注意:
更改为:
name = "Q1mi"
age = 18
b = "My name is {name}.I'm {age}".format(name=name,age=age)
print(b)
My name is Q1mi.I'm 18
data = ["Q1mi", 18]
"Name:{0}, Age:{1}".format(*data)
'Name:Q1mi, Age:18'
dic = {
'name': 'Jack', 'age': 18, 'favorite': 'Python'}
'I am {0[age]} years old.I am {0[name]} and I love {0[favorite]}'.format(dic)
'I am 18 years old.I am Jack and I love Python'
data = ["Q1mi", 18]
"{0[0]} is {0[1]} years old.".format(data)
'Q1mi is 18 years old.'
‘’'我们还可以主动为花括号进行编号。在待格式化的字符串中,从左到右依次为{0}、{1}、{2}……其中,
{0}对应第一个参数、{1}对应第二个参数、{2}对应第三个参数……
在对花括号进行了编号之后,我们就可以灵活地调整它们的位置了。
‘’’
'I am {2} years old.I am {1} and I love {0}'.format('Python','Jack',18)
'I am 18 years old.I am Jack and I love Python'
浮点数通过 f,整数通过 d 进行需要的格式化
>>> a = "我是{0},我的存款有{1:.2f}"
>>> a.format("高淇",3888.234342)
'我是效效,我的存款有 3888.23'
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
>>> "{:*>8}".format("245")
'*****245'
>>> "我是{0},我喜欢数字{1:*^8}".format("小明","666")
'我是小明,我喜欢数字**666***'
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数