- images
- results
- .gitignore
- 1.1概论.ipynb
- 1.2 环境配置.pdf
- 1.3数据类型.ipynb
- 1.4 人机交互.ipynb
- 1.5 对象与变量.ipynb
- 1.6 编码与命名规范.ipynb
- 2.1 数值类型.ipynb
- 2.2 数值类型转换.ipynb
- 2.3 数值元算.ipynb
- 2.4常用数学运算函数.ipynb
- 2.5 math 模块及其应用.ipynb
- 2.6.1 逻辑值测试.ipynb
- 2.6.2 成员运算.ipynb
- 2.6.3 比较运算.ipynb
- 2.6.4 布尔运算.ipynb
- 2.6.5 运算优先级.ipynb
- 2.ipynb
- 3.1 流程控制结构.ipynb
- 3.3.1 for 循环语句.ipynb
- 3.3.3 rang.ipynb
- 3.3.3 while 循环语句.ipynb
- 3.4 and 3.5 分支结构和条件.ipynb
- 3.6 and 3.7 .ipynb
- 3.9 异常处理.ipynb
- 4 函数和模块化编程.ipynb
- 4.1 函数的定义、调用与返回值.ipynb
- 4.2 函数的参数传递.ipynb
- 4.3 变量的作用域.ipynb
- 4.4 匿名函数.ipynb
- 4.5 递归.ipynb
- 4.6 内置函数.ipynb
- 4.7 模块化程序设计.ipynb
- 5.1 序列通用操作.ipynb
- 5.1.1 索引.ipynb
- 5.1.2 切片.ipynb
- 5.1.3 序列拼接与重复.ipynb
- 5.1.4 成员测试.ipynb
- 5.2.1 字符串的创建.ipynb
- 5.2.2 字符串常量.ipynb
- 5.2.4 字符串的遍历.ipynb
- 5.2.5 文件遍历.ipynb
- 5.2.6 字符串的处理方法.ipynb
- 5.2.7 字符串格式化.ipynb
- 5.2.8 转义字符.ipynb
- 5.3 random 模块及其应用.ipynb
- 6.1 元组.ipynb
- 6.2 列表.ipynb
- 6.2.1 列表的创建.ipynb
- 6.2.2 列表的更新.ipynb
- 6.2.3 列表的删除.ipynb
- 6.2.4 列表的排序.ipynb
- 6.2.5 列表赋值与复制.ipynb
- 6.2.6 列表推导式.ipynb
- 6.2.8 常用内置函数.ipynb
- 6.2.9 列表嵌套及其排序.ipynb
- 6.3 列表综合应用.ipynb
- 7.1.1 集合的创建.ipynb
- 7.1.2可变集合类型的操作.ipynb
- 7.1.3 成员关系.ipynb
- 7.1.4 集合关系.ipynb
- 7.1.5 集合运算.ipynb
- 7.2.1 字典创建.ipynb
- 7.2.2 获取字典值.ipynb
- 7.2.3 修改字典值.ipynb
- 7.2.4内置函数与方法.ipynb
- 7.2.5字典排序输出.ipynb
- 7.3 集合与字典的应用.ipynb
- 8 中 numpy 概述.ipynb
- 8 中panda 库.ipynb
- 8.1 文件的打开与关闭.ipynb
- 8.2 文件读写操作.ipynb
- 8.3 文件的应用.ipynb
- 8.4 numpy 文件操作.ipynb
- 8.4.2 and 3.ipynb
- 8.5.1 pandas文件读写.ipynb
- 8.5.2 and 3 and 4.ipynb
- 9.1 matplotlib 线性图.ipynb
- 9.1.5 数据文化绘图.ipynb
- 9.2 非线性图.ipynb
- 9.3 词云.ipynb
- _overview.md
- _readme.ipynb
- coding_here.ipynb
- dream.png
- score.txt
- score_total.csv
- 成绩分析综合.json
5.1.3 序列拼接与重复.ipynb @master — view markup · raw · history · blame
序列拼接与重复¶
字符串、元组与列表等序列类型都支持拼接与重复的操作。
序列拼接是通过“+”将两个相同类型的序列拼接为一个包含参与拼接的序列中所有元素的新序列。
In [5]:
# 字符串拼接
first_name = input() # 输入名
last_name = input() # 输入姓
# 输出姓名
full_name = last_name + first_name # 将姓与名拼接为一个字符串
print(full_name) # 赵广辉, 拼接后是一个对象,输出时中间无空格
print(last_name + first_name) # 赵广辉, 拼接后是一个对象,输出时中间无空格
print(last_name, first_name) # 赵 广辉,输出多个对象时,默认中间有空格
列表拼接为新的列表对象¶
In [2]:
stu_name = ['李明']
score_2021 = [84, 80, 95, 88]
score_2022 = [96, 76, 65, 85, 98, 55]
stu_score = stu_name + score_2021 + score_2022 # 3个列表拼接到一起
print(stu_score) # ['李明', 84, 80, 95, 88, 96, 76, 65, 85, 98, 55]
In [ ]:
stu_name = ('李明',) # 注意括号中的逗号不可少,('李明')类型为字符串<class 'str'>
score_2021 = (84, 80, 95, 88)
score_2022 = (96, 76, 65, 85, 98, 55)
stu_score = stu_name + score_2021 + score_2022
print(stu_score) # ('李明', 84, 80, 95, 88, 96, 76, 65, 85, 98, 55)
序列重复 s * n 是将一个序列 s 乘以一个整数 n产生一个新序列,新序列是 s 中的元素重复 n 次。¶
In [4]:
print('-' * 30) # 字符串'-' 重复30次,得到新字符串'------------------------------'
print(f'{"欢迎光临":^30}') # 30表示占30字符宽度,^ 表示居中对齐
print('-' * 30)
序列重复时,当 n 小于或等于0时会被当作 0 来处理,此时序列重复0 次的操作将产生一个空序列。¶
In [ ]:
print('-' * 0) # 输出空字符串
print('-' * (-5)) # 输出空字符串
实例 6.5 数据脱敏¶
手机号属于个人隐私信息,编程将用户输入的手机号的4-7位用“*”替换。输入格式为: 11位数字的手机号码,如:13912345678。
In [ ]:
tel = input() # 输入13213213211
tel_mask = tel[:3] + '*' * 4 + tel[-4:] # 字符串切片、拼接和重复
print(tel_mask) # 132****3211
实例 6.6 约瑟夫环问题¶
有20个人围坐在一张圆桌周围,从第1个人开始报数,数到3的那个人出列,他的下一个人又从1开始报数,数到3的那个人又出列;
依此规律重复下去,直到圆桌周围的人数少于3时结束,循环输出每次出列的人和剩下的人的序号。
In [ ]:
joseph_ring = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
In [ ]:
每次将列表的第3个元素去除,可以切片取前2个元素joseph_ring[:2],拼接到列表从第4个元素到末尾的切片joseph_ring[3:]:
In [ ]:
joseph_ring = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
joseph_ring = joseph_ring[3:] + joseph_ring[:2] # 跳过第3个元素
print(joseph_ring) # [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2]
In [ ]:
joseph_ring = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
while len(joseph_ring) > 2: # 列表长度大于m-1时,去掉第m个元素
print(joseph_ring[2], end=' ') # 输出当前出列的元素
joseph_ring = joseph_ring[3:] + joseph_ring[:2] # 两个列表拼接为一个新列表
print(joseph_ring) # 输出列表中剩余元素
练一练
约瑟夫环问题可以扩展为一圈共有n个人,从 1 开始报数,报到m的人出列,然后重新开始报数,剩余人数小于m时停止,输出最后剩余人的序号。
In [ ]:
n, m = map(int, input().split()) # 同一行内用空格分隔的输入切分为列表,并映射为整数分别赋值给n,m
joseph_ring = list(range(1, n + 1)) # 构造一个元素 1 到 n 的列表
# 补充你的代码