Python3 字符串

字符串是一个有序的字符序列

如何表示一个字符串:

在非注释中凡是用引号括起来的部分都是字符串;

‘  单引号     ”  双引号      ‘’‘  三单引号    “”“  三双引号

非空字符串中的表示方法:

‘hello’  、   “hello”  、  “”“hello”“”  、 ‘’‘hello’‘’

单引号和双引号三引号的区别:

单引号内的双引号不算结束符;

双引号内的单引号不算结束符;

三引号字符串,也叫所见即所得字符串,
                       字符串中可以包含换行符、制表符以及其他特殊字符; 字符串的换行直接被记录在字符串内部;

  1. >>> "I'm a tree."
  2. "I'm a tree."
  3. >>> 'I am a "tree".'
  4. 'I am a "tree".'
  5. >>>
  1. >>> x = 'hello\nworld!'
  2. >>> y = """hello
  3. world!"""
  4. >>> if x == y:
  5. print("两个字符串相同!")
  6.  
  7. 两个字符串相同!
  8. >>> print(x)
  9. hello
  10. world!
  11. >>> print(y)
  12. hello
  13. world!
  14. >>>

空字符串的表示方法:

‘ ’   、  “ ”  、   '''   '''  、   “”“   ”“”

空字符串的布尔值(bool)为False。

  1. >>> x = ''
  2. >>> bool(x)
  3. False
  4. >>> x = ' '
  5. >>> bool(x)
  6. True
  7. >>>

换行符(\n ):

print("hello\nworld!")

隐式字符串拼接:

x = “aaaaaaaaaaaa”

“aaaaaaaaaaaa”

“aaaaaaaaaaaa”

s = “I'm” ' a tree' 'name:"yangshu" '

用转义序列代表特殊字符;字符串常量中用字符反斜杠 \    ;  后跟一些字符代表特定含义的字符;

\'   单引号 、 \"  双引号 、   \n  换行符

  1. 转义字符 描述
  2. \(在行尾时) 续行符
  3. \\ 反斜杠符号
  4. \' 单引号
  5. \" 双引号
  6. \a 响铃
  7. \b 退格(Backspace)
  8. \e 转义
  9. \000
  10. \n 换行
  11. \v 纵向制表符
  12. \t 横向制表符
  13. \r 回车
  14. \f 换页
  15. \oyy 八进制数,yy代表的字符,例如:\o12代表换行
  16. \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
  17. \uXXX Unicode16位的十六进制表示
    \uXXXXXXXX Unicode32位的十六进制表示

ASCII  字符表

#man ascii <回车>待补充

中文 “\u4e2d\u6587”

Unicode

UTF-8 (unicode  transfrom font)

常用的ASCII编码:

字符          十进制            十六进制

‘0’               48                      0x30

'A'               65                     0x41

'a'               97                      0x61

raw 字符串(原始字符串)

格式: r‘C:\Windows\System32’

'C:\\Windows\\System32'

作用: 将字符串内的反斜杠不做为转义字符。

序列相关的字符串函数:

len(x)函数用于获取字符串序列的长度(长度指字节数);

max(seq) 函数用于获取一个字符串的最大值的字符;

min(seq) 函数用于获取一个字符串的最小值的字符;

  1. >>> >>> len("ASDF")
  2. 4
  3. >>> max("Aa1Bb2")
  4. 'b'
  5. >>> min("Aa1Bb2")
  6. ''
  7. >>>

字符串代码转换函数:

ord(str)  返回一个字符的ASCII的值;

chr(i)     返回i这个值所对应的字符;

数字转换为字符串函数:

hex(i)  将整数转换为十六进制字符串

oct(i)   将整数转换为八进制字符串

bin(i)  将整数转换为二进制字符串

注:int(‘1234’, 10)#1234   转换为十进制

将字符串转换为整数:

int(x, base=0) 将字符串转换为整数

float

bool

complex

将对象转换为字符串类型str函数

str(x)  x可以是任意对象

为什么要字符串转换?

“123” + 4

123 + 4  #127 整数     、    “123” + str(4)  # 1234 新的字符串

字符串的运算:

+     +=           *     *=

+ 加号运算符用于拼接字符串

+=  运算符用源字符串与右边字符串拼接生成新的字符串

  1. >>> 'abc' + ''
  2. 'abc123'
  3. >>> '' + 'abc'
  4. '123abc'
  5. >>>
  1. >>> a = "ABC"
  2. >>> b = "DEF"
  3. >>> c = a + b
  4. >>> print(c)
  5. ABCDEF
  6. >>> a
  7. 'ABC'
  8. >>> a += b
  9. >>> a
  10. 'ABCDEF'
  11. >>>

*  运算符生成重复字符串

*=  运算符生成重复字符串并改变变量的绑定;  (*=右侧的对象只能是整数)

  1. >>> b
  2. 'DEF'
  3. >>> b * 3
  4. 'DEFDEFDEF'
  5. >>>

>>> x = "123"
  >>> x *= 4
  >>> print(x)
  123123123123
  >>>

in   、 not  in  运算符

作用:in/not 用于序列,字典,集合中,用于判断某个值是否存在于对象中, 存在返回TRUE,不存在返回FALSE;

not  in 与in 返回值相反;

  1. >>> s = "My name is 'xiaoming'"
  2. >>> if 'is' in s:
  3. print("is在字符串s中")
  4. else:
  5.  
  6. print("is不在字符串s中")
  7. >>>

字符串比较:

>     >=      <    <=    ==     !=

  1. >>> "ABC" > "ABB"
  2. True
  3. >>> "ADC" < "ABC"
  4. False
  5. >>> "ABC" >= ""
  6. True
  7. >>> "AD" >= "ABC"
  8. True
  9. >>> "AB" < "ABC"
  10. True
  11. >>> "ABC" == "abc"
  12. False
  13. >>>

python 运算符优先级(自上而下,由高到低):

**    指数

~ , + , -    按位反转, 一元正号, 一元负号

* , / , // ,  %   乘。。。

+ , -  加法减法

>>   <<   右移左移

&         位于

^          异位或

|        位或

<  , <=   ,> ,>=, ==,  !=  , is ,  is not ,   in  , not in 比较等。。

not

and

or

if    else 条件表达式

索引 index

python字符串是不可以改变的“字符”序列。

语法:字符串{【整数值】

说明:  序列都可以用索引(index)来访问序列的对象。

序列正向的索引是从0开始的, 第二个索引为1 ......最后一个为   len(s)-1

序列的反向 索引是从-1开始的, -2 代表倒数第二个....., 最后一个是 -len(s)

  1. #!/usr/bin/python
  2.  
  3. s = input("请输入一个字符串:")
  4. print("第一个字符", s[0],"和",s[-len(s)])
  5. print("中间字符串:",s[len(s)//2])
  6. print("最后一个字符:",s[-1],"和",s[len(s)-1])
  7. >>> ================================ RESTART ================================
  8. >>>
  9. 请输入一个字符串:abcdefgh
  10. 第一个字符 a a
  11. 中间字符串: e
  12. 最后一个字符: h h
  13. >>>

切片 slice (分片)

用于字符串中,从字符串序列中取出相应的元素,重新组成一个新的字符串序列。

语法: 字符串【(开始索引b): (结束索引e) :(步长s)】      ;注:小括号括起来的部分代表可以省略;

  1. >>> s = "abcdefgh"
  2. >>>
  3. >>> s[:]
  4. 'abcdefgh'
  5. >>> s[2:4]
  6. 'cd'
  7. >>> s[2:3]
  8. 'c'
  9. >>> s[2:2]
  10. ''
  11. >>> s[2:0]
  12. ''
  13. >>> s[2:]
  14. 'cdefgh'
  15. >>> s[:2]
  16. 'ab'
  17. >>>

>>> s[0:6:2]
'ace'
>>> s[0:100:2]
'aceg'
>>> s[::2]
'aceg'
>>> s[::3]
'adg'
\
>>> s[::4]
'ae'
>>> s[::5]
'af'
>>> s[::100]
'a'
>>>

字符串的方法(method)

字符串属性的方法: 对象.属性

s.lower()            生成将英文转化为小写的字符串;

s.upper()          生成将英文转化为大写的字符串;

s.title()               生成将因为单词首字母大写的字符串;

s.isdigit()            判断字符串是否为数字

s.isalpha()          判断字符串是否为英文字符

s.islower()          判断字符串是否都为小写字符串

s.isupper()          判断字符串是否都为大写字符串

s.strip()               返回去掉左右空白字符串的字符串;

s.lstrip()             返回去掉左空白字符串的字符串;

s.rstrip()              返回去掉右空白字符串的字符串;

s.count(sub,  [, start [,end]])   返回一个字符串子串的个数;

s.find(sub [, start [, end]])    返回一个字符串sub的索引,失败返回-1  ;

s.replace(old, new [, count])    用新字符串替换旧字符串 ;

  1. >>> ''.isalpha()
  2. False
  3. >>> "ABC".isalpha()
  4. True
  5. >>> "AB C".isalpha()
  6. False
  7. >>> "ABC".strip()
  8. 'ABC'
  9. >>> " ABC \n".strip()
  10. 'ABC'
  11. >>> " ABC \n".rstrip()
  12. ' ABC'
  13. >>> "AB AC ABC".find("AB")
  14. 0
  15. >>> "AB AC ABC".find("AB", 1)
  16. 6
  17. >>> "AB AC ABC".find("AB", 0)
  18. 0
  19. >>>
  20. >>> "AB AC ABC".find("A", 4)
  21. 6
  22. >>> "AB AC ABC".find("A", 4, 7)
  23. 6
  24. >>> "AB AC ABC".find("A", 4, 6)
  25. -1
  26. >>> "AB AC ABC".replace("AB", "")
  27. ' AC C'>>> "AB AC ABC".replace("AB", "++++++")
  28. '++++++ AC ++++++C'
  29. >>>

用help 查找str 这个类型的帮助;

help(str)

help("__main__")

字符串的格式化表达式:

运算符   %

作用: 生成一定格式的字符串;

语法: 格式化字符串  %   参数值 ;  或者    格式化字符串  %  (参数值1,参数值2.。。。)

格式化字符串中的占位符:

%s        字符串

%r         字符串,使用repr(而不是str)

%c         整数转单个字符

%d         十进制整数

%o         八进制整数

%x          十六进制整数(字符a-f 小写)

%X         十六进制整数  (字符A-F大写)

%e         指数型浮点数,如2.9e + 8

%E        指数型浮点数,如2.9E + 8

%f,%F    浮点十进制形式

%%        等同于一个%

  1. >>> name = 'xiaoming'
  2. >>> age =
  3. >>> "name: %s, age: %d" % (name, age)
  4. 'name: xiaoming, age: 23'
  5. >>> "%(name)s今年%(age)d岁." % {'age':, 'name':'xiaoming'} #基于字典的格式化
  6. 'xiaoming今年23岁.'
  7. >>>

占位符和类型码之间的格式语法:

-   号  左对齐、  + 右对齐 、 0 补零  、  width 宽度 、  pricision 精度;

  1. >>> "%10d" %
  2. ''
  3. >>> "%-10d" %
  4. '123 '
  5. >>> "%10d" % -
  6. ' -123'
  7. >>> "%-10d" % -
  8. '-123 '
  9. >>> "%0d" %
  10. ''
  11. >>> "%010d" %
  12. ''
  13. >>> "%10s" % "abc"
  14. ' abc'
  15. >>> "%7.2f" % 1.2345678 #宽度7, 保留小数点2位
  16. ' 1.23'
  17. >>>

Python之路,第四篇:Python入门与基础4的更多相关文章

  1. python之路第四篇(基础篇)

    一.冒泡算法实现: 方法一: li = [13,33,12,80,66,1] print li for m in range(4): num1 = li[m] num2 = li[m+1] if nu ...

  2. Python之路(第四篇):Python基本数据类型列表、元组、字典

    一.列表 1.列表 list ,是一个类,li = [1,2,"nicholas"] li是通过list类创建的对象. 2.list特点: 用中括号括起来,用逗号分割每个元素,列表 ...

  3. 【Python之路】第九篇--Python基础之线程、进程和协程

    进程与线程之间的关系 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除.线程可与属于同一进程的其它线程共享进程所拥有的全 ...

  4. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  5. 【Python之路】特别篇--Python面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  6. Python之路【第九篇】堡垒机基础&数据库操作

    复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...

  7. Python之路(第八篇)Python内置函数、zip()、max()、min()

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  8. Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...

  9. 【Python之路】特别篇--Python切片

    字符串切片操作 切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割. 注意: 数是可选的,而冒号是必须的. consequence[start:end:step] 切片操作符中的 ...

  10. 【Python之路】特别篇--Python内置函数

    abs() 求绝对值 i = abs(-100) print(i) # 100 all() 循环里面的参数 如果每个元素都为真,那么all返回值为真  假: 0 False None "&q ...

随机推荐

  1. daal utils printNumericTable

    #=============================================================================== # Copyright 2014-20 ...

  2. JBOSS禁用delete和put方法教程

    一.背景说明(与此节修复没多大关系可跳过) 今天应用报扫描出“启用不安全的HTTP方法”漏洞需要进行修复,看后边还有IIS的修复建议:一边不满怎么用IIS一边研究了具体操作半天,由于IIS不同版本操作 ...

  3. Android 之常用布局

    LinearLayout 线性布局. android:orientation="horizontal" 制定线性布局的排列方式 水平 horizontal 垂直 vertical ...

  4. suffix word al ain aire out ~A1

    1◆ al 2◆ ain ~的人   3◆ aire 表名词  

  5. Win10系列:VC++ 定时器

    计时器机制俗称"心跳",表示以特定的频率持续触发特定事件和执行特定程序的机制.在开发Windows应用商店应用的过程中,可以使用定义在Windows::UI::Xaml命名空间中的 ...

  6. QuickStart系列:docker部署之PostgreSQL

    mysql --> mariadb --> postgresql 官网简介 https://www.postgresql.org/ 使用的镜像名称 centos/postgresql-96 ...

  7. 联想E431 安装ubuntu16.04

    http://jingyan.baidu.com/article/3c48dd348bc005e10be358eb.html 按照这个教程安装成功!!

  8. DBProxy 读写分离使用说明

    美团点评DBProxy读写分离使用说明   目的 因为业务架构上需要实现读写分离,刚好前段时间美团点评开源了在360Atlas基础上开发的读写分离中间件DBProxy,关于其介绍在官方文档已经有很详细 ...

  9. S2 深入.NET和C#编程 笔试测试错题积累

    ---恢复内容开始--- <深入.NET平台和C#编程>内部测试题-笔试试卷错题积累 1: 1) 以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储 ...

  10. 玩转X-CTR100 l STM32F4 l DAC数字模拟转换

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 DAC接口 ...