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 ...
随机推荐
- php获取当月天数及当月第一天及最后一天
1.获取上个月第一天及最后一天. echo date('Y-m-01', strtotime('-1 month')); echo "<br/>"; ech ...
- InnoDB表空间、段、区
1. 表空间是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中.默认,InnoDB存储引擎只有一个表空间ibdata1,即所有数据都存放在这个表空间内.如果用户启用了参数innodb_ ...
- vuex的学习例子
最近在学习vuejs,一直有听说vuex,用来实现多组件共享的一种状态管理模式,但是网上都说,不要为了用vuex而用vuex,大概意思就是尽量少用vuex,一些小项目可以用bus来实现组件之间的传值问 ...
- !important 的绝对控制样式
<head> <style type="text/css"> div{background-color: blue !important;} </st ...
- python 转换代码格式
import os dirname="C:\\Users\\haier\\Desktop\\new" def walk(path): for item in os.listdir( ...
- laravel在控制器中动态创建数据表
Schema::connection('usertable')->create('test', function ($table) { $table->increments('id'); ...
- 微信公众号 access_token 没有过期 却失效
最近在开发微信项目的时候 access_token 缓存到 redis里面的,明明在两个小时的有效期内 微信却提示 "errcode":40001,"errmsg& ...
- JS-封装类或对象的最佳方案
JS封装类或对象的最佳方案 面向对象强大的优点之一是能够创建自己专用的类或者对象,封装一组属性和行为.抛开性能来说,JS要比面向对象语言如JAVA要灵活好用的多,组装数据结构很灵活方便.那么我们如何来 ...
- windows下的pycharm配置 linux环境
由于最近学习python的需要,为了方便程序的调试,尝试在Windows下的Pycharm远程连接到虚拟机中Centos下的python环境.(这里我采用的是ssh的远程连接)1.准备工作: 固定ce ...
- 【原创】<笔试题> 深圳市天软科技开发有限公司
时间:2018.03.03 上午 1.编写函数,实现字符串比较功能. 参考:http://blog.csdn.net/liubinzi123/article/details/8271683 /* * ...