python基础第三天
字符串 str
作用:
用来记录文本(文字)信息,给人类识别用的,为人们提供注释解释说明
表示方式:
在非注释中,凡是用引号括起来的部分都是字符串
‘ 单引号
" 双引号
‘‘‘ 三单引号
""" 三双引号
空字符串的字面值表示方法
‘‘
""
‘‘‘
"""
单引号和双引号的区别:
单引号的内的双引号不算结束符
双引号的内的单引号不算结束符
扩展:因为解释执行器根据单引号为开始符往后找单引号作为结束符,要是双引号为开始符,往后找到双引号结束为止。
三引号字符串的作用:多行字符串
三引号字符串中的换行会自动转换为换行符
三引号内可以包含单引号和双引号
示例:
1 s = ‘welcome to beijing!\nI like python!\nI am Studing!‘ 2 print(s)
隐式字符串字面值连接:注意:只用常量值才可以
1 s = "I‘m a tencher!" ‘My name is liuzhihua‘ 2 >>> s 3 "I‘m a tencher!My name is liuzhihua"
如果一个字符串同时包含如下字符该怎么办?
用转义序列代表特殊字符
字符串字面值中,用字符反斜杠(\)
后跟一些字符代表特殊的一个字符
反斜杠转义字符表:
\‘ 单引号
\" 双引号
\‘‘‘ 三单引号
\""" 三双引号
\\ 一个反斜杠
\n 换行
\r 返回光标至首行
示例:
1 >>> print(‘ABCD\rab‘) 2 abCD
\t 水平制表符(有的终端默认4空格,有的默认8个空格)
\v 垂直制表符
\f 换页
\b 倒退
\0 空字符,字符值为空
\xXX XX为两位十六进制表示的字符 ASCII编码:ASCII表:$ man ascii
示例:print(‘\x41‘,‘\x42‘) 输出 A B
常用的ASCII编码:(0-127共128个(十进制))
字符 十进制 十六进制
‘0‘ --‘9‘ 48 --57 0x30--0x39
‘A‘ --‘Z‘ 65 --90 0x41--0x5a
‘a‘ --‘z‘ 97 --122 0x61--0x7a
Unicode
同一编码:分为Unicode16字符和Unicode32字符
\uXXXX XXXX个十六进制表示的Unicode16字符2**16=65536(0-65535)
\UXXXXXXXX 8个X十六进制表示的Unicode32字符2**32
计算机存储文字,是以图片形式保持,用整数返回
序列的概念
字符串就是序列
求序列的长度函数len
len(x) 返回字符串的字符个数
raw 字符串(原始字符串)
格式:
r‘字符串内容‘
r"字符串内容"
r‘‘‘字符串内容‘‘‘
r"""字符串内容"""
作用:
让转义符号\ 无效
在Python中,由“r”开头的作用=字符串的原始含义
dos = r"c:\news"
“例如r"c:\news",由r开头引起的字符串就是声明了后面引号里的东西是原始字符串,在里面放任何字符都表示该字符的原始含义。
这种方法在做网站设置和网站目录结构的时候非常有用,使用了原始字符串就不需要转义了。”
示例:
1 s = ‘C:\newfile\test.py‘ 2 print(s) 3 print(len(s)) 4 5 s = r‘C:\newfile\test.py‘ 6 print(s) 7 print(len(s))
字符串的运算:
+ 加号运算符用于拼接字符串
* 运算符用于生产重复的字符串
示例:
1 s = "ABC" +"DEF" # s = "ABCDEF" 2 s1 = ‘123‘ * 3 # s1 = ‘123123123‘
注:同类型的数据才能相加,相乘只能和整数相乘
in / not in 运算符
作用:
用于判断某个字符串是否在当前字符串中出现过,如果出现过返回True,否则返回False。
扩展:字符串只要完整在当前字符串出现过就返回True
语法:
对象 in 字符串
示例:
s = ‘welcome to tarena‘
‘to‘ in s # True
‘wei‘ in s # False
‘welc‘ in s # True
字符串的比较运算
运算符:
> >= < <= == !=
规则:
依次从左到右按编码值进行比较,直到最短字符串结束为止。
比较的它们在计算机内数字编码(ASCII编码),比较出结果就不在比较。
示例:
1 ‘a‘ < ‘b‘ #True 2 ‘abc‘ < ‘abd‘ #True 3 ‘a‘ < ‘ab‘ #True 4 ‘abc‘ < ‘acb‘ #False 5 ‘a‘ > ‘1232443545‘ #True 6 ‘a‘ > ‘ASAADASDAAS‘ #True
字符串的索引操作(index)
索引
语法:
字符串[整数表达式]
说明:
Python序列都可以用索引来访问序列中的对象
Python 序列的正向索引是从0开始第二个索引是1,最后一个索引是len(s)-1.
Python 序列的反向索引最后是-1,倒数第二个索引是-2,第一个一个索引是-len(s).
切片(slice)
作用:
从一个字符串序列中取出相应元素重新组成一个字符串序列
语法:
字符串[(开始索引b):(结束索引e)(:(步长))]
注:小括号()括起的部分代表可以省略
说明:
1.开始索引是切片开始切下的位置,0代表第一个元素,1代表第二元素,-1代表最后一个元素
2.结束索引是切片的终止索引(但不包含终止点)
3.步长是切片每次获取完当前元素后移动的方向和偏移量。没有步长,相当于取值完成后向右移动一个索引位置
(步长默认是1)。
3.1.当步长为正数时,取正向切片:
开始索引为0,结束索引默认为len(s)
3.2.当步长为负数时,取反向切片:
默认的起始位置是最后一个元素,终止位置是第一个元素的前一个位置。
python字符串格式化符号
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | 根据值的大小决定使用%f活%e |
%G | 作用同%g,根据值的大小决定使用%f活%e |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零(‘0‘),在十六进制前面显示‘0x‘或者‘0X‘(取决于用的是‘x‘还是‘X‘) |
0 | 显示的数字前面填充‘0‘而不是默认的空格 |
% | ‘%%‘输出一个单一的‘%‘ |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
Python转义字符
在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\‘ | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数yy代表的字符,例如:\o12代表换行 |
\xyy | 十进制数yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
函数
python3中常用与序列的函数
len(x) 返回序列的长度
max(x) 返回序列的最大值
min(x) 返回序列的最小值
示例:
1 s = ‘hello‘ 2 len(s) >>> 5 3 max(s) >>> ‘o‘ 4 min(s) >>> ‘e‘
字符串编码转换函数:
ord(c) 返回一个字符的Unicode值
1 >>> ord("宋") 2 23435 3 >>> ord("红") 4 32418
chr(i) 返回这个整数值所对应的字符
整数转字符串函数
bin(i) 把整数转换给二进制字符串
oct(i) 把整数转换给八进制字符串
hex(i) 把整数转换给十六进制字符串
字符串构造函数:
str(obj = ‘‘) 将对象转换为字符串
示意:
‘123‘ + 456 # 出错,不合法
str(True) #‘True‘
str(None) #‘None‘
str(3.14) #‘3.14‘
常用的字符串方法(method):
语法:
对象名.方法(方法传参)
示例:s = ‘abc‘
s.alpha()
文档参见:
isdigit() :判断全部是否为数字,全部为数字则返回True,否则返回False。
isalpha() :判断全部是否为字母,全部为字母则返回True,否则返回False。
isupper() :判断字母否是全部为大写,是则返回True,否则返回False。
islower() :判断字母否是全部为小写,是则返回True,否则返回False。
count(s,start,end) :返回子串在字符串个数,开始和结束位置可以不选择
find(s,start,end) :返回子串在字符中索引的位置,没有找到则返回-1
upper() :把字符串的字母全部转化为大写
lower() :把字符串的字母全部转化为小写
strip() :删除字符串左右两边的空格
lstrip() :删除字符串右两边的空格
rstrip() :删除字符串左两边的空格
startswith(s,start,end) :检查开始的字符是否
endswith(s,start,end) :检查结束的字符是否
center(number,[fill]) :把字符按照输入的数字空格排放在中心,其他的地方填充
replace(old,new,count) :
练习:
1.输入一个字符串用变量s绑定
1.1判断你输入的字符串有几个空格
1.2讲原字符串的左右空白字去掉,打印出剩余的字符个数
1.3判断你输入的是否数字
1.4如果是数字,判断这个数字是否大于100.
2.输入三行文字,让这三行文字在一个方框内居中显示:
如输入:
hello!
I‘m studing python
I like python
显示如下:
+----------------------------+
| hello! |
| I‘m studing python |
| I like python |
+----------------------------+
注意:请不要输入中文
1 #符串work.py 2 #1.写一个程序,输入一段字符串,如果字符串不为空,把第一个字符的编码值打印出; 3 #2.写一个程序,输入整数值(0--65535),打印出这个数值对应的字符。 4 while True: 5 6 s = input(‘请输入:‘) 7 if s == ‘‘: 8 print(‘你输入的是空的字符串‘) 9 else: 10 print(s,‘这个字符串第一个字符的编码值是‘,ord(s[0])) 11 i = int(input(‘请输入0至65535之间的一个整数:‘)) 12 print(i,"这个整数对应的字符是",chr(i)) 13 choice = input("输入0退出,按其他继续输入") 14 if choice == ‘0‘: 15 break
1 #字符串.py 2 #输入一个字符串,把字符串的第一个字符和最后一个字符去掉,打印出处理的结果。 3 #输入任意字符串,判断这个字符串是否回文:回文示例:上海自来水来自海上 4 while True: 5 s = input("请输入:") 6 print(‘原来字符串:‘,s,"去掉第一和最后一个字符的处理结果:",s[1:-1]) 7 #l=len(s)//2 8 #if s[0:l+1] == s[-1:-(l+2):-1]: #拿前后半段来对比 9 if s == s[::-1]: #直接反向排序来对比 10 print(s,‘是回文‘) 11 else: 12 print(s,‘不是回文‘) 13 choice = input(‘输入0退出,按其他继续输入:‘) 14 if choice == ‘0‘: 15 break
1 # 1.输入一个字符串用变量s绑定 2 # 1.1判断你输入的字符串有几个空格 3 # 1.2将原字符串的左右空白字去掉,打印出剩余的字符个数 4 # 1.3判断你输入的是否数字 5 # 1.4如果是数字,判断这个数字是否大于100. 6 while True: 7 s = input(‘请输入:‘) 8 space = s.count(‘ ‘) 9 s1 = s.replace(‘ ‘,‘‘) 10 l = len(s1) 11 print(s,"你输入的字符串有",space,‘空格‘) 12 print(‘去掉‘,space,‘空格后‘,‘剩余的字符个数:‘,l) 13 if s.isdigit(): 14 if int(s) <= 100: 15 print(int(s),‘小于等于100‘) 16 else: 17 print(int(s),‘大于100‘) 18 else: 19 print(s,‘不是一个纯数字字符串‘) 20 choice = input("按0退出,按其他请继续输入") 21 if choice == ‘0‘: 22 break
1 # 2.输入三行文字,让这三行文字在一个方框内居中显示: 2 # 如输入: 3 # hello! 4 # I‘m studing python 5 # I like python 6 # 显示如下: 7 # +----------------------------+ 8 # | hello! | 9 # | I‘m studing python | 10 # | I like python | 11 # +----------------------------+ 12 # 注意:请不要输入中文 13 while True: 14 s = input(‘请输入‘) 15 s1 = input(‘请输入‘) 16 s2 = input(‘请输入‘) 17 print(‘+‘+‘-‘*30+‘+‘) 18 print(‘|‘+s.center(30)+‘|‘) 19 print(‘|‘+s1.center(30)+‘|‘) 20 print(‘|‘+s2.center(30)+‘|‘) 21 print(‘+‘+‘-‘*30+‘+‘) 22 print(‘=‘*(lenght+4)) 23 #方法2 24 lenght = max(len(s),len(s1),len(s2))#来控制宽度 25 print(‘+‘+‘-‘*(lenght+2)+‘+‘) 26 print(‘|‘+s.center(lenght+2)+‘|‘) 27 print(‘|‘+s1.center(lenght+2)+‘|‘) 28 print(‘|‘+s2.center(lenght+2)+‘|‘) 29 print(‘+‘+‘-‘*(lenght+2)+‘+‘) 30 choice = input("按0退出,按其他请继续输入") 31 if choice == ‘0‘: 32 break
原文地址:https://www.cnblogs.com/Alan-Song/p/9614197.html