字符串str
作用:
用来记录文本(文字)信息
字符串的表示方式:
在非注释中,凡是用引号括起来的部分都是字符串
' 单引号
" 双引号
''' 三单引号
""" 三双引号
空字符串的字面值表示方法
''
""
''''''
""""""
非空字符串的表示方法:
'hello'
"world"
'''hello'''
"""world"""
单引和双引号的区别:
单引号内的双引号不算结束符
双引号内的单引号不算结束符
示例:
print("I'm a teacher!") # I'm a teacher
print('I am "weimingze"') # I am "weimingze"
三引号字符串的作用:
三引号字符串中的换行会自动转换为换行符
三引号内可以包含单引号和双引号
示例:
s = 'welcome to beijing!I like python!I am Studing!'
print(s)
s2 = '''welcome to beijing!
I like python!
I am Studing!'''
print(s2)
隐式字符串字面值拼接
s = "I'm a teacher!" 'My name is "weimingze"'
思考:
如果一个字符串同时包含如下字符该怎么办?
' " ''' """
用转义序列代表特殊字符
字符串字面值中,用字符反斜杠()后跟一些字符代表特殊的一个字符
反斜杠转义字符表:
' 单引号(')
" 双引号(")
一个反斜杠
换行
返回光标至行首
水平制表符
v 垂直制表符
f 换页
b 倒退
0 空字符,字符值为零
xXX XX为两位十六进制表示的字符
甥塘塘 XXXX为四个十六进制表示的Unicode16字符
甥塘塘XXXX 8个十六进制表示的Unicode32字符
ASCII 编码:
ASCII字符表:
$ man ascii
常用的ASCII字符编码:
字符 十进制 十六进制
'0' 48 0x30
'A' 65 0x41
'a' 97 0x61
Unicode
统一编码,分为Unicode16 和Unicode32
序列的概念
字符串就是序列
求序列的长度的函数len
len(x) 返回字符串的字符个数
练习:
试求出以下字符串含有多少个字符? '1234abcd' # 8 '5'4"' # 4 '"Ax34 6041' # 4 'bd' 'nx41'
raw 字符串(原始字符串)
格式:
r'字符串内容'
r"字符串内容"
r'''字符串内容'''
r"""字符串内容"""
作用:
让转义符号 无效
示例:
s = 'C:ewfileest.py'
print(s)
print(len(s))
s = r'C:ewfileest.py'
print(s)
print(len(s))
字符串的运算
+ 加号运算符用于拼接字符串
* 运算符用于生成重复的字符串:
示例:
s = "ABC" + "DEF" # s = 'ABCDEF'
s2 = '123' * 3 # s2 = '123123123'
s3 = 2 * 'ABC' # s3 = 'ABCABC'
注: 字符串只能和整数相乘
+= *= 运算符,与其它赋合赋值运算符规则相同
练习:
写一个程序,打印一个高度为4行的矩形方框
要求输入一个整形数字,此整数代表矩形的宽度,输出此矩形
如:
请输入矩形宽度: 10
##########
# #
# #
##########
请输入矩形宽度: 5
#####
# #
# #
#####
w = int(input('请输入矩形宽度: '))print('#' * w)# 打印第二行s = '#' + ' ' * (w - 2) + '#'print(s)print(s)print('#' * w)
in / not in 运算符:
作用:
用于判断某个字符串是否在 相当前字符中出现过。如果出现过返回True,否则返回False
语法:
对象 in 字符串
示例:
s = 'welcome to tarena!''to' in s # True'weimingze' in s # False'e t' in s # True
字符串的比较运算
运算符:
> >= < <= == !=
规则:
依次按编码值进行比较,直到最短的字符串结束为止
示例:
'A' < 'B' # True 'ABC' > 'ABB' # True 'ABC' > 'ACB' # False 'AB' < 'ABC' # True 'ABC' > '123' # True 'ABC' == 'abc' # False 'ABCD' != 'DCBA' # True
字符串的索引操作
python的字符串是不可以改变的字符序列
索引 index
语法:
字符串[整数表达式]
说明:
python 序列都可以用索引来访问序列中的对象
python 序列的正向索引是多0开始的,第二个索引为1, 最后一个索引为len(s)-1
python 序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第2个,以此类推,第一个是-len(s)
示例:
s = 'ABCDE' print(s[0]) # A print(s[1]) # B print(s[4]) # E print(s[-1]) # E print(s[-5]) # A
练习:
输入一个字符串,打印如下内容:
1. 打印这个字符串的第一个字符
2. 打印这个字符串的最后一个字符
3. 如果这个字符串的长度是奇数,打印中间这个字符
注:
求字符串的长度的函数len(s)
s = input("请输入: ")# 1. 打印这个字符串的第一个字符print("第一个字符是:", s[0])# 2. 打印这个字符串的最后一个字符print("最后一个字符是:", s[-1])# 3. 如果这个字符串的长度是奇数,打印中间这个字符if len(s) % 2 == 1:print("长度是奇数")center = len(s) // 2 # 计算中间字符的索引print('中间的字符是:', s[center])
切片 slice
作用:
从一个字符串序列中取出相应的元素重新组成一个字符串序列
语法:
字符串序列[(开始索引b):(结束索引e)(:(步长s))]
注:
小括号()括起的部分代表可省略
说明:
开始索引是切片开始切下的位置,0代表第一个元素,1代表第二个元素,-1代表最后一个
结束索引是切片的终止索引(但不包含终止点)
步长是切片每次获取完当前元素后移动的方向和偏移量
没有步长,相当于取值完成后向右移动一个索引的位置(默认为1)
当步长为正数时,取正向切片:
步长默认为1,开始索引默认为0,结束索引默认为len(s)
步长代表一下次索引的取值的增长值
当步长为负整数时,取反向切片
默认的起始位置是最后一个元素,终止位置是第一个元素的前一个位置
示例:
s = "ABCDE" a = s[1:4] # a = 'BCD' a = s[3:5] # a = 'DE' a = s[3:] # a = 'DE' a = s[:3] # a = 'ABC' a = s[0:3] # a = 'ABC' a = s[1:1] # a = '' a = s[4:2] # a = '' a = s[0:5:2] # a = 'ACE' a = s[1::2] # a = 'BD' a = s[::2] # a = 'ACE' a = s[::-1] # a = 'EDCBA' a = s[::-2] # a = 'EDCBA' a = s[4:0:-2] # a = 'EC'
练习:
1. 写一个程序,输入一个字符串,把字符串的第一个字符和最后一个字符去掉后,打印出处理后的字符串
s = input("请输入字符串: ")c = s[1:-1] # c = s[1:len(s)-1]print("结果是:", c)
2. 输入任意一个字符串,判断这个字符串是否是回文
回文示例: 上海自来水来自海上 ABCCBA 12321
(回文是指中心对称的文字)
# 2. 输入任意一个字符串,判断这个字符串是否是回文
# 回文示例:# 上海自来水来自海上# ABCCBA# 12321# (回文是指中心对称的文字)s = input("请输入文字: ")# 反转字符串sr = s[::-1]if s == r: print(s, "是回文")else: print(s, "不是回文")
文档地址:
http://code.tarena.com.cn/AIDCode/aid1806/Pbase/python_base_docs_html.tar.gz
$ tar -xzvf python_base_docs_html.tar.gz
python3中常用于序列的函数:
len(x) 返回序列的长度
max(x) 返回序列的最大值元素
min(x) 返回序列的最小值元素
字符串编码转换函数:
ord(c) 返回一个字符的Unicode值
chr(i) 返回i这个整数值所对应的字符
示例:
s = "hello" len(s) # 5 max(s) # 'o' min(s) # 'e'
练习:
1. 写一个程序,输入一段字符串,如果字符串不为空,把第一个字符的编码值打印出来
2. 写一个程序,输入一个整数值(0~65535), 打印出这个数值所对应的字符
# 练习:# 1. 写一个程序,输入一段字符串,如果字符串不为空# ,把第一个字符的编码值打印出来s = input("请输入: ")if len(s) != 0:print('第一个字符的编码是:', ord(s[0]))# 2. 写一个程序,输入一个整数值(0~65535), 打印出# 这个数值所对应的字符s = input("请输入一个整数")i = int(s) # 将用s生成一个整数用变量i绑定c = chr(i)print("这个整数对应的字符是:", c)
整数转字符串函数:
bin(i) 将整数转换为二进制字符串
oct(i) 将整数转换为八进制字符串
hex(i) 将整数转换为十六进制字符串
字符串构造函数:
str(obj='') 将对象转换为字符串
示意:
'123' + 456 # 出错,不合法
str(True) # 'True'
str(None) # 'None'
str(3.14) # '3.14'
常用的字符串方法:
字符串的方法调用语法(method):
对象.方法名(方法传参)
文档参见:点击
1. 输入一个字符串用变量s绑定
1) 判断您输入的字符串有几个空格
2) 将原字符串的左右空白字符去掉, 打印出剩余的字符个数
3)判断您输入的是否是数字
4) 如果是数字,判断这个数字是否大于100
# 1. 输入一个字符串用变量s绑定s = input("请输入一个字符串: ")# 1) 判断您输入的字符串有几个空格print("空格的个数是:", s.count(' '))# 2) 将原字符串的左右空白字符去掉, 打印出剩余的字符个数s2 = s.strip() # 云掉空白字符print("去掉空白字符后的个数是: ", len(s2))# 3)判断您输入的是否是数字# 4) 如果是数字,判断这个数字是否大于100if s2.isdigit():print(s2, "是数字:")if int(s2) > 100:print(s2 , '大于 100')else:print(s2, '不是数字') 2. 输入三行文字,让这三行文字在一个方框内居中显示 如输入: hello! I'm studing python! I like python 显示如下 +---------------------+ | hello! | | I'm studing python! | | I like python | +---------------------+ 注:请不要输入中文a = input("请输入第一行文字: ")b = input("请输入第二行文字: ")c = input("请输入第三行文字: ")max_length = max(len(a), len(b), len(c))first_line = '+' + '-' * (max_length + 2) + '+'print(first_line)# 打印中间文字print('| ' + a.center(max_length) + ' |')print('| ' + b.center(max_length) + ' |')print('| ' + c.center(max_length) + ' |')print(first_line)
以上就是今天所分享的笔记啦,希望大家提出自己宝贵的意见,大家一起互相进步,谢谢大家。