文章目录
字符串
1.什么是字符串
- 用引号引起来的一串字符
用引号来创建字符串
- 单引号
- 双引号
- 三单引号
- 三双引号
name = "Hangzhou"
area = 'Gongshu'
history = "5000"
famous_person = """苏轼,许仙,白居易"""
capticalof = '''吴越,南宋'''
sent = "I'm lilei"
sent2 = '"he is my brother",he said'
print(sent)
print(sent2)
I'm lilei
"he is my brother",he said
- 单引号和双引号使用时要注意匹配关系,且不可以换行。
- 如果要换行,使用三单引号或者三双引号。
pm = '''wolai
wozou
'''
print(pm)
wolai
wozou
2.字符串的运算及常见操作
拼接
a = "hello"
b = ",python"
print(a+b)
hello,python
拼接要基于同一种数据类型
重复
a = "city college"
print(a*3)
city collegecity collegecity college
索引(偏移)[],切片[ : ],[: :]
正向序号从0开始,逆向从-1开始
sr = "python"
print(sr[5])
print(sr[-1])
n
n
sr = "python"
for i in range(len(sr)):
print(sr[i], end=' ')
print()
for i in sr:
print(i ,end=' ')
p y t h o n
p y t h o n
- 切片
sr = "life is short,you need python"
print(len(sr))
print(sr[1:4])
29
ife
sr = "life is short,you need python"
print(len(sr))
print(sr[1:4:2])
29
ie
sr = "life is short,you need python"
print(len(sr))
print(sr[::-1])
29
nohtyp deen uoy,trohs si efil
大小写转换
sr.lower():转小写
sr.upper():转大写
sr.swapcase():大小写互换
sr.title():转为标题的形式
sr.capitalize():首字母大写
验证码确认
sr = input("请输入:")
sr2 = "Abcd"
if sr.lower() == sr2.lower():
print("成功")
else:
print("失败")
请输入:abcd
成功
字符串的格式输出对齐
sr.center([len],[填充符号]) ,居中对齐
sr = "life is short,you need python"
print(sr.center(41, '#'))
######life is short,you need python######
sr.ljust([len],[填充符号]) , 局左对齐
print(sr.ljust(41, '#'))
life is short,you need python############
sr.rjust([len],[填充符号]) , 局右对齐
print(sr.rjust(41, '#'))
############life is short,you need python
sr.zfill( [len] ) , 居右对齐,默认填充0
print(sr.zfill(41))
000000000000life is short,you need python
删除指定字符
sr.strip() , 默认删除左右两端换行和空,()内可以填指定字符
sr = "\n\t#####life is short,you need python.#####\t\n"
print(sr.strip())
#####life is short,you need python.#####
sr = "#####life is short,you need python.#####"
print(sr.strip("#"))
life is short,you need python.
sr.lstrip() , 删除左端字符
sr.rstrip() , 删除右端字符
计数
sr.count 计数
sr = "life is short,you need python."
print(sr.count('o')) #计数查找元素的个数
3
sr = "life is short,you need python."
print(sr.count('o', 9, 15)) #在指定索引范围中查找“o”次数
1
字符串搜索定位和替换
sr.find()
sr.index()
sr.rindex(),从右往左查找
sr.replace([现有],[替新])
sr = "life is short,you need python."
print(sr.find("e")) #查找元素并返回第一次出现的元素的索引值
3
sr = "life is short,you need python."
print(sr.find("e",19,25)) #范围内查找元素并返回第一次出现的元素的索引值;若查找不到则返回-1
19
sr = "life is short,you need python."
print(sr.index('e',19 , 25)) #功能类似,但是若查找不到,则报错
19
sr = "life is short,you need python."
print(sr.replace('you need','I use'))
life is short,I use python.
sr = "life is short,you need python."
print(sr.replace('t','T',1)) #只替换一个"t"
life is shorT,you need python.
字符串条件判断
α \alpha α
β \beta β
isalnum(), 判断字符串由字母或数字组成
isalpha(), 仅有字母
isdigit(), 仅有数字
sr = 'abcef123456'
print(sr.isalnum())
print(sr.isalpha())
print(sr.isdigit())
True
False
False
制表符的转化
sr.expandtabs()
字符串的分割
join(), 将指定字符插入到元素之间
split(), 以指定字符分割字符串,并去除该字符
partition(), 以指定字符分割字符串并保留该字符
sr = "life is short,you need python."
print('+'.join(sr))
li = ['I', 'Love', 'python']
print(''.join(li))
l+i+f+e+ +i+s+ +s+h+o+r+t+,+y+o+u+ +n+e+e+d+ +p+y+t+h+o+n+.
ILovepython
sr = "life is short,you need python."
print(sr.split('o')) #结果是一个列表
['life is sh', 'rt,y', 'u need pyth', 'n.']
>>> sr = "life is short,you need python."
>>> print(sr.split('o',2))
['life is sh', 'rt,y', 'u need python.']
>>> sr = "life is short,you need python."
>>> print(sr.partition('o'))
('life is sh', 'o', 'rt,you need python.')
ASCII值和字符的转化
ASCII:美国信息交换标准代码
chr() digit-->alpha
ord() alpha-->digit
import string
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
for i in range(8):
print(oct(i), end=" ")
0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7
for i in range(16):
print(hex(i),end=" ")
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf
print('%o' % 17) #十进制转八进制
print('%x' % 17) #十进制转十六进制
21
11
- 设计“过7游戏”的程序,打印1-100之间除了含7和7的倍数之外的所有数字
for i in range(1, 101):
if i % 7 == 0 or i // 10 == 7 or i % 10 == 7:
continue
else:
print(i)
- 编写程序用户登录程序且仅有三次机会。(if和 for)
user = input("请输入用户名:")
password = input("请输入密码:")
ruser = "12345"
rpassword = "12345"
for i in range(1, 3):
if user == ruser and password == rpassword:
print('登录成功')
else:
user = input("请输入用户名:")
password = input("请输入密码:")
i += 1
- 编写程序实现,判断一串字符串是否为有效变量名。
import keyword
list1 = keyword.kwlist
sr = input('输入变量名')
if 'a' <= sr[0] <= 'z' or 'A' <= sr[0] <= 'Z' or sr[0] == "_":
if sr not in list1:
for j in sr:
if 'a' <= j <= 'z' or 'A' <= j <= 'Z' or '0' <= j <= '9' or j == "_":
print("有效的变量名")
break
else:
print("无效")
else:
print("无效")
else:
print("无效")
- 最多猜十次数字游戏,猜测范围1-100,根据input内容提示猜大或者小,如果猜中,结束循环。
import random
num1 = int(input('猜测的数字:'))
num2 = random.randint(1,100)
for i in range(1,10):
if num1 == num2:
print('猜对了')
break
elif num1 > num2:
print("大了")
num1 = int(input('猜测的数字:'))
i += 1
else:
print('小了')
num1 = int(input('猜测的数字:'))
i += 1
- 使用while循环实现输出2-3+4-5+6…+100的和
i=2
j = 1
sum1 = 0
k = 1
while k < 100:
sum1 += i
i = (i+j)*j
j = -j
k += 1
print(sum1)
- 使用循环实现九九乘法表。
for i in range(1, 10):
for j in range(1, i + 1):
print("{}*{} = {:<4}".format(i, j, i * j), end=" ")
print("")
- 已知列表li = [22478,24066,23398,38498],利用字符串拼接及遍历,输出‘城市学院’
list1 = [22478, 24066, 23398, 38498]
list2 = []
for i in list1:
list2 = [chr(i)] + list2
sr = ''.join(list2)
print(sr[::-1])