本系列文章通过 1000(一篇文章表示 1 个实例) 个实例 ,为读者提供较为详细的练习题目,以便读者举一反三,深度学习。本系列的文章涉及到 Python 知识点包括:Python 语言基础、运算符和表达式、语句和程序结构、列表和元组、字典和集合、字符串、正则表达式、函数、面向对象编程、模块和包、异常处理和程序调试、文件和目录操作、数据库编程、界面编程、网络编程、WEB 编程、进程和线程、网络爬虫、游戏编程等知识点,由易到难,由浅入深,一步步打下坚实的编程基础。
本系列文章涉及的算法包括搜索、回溯、递归、排序、迭代、贪心、分治和动态规划等,涉及的数据结构包括字符串、列表、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。
本系列文章是笔者为适应当前教育改革的创新要求,更好地践行语言类课程,满足实践教学与创新能力培养的需要,阅读大量书籍、各大互联网公司的面试算法、LintCode、LeetCode、九章算法和结合笔者近几年项目经验编写的系列文章,精选了 1000 个趣味性、实用性强的应用实例,从不同难度、不同算法、不同类型和不同数据结构等方面,将实际算法进行总结,希望为 Python 编程人员抛砖引玉。由于笔者经验与水平有限,博文中疏漏及不妥之处在所难免,衷心地希望各位读者在评论区多提宝贵意见及具体的修改建议,以便笔者进一步修改和完善。
需求:设计一个列表,计划存储 4 名学生的成绩,包括语文、数学和英语三门科目。分别给这 4 名学生添加相应的学科分数,求出总分第一名的学生和各科目的成绩明细。演示效果如下:
示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:21.学生成绩单明细.py
@time:2021/01/23
"""
import random # 导入随机函数包
def get_score(result): # 定义分数生成函数
while True: # 无限次循环
score = random.randint(60, 100) # 随机生成一个在60-100之间的数
if score not in result: # 判断该数是否在不在列表中
result.append(score) # 将该随机数添加到列表中
break # 跳出循环
return result # 返回列表
student_name = ["张三", "李四", "王五", "赵六"] # 定义有4个学生的列表
chinese_score = list() # 定义存储语文分数的列表
math_score = list() # 定义存储数学分数的列表
english_score = list() # 定义存储英语分数的列表
for i in range(len(student_name)): # 通过循环生成语文、数学、英语分数
chinese_score = get_score(chinese_score) # 生成一个语文分数
math_score = get_score(math_score) # 生成一个数学分数
english_score = get_score(english_score) # 生成一个英语分数
print('student name:', student_name) # 打印学生名单
print('chinese score:', chinese_score) # 打印语文成绩单
print('math score:', math_score) # 打印数学成绩单
print('english score:', english_score) # 打印英语成绩单
student_detail_score = list() # 定义存储学生成绩明细的列表
# 生成成绩明细
for i in range(len(student_name)): # 通过循环生成每位学生成绩明细单
student_score = list() # 定义学生分数列表
student_score.append(chinese_score[i]) # 将语文分数添加到列表中
student_score.append(math_score[i]) # 将数学分数添加到列表中
student_score.append(english_score[i]) # 将英语分数添加到列表中
student_detail_score.append(student_score) # 将该学生的成绩明细添加到列表中
print('学生成绩单明细:', student_detail_score) # 打印所有学生的成绩明细
student_total_score = list() # 定义总分成绩列表
for i in student_detail_score: # 循环遍历学生成绩明细列表
student_total_score.append(sum(i)) # 将学生的成绩明细单求和并添加到总分列表中
print('总分明细:', student_total_score) # 打印总分成绩列表
first = sorted(student_total_score)[len(student_name) - 1] # 获取最高分
first_index = student_total_score.index(first) # 获取最高分对应的下标
# 打印第一名学生的姓名、总分和平均分
print("第一名:\n姓名:%s,总分:%d,均分:%.2f" % (student_name[first_index], first, first / 3))
# 打印第一名学生的成绩明细
print("语文:%d,数学:%d,英语:%d" % (student_detail_score[first_index][0],
student_detail_score[first_index][1], student_detail_score[first_index][2]))
需求:设计一个简单的购物车程序,将想要购买的商品信息添加到购物车中。程序运行结果如下图所示:
示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:22.购物车.py
@time:2021/01/23
"""
products = [['iphone11', 5499], # 定义商品列表
['mate30 Pro', 5799],
['小米9 Pro', 4299],
['Canon 80D', 8299],
['华为P30 Pro', 4988],
['MacBook Pro', 10579]]
print('***************商品列表***************')
for index, p in enumerate(products): # 循环遍历商品信息
print("{}.{} \t{}".format(index, p[0], p[1])) # 打印所有的商品
shopping = list() # 定义一个空的购物车列表
while True: # 循环向购物车中添加商品
choice = input('请选择添加购物车的编号:') # 选择购买的商品编号
if choice.isdigit(): # 判断输入的类型是否是数字
choice = int(choice) # 将字符串类型转换为数字类型
if 0 <= choice < len(products): # 判断输入的商品编号是否满足条件
shopping.append(products[choice]) # 将选择的商品添加到购物车中
print('%s 已加入购物车' % (products[choice])) # 打印添加的商品信息
else:
print('选择的商品不存在,请重新选择') # 打印商品不存在信息
flag = input('是否继续添加商品[y/n]:') # 判断是否继续添加商品,
if flag != 'y': # 只有输入y时为真,其余情况为假
print('***************购物车***************')
for index, s in enumerate(shopping): # 遍历购物车列表
print("{}.{} \t{}".format(index, s[0], s[1])) # 打印购物车中的商品信息
break # 跳出循环
else:
print('商品编号格式不正确,请重新输入!') # 打印商品编号格式不正确信息
需求:编写一个程序,反映病人到医院挂号看病的情况。通过模拟病人挂号就诊这一过程,系统主要功能如下:
挂号:输入挂号病人的名字,将其加入挂号队列中。
就诊:挂号队列中最前的病人前往就诊,并将其从挂号队列中移除。
查看已挂号人数:将挂号队列中的病人从前往后显示出来。
挂号人满不再预约:显示已经挂号的病人,结束程序。
示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:23.挂号就诊系统.py
@time:2021/01/23
"""
q = [] # 定义一个空列表,存储挂号的病人
while True: # 无限次使用系统
print(''' # 以原格式打印系统格式
************ 就诊挂号系统 ************
1.挂号
2.就诊
3.查看已挂号人数
4.挂号人满不再预约
''')
choice = input('输入选项序号:') # 输入操作序号
if choice == '1': # 选择挂号功能
name = input('您的姓名:') # 输入病人的姓名
if name in q: # 判断该病人是否已经挂号
print('您已挂号!') # 打印信息
else: # 之前没有挂号
q.append(name) # 将该病人的姓名添加到列表中
print('挂号成功!') # 打印挂号成功信息
elif choice == '2': # 选择就诊功能
if q is []: # 判断是否没有人在挂号列表中
print('没有人预约挂号!') # 打印信息
else:
print('请%s前往就诊。' % q[0]) # 打印前往就诊人姓名
q.pop(0) # 将该人姓名从列表中移除
elif choice == '3': # 选择查看已挂号人员功能
for i, name in enumerate(q): # 遍历挂号人员列表
print('No.{}:{}'.format(i + 1, name)) # 打印信息
elif choice == '4': # 选择结束挂号功能
for i, name in enumerate(q): # 遍历挂号人员列表
print('No.{}:{}'.format(i + 1, name)) # 打印信息
print('挂号人数已满,不再挂号!') # 打印不在挂号信息
exit(0) # 退出系统
else: # 选择的操作不正确
print('序号格式输入错误!') # 打印错误信息
break
感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!