二、python字符串操作符

1. 对象标准类型操作符

Python对象的标准类型操作符一共就三种:对象值的比较对象身份的比较布尔类型。其中对象值的比较主要是大于、小于、不等于等的数学比较符;对象身份的比较主要是is和is not这两个符号;布尔类型主要是not、and、or等的逻辑运算符。

字符串标准类型操作符也是这些,在做比较操作的时候,字符串是按照ASCII值的大小来比较的。

2. 序列类型操作符

切片操作符

主要分为三种,分别是正向索引、反向索引、默认索引。下图中显示索引的编号:

注意:起始/结束索引都没有指定的话会返回整个字符串,索引值指定为None,也会返回到字符串的开始或者结尾。

成员操作符

in或者not in。成员操作符判断一个字符或者一个子串是否是另一个字符串的一部分,出现则返回True,否则返回False。

写一个脚本idcheck.py,用来检测python变量。提示一些知识点:

>>> import string
>>> string.uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits
'0123456789'

这里假设python变量至少由两个字符组成。

代码实现:

#! /usr/bin/pythonimport stringalphas = string.letters + '_'
nums = string.digitsprint 'Welcome to the Identifier Checker v1.0'
print 'Python variables must be at least 2 chars long'myInp = raw_input('Identifier to test? ')if len(myInp) > 1:if myInp[0] not in alphas:print 'invalid: first symbol must be alphabetic'else:for otherChar in myInp[1:]:if otherChar not in alphas + nums:print 'invalid: remaining symbols must be alphabetic'breakelse:print 'okay as an Identifier'
else:print 'invalid: python variables must be at least 2 chars long'

这里每次在循环的时候,都要用加号(+)字符串连接符,要开辟新的存储空间,所以效率很低。好的改进方案:

alphanums = alphas + nums
for otherChar in myInp[1:]:if otherChar not in alphanums:

还有就是for-else循环语句,这个else语句只在for循环完整结束,没有遇到break时执行。

连接符(+)

通过连接操作符从原有字符串获得一个新的字符串。

>>> s = 'Spanish Inquisition Made Easy'
>>> import string
>>> string.upper(s[:3] + s[20])
'SPAM'

上面的方法存在性能上的问题,因为python必须为每一个参加连接操作的字符串分配新的内存,包括产生的新的字符串。所以这里推荐使用字符串格式化操作符(%),或者把所有的字符串放到一个类表中,然后用一个join()方法把他们连接在一起。

>>> '%s %s' % ('Spanish', 'Inquisition')
'Spanish Inquisition'
>>> s = ' '.join(('Spanish', 'Inquisition', 'Made Easy'))
>>> s
'Spanish Inquisition Made Easy'
>>> ('%s%s' % (s[:3], s[20])).upper()
'SPAM'

普通字符串转化为Unicode字符串

如果把一个普通字符串和一个Unicode字符串做连接处理,python自动会在连接操作前把普通字符串转化为Unicode字符串。

>>> 'Hello' + u' ' + 'World' +u'!'
u'Hello World!'

3. 只适用于字符串的操作符

格式化操作符

python风格的字符串格式化操作符,只适用于字符串类型,非常类似C语言里面的printf函数的字符串格式化。

python支持两个格式的输入参数。第一种形式是元组,第二种形式是字典类型。

先看一些字符串格式化符号和格式化操作符辅助命令:

看一些具体的例子:

>>> '%x' % 108
'6c'
>>> '%X' % 108
'6C'
>>> '%#x' % 108
'0x6c'
>>> '%f' % 1234.567890
'1234.567890'
>>> '%.2f' % 1234.567890
'1234.57'
>>> '%e' % 1234.567890
'1.234568e+03'
>>>
>>> '%+d' % 4
'+4'
>>> '%+d' % -4
'-4'
>>> 'we are at %d%%' % 100
'we are at 100%'
>>> 'Host: %s Port: %d' % ('mars',80)
'Host: mars Port: 80'
>>> 'MM/DD/YY = %02d/%02d/%d' % (2, 15, 67)
'MM/DD/YY = 02/15/67'

上面的例子用到的是元组作为输入参数,下面看一个字典类型的输入参数:

>>> 'There are %(howmany)d %(lang)s Quotation Symbols' % {'lang':'Python', 'howmany':3}
'There are 3 Python Quotation Symbols'

  

  

  

  

  

  

  

  

转载于:https://www.cnblogs.com/stemon/p/5270201.html

python学习笔记:python字符串相关推荐

  1. Python学习笔记--Python字符串连接方法总结

    声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...

  2. Python学习笔记——Python和基础知识

    Python优缺点 优点 简单----Python是一种代表简单主义思想的语言.阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的 ...

  3. Python学习笔记 - Python语言概述和开发环境

    一.Python简介 1.1  Python语言简史 Python由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无聊时间,决心开发一门 ...

  4. (转载)[python学习笔记]Python语言程序设计(北理工 嵩天)

    作者:九命猫幺 博客出处:http://www.cnblogs.com/yongestcat/ 欢迎转载,转载请标明出处. 如果你觉得本文还不错,对你的学习带来了些许帮助,请帮忙点击右下角的推荐 阅读 ...

  5. Python学习笔记 - Python语法基础

    前言 本篇博文主要介绍Python中的一些最基础的语法,其中包括标识符.关键字.内置函数.变量.常量.表达式.语句.注释.模块和包等内容. 一.标识符.关键字和内置函数 任何一种语言都离不开标识符和关 ...

  6. Python学习笔记 Python概述 编码规范 输出与输入 变量 标识符

    Python学习第一天 Python的概述 1.Python的优缺点 1.1 优点: 1.2 缺点: 2.Python的编码规范 3.注释 3.Python的输出与输入 4.Python中的变量 5. ...

  7. 学python安装-Python学习笔记-Python安装

    Python安装 文章简介:本文介绍在不同操作系统中搭建Python编程环境. 一 搭建编程环境 在不同的操作系统中,Python存在细微的区别,下面介绍两个主要的Python版本. 1.1 Pyth ...

  8. Python学习笔记:字符串和编码

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. 【廖雪峰Python学习笔记】字符串与编码

    字符串与编码 三种字符编码 ASCII编码 :计算机由美国人发明,最早只有127个字符编码-- 大小写英文字母.数字和符号 Unicode:把中文.日文.韩文等所有语言统一到一套编码中,2-4byte ...

  10. Python学习笔记:字符串提取和清洗

    文章目录 一.正则表达式 1.规范表示 2.数量表示 3.逻辑运算符 二.Python正则表达式模块 - re 三.字符串清洗 1.清洗字符串中的数字 2.清除网址中的垃圾字符 四.字符串提取 1.提 ...

最新文章

  1. 人的一生,到底在追求甚么?...
  2. python写背单词软件_python背单词小程序
  3. 深入剖析js命名空间函数namespace
  4. cli3解决 ie11语法错误 vue_使用 VueCLI 3.x 快速搭建Vue + TS + Kbone + KboneUI + 云开发 项目...
  5. CodeForces 258D Little Elephant and Broken Sorting(期望)
  6. Linux:Access time、 Modify time 、Change time 和 find 命令使用解析
  7. 计划任务文件 linux,Linux之任务计划
  8. 51单片机串行口的使用与串行通信
  9. SUSE上搭建Hadoop环境(单机模式+伪分布模式)
  10. 阿里巴巴Java开发手册
  11. Error occurredd during initialization of VM Cound not reserve enough space for object heap
  12. 小程序报错提示Unexpected token in JSON at position
  13. 2021年10月语音合成和语音识别论文月报
  14. iOS新方法systemFontOfSize: weight:
  15. Notepad++和Vivado中文乱码问题
  16. Java:extends 和 implements 的区别
  17. 注意力机制 SE-Net 原理与 TensorFlow2.0 实现
  18. ping包 命令格式 用法集
  19. 在word里,毕业论文和开题报告的参考文献目录如何设置成第二行空两格的格式?(介绍两种方法)
  20. 普洛菲斯触摸屏Proface 口令密码查看 gp3/gp4屏程序都可以解 GP-Pro EX项目密码查看,访问密码查看,上传密码查看,超级密码查看

热门文章

  1. 树型DataGrid的思路
  2. Java编程基础阶段笔记 day03 Java基本语法(中)
  3. HDU-1864最大报销额
  4. [翻译] ios-image-filters
  5. CSS布局:三栏布局,中间栏固定宽度,左右两边自适应
  6. AiLearning:一个 GitHub万星的中文机器学习资源
  7. 谈谈R中的乱码(二)
  8. STL在数组算法的使用
  9. Python + Selenium WebDriver Api 知识回顾
  10. mac XAMPP环境下, 使用php函数mkdir()添加新目录(文件)报错,报错信息:permission denied;...