Pyhton编程(四)之基本数据类型-字符串详解
1、字符串
字符串是Python最常用的一种数据类型,虽然看似简单,但能够以不同的方式来使用它们。
字符串就是一系列的字符,在Python中,用引号括起来的都是字符串,其中的引号可以是单引号,也可以是双引号。如“name”、‘age’都可以称为字符串
2、字符串的创建
"Python"
'Python' // 这两种方式都称为字符串
name="Python" //一般在定义字符串的时候,都会给他赋值给一个变量
3、字符串的常用功能(详细)
以C开头的方法:
name="czp"
print(name.capitalize()) ##首字母变大写
#----------------------------------------------------------------------------------
print(name.casefold()) ##将字符串中出现的字母变为小写,很多未知的对相应变小写
#----------------------------------------------------------------------------------
print(name.center(20)) ##字符串内容居中,左右宽度各为20
print(name.center(20,"*")) ##字符串内容居中,左右宽度各为20个“*”,后面的填充内容可随意更换
#----------------------------------------------------------------------------------
print(name.count("cd")) ##字符串子序列查询,如存在返回查询次数,不存在返回0,不会报错
以D开头的方法:
print(name.decode()) ##解码(这个在Python3中没有提示这个方法,但是大家需要知道,很重要)
print(name.encode()) ##编码(针对unicode,先了解这两个,后面的博客会详细讲解)
以E开头的方法:
print(name.endswith("p")) ##判断以什么结尾,返回值为布尔值
name1="czp\t123"
print(name1)
print(name1.expandtabs()) ##将制表符/t转换为空格,默认是8。参数写多少,就是将多少位分一段,将/t转换为空格填充
此方法可以用来绘制表格,如
test = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"
v = test.expandtabs(20)
print(v)
以F开头的方法:
print(name.find("c")) ##查找是否包含子字符串,如果有,返回索引位置,否则返回-1
#----------------------------------------------------------------------------------
name1="my name is {name}"
print(name1.format(name="czp")) ##字符串格式化,通过format方法给变量传值并输出
#----------------------------------------------------------------------------------
print(name1.format_map({"name":"czp"})) ##字符串格式化,与format方法不同的是赋值的方式不同
以I开头的方法:
name="czp"
#print(name.index("c")) ##查找子序列的下标,如果不存在,程序会报错
#------------------------------------------------------------------------------------
print(name.isdigit()) ##判断字符串是否是数字,返回值为布尔值
#------------------------------------------------------------------------------------
print(name.isalnum()) ##判断字符串是否是数字和字母,返回值为布尔值
#------------------------------------------------------------------------------------
print(name.isalpha()) ##判断字符串是否是字母,必须全为字母2,才会返回True
#------------------------------------------------------------------------------------
print(name.isdecimal()) ##判断字符串是否只包含十进制字符。这种方法只存在于unicode对象。
#----------------------------------------------------------------------------------------
print(name.isidentifier()) ##判断字符串是否已字幕开头
#----------------------------------------------------------------------------------------
print(name.islower()) ##判断字符串是否小写
#----------------------------------------------------------------------------------------
print(name.isnumeric()) ##判断字符串是否只是以数字组成
#----------------------------------------------------------------------------------------
print(name.isprintable()) ##判断字符串中所有字符是否都属于可见字符,如有\t,\n等,肯定会返回false
#-----------------------------------------------------------------------------------------
print(name.isspace()) ##判断字符串是否为空格(空值、字符串间的空格,都为False)
#-----------------------------------------------------------------------------------------
print(name.istitle()) ##判断字符串是否为标题,即是否首字母大写
#-----------------------------------------------------------------------------------------
print(name.isupper()) ##判断字符串是否为大写,返回布尔值
以J开头的方法
name="czp"
print(" ".join(name)) ##序列中的元素以指定的字符连接生成一个新的字符串。
以L开头的方法:
name=" czp"
print(name.ljust(20,"*")) ##返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
#---------------------------------------------------------------------------------------------
print(name.lower()) #将字符串中的字母全部变为小写
#----------------------------------------------------------------------------------------------
print(name.lstrip()) #去除字符串左边开头的空格
以P开头的方法:
name="czp"
print(name.partition("c")) ##分割前、中、后三个部分,通过写入指定的字符串子序列
以R开头的方法:
name="czp"
print(name.rstrip()) #去除字符串左边开头的空格
#---------------------------------------------------------------------------------------------
print(name.replace("c","z")) #替换字符串中的子序列
#-------------------------------------------------------------------------------------------
print(name.rfind("p")) #返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。
#-------------------------------------------------------------------------------------------
print(name.rindex("c")) #返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常
#--------------------------------------------------------------------------------------------
print(name.rjust(20,"")) #返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
#---------------------------------------------------------------------------------------------
以S开头的方法:
name="c z p"
print(name.strip()) #移除字符串头尾指定的字符(默认为空格)。
#-------------------------------------------------------------------------------------------------
print(name.split(" ",2)) #指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
#-------------------------------------------------------------------------------------------------
print(name.splitlines()) #根据换行分割”\n“
#--------------------------------------------------------------------------------------------------
print(name.startswith("c")) #判断字符串以什么开头,返回布尔值
#-------------------------------------------------------------------------------------------------
print(name.swapcase()) #对字符串的大小写字母进行转换
其他的方法:
print(name.title()) #将首字母大写
print(name.upper()) #将字符串中的字母改为大写
#--------------------------------------------------------------------------------------------------
print(name.zfill(20)) #返回指定长度的字符串,原字符串右对齐,前面填充0。
重点:深浅copy(面试中经常问道)
在python中,变量是一个系统的元素,拥有指向对象的连接的空间
对象是系统分配出来的一块内存地址,存储其所代表的值
引用是从变量指向对象的一个指针,在python中不可变对象是指:字符串、数字、元组
可变对象是指:列表和字典。
s1 = [1,2,3,4] #s1变量指向的是一个可变对象:列表
s2 = s1 #将s1的值赋值给s2,s1、s2共享同一个列表对象[1,2,3,4]
print(id(s1),id(s2)) #此时的s1和s2的id是一样的
s1[0] = 0 #通过索引的方式修改s1列表中的第一个元素
print(s1,s2) #s1、s2的值都改变了,因为对象的本身值发生了改变
如果不想修改s1的值的时候s2的值也发生改变,可以通过切片或copy方法
s1 = [1,2,3,4]
s2 = s1[:]
print(id(s1),id(s2)) #通过切片的方式赋值,对象也发生了改变
s1[0] = 0
print(s1,s2)
切片技术应用于所有的序列:列表、字符串、元组
但切片不用应用于字典,对字典只能使用copy()或deepcopy()方法
深浅拷贝,即可用于序列,也可用于字典
import copy
X = copy.copy(Y) #浅拷贝:只拷贝顶级的对象,或者说:父级对象
X = copy.deepcopy(Y) #深拷贝:拷贝所有对象,顶级对象及其嵌套对象。或者说:父级对象及其子对象
深浅拷贝都是对源对象的复制,占用不同的内存空间
如果源对象只有一级目录的话,源做任何改动,不影响深浅拷贝对象
如果源对象不止一级目录的话,源做任何改动,都要影响浅拷贝,但不影响深拷贝
序列对象的切片其实是浅拷贝,即只拷贝顶级的对象
4、数字
在编程中,经常使用数字来记录游戏得分、表示可视化数据等,Python根据数字的用法以不同的方式来处理它们
在Python中,可对整数执行加(+)、减(-)、乘(*)、除(/)等运算,具体运算请参考上一篇博文
5、布尔值
真或假(1 或 0)
注:此篇文章并没有讲解内置方法,会在后面的博客中写出,感兴趣的可以关注一下,谢谢。
Pyhton编程(四)之基本数据类型-字符串详解的更多相关文章
- JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
- Python变量和字符串详解
Python变量和字符串详解 几个月前,我开始学习个人形象管理,从发型.妆容.服饰到仪表仪态,都开始做全新改造,在塑造个人风格时,最基础的是先了解自己属于哪种风格,然后找到参考对象去模仿,可以是自己欣 ...
- python数据类型及其详解
一.数据类型介绍 1.字符串(string) 三种类型:单引号,双引号,三引号 a = 'jam' b = "JamHsiao" c = '''JAMHSIAO''' print( ...
- MariaDB(MySQL)创建、删除、选择及数据类型使用详解
一.MariaDB简介(MySQL简介略过) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行 ...
- C语言中字符串详解
C语言中字符串详解 字符串时是C语言中非常重要的部分,我们从字符串的性质和字符串的创建.程序中字符串的输入输出和字符串的操作来对字符串进行详细的解析. 什么是字符串? C语言本身没有内置的字符串类型, ...
- 【面试题】JS第七种数据类型Symbol详解
JS第七种数据类型Symbol详解 点击打开视频讲解更加详细 一.什么是Symbol? Symbol是ES6中引入的一种新的基本数据类型,用于表示一个独一无二的值.它是JavaScript中的第 七种 ...
- SQL Server日期时间格式转换字符串详解
本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...
- Swift_字符串详解(String)
Swift_字符串详解(String) 类型别名 //类型别名 fileprivate func testTypeAliases() { let index = String.Index.self p ...
- MS SQL Server 数据库连接字符串详解
MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...
随机推荐
- 201521123070 《JAVA程序设计》第9周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 Q1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 ...
- **********MySql查询方法重要**********
分析问题要分步,查询每一步的结果,最后连起来 例如下面有四张表让你查询 查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录. 第一部,找到课程编号为3-105的记录中学号为109 ...
- Java:验证在类继承过程中equals()、 hashcode()、toString()方法的使用
以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类 ...
- [LeetCode]Count and Say 计数和发言
Count and Say 计数和发言 思路:首先要理解题意,可以发现后者是在前者的基础之上进行的操作,所以我们拿之前的结果作为现在函数的参数循环n-1次即可,接下来就是统计字符串中相应字符的个数,需 ...
- 银河麒麟操作系统打开VMware报vmmon无法编译
使用银河麒麟操作系统打开VMware可能会报vmmon无法编译 这个时候... 将/usr/src/linux-headers-xxx/include/miscdevice.h第71行void改为in ...
- Hibernate逆向工程【PowerDesigner、idea环境下】
为什么要使用逆向工程 由于我们每次编写Hibernate的时候都需要写实体,写映射文件.而且Hibernate的映射文件也容易出错.而逆向工程可以帮我们自动生成实体和映射文件,这样就非常方便了. 使用 ...
- markdown编辑器的学习
markdown编辑器的学习 1 标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 2列表 无序列表 1 2 3 4 有序列表 1 2 3 4 3引用 这里是引用,哈哈我也不知道到我引 ...
- 0 can't find referenced pointcut declarePointExpress
今天在用SpringAOP 的 @pointCut 的时候报错 Exception in thread "main" org.springframework.beans.facto ...
- Java开发规范总结(两周至少看一次)
Service / DAO 层方法命名规约: 1 ) 获取单个对象的方法用 get 做前缀.2 ) 获取多个对象的方法用 list 做前缀.3 ) 获取统计值的方法用 count 做前缀.4 ) 插 ...
- 在 docker 容器中捕获信号
我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号 ...