Python之路,第四篇:Python入门与基础4
Python3 字符串
字符串是一个有序的字符序列
如何表示一个字符串:
在非注释中凡是用引号括起来的部分都是字符串;
‘ 单引号 ” 双引号 ‘’‘ 三单引号 “”“ 三双引号
非空字符串中的表示方法:
‘hello’ 、 “hello” 、 “”“hello”“” 、 ‘’‘hello’‘’
单引号和双引号三引号的区别:
单引号内的双引号不算结束符;
双引号内的单引号不算结束符;
三引号字符串,也叫所见即所得字符串,
字符串中可以包含换行符、制表符以及其他特殊字符; 字符串的换行直接被记录在字符串内部;
- >>> "I'm a tree."
- "I'm a tree."
- >>> 'I am a "tree".'
- 'I am a "tree".'
- >>>
- >>> x = 'hello\nworld!'
- >>> y = """hello
- world!"""
- >>> if x == y:
- print("两个字符串相同!")
- 两个字符串相同!
- >>> print(x)
- hello
- world!
- >>> print(y)
- hello
- world!
- >>>
空字符串的表示方法:
‘ ’ 、 “ ” 、 ''' ''' 、 “”“ ”“”
空字符串的布尔值(bool)为False。
- >>> x = ''
- >>> bool(x)
- False
- >>> x = ' '
- >>> bool(x)
- True
- >>>
换行符(\n ):
print("hello\nworld!")
隐式字符串拼接:
x = “aaaaaaaaaaaa”
“aaaaaaaaaaaa”
“aaaaaaaaaaaa”
s = “I'm” ' a tree' 'name:"yangshu" '
用转义序列代表特殊字符;字符串常量中用字符反斜杠 \ ; 后跟一些字符代表特定含义的字符;
\' 单引号 、 \" 双引号 、 \n 换行符
- 转义字符 描述
- \(在行尾时) 续行符
- \\ 反斜杠符号
- \' 单引号
- \" 双引号
- \a 响铃
- \b 退格(Backspace)
- \e 转义
- \000 空
- \n 换行
- \v 纵向制表符
- \t 横向制表符
- \r 回车
- \f 换页
- \oyy 八进制数,yy代表的字符,例如:\o12代表换行
- \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
- \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) 函数用于获取一个字符串的最小值的字符;
- >>> >>> len("ASDF")
- 4
- >>> max("Aa1Bb2")
- 'b'
- >>> min("Aa1Bb2")
- ''
- >>>
字符串代码转换函数:
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 新的字符串
字符串的运算:
+ += * *=
+ 加号运算符用于拼接字符串
+= 运算符用源字符串与右边字符串拼接生成新的字符串
- >>> 'abc' + ''
- 'abc123'
- >>> '' + 'abc'
- '123abc'
- >>>
- >>> a = "ABC"
- >>> b = "DEF"
- >>> c = a + b
- >>> print(c)
- ABCDEF
- >>> a
- 'ABC'
- >>> a += b
- >>> a
- 'ABCDEF'
- >>>
* 运算符生成重复字符串
*= 运算符生成重复字符串并改变变量的绑定; (*=右侧的对象只能是整数)
- >>> b
- 'DEF'
- >>> b * 3
- 'DEFDEFDEF'
- >>>
>>> x = "123"
>>> x *= 4
>>> print(x)
123123123123
>>>
in 、 not in 运算符
作用:in/not 用于序列,字典,集合中,用于判断某个值是否存在于对象中, 存在返回TRUE,不存在返回FALSE;
not in 与in 返回值相反;
- >>> s = "My name is 'xiaoming'"
- >>> if 'is' in s:
- print("is在字符串s中")
- else:
- print("is不在字符串s中")
- >>>
字符串比较:
> >= < <= == !=
- >>> "ABC" > "ABB"
- True
- >>> "ADC" < "ABC"
- False
- >>> "ABC" >= ""
- True
- >>> "AD" >= "ABC"
- True
- >>> "AB" < "ABC"
- True
- >>> "ABC" == "abc"
- False
- >>>
python 运算符优先级(自上而下,由高到低):
** 指数
~ , + , - 按位反转, 一元正号, 一元负号
* , / , // , % 乘。。。
+ , - 加法减法
>> << 右移左移
& 位于
^ 异位或
| 位或
< , <= ,> ,>=, ==, != , is , is not , in , not in 比较等。。
not
and
or
if else 条件表达式
索引 index
python字符串是不可以改变的“字符”序列。
语法:字符串{【整数值】
说明: 序列都可以用索引(index)来访问序列的对象。
序列正向的索引是从0开始的, 第二个索引为1 ......最后一个为 len(s)-1
序列的反向 索引是从-1开始的, -2 代表倒数第二个....., 最后一个是 -len(s)
- #!/usr/bin/python
- s = input("请输入一个字符串:")
- print("第一个字符", s[0],"和",s[-len(s)])
- print("中间字符串:",s[len(s)//2])
- print("最后一个字符:",s[-1],"和",s[len(s)-1])
- >>> ================================ RESTART ================================
- >>>
- 请输入一个字符串:abcdefgh
- 第一个字符 a 和 a
- 中间字符串: e
- 最后一个字符: h 和 h
- >>>
切片 slice (分片)
用于字符串中,从字符串序列中取出相应的元素,重新组成一个新的字符串序列。
语法: 字符串【(开始索引b): (结束索引e) :(步长s)】 ;注:小括号括起来的部分代表可以省略;
- >>> s = "abcdefgh"
- >>>
- >>> s[:]
- 'abcdefgh'
- >>> s[2:4]
- 'cd'
- >>> s[2:3]
- 'c'
- >>> s[2:2]
- ''
- >>> s[2:0]
- ''
- >>> s[2:]
- 'cdefgh'
- >>> s[:2]
- 'ab'
- >>>
>>> 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]) 用新字符串替换旧字符串 ;
- >>> ''.isalpha()
- False
- >>> "ABC".isalpha()
- True
- >>> "AB C".isalpha()
- False
- >>> "ABC".strip()
- 'ABC'
- >>> " ABC \n".strip()
- 'ABC'
- >>> " ABC \n".rstrip()
- ' ABC'
- >>> "AB AC ABC".find("AB")
- 0
- >>> "AB AC ABC".find("AB", 1)
- 6
- >>> "AB AC ABC".find("AB", 0)
- 0
- >>>
- >>> "AB AC ABC".find("A", 4)
- 6
- >>> "AB AC ABC".find("A", 4, 7)
- 6
- >>> "AB AC ABC".find("A", 4, 6)
- -1
- >>> "AB AC ABC".replace("AB", "")
- ' AC C'>>> "AB AC ABC".replace("AB", "++++++")
- '++++++ AC ++++++C'
- >>>
用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 浮点十进制形式
%% 等同于一个%
- >>> name = 'xiaoming'
- >>> age =
- >>> "name: %s, age: %d" % (name, age)
- 'name: xiaoming, age: 23'
- >>> "%(name)s今年%(age)d岁." % {'age':, 'name':'xiaoming'} #基于字典的格式化
- 'xiaoming今年23岁.'
- >>>
占位符和类型码之间的格式语法:
- 号 左对齐、 + 右对齐 、 0 补零 、 width 宽度 、 pricision 精度;
- >>> "%10d" %
- ''
- >>> "%-10d" %
- '123 '
- >>> "%10d" % -
- ' -123'
- >>> "%-10d" % -
- '-123 '
- >>> "%0d" %
- ''
- >>> "%010d" %
- ''
- >>> "%10s" % "abc"
- ' abc'
- >>> "%7.2f" % 1.2345678 #宽度7, 保留小数点2位
- ' 1.23'
- >>>
Python之路,第四篇:Python入门与基础4的更多相关文章
- python之路第四篇(基础篇)
一.冒泡算法实现: 方法一: li = [13,33,12,80,66,1] print li for m in range(4): num1 = li[m] num2 = li[m+1] if nu ...
- Python之路(第四篇):Python基本数据类型列表、元组、字典
一.列表 1.列表 list ,是一个类,li = [1,2,"nicholas"] li是通过list类创建的对象. 2.list特点: 用中括号括起来,用逗号分割每个元素,列表 ...
- 【Python之路】第九篇--Python基础之线程、进程和协程
进程与线程之间的关系 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除.线程可与属于同一进程的其它线程共享进程所拥有的全 ...
- Python之路(第五篇) Python基本数据类型集合、格式化、函数
一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
- 【Python之路】特别篇--Python面向对象(进阶篇)
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- Python之路【第九篇】堡垒机基础&数据库操作
复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...
- Python之路(第八篇)Python内置函数、zip()、max()、min()
一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...
- Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数
一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...
- 【Python之路】特别篇--Python切片
字符串切片操作 切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割. 注意: 数是可选的,而冒号是必须的. consequence[start:end:step] 切片操作符中的 ...
- 【Python之路】特别篇--Python内置函数
abs() 求绝对值 i = abs(-100) print(i) # 100 all() 循环里面的参数 如果每个元素都为真,那么all返回值为真 假: 0 False None "&q ...
随机推荐
- daal utils printNumericTable
#=============================================================================== # Copyright 2014-20 ...
- JBOSS禁用delete和put方法教程
一.背景说明(与此节修复没多大关系可跳过) 今天应用报扫描出“启用不安全的HTTP方法”漏洞需要进行修复,看后边还有IIS的修复建议:一边不满怎么用IIS一边研究了具体操作半天,由于IIS不同版本操作 ...
- Android 之常用布局
LinearLayout 线性布局. android:orientation="horizontal" 制定线性布局的排列方式 水平 horizontal 垂直 vertical ...
- suffix word al ain aire out ~A1
1◆ al 2◆ ain ~的人 3◆ aire 表名词
- Win10系列:VC++ 定时器
计时器机制俗称"心跳",表示以特定的频率持续触发特定事件和执行特定程序的机制.在开发Windows应用商店应用的过程中,可以使用定义在Windows::UI::Xaml命名空间中的 ...
- QuickStart系列:docker部署之PostgreSQL
mysql --> mariadb --> postgresql 官网简介 https://www.postgresql.org/ 使用的镜像名称 centos/postgresql-96 ...
- 联想E431 安装ubuntu16.04
http://jingyan.baidu.com/article/3c48dd348bc005e10be358eb.html 按照这个教程安装成功!!
- DBProxy 读写分离使用说明
美团点评DBProxy读写分离使用说明 目的 因为业务架构上需要实现读写分离,刚好前段时间美团点评开源了在360Atlas基础上开发的读写分离中间件DBProxy,关于其介绍在官方文档已经有很详细 ...
- S2 深入.NET和C#编程 笔试测试错题积累
---恢复内容开始--- <深入.NET平台和C#编程>内部测试题-笔试试卷错题积累 1: 1) 以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储 ...
- 玩转X-CTR100 l STM32F4 l DAC数字模拟转换
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DAC接口 ...