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?因为我写得烂啊,只有我自己看得懂!! 字典字典的元素是由一对对键值对组成,每一对之间用逗号隔开,将所有的键值对用 ...
随机推荐
- celery-rabbitmq 安装部署
一:Python安装 1.下载python3源码 wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz 2.解压 tar xf P ...
- oracle入门(5)——java连接oracle数据库
[本文介绍] 前面几篇说了那么多,最终还没讲到如何用java连接数据库,本文实用一点,讲讲如何连接数据库. [java连接oracle数据库] 1.导入jdbc驱动:看到这里,就忙着上网找驱动?不,安 ...
- 012-HQL中级2-Hive如何执行文件中的sql语句
Hive可以运行保存在文件里面的一条或多条的语句,只要用-f参数,一般情况下,保存这些Hive查询语句的文件通常用.q或者.hql后缀名,但是这不是必须的,你也可以保存你想要的后缀名.假设test文件 ...
- JS中将字符串中每个单词的首字母大写化
今天看到一个帖子,处理js中字符串每个单词的首字母大写. 原贴地址:关于字符串中每个单词的首字母大写化问题 受到启发,自己跟着改写了几个版本如下,请大家指正. 1.for循环: var a = 'Hi ...
- AngularJS 笔记系列(四)控制器和表达式
控制器:在 Angular 中控制器是一个函数,用来向作用域中添加额外的功能.我们用它来给作用域对象设置初始状态,并添加自定义行为. 使用方法: var app = angualr.module('a ...
- ruby中的instance_eval,class_eval,eval
ruby具有在运行时执行以字符串形式保存的代码的功能设施,eval族方法 .包括Kernel#eval,Object#instance_eval,Module#class_eval. Kernel#e ...
- ACM-ICPC 2018 沈阳赛区网络预赛 F. Fantastic Graph (上下界网络流)
正解: #include <bits/stdc++.h> using namespace std; const int INF = 0x3f3f3f3f; const int MAXN=1 ...
- [转]linux内核分析笔记----内存管理
转自:http://blog.csdn.net/Baiduluckyboy/article/details/9667933 内存管理,不用多说,言简意赅.在内核里分配内存还真不是件容易的事情,根本上是 ...
- DOM—节点
节点的相关属性 1.nodeType:节点类型.返回的是一个数字,这个数字代表节点类型,只读. 节点类型: 1 — 元素类型:元素节点(标签) 节点类型: 2 — 元素类型:属性节点 节点类型: 3 ...
- firewall 防火墙相关
修改配置文件: /etc/sysconfig/network-scripts/ifcfg-ens33 文件 ONBOOT=no 改为yes 然后重启 service network restart ...