1.issuperset():测试是否为父集
a = {1, 2, 3, 4, 5, 6, 7}
b = {1, 2, 3, 4}
print(a.issuperset(b))
# True
2.update():将一个集合加到另一个集合中
a = {1, 3, 5, 7}
b = {2, 4, 6, 8}
a.update(b)
print(a)
# {1, 2, 3, 4, 5, 6, 7, 8}
3.difference_update():删除集合中重复元素
a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
b = {1, 3, 5, 7, 9}
a.difference_update(b)
print(a)
# {0, 2, 4, 6, 8}
覆盖式操作,原有值会被盖掉
4.冻结集合:frozenset是不可变的数据类型集合称为冻结集合,定义好内容后不可修改、删除、操作元素
x = frozenset([1, 2, 3])
y = frozenset([4, 5, 6])
print(x, y)
print(x & y, x | y)
# frozenset({1, 2, 3}) frozenset({4, 5, 6})
# frozenset() frozenset({1, 2, 3, 4, 5, 6})
5.字符串常量:字符串是由单引号和双引号包裹起来的任意不可变文本序列。
s1 = 'china' # 字符串常量
print(s1[0]) # 可通过内置容器的索引方式来遍历元素 c
# s1[1]='h' # 报错,字符串常量是一个不可变的序列
s2 = ['china', 'hello', 'world'] # 字符串列表
6.拼接字符串。符号:+
s1 = '我存款金额为:'
num = -100
print(s1 + str(num))
# PS:字符串的拼接对象只能是字符串
7.多行字符串:字符串长度多于一行,使用三引号将字符串包夹
s1 = '''china china china
china china china
china china china'''
print(s1)
# china china china
# china china china
# china china china
8.字符串的切片。格式:strname[start,end,step]
s1 = '2022.加油!中国!'
print(s1) # 2022.加油!中国!
print(s1[0]) # 2
print(s1[0:]) # 2022.加油!中国!
print(s1[5:]) # 加油!中国!
print(s1[:4]) # 2022
print(s1[1:11:2]) # 02加!国
print(s1[-1:-4:-1]) # !国中
9.输入员工身份证号,输出出生日期和性别
s1 = input('请输入您的身份证号:')
print('您的身份证号是:', s1)
if int(s1[16]) % 2 == 0:
print('性别:女')
else:
print('性别:男')
print('出生日期为:' + s1[6:10] + '年' + s1[10:12] + '月' + s1[12:14] + '日')
# 请输入您的身份证号:1233456200203182343
# 您的身份证号是: 1233456200203182343
# 性别:男
# 出生日期为:6200年20月31日
10.分隔合并字符串。分隔格式:strname.split(sep,maxsplit)
合并格式:strnew=string.join(iterable)
# 分隔
s1 = 'Python 软件官网 >>> https://www.python.org/'
print('原串:', s1)
l1 = s1.split()
l2 = s1.split('>>>')
l3 = s1.split('.')
l4 = s1.split(" ", 3)
print(l1, l2, l3, l4, sep='\n')
# 原串: Python 软件官网 >>> https://www.python.org/
# ['Python', '软件官网', '>>>', 'https://www.python.org/']
# ['Python 软件官网 ', ' https://www.python.org/']
# ['Python 软件官网 >>> https://www', 'python', 'org/']
# ['Python', '软件官网', '>>>', 'https://www.python.org/']
# 合并
s1 = 'fsegfgsdggrdgs'
s3 = '.'.join(s1)
print(s3)
# f.s.e.g.f.g.s.d.g.g.r.d.g.s
11.count()方法:检索字符串在另一个串中出现的次数,若不存在则返回0
格式:strname.count(substring---要检索的子串的名称)
s1 = '****ABC***DEF****'
c1 = s1.count('*')
c2 = s1.count('?')
print('次数:', c1, c2)
# 次数: 11 0
12.find()方法:检索是否包含指定字符串,不存在返回-1,否则返回出现的索引值
格式:strname.find(sub)
s1 = input('主串:')
s2 = input('子串:')
n = s1.find(s2)
if n > -1:
print('存在,第一次出现索引为:', n)
else:
print('不存在')
# 主串:23456AS
# 子串:AS
# 存在,第一次出现索引为: 5
# PS:一般用于在主串中查找子串是否存在
13.大小写互换:strname.swapcase()。大写—>小写:strname.lower()。小写—>大写:strname.upper()
s1 = input()
print(s1.swapcase())
print(s1.upper())
print(s1.lower())
# sdfgaetASFEF
# SDFGAETasfef
# SDFGAETASFEF
# sdfgaetasfef
14.判断字符串中字母出现的次数。格式:strname.isalpha()
s1 = input('请输入:')
c = {} # 定义空字典
for i in s1:
if i.isalpha() == 1:
c[i] = c.get(i, 0) + 1 # 计算i的字典的键值
print(c)
# 请输入:awsedrfgt
# {'a': 1, 'w': 1, 's': 1, 'e': 1, 'd': 1, 'r': 1, 'f': 1, 'g': 1, 't': 1}
15.字符串删除。统计字符串中的单词个数
s1 = input('请输入单词:')
s1 = s1.strip() # 删除左右两侧空格
cnt = 1
print(s1)
i = 0
while i < len(s1) - 1:
if s1[i] != ' ' and s1[i + 1] == ' ':
cnt += 1
i += 1
if s1 == ' ':
cnt = 0
print('单词个数:', cnt)
# 请输入单词:napkin system mmm
# napkin system mmm
# 单词个数: 3
16.strname.replace(‘需替换字符串’,’替换结果’)
s1 = '****ABC***123****'
print(s1.replace('*', '?'))
# ????ABC???123????
17.字符串文本对齐。Center:居中。ljust:左对齐。rjust:右对齐
poem='静夜思','李白','窗前明月光','疑是地上霜','举头望明月','低头思故乡'
for line in poem:
print('%s'%line.center(10)) # 居中,指定字符宽度
for line in poem:
print('%s'%line.rjust(10)) # 右对齐
for line in poem:
print('%s'%line.ljust(10)) # 左对齐
18.编写程序,检测输入的字符串密码是否是一个合法的密码。规则如下:
密码至少8个字符;只能包含英文和数字;密码至少包含2个数字
str1 = input('请输入您的密码')
t = 0
for i in str1:
if i.isdigit(): # 判断字符串是否为数字,计算数字个数
t += 1
if len(str1) >= 8:
if str1.isalnum(): # 判断字符串是否只包含字母和数字
if t >= 2:
print('密码设置成功')
else:
print('密码输出数字少于两个')
else:
print('密码只能包含字母和数字')
else:
print('密码至少要有8个字符')
# 请输入您的密码517318tqwei
# 密码设置成功
19.编写程序,实现一个二进制数转为十进制数,如:1001的十进制为9,即执行执行1*2^0+0*2^1+0*2^2+1*2^3
str1 = input('请输入二进制:')
d1 = 0 # 接收转换结果
t = 0 # 权值
f = 1
if str1.isnumeric(): # 判断字符串中至少有一个字符且所有字符均为数字
str2 = str1[::-1] # 对字符串进行切片,而后逆置,str2存储逆序的str1
for i in str2:
if i == '0' or i == '1':
d1 = d1 + int(i) * 2 ** t
else:
print('无效数字')
f = 0
break
t += 1 # 权值加1
if f:
print(str1, '转为十进制整数是:', d1)
# 请输入二进制:11111111
# 11111111 转为十进制整数是: 255
20.国际标准书号共10位:d1d2d3d4d5d6d7d8d9d10,最后一位d10是校验位,校验位计算公式为:(d1*1+d2*2+d3*3+d4*4+d5*5+d6*6+d7*7+d9*9)%11,若d10计算结果为10则使用x表示。编写程序,输入前9个,输出标准书号。
str1 = input('请输入国际标准书号前9位:')
check = 0
t = 0
for i in str1:
check = check + int(i) * t
t += 1
check %= 11
if check == 10:
check = 'x'
print(str1 + str(check))
# 请输入国际标准书号前9位:987654321
# 987654321x