python的日常(一)——字符串学习
python进阶的回顾:
基本输入输出:
input('提示')
print(对象1, 对象2, .... sep=' ', end='\n')
if 语句(条件语句,分支语句):
if xxxx: pass
if xxxx: pass else: pass if xxxx: pass elif yyyy: pass elif zzzz: pass
布尔运算 not and(与) or(或) x and y x or y
一元运算符 + (正号) - (负号)
条件表达式 1 + 2 if 5 > 6 else 4 + 5
pass 语句
pow 函数 x ** y
隐式换行 () [] {}
接下来针对python中很重要的数据结构字符串进行学习
字符串 str
作用:用来记录文本(文字)信息
字符串的表示方法:在非注释中,凡是用引号括起来的部分都是字符串 ' 单引号 " 双引号 ''' 三单引号 """ 三双引号
空字符串的字面值表示方式
'' "" '''''' """"""
非空字符串的字面值表示方式
'hello' "hello" '''hello''' """hello"""
单引号和双引号的区别: 单引号内的双引号不算结束符 双引号内的单引号不算结束符
三引号字符串:
作用:三引号字符串的换行会自动转换为换行符'\n'
三引号内可以包含单引号和双引号
表示:
'welcome to beijing\nI like python!\nI am studing!' s = '''welcome to beijing I like python! I am studing!'''
用转义序列代表特殊字符
字符串字面值中,用字符反斜杠(\) 后跟一些字符代表一个字符
其中字符串中的转义字符表:(如图所示)
ASCII编码:(常用ASCII编码)
'0' 48 0x30 'A' 65 0x41 'a' 97 0x61
冷门知识:raw 字符串(原始字符串)
字面值格式: r'字符串内容' r"字符串内容" r'''字符串内容''' r"""字符串内容"""
作用:让转义字符 \ 无效
示例:
a = 'C:\newfile\test.py' print(a) print(len(a)) # 得到字符串的长度 a = r'C:\newfile\test.py' print(a) print(len(a))
结果如下:
C: ewfile est.py 16 C:\newfile\test.py 18
字符串的运算
算术运算符:
+ += * *=
+ 加号运算符用于字符串的拼接
* 运算符用于生成重复的字符串
x = 'abcd' + 'efg' print(x) # abcdefg x += '123' print(x) # abcdefg123 x = '123' y = x * 2 # y = '123123' x *= 3 # x = '123123123' x = 3 x *= '123' # x = '123123123'
# 写一个程序,打印一个高度为4的矩形方框 # 要求输入一个整数,此整数代表矩形的宽度,输出此矩形 # 如: # 请输入宽度: 10 # 打印如下: # ########## # # # # # # # ########## w = int(input("请输入宽度: ")) line1 = '#' * w line2 = '#' + ' ' * (w - 2) + '#' print(line1) print(line2) print(line2) print(line1)
字符串的比较运算
运算符:> >= < <= == !=
'A' < 'B' # True 'B' < 'a' # True 'ABC' > 'AB' # True 'AD' < 'ABC' # False 'ABC' == 'abc' # False
in / not in 运算符
作用:in 用于序列,字典,集合中,用于判断某个值是否存在于容器中,如果存在则返回True, 否则返回False
格式:对象 in 容器
s = 'welcome to tarena!' 'to' in s # True 'weimingze' in s # False
字符串的索引操作
python 字符串str是不可以改变的字符序列
索引 index
索引语法:字符串[整数表达式]
python 序列都可以用索引(index) 来访问序列中的对象(元素)
python 序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s) -1
python 序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,第一个是-len(s)
s = 'ABCDE' print(s[0]) # A print(s[1]) # B print(s[4]) # E
切片 slice
作用:从字符串序列中取出一部分相应的元素重新组成一个字符串
语法:字符串[(开始索引b):(结束索引e)(:(步长s))]
() 内括起的部分代表可以省略
说明:
1. 开始索引是切片开始切下的位置0代表第一个元素,-1代表最后一个元素
2. 结束索引是切片的终止索引(但不包含终止索引)
3. 步长是切片每次获取完当前索引后移动的方向和偏移量
1) 没有步长,相当于取值完成后向后移动一个索引的位置(默认为1)
2) 当步长为正整数时,取正向切片:步长默认值为1, 开始索引默认值为0, 结束索引的默认值为len(s)
3) 当步长为负整数时,取反向切片:反向切片时,默认的起始位置为最后一个元素,默认终止位置为第一个元素的前一个位置
s = 'ABCDE' a = s[1:4] # a -> 'BCD' a = s[1:] # a -> 'BCDE' a = s[:2] # a -> 'AB' a = s[:] # a -> 'ABCDE' a = s[4:2] # a -> '' a = s[2:10000] # a -> 'CDE' 开始索引/结束索引可以越界 a = s[::2] # a -> 'ACE' a = s[1::2] # a -> 'BD' a = s[::-1] # a -> 'EDCBA' a = s[::-2] # a -> 'ECA' a = s[4:0:-2] # a -> 'EC'
# 练习: # 1. 写一个程序,输入一个字符串,把字符串的第一个字符和 # 最后一个字符去掉,打印出处理后的字符串 s = input('请输入字符串: ') s2 = s[1:-1] print("处理后的字符串是:", s2)
# 2. 输入任意一个字符串,判断这个字符串是否是回文 # 回文是指中心对称的文字,如: # 上海自来水来自海上 # ABCCBA # 12321 s = input("请输入字符串: ") s2 = s[::-1] if s == s2: print(s, '是回文') else: print(s, '不是回文')
Python3中常用的序列函数(自建函数)
len(seq) :返回序列的长度
max(x) :返回序列的最大值元素
min(x) :返回序列的最小值元素
s = "ABCD" print(len(s)) # 4 print(max(s)) # D print(min(s)) # A
字符串编码转换函数
ord(c) :返回一个字符串的Unicode编码值
chr(i) :返回i这个值所对应的字符
print(ord('A')) # 65 print(ord('中')) # 20013
# 1. 写一个程序,输入一段字符串,如果字符串不为 # 空,则把第一个字符的编码打印出来 s = input("请输入一段字符串: ") if s != '': # code = ord('s') code = ord(s[0]) print('第一个字符的编码是:', code)
# 2. 写一个程序,输入一个整数值(0~65535),打印出 # 这个数值所对应的字符 n = int(input("请输入一个整数(0~65535)")) print('对应的值是:', chr(n))
整数转换为字符串函数
hex(i) 将整数转换为十六进制的字符串
oct(i) 将整数转换为八进制字符串
bin(i) 将整数转换为二进制字符串
字符串的构造(创建)函数 str
str(obj='') 将对象转换为字符串
s = 123 print(str(s) + '456') # 123456