Python基础笔记系列七:字符串定义和访问
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!
- 字符串定义和访问
1.字符串基础
a.字符串可以用单引号、双引号、三引号(单、双)定义,其中,单引号和双引号定义的字符串没啥区别,三引号有点区别。下面通过例子来看。
例子:str1= 'hello'
str2= "hello"
str3= 'hello3 hello'
print str1,str2,str3
#以上三种没有区别 print type(str1),type(str2),type(str3)
str4= 'hello "dear"'
print str4
str5= "hello \"dear\" "
print str5
str6= 'hello \'dear\''
print str6输出:
hello hello hello3 hello
<type 'str'> <type 'str'> <type 'str'>
hello "dear"
hello "dear"
hello 'dear'从代码中可以看出,一对单引号,一对双引号没有区别,都是str类型。但是不能有双引号或单引号出现两对进行嵌套,如例子中的str5,str6这几个字符串,如果要这样使用就要加一个斜杠当做转义字符,因为Python它会从左到右找成对的引号,如果写成str5="hello "dear""这样子的话,就会找不到合适的匹配方法,报错。
b.下面这种情况也比较特殊:使用三对单引号
例子:str7 = '''"hello 'dear'"''' #三对单引号
# str7 = '''"hello \'dear\'"''' #这里加上转义字符也可以
print str7
str8 = '''hello 'hey' "Tom"'''
print str8输出:
"hello 'dear'"
hello 'hey' "Tom"可以发现,一个字符串的最外层是三个单引号,则它不会关心引号里面的单引号和双引号,直接输出里面的内容。所以如果需要输出的字符串里有引号建议使用这种方式。
综上,可以总结为:在不使用转义字符的情况下,单引号里可以有双引号,双引号里可以有单引号,三引号里既可以有单引号也可以有双引号。常见的转义字符有:\n 回车换行
\t 制表符
\" 双引号
\' 单引号
\\ 输出斜杠c.原字符串:比如下面这个例子,我希望"\"后面的字母不被python看作是转义字符,在字符串前面加上一个字母‘r’即可。
例子:#源字符串
print "c:\temp\node\jeapedu.py"
print r"c:\temp\node\jeapedu.py"输出:
c: emp
ode\jeapedu.py
c:\temp\node\jeapedu.pyd.字符串的更新:以下例子说明python中,字符串的更新不是在原地址上更新,而是重新开辟了一块新的地址空间。
例子:t= 'abc'
print id(t)
t= 'asad'
print id(t)
c='abc'
print id(c)输出:发现修改字符串t前后id不同,说明不和C语言一样在原地址上更新。再次将'abc'字符串给另一个变量c时,c的id还是原先t的id,也可以说明这一点
80065432
79966688
800654322.字符串的访问
a.索引访问:字符串是python的一种序列型的数据类型,字符串里的每一个字符都有一个标号可以标识其在字符串中的位置,从左至右依次是0,1,2...n-1,从右至左依次是-1,-2,-3....-n(其中n是字符串的长度),所有我们就可以通过索引来访问字符串中的某个字符。
例子:s = 'hello world!!'
print s[0]
print s[-3]输出:
h
db.切片访问:访问字符串中某个范围的子串。语法格式:str_name[start:end:step],start是访问字符串的起点,end为终点,step为步长,得到的子串由start到end-1这些字符组成(前闭后开)。
例子:s = ''
print s[0:6]
print s[1:20:2]输出:
123456
246813579甚至还可以这样:
例子:s = '123456789abcdefghi123456789'
#正切片
print s[:20] #不指定start
print s[2:] #不指定end
print s[9:-9] #指定end为负数
print s[:] #不指定start和end相当于print s
print s[::3] #只指定步长
#反切片
print s[::-1]
print s[17:-19:-1]
print s[-10:-19:-1]输出:
123456789abcdefghi12
3456789abcdefghi123456789
abcdefghi
123456789abcdefghi123456789
147adg147
987654321ihgfedcba987654321
ihgfedcba
ihgfedcba
Python基础笔记系列七:字符串定义和访问的更多相关文章
- Python基础笔记系列十一:标准输入输出、文件读写和指针等操作
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...
- Python基础笔记系列一:基本工具与表达式
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 工具基础(Windows系统下)传送门:Python基础笔记系列四:工具的 ...
- Python基础笔记系列八:字符串的运算和相关函数
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串的运算1.字符串的加法和乘法 python中不但支持字符串相加,还支 ...
- Python基础笔记系列十四:python无缝调用c程序
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...
- Python基础笔记系列十三:socket网络编程
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...
- Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...
- Python基础笔记系列三:list列表
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python中的list列表是一种序列型数据类型,一有序数据集合用逗号间隔 ...
- Python基础笔记系列四:工具的安装与配置
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 一开始是没有打算写工具这篇的,后来发现在某些情况下会遇到一些奇怪的问题,这 ...
- Python基础笔记系列六:字典
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字典字典的元素是由一对对键值对组成,每一对之间用逗号隔开,将所有的键值对用 ...
随机推荐
- scrollend,滚动结束执行一次
var timer;window.onscroll = function () { clearTimeout(timer); timer = setTimeout(function () { aler ...
- PCI 设备详解一
2016-10-09 其实之前是简单学习过PCI设备的相关知识,但是总感觉 自己的理解很函数,很多东西说不清楚,正好今天接着写这篇文章自己重新梳理一下,文章想要分为三部分,首先介绍PCI设备硬件相关的 ...
- git mv与直接mv的区别
git mv 行为: 1.创建一个和之前文件内容一样的文件,文件名为新的文件名 2.将原来的文件删除 3.将删除的文件添加到暂存区 4.将新建的文件添加到暂存区 $ git mv a a1 $ git ...
- NAND flash阵营ToggleDDR和ONFI
NAND 闪存:目前闪存制造厂主要分为三星与东芝.海力士联合的ToggleDDR阵营和英特尔与美光为首的ONFI阵营 IM Flash Technologies(IMFT):由Intel和Micron ...
- PAT 1096 Consecutive Factors[难]
1096 Consecutive Factors (20 分) Among all the factors of a positive integer N, there may exist sever ...
- Git-从远程仓库克隆
本人拜读了廖雪峰老师关于Git的讲述后整理所得 上次我们讲了先有本地库,后有远程库的时候,如何关联远程库. 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆. 首先,登陆Git ...
- ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (set维护)
注意题目保证不会有一个矩形完全包括另一个矩形的情况 时间序上从后往前看,一个坐标\((x,y)\)加进来之前,如果已经有\(x_i<x\),则对结果的贡献为\(x-x_i\);若不存在\(x_i ...
- 性能调优之MySQL篇一:MySQL性能计数器
计数器 计数器分析 Threads_connected 表示当前有多少个客户连接该mysql服务器,连接数是否过多,网络是否存在问题,它是动态变化的,当达到最大连接数时,数据库系统就不能提供更多的连接 ...
- 这几天添加ccbi 出现的问题
父类是一个ccbi...在父类的onNodeLoaded 里面添加子类的ccbi ... 出现了父类为空的情况...获取不到时间轴..动画为空... 需要在父类的onEnter里面写添加子类的ccbi ...
- convention over configuration
惯例优先原则:也称为约定大于配置或规约大于配置(convention over configuration),即通过约定代码结构或命名规范来减少配置数量,同样不会减少配置文件:即通过约定好默认规范来提 ...