字符串:有序的字符的集合,用于存储和表示基本的文本信息,一对单、双、或三引号中间包含的内容称之为字符串

1.特性:有序,不可变(开辟新地址存储字符串,python解释器会定期清空不用了的已存储的)

>>> a = 'alex'
>>> id(a)
1806635111064
>>> a = 'Jack'
>>> a
'Jack'
>>> id(a)
1806635111232

 2.操作  常用:isdigit  replace  find  count  strip  center  split  format  join 

不常用:(数据)swapcase capitalize casefold center expandtabs ljust rjust zfill marketrans translate partition replace rstrip lstrip rsplit splitliness

              (判断)endswith isalnum isdecimal isnumeric isidentifier islower isupper isprintable isspace istitle

(1)得出数据的操作:

 >>> s = 'Hello World!'
>>> s.swapcase() #大小写反过来
'hELLO wORLD!'
>>> s = 'Hello World!'
>>> s.capitalize() #第一个字母大写,其余全部小写
'Hello world!'
>>> s.casefold() #变成统一的小写字母
'hello world!'
>>> s.center(50,'-') #把s放到中间,两边用'-'填充,总长度为50
'-------------------Hello World!-------------------'
>>> s.count('o') #统计字符'o'的数量
2
>>> s.count('o',0,5) #统计从0到5字符'o'的数量,顾头不顾尾
1
>>> s2 = 'a\tb' #\b是Tab键
>>> s2
'a\tb'
>>> print(s2)
a b
>>> s2.expandtabs()
'a b'
>>> s2.expandtabs(20) #将Tab键的长度扩展到20
'a b'
>>> s.find('o') #查找字符o 找到返回索引值,找不到返回负数
4
>>> s.find('op')
-1
>>> s.find('o',0,3) #从0到3查找字符o,找到返回从左边找到的第一个索引值,找不到返回-1,rfind -> 从右边开始数
-1
>>> s.find('o',0,5) #顾头不顾尾
4
>>> s3 = 'my name is {0}, i am {1} years old.'
>>> s3
'my name is {0}, i am {1} years old.'
>>> s3.format('Alex','') #格式化,用括号里的依次代替{0}{1},有点像列表
'my name is Alex, i am 22 years old.'
>>> s3 = 'my name is {0}, his name is {0}.'
>>> s3.format('Alex') #括号里的第一个就是{0},两个{0}一样
'my name is Alex, his name is Alex.'
>>> s3.format('Alex','Jane')
'my name is Alex, his name is Alex.'
>>> s3 = 'my name is {name}, i am {age} years old.'
>>> s3.format(name = 'Alex',age = '') #根据定义命名来赋值,直接写是不行的
'my name is Alex, i am 22 years old.'
>>> s.index('o') #返回第一个o的索引值,rindex -> 从右边开始数,其余一致
4
>>> s.index('o',5,6) #从5到6返回从左边数第一个o的索引值,没有就报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> names = ['alex','jack','rain']
>>> '-'.join(names) #以 - 来将names里的元素拼接起来,并且进行区分
'alex-jack-rain'
>>> ''.join(names)
'alexjackrain'
>>> ','.join(names)
'alex,jack,rain'
>>> s = 'Hello World'
>>> s.ljust(50) #把字符串的长度变成50,长度不够,就在字符串窜后面用空格来填
'Hello World '
>>> s.ljust(50,'-') #把字符串的长度变成50,长度不够,就在字符串后面用 - 来填,rjust与ljust相反,rjust在左边填 -
'Hello World---------------------------------------'
>>> s.zfill(40) #把s长度变成40,不够的在前面用0y填,一般是底层二进制用到
'00000000000000000000000000000hello world'
>>> s = '\n hello world '
>>> s
'\n hello world '
>>> s.strip() #去掉前后的空格 lstrip ->只去掉左边的空格 rstrip ->只去掉右边的空格
'hello world'
>>> str_in = 'abcdef'
>>> str_out = '!@#$%^' # str_in和str_out的字符数量必须一致,如此才能一一对应
>>> str.maketrans(str_in,str_out) #maketrans生成密码对应表,表中为ASCII码
{97: 33, 98: 64, 99: 35, 100: 36, 101: 37, 102: 94}
>>> table = str.maketrans(str_in,str_out)
>>> table
{97: 33, 98: 64, 99: 35, 100: 36, 101: 37, 102: 94}
>>> s = 'hello world'
>>> s.translate(table) #将s按照table进行翻译
'h%llo worl$'
>>> s.partition('o') #将字符串以从左找到的第一个'o'分成两半,rpartition以从右边找到的第一个'o'分成两半
('hell', 'o', ' world')
>>> s.replace('o','-') #把'o'全部换成'-'
'hell- w-rld'
>>> s.replace('o','-',1) #把'o'换成'-',只换一次
'hell- world'
>>> s.split() #以空格将s分开,放入列表
['hello', 'world']
>>> s.split('o') #以'o'将s分开,放入列表,'o'消失
['hell', ' w', 'rld']
>>> s.split('o',1) #以左边第一个'o'将s分开,放入列表,'o'消失,rsplit -> 从右边开始数 , splitlines -> 以行,即'\n'来分
['hell', ' world']

(2)判断 True or False 的操作

 >>> s.endswith('!') #s是否以!结尾,startswith -> 以...开始
True
>>> s.endswith('!sdf') #s是否以!sdf结尾
False
>>> ''.isalnum() #判断是否是数字和字符,不包括特殊符号
True
>>> '22s'.isalnum()
True
>>> '22s!'.isalnum()
False
>>> ''.isdecimal() #判断是否是整数,用法和isdigit、isnumeric
True
>>> '33s'.isdecimal()
False
>>> '33.3'.isdecimal()
False
>>> ''.isidentifier() #是否是合法的变量名,合法变量名条件:以下划线、字母、数字组成,开头不能是数字,不能纯用数字组合
False
>>> '3asd'.islower() #字母是否都是小写字母
True
>>> '2asd56ER'.islower()
False
>>> ''.isprintable() #能否被打印,只有文本文件,字节格式的能被打印,纯二进制文件之类的不能被打印(Linux中涉及)
True
>>> ' '.isspace() #是否是空格
True
>>> '3de '.isspace()
False
>>> 'Hello World'.istitle() #单词的第一个字符是否都是大写,就像新闻标题一样
True
>>> '45ASD'.isupper() #字母是否都是大写
True
>>> '45sA'.isupper()
False

Python全栈之路---数据类型—字符串的更多相关文章

  1. Python全栈之路----数据类型—列表

    1.列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作.列表里面的数可以重复. L1 = [ ] #定义空列表 L2 = [ 'a' , 'b' , 'c' , 'd' ] ...

  2. Python全栈之路----数据类型—字典

    字典:可变,一种key-value的数据类型 info = { 'stu1101' : 'TengLan Wu' , 'stu1102' : 'LongZe Luola' , 'stu1103' : ...

  3. Python全栈之路----数据类型—元组类型

    元组类型:有序,不可变的,又叫只读列表  names = ("alex","jack","eric") 1.元组本身不可变,但如果元组中有可 ...

  4. Python全栈之路----目录

    Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...

  5. python 全栈之路

    目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...

  6. Python全栈之路目录结构

    基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...

  7. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  8. Python全栈之路4--内置函数--文件操作

    上节重点回顾: 判断对象是否属于某个类,例如: 列表中有个数字,但是循环列表判断长度,用len会报错;因为int不支持len,所以要先判断属于某个类,然后再进行if判断. # isinstance(对 ...

  9. Python全栈之路----函数----返回值

    函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...

随机推荐

  1. SpringBoot整合shiro实现用户的认证授权

    * 项目环境搭建 * 配置ShiroConfig,用于shiro的基本配置和注入自定义规则 * 实现自定义的realm,继承AuthorizingRealm * 编写测试controller和页面 基 ...

  2. 王之泰201771010131《面向对象程序设计(java)》第九周学习总结

    第一部分:理论知识学习部分 第7章异常.日志.断言和调试 概念:异常.异常类型.异常声明.异常抛出. 异常捕获1.异常处理技术2.断言的概念及使用3.基本的调试技巧 1)异常的概念 a.Java的异常 ...

  3. Intellij IDEA 修改默认配置

    更新IDEA,是配置无缝对接 idea里面的配置文件主要就idea64.exe.vmoptions,idea.properties 不要更新idea自带的这两个文件,因为在更新IntelliJ IDE ...

  4. iOS10 后 http 网页定位失效解决方案

    最近公司开发一个app项目H5+ MUI框架进行开发的,开发的相关人员离职后,我这个小菜鸟...都是泪(从未接触过app开发) 项目要嵌入百度地图,由于已经做了微信版本的,想着还是用js api 做吧 ...

  5. vue query或params传参

    1.query 传递端: this.$router.push({ path:"/AccountFP", query:{ id:row.id, userId:row.userId } ...

  6. LeetCode--025--k个一组翻转链表(java)

    给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这个链表: ...

  7. Sign Up Account In CloudAMQP

    CloudAMQP 有多种账号级别,请参考下面的链接的内容访问你可以注册的级别:https://www.cloudamqp.com/plans.html 作为测试来说,你可以注册免费的的消息. 你可以 ...

  8. hashlib使用

    提供摘要算法:主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 import hashlib m = hashlib.md5("ddddd".e ...

  9. ORA-12638: 身份证明检索失败的解决方法

    本地oracle客户端用PLSQL Developer连接远程数据库,每次登录都会在很久之后,出现 ORA-12638: 身份证明检索失败,tnsping 表明TNS配置没有问题. 解决方案: D:\ ...

  10. .net core 使用log4net日志组件

    一个web站点必须要记录日志,否则哪里出错了,完全是黑娃找黑妹,两眼一抹黑. 最常用的就是log4net日志组件.我们可以通过扩展加入日志组件. 第一步:在项目中NuGet log4net包,即 In ...