Python基础知识之认识字符串
Python有一个名为“STR”与许多方便的功能(有一个名为“串”,你不应该使用旧的模块),内置的字符串类。 字符串常量可以通过双或单引号括起来,尽管单引号更常用。 反斜杠工作单,双引号内的文字通常的方式 - “双引号字符串可以包含单引号没有任何大惊小怪(例如”如\ n \'\我没有做到这一点“),同样单引号字符串中可以包含双引号。字符串文字可以跨越多行,但必须在每一行的结尾是一个反斜杠\逃脱换行符。三重引号内的字符串常量“,”“”或''',可以多行文本。
Python编程语言的字符串是“不可改变的”,这意味着他们在创建后(Java字符串也使用了这种一成不变的风格),他们不能被改变。 因为字符串不能改变,我们构造*新的*字符串作为我们去代表计算的值。 因此,例如表达式('你好'+'还有')发生在2个字符串'你好'和'有',并建立一个新的字符串“hellothere”。
字符串中的字符可以使用标准[]语法来访问,而像Java和C ++,Python使用从零开始的索引,所以如果str为'你好'海峡[1]是“E”。 如果该指数超出范围的字符串,Python会引发一个错误。 Python的风格(不像Perl的)是暂停,如果它不能告诉做什么,而不是仅仅做了一个默认值。 方便的“切片”的语法(下)还致力于从字符串中提取的字符串。 该LEN(串)函数返回字符串的长度。 按[]语法和LEN()函数实际上在任何序列类型的工作 - 字符串,列表等。Python中试图使其业务在不同类型的工作始终。 Python的新手疑难杂症:不使用“LEN”作为变量名,以避免阻塞了LEN()函数。 该“+”操作符可以连接两个字符串。 在低于变量没有预申报代码的通知 - 只是分配给他们去了。
s = 'hi'
print s[1] ## i
print len(s) ## 2
print s + ' there' ## hi there
不像Java中,“+”不会自动号码或其他类型转换为字符串形式。 该STR()函数转换值字符串形式,使他们能够与其他字符串相结合。
pi = 3.14
##text = 'The value of pi is ' + pi ## NO, does not work
text = 'The value of pi is ' + str(pi) ## yes
数字,该标准操作符,+ / *以通常的方式工作。 没有++运算符,但+ =, - =等方面的工作。 如果你想整数除法,这是最正确的使用2斜杠 - 例如,6 // 5为1(以前为3000蟒蛇,单/ INT是否与分工无论如何整数,但前进//是指示的首选方式要诠释师。)
“打印”操作员打印出一个或多个项目蟒后跟一个换行符(在项目结束后离开尾随逗号来抑制行)。 A“原始”字符串文字是由一个“R”开头,并传送所有字符没有反斜杠的特殊处理,因此R'X \ NX“计算长度-4串'X \ NX”。 A'U'字头让你写一个unicode字符串(Python有很多其他的Unicode支持的功能 - 请参见下面的文档)。
raw = r'this\t\n and that'
print raw ## this\t\n and that
multi = """It was the best of times.
It was the worst of times."""
字符串的方法
下面是一些最常见字符串方法。 一种方法是像一个功能,但它运行“开”的对象。 如果变量s是一个字符串,则代码s.lower()运行该字符串对象的降低()方法,并返回结果(这个想法在对象上运行的方法是基本思路构成对象的一种面向对象编程,OOP)。 下面是一些最常见字符串方法:
s.lower(),s.upper() - 返回字符串的大写或小写版本
s.strip() - 返回空白的字符串从起点和终点删除
s.isalpha()/ s.isdigit()/ s.isspace()... - 测试所有的串字符是在不同的字符类
s.startswith(“其他”),s.endswith(“其他”) - 测试字符串开始或结束与给定的另一个字符串
s.find(“其他”) - 搜索秒钟内给定的另一个字符串(不是正则表达式),并在那里开始或-1返回第一个索引,如果未找到
s.replace(“老”,“新”) - 返回,其中“旧”的所有匹配已经取代了“新”的字符串
s.split('DELIM') - 返回由给定的分隔符分隔字符串的列表。 分隔符不是一个正则表达式,它只是文字。 “AAA,BBB,ccc'.split(”,“) - > [”AAA“,”BBB“,”CCC“。 作为一种方便的特例s.split()(不带参数)分割上的所有空格字符。
s.join(名单) - 分割()相反,连接在一起使用字符串作为分隔符在给定列表中的元素。 如:“---”连接(['AAA','BBB','CCC']) - > AAA --- BBB CCC ---
谷歌搜索“蟒蛇海峡”应该带领您到官方python.org字符串方法 ,其中列出所有的海峡方法。
Python没有单独的字符类型。 相反,像S [8]表达式返回一个字符串长度1包含的字符。 以该字符串长度1,运营商==,<=,......所有的工作,你所期望的,所以大多是你不需要知道,Python没有单独标“char”类型。
串片
在“切片”语法是指序列的子部分的简便方法 - 通常是字符串和列表。 切片[起始:结束]开始是在启动和最多延长,但不包括结束的元素。 在假设我们有S =“你好”
S [1:4]是'ELL' - 开始于索引1和高达延伸但不包括索引4字符
S [1:]为'ELLO' - 无论是省略指数默认字符串的开始或结束
S [:]是“你好” - 忽略两者总是给我们的整个事情复印件(这是复制像一个字符串或列表序列中的Python的方式)
S [1:100]是'ELLO' - 这是太大的索引被截尾的字符串长度
标准的从零开始的索引号给字符串的开头附近容易获得字符。 作为替代方案,Python使用负数给予方便地前往字符的字符串的结尾:S [-1]是最后一个字符'O',S [-2]是'L'下一个到最后炭,等等。 负索引号从字符串的结尾计数回:
S [-1]为“O” - 最后一个字符(从1月底)
S [-4]是“E” - 从4月底
S [: - 3]是'他' - 往上走,但不包括最后3个字符。
S [-3:]是“LLO' - 开始从端第3炭和延伸到字符串的末尾。
这是片整齐的真理,任何指数n, s[:n] + s[n:] == s 。 这个工程即使是N负或出界。 或者换一种说法S [:n]和S [N:]字符串总是分割成两个串部分,保存的所有字符。 正如我们将列表中的部分在后面看到,洗净切片,用列表工作了。
字符串%
Python有一个printf() - 像工厂放在一起的字符串。 %运算符采取左侧(%d个INT%S字符串%F /%G浮点数)一个printf类型的格式字符串,并在右边的元组(匹配值的元组由被分隔的值逗号,通常在括号内分组):
# % operator
text = "%d little pigs come out or I'll %s and %s and %s" % (3, 'huff', 'puff', 'blow down')
上面一行是那种长 - 假设你想打破它分成几行。 在“%”后,你不能只拆分行,你在其他语言中可能的,因为在默认情况下的Python对待每行作为一个单独的声明(在好的方面,这就是为什么我们不需要键入每个分号线)。 为了解决这个问题,请用外组括号整个表达式 - 则表达式允许跨越多行。 这款代号跨线技术也适用于各种分组构建详述如下:()[] {}。
# add parens to make the long-line work:
text = ("%d little pigs come out or I'll %s and %s and %s" %
(3, 'huff', 'puff', 'blow down'))
国际化的字符串(Unicode)的
常规的Python字符串*不* unicode的,他们只是简单的字节。 为了创建一个unicode字符串,请使用字符串中'u'前缀:
> ustring = u'A unicode \u018e string \xf1'
> ustring
u'A unicode \u018e string \xf1'
Unicode字符串是不同类型的,从常规的“STR”字符串对象,但Unicode字符串是兼容的(它们共享的公共超“即basestring”),如果通过一个unicode字符串,而不是不同库,如正则表达式正常工作一个普通的字符串。
Unicode字符串与编码转换为字节,如“UTF-8”,调用ustring.encode(“UTF-8”)的unicode字符串的方法。 去另一个方向,unicode的(S,编码)函数转换编码的纯字节Unicode字符串:
## (ustring from above contains a unicode string)
> s = ustring.encode('utf-8')
> s
'A unicode \xc6\x8e string \xc3\xb1' ## bytes of utf-8 encoding
> t = unicode(s, 'utf-8') ## Convert bytes back to a unicode string
> t == ustring ## It's the same as the original, yay!
True
内置打印不unicode字符串工作充分。 您可以编码()首先在UTF-8或任何打印。 在文件读取部分,有说明如何打开一个文本文件的一些编码和读取unicode字符串的例子。 需要注意的是unicode的处理是一个领域,Python的3000显著清理与此处描述的Python 2.x的行为。
如果声明Python不使用{}包围的代码块,如果/循环/功能等。相反,Python使用冒号(:)和缩进/空格将语句。 对于布尔测试,如果不需要在括号(从C ++ / Java的大的区别),它可以有* ELIF *和*其他*条款(记忆:单词“ELIF”是长度相同的单词“其他”)。
任何值可被用作一个如测试。 “零”的价值观都算为假:无,0,空字符串,空列表,空字典。 还有一个布尔类型包含两个值:true和false(转换为int,这些是1和0)。 Python有通常的比较运算:==,=,<,<=,>,> =! 不像Java和C,==超载与字符串正常工作。 布尔运算符是拼写出单词*和*,*或*,*不*(Python不使用C语言风格&& ||!)。 下面的代码可能看起来像一个警察拉过调速装置 - 请注意,然后/ else语句的每个块是如何与一个开始:和陈述是指压痕分组:
if speed >= 80:
print 'License and registration please'
if mood == 'terrible' or speed >= 100:
print 'You have the right to remain silent.'
elif mood == 'bad' or speed >= 90:
print "I'm going to have to write you a ticket."
write_ticket()
else:
print "Let's try to keep it under 80 ok?"
我发现,省略了“:”我是最常见的语法错误在上面的代码排序打字的时候,大概是因为这是一个额外的东西类型与我的C ++ / Java的习惯。 另外,不要把布尔测试中括号 - 这是一个C / Java的习惯。 如果代码是短暂的,你可以把代码后的同一行“:”像这样的(这适用于功能,循环等也),虽然有些人觉得这是更具可读性在单独的行空间的东西出来。
if speed >= 80: print 'You are so busted'
else: print 'Have a nice day'
Python基础知识之认识字符串的更多相关文章
- python基础知识回顾之字符串
字符串是python中使用频率很高的一种数据类型,内置方法也是超级多,对于常用的方法,还是要注意掌握的. #author: Administrator #date: 2018/10/20 # pyth ...
- 1.12 Python基础知识 - 序列:字符串
字符串是一个有序的字符集合,即字符序列.Pythpn内置数据类型str,用于字符串处理,使用单引号或双引号括起来的字符,就是字符常量,Python解释器会自动创建str型对象实例. 字符串的定义: 1 ...
- python基础知识第二篇(字符串)
基本数据类型 数字 整形 int ---int 将字符串 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- python 爬虫与数据可视化--python基础知识
摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- Python基础知识(五)
# -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...
- Python 基础知识(一)
1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...
随机推荐
- [HTML/HTML5]6 使用图像
6.1 将图像作为Web页面的前景元素 使用img元素,就可以在Web页面中添加图像.img是image的缩写.只需在img元素中添加src(source的缩写)属性,并为该属性设置相应的值,就可以 ...
- systemctl命令用法详解
systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...
- jquery 基础-Ajax应用
使用load()方案异步请求数据 调用格式:load(url,[data],[callback]) 参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功 ...
- CentOS下 MySQL5.7 详细的部署安装流程
MySQL5.7.14安装过程: 下载5.7版本:wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-linux-glibc2 ...
- jmeter 内存溢出解决方法
执行“评论新鲜事”200并发就内存溢出 解决方法: [caozijuan@test09 bin]$ vi jmeter JVM_ARGS="-Xms1024m -Xmx4096m" ...
- WebAPI返回数据类型解惑
本文来自:http://www.cnblogs.com/lzrabbit/archive/2013/03/19/2948522.html 最近开始使用WebAPI,上手很容易,然后有些疑惑 1.Web ...
- Python自动化测试 (九)urllib2 发送HTTP Request
urllib2 是Python自带的标准模块, 用来发送HTTP Request的. 类似于 .NET中的, HttpWebRequest类 urllib2 的优点 Python urllib2 ...
- function,new function,Function,new Function 之间的区别
测试一: var fud01 = function() { var temp = 100; this.temp = 200; return temp + this.temp; } alert(typ ...
- android xfermode绘图
1.fermode:是来自 transfer-modes,在画笔中设置xfermode后,画笔在使用的时候就会应用设置的像素转换模式.就类似于ps中的选取功能,留下的选取是从原选区中去除还是合并,取交 ...
- SqlServer索引使用及维护
在应用系统中,尤其在联机事物处理系统中,对数据查询及处理速度已成为衡量应用系统的标准. 而采用索引来加快数据处理速度也成为广大数据库用户所接受的优化方法. 在良好的数据库设计基础上,能够有效地索引是S ...