目录
字符串:
三引号字符串:
以 ''' 或者 """ 开头,以'''或者"""结尾。
所见即所得:
s1="""wo shi gaoxiangyang!
wo ai ni.
ni shi shei?"""
s2="wo shi gaoxiangyang!\nwo ai ni.\nni shi shei?"
print(s1)
print(s2)
运行->
wo shi gaoxiangyang!
wo ai ni.
ni shi shei?
wo shi gaoxiangyang!
wo ai ni.
ni shi shei?
进入交互模式:
$ >>>s1="""wo shi gaoxiangyang!
$ ...wo ai ni.
$ ...ni shi shei?"""
$ >>>s1
$ wo shi gaoxiangyang!\nwo ai ni.\nni shi shei?
由此可得三引号把回车键自动转变成\n
转义字符:
\' 代表一个单引号
\" 代表一个双引号
\n 代表换行符
\\ 代表一个反斜杠
\r 返回光标至开头
\t 水平制表符
\f 换页
\v 垂直制表符
\b 倒退
\0 字符值为0
\0oo oo为两位八进制表示的字符
\uXX XX表示两位十六进制表示的字符 # print("\u41") >>>A
\uXXXX Unicode 16的十六进制字符 # print("\uXX41") >>>A
\UXXXXXXXX Unicode 32的十六进制字符 # print("\UXXXXXX41") >>>A
ASICC编码:
# 查看ASICC编码表
# man ascii #仅LINUX系统可用
常用的ASICC编码:
字符 十进制 十六进制
'0' 48 0x30
'a' 97 0x61
'A' 65 0x41
序列:
字符串就是序列
求序列长度的函数:
len(x) 返回序列中个数
raw 字符串(原始字符串)
格式:
r"字符串内容"
r'字符串内容'
r'''字符串内容'''
r"""字符串内容"""
作用:
让转义字符 '\' 无效
示例:
s1="C:\newfile\tese.py"
print(s1)
s2=r"C:\newfile\tese.py"
print(s2)
print(len(s1))
print(len(s2))
索引(index):
python字符串都是不可改变的序列,
所有的序列都可以通过索引来获取其中的元素
语法:
字符串[index]
说明:
1.序列的正向索引是从0开始的,第二个为1,最后一个为 len(s)-1
2.序列的反向索引是从-1开始的,-1代表最后一个元素,-2表示倒数第二个元素,第一个是 len(s)
示例:
s = 'ABCDE'
s[0] = 'A'
A B C D E
s[ 0] s[ 1] s[ 2] s[ 3] s[ 4] s[5] ->>"越界错误"
s[-5] s[-4] s[-3] s[-2] s[-1] s[-6] ->>"越界错误"
练习:
输入一段字符串,打印以下内容:
1.打印这串字符串的最后一个字符
2.打印这串字符串的第一个字符
3.如果这串字符串的长度是奇数,那么打印中间的字符
注:
求字符串长度函数len(x)
# 第一题
print(input("请输入字符串:")[0])
第二题
print(input("请输入字符串:")[-1])
# 第三题
s= input("请输入字符串:")
l= len(s)
print(s[l//2] if l%2==1 else "是偶数")
切片:
从字符串中取出相应的元素重新排列成一个字符串序列
语法:
s[ 开始索引 : 结束索引 (:步长) ]
说明:
1.切片切下的位置,0代表第一个元素,1代表第二个元素 ,-1代表最后一个元素...
2.结束索引是切片的终止索引
3.步长是切片每次获取完当前元素后移动的偏移量
1.步长默认为1(可以省略)
2.当步长为正整数时,取正向的切片,开始索引默认为0,结束索引为最后一个元素的前一个位置
3.当步长为负数的时候,取反向的切片。
反向切片时,默认的起始位置是最后一个元素
终止位置是第一个元素的后一个位置
示例:
>>>s = "ABCDE"
>>>s[1:4]
'BCD'
>>>s[1:] #从第二个元素到最后一个
'BCDE'
>>>s[0:2]
'AB'
>>>s[:3] #从第一个元素开始到第三个元素
'ABC'
>>>s[2:2] #空字符串
''
>>>s[4:1] #空字符串
''
>>>s[-4:4]
'BCD'
>>>s[::2] #步长为2
'ACE'
>>>s[4:0:-1] #倒序
'EDCB'
>>>s[::-2]
'ECA'
练习:
1.写一个程序,输入一个字符串,把字符串的第一个和最后一个字符去掉,打印处理后的字符串
2.输入一个字符串,判断是否是回文(中心对称的文字)。
回文示例:
ABCCBA
1234321
答案:
# 第一题
# s=input("请输入字符串:")
# print(s[1:-1])
#
# 第二题
# s=input("请输入字符串:")
# l=len(s)
# print("是回文" if s[0:l//2] == s[l:l//2:-1] else "不是回文")
python3中可以用于字符串的函数:
len(x) 返回字符串的长度
max(x) 返回字符串中编码值最大的元素
mix(x) 返回字符串中编码值最小的元素
示例:
s = "12345"
len(s) # 5
max(s) # '5'
mix(s) # '1'
字符串编码转换函数:
ord(c) 返回一个字符c的Unicode编码值
chr(i) 返回 i 这个值的所对应的字符
示例:
print(ord('A')) # 65
print(ord('高')) # 39640
print(chr(65)) # 'A'
print(chr(39640)) # '高'
整数变各种进制字符串的函数:
bin(9) # '0b1001'
oct(9) # '0o11'
hex(9) # '0x09'
python3中常用的字符串方法(method):
方法的调用语法:
Object.method(参数)
常见方法:
S.isdigit() # 判断字符串中的字符是否全为数字
S.isalpha() # 判断字符串是否全为英文字母
S.islower() # 判断字符串所有字符是否全为小写英文字母
S.isupper() # 判断字符串所有字符是否全为大写英文字母
S.isspace() # 判断字符串是否全为空白字符
S.center(width[,fill]) # 将原字符串居中,左右默认填充空格 width是改变后字符串的长度,fill为填充内容
S.count(sub[, start[,end]]) # 获取一个字符串中子串的个数 sub为搜索的子字符串
S.find(sub[, start[,end]]) # 获取字符串中子串sub的索引,失败返回-1
S.strip([chars]) # 返回去掉左右char字符的字符串(默认char为空白字符)
S.lstrip([chars]) # 返回去掉左侧char字符的字符串(默认char为空白字符)
S.rstrip([chars]) # 返回去掉右侧char字符的字符串(默认char为空白字符)
S.upper() # 生成将英文转换为大写的字符串
S.lower() # 生成将英文转换为小写的字符串
S.replace(old, new[, count]) # 将原字符串的old用new代替,生成一个新的字符串
S.startswith(prefix[, start[, end]]) # 返回S是否是以prefix开头,如果以prefix开头返回True,否则返回False,
S.endswith(suffix[, start[, end]]) # 返回S是否是以suffix结尾,如果以suffix结尾返回True,否则返回False
以下是不常用的:
S.title() 生成每个英文单词的首字母大写字符串
S.isnumeric() 判断字符串是否全为数字字符
示例:
'abc'.isalpha() # 判断'abc'是否是字母 返回Bool值 'abc'由此可见是一个字符串对象
123.isalpha() # 报错 —>> 整数对象中没有isalpha()方法
详见:
help(str)
练习题:
1.判断您输入的字符串有几个空格
2.将源字符串左右两边的空格去掉,打印出有效的字符串
3.判断输入的是否是数字,如果是则判断是否大于100
答案:
# 第一题
# print(input("请输入字符串:").count(' '))
# 第二题
# print(input("请输入字符串:").strip(' '))
# 第三题
# s=input("请输入字符串:")
# print( ("大于100" if int(s)>100 else "小于100") if s.isdigit() else "不全是数字")