Python开发——数据类型【字符串】
字符串定义
字符串是一个有序的字符的集合,用于存储和表示基本的文本信息
在Python中加了引号的字符,都被认为是字符串!
单引号、双引号、多引号之间的区别? 答案:单双引号没有区别
多引号的作用? 答案:多行字符串必须用引号
字符串的特性
字符串是按照从左向右的顺序定义字符集和,下标从0开始顺序访问,有序。
补充:
字符串的单引号和双引号都无法取消特殊字符的含义,
如果想让引号内所有字符均取消特殊意义,在引号前面加r,如 name = r'l\thf'。
unicode字符串与r连用必须在r前面,如 name = ur'l\thf'。
字符串一旦创建,不可修改,当字符串修改或者拼接,将会重新生成字符串
字符串常用操作
字符串拼接
# 字符串的拼接,只能双方都是字符串
name= 'Lucy '
age= ''
print(name+age) # Lucy 18
print(name*10) # 复制自身10次,再拼接在一起
# Lucy Lucy Lucy Lucy Lucy Lucy Lucy Lucy Lucy Lucy
索引
s = 'hello'
print(s[1]) # e
print(s[-1]) # o
print(s.index('e')) #
查找
s = 'hello'
print(s.find('o')) #
print(s.find('i')) # -1
长度
s = 'hello world'
print(len(s)) #
切片
s = 'abcdefghijklmn' # 左闭[、右开)、步长
print(s[0:7]) # abcdefg
print(s[:7]) # abcdefg
print(s[0:7:2]) # aceg
print(s[:7:2]) # aceg print(s[7:14]) # hijklmn
print(s[7:]) # hijklmn
print(s[7:14:3]) # hkn
print(s[7::3]) # hkn print(s[:]) # abcdefghijklmn
print(s[::2]) # acegikm
print(s[::-1]) # nmlkjihgfedcba
字符串函数
In 的使用
s = "helloworld"
if "l" in s:
print("ok") for items in "hello":
print(items)
字符串拼接join
# 将字符串中的每一个元素按照指定分隔符进行拼接
s = "PYTHON"
v = "_".join(s)
print(v) # P_Y_T_H_O_N
字符串大小写转换
# capitalize 首字母大写
s = 'hello world'
v = s.capitalize()
print(v) # Hello world
# casefold 大写转小写
s = 'Hello WORLD'
v = s.casefold()
print(v) # hello world
# lower 大写转小写
v = s.lower()
print(v) # hello world
# 判断是否全部是大(小)写 和 转换为小(大)写
s = "Hello World"
v = s.islower()
print(v) # False
v = s.lower()
print(v) # hello world v = s.isupper()
print(v) # False
v = s.upper()
print(v) # HELLO WORLD
# 大写转小写,小写转大写
v = s.swapcase()
print(v) # hELLO wORLD
字符串分割
# 分割为三部分
s = "testasdsddfg"
v = s.partition("s") # 以字符出现的第一个位置分割
print(v) # ('te', 's', 'tasdsddfg')
v = s.rpartition("s") # 以字符出现的最后一个位置分割
print(v) # ('testasd', 's', 'ddfg')
# 分割为指定数量处
v = s.split("s",2) # 以字符出现的前两个位置处分割
print(v) # ['te', 'ta', 'dsddfg']
v = s.rsplit("s",2) # 以字符出现的最后两个位置处分割
print(v) # ['testa', 'd', 'ddfg']
# 换行分割
s = "asdfadfasdf\nasdfasdf\nadfasdf"
v = s.splitlines() # 默认为False
print(v) # ['asdfadfasdf', 'asdfasdf', 'adfasdf']
v = s.splitlines(True)
print(v) # ['asdfadfasdf\n', 'asdfasdf\n', 'adfasdf']
字符串移除
# 移除指定字符串
# 有限最多匹配
s = "Alex"
v1 = s.strip("ex") # Al
v2 = s.lstrip("Al") # ex
v3 = s.rstrip("ex") # Al
print(v1)
print(v2)
print(v3)
print("*************")
# 去除左右空白
s = " hello world "
v1 = s.strip() # hello world
v2 = s.lstrip() # hello world
v3 = s.rstrip() # hello world
print(v1)
print(v2)
print(v3)
print("*************")
# 去除\t \n
s = "\thello world"
v1 = s.strip()
v2 = s.lstrip()
v3 = s.rstrip()
print(s) # hello world
print(v1) # hello world
print(v2) # hello world
print(v3) # hello world
字符串格式化
# format格式化
s = 'I am {name},I am {age}'
v = s.format(name = 'yuan',age = '')
print(v) # I am yuan,I am 18
v = s.format_map({'name':'yuan','age':''})
print(v) # I am yuan,I am 18
s = 'I am {0},I am {1}'
v = s.format('yuan','')
print(v) # I am yuan,I am 18
字符串替换
# 将指定字符串替换为指定字符串
s = "Hello World"
v = s.replace("o","k")
print(v) # Hellk Wkrld
v = s.replace("o","k",1) # (旧字符串、新字符串、数量)
print(v) # Hellk World
字符串子序列查找
# count 在字符串中寻找,查找子序列的出现次数
s = "aLexalexr"
v = s.count("ex")
print(v) #
v = s.count("ex",5,6) # (子序列,起始位置,结束位置)
print(v) #
tab填充
# expandtabs 设置字符串长度,其余用tab键,\t 填充
s = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"
v = s.expandtabs(20)
print(v)
# username email password
# laiying ying@q.com 123
# laiying ying@q.com 123
# laiying ying@q.com 123
以···开头(结尾)
# startswith 以。。。开始
# endswith 以。。。结尾
s = "Hello World"
v = s.endswith("ld")
print(v) # True
v = s.startswith('He')
print(v) # True
判断字符串
# 判断字符串 是否为标题
s = "I am a girl"
v = s.istitle()
print(v) # False
v = s.title()
print(v) # I Am A Girl
v = v.istitle()
print(v) # True # 判断 字符串中是否只包含 字母和数字
s = '123ada'
v = s.isalnum()
print(v) # True
# 判断 字符串中是否只包含 字母和汉字
s = 'asas我是'
v = s.isalpha()
print(v) # True # 判断是否为数字
s = "②"
v1 = s.isdecimal()
v2 = s.isdigit()
v3 = s.isnumeric()
print(v1,v2,v3)
# s = "二" False False True
# s = "1" True True True
# s = "②" False True True # 判断字符串 是否存在不可显示的字符
# 如:\n、\t
s = 'asdf\tasd'
v = s.isprintable()
print(v) # False # 判断字符串 是否为空格
s = " " # 若"",则False
v = s.isspace()
print(v) # True
字符串设置宽度及填充
# center 设置宽度,并将内容居中
s = 'Hello World'
v = s.center(20) # 20 指字符串总长度
print(v) # Hello World
v = s.center(20,"*") # * 为空白填充【可无】
print(v) # ****Hello World*****
v = s.ljust(20,"*")
print(v) # Hello World*********
v = s.rjust(20,"*")
print(v) # *********Hello World
v = s.zfill(20)
print(v) # 000000000Hello World
对应关系替换maketrans、translate
isidentifier【】
# identifier:识别符; 检验人,标识符; 鉴别器; 编号
# 字母,数字,下划线 : 标识符 def class
s = "asdfghjk"
v = s.isidentifier()
print(v) # True
# s = "123" False
# s = "class" True
Python开发——数据类型【字符串】的更多相关文章
- Python基础数据类型-字符串(string)
Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...
- Python开发——数据类型【字符串格式化】
字符串格式化之——% # 字符串格式化 msg = 'I am %s , My hobby is %s'%('yuan','play') print(msg) # I am yuan , My hob ...
- Python之路(第三篇):Python基本数据类型字符串(二)
一.基本数据类型1.字符串 str字符串方法介绍(二)a --expandtabs( ) expandtabs( ) 把字符串中的 tab 符号('\t')转为空格参数默认为8,注意字符串原有的空格也 ...
- Python之路(第二篇):Python基本数据类型字符串(一)
一.基础 1.编码 UTF-8:中文占3个字节 GBK:中文占2个字节 Unicode.UTF-8.GBK三者关系 ascii码是只能表示英文字符,用8个字节表示英文,unicode是统一码,世界通用 ...
- python 基本数据类型--字符串实例详解
字符串(str) :把字符连成串. 在python中⽤', ", ''', """引起来的内容被称为字符串 . 注意:python中没有单一字符说法,统一称叫字 ...
- Python开发——数据类型【列表】
列表的定义 中括号[]内以逗号分隔开,按照索引,存放各种数据类型,每个位置代表一个元素 list_t = ['张三','Lucy',123] print(list_t) # ['张三', 'Lucy' ...
- Python开发——数据类型【字典】
字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...
- python开发_difflib字符串比较
在python的difflib中 HtmlDiff:比较后以html方法展示 我们比较的是字符串: 'hello world!' 和 'hElLO Wor2d!' 具体代码: from difflib ...
- Python基础——数据类型——字符串
整数.浮点数.布尔值的用法大同小异,而Python字符串的一些用法不易记住,这里以廖雪峰教程为基础,进行一些思考和复习总结. 字符串是什么? 以单引号'或者双引号"括起来的任意文本,比如:& ...
随机推荐
- Mysql数据库主从复制搭建
Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...
- 阿里云轻量应用服务器 怎么控制怎么上传文件怎么安装JDK和Tomcat怎么完成JavaWeb的部署
你是否遇到过这些问题,自己的javaweb项目本地运行一切正常,但是一旦转移到阿里服务器之类的.就出现以下问题. 1 jsp无法解析java类 2 Only a type can be importe ...
- C#编程经验-function advanced params
function advanced params:outrefparamsnot useful,to use them is a burden,so i dont use themdefects:ou ...
- 6.8 出口条件循环:do while
while循环和for循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容.C语言还有出口条件循环(exit-condition loop),即在循环的每次迭代 ...
- nginx配置分发Tomcat服务,负载均衡
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中瓦片资源越来越多,如果提高瓦片的访问效率是一个需要解决的 ...
- [UE4]Expandable Area可展开的区域
一.Expandable Area控件分成头部和主体部分,头部和主体都是一个Named Slot,可以放置任何控件进去,点击头部会因此主体部分 1.如果勾选Size To Content,则收起的时候 ...
- 知识点:Mysql 基本用法之视图
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时 ...
- centos7安装 owncloud注意事项
要关于selinux 用来存放文件的目录权限要修改 chown -R apache:apache my.cnf里的binlog_format=mixed前面的注释去掉,不然报mysql错!
- word embeddding和keras中的embedding
训练好的词向量模型被保存下来,该模型的本质就是一个m*n的矩阵,m代表训练语料中词的个数,n代表训练时我们设定的词向量维度.当我们训练好模型后再次调用时,就可以从该模型中直接获取到对应词的词向量. 通 ...
- Python-用户登录三次错误锁定
黑名单:blacklist.txt 用户名单:username_password.py # Author:Stephen Yuan # 用户名和密码 username_password = { ', ...