文章目录
- 一、案例:特招录取选拔
- 二、案例:抓小偷
- 三、案例:阿姆斯特朗数
【Python|Python 编程1000例(8)(特招录取选拔、抓小偷、阿姆斯特朗数案例)】本系列文章通过 1000(一篇文章表示 1 个实例) 个实例 ,为读者提供较为详细的练习题目,以便读者举一反三,深度学习。本系列的文章涉及到 Python 知识点包括:Python 语言基础、运算符和表达式、语句和程序结构、列表和元组、字典和集合、字符串、正则表达式、函数、面向对象编程、模块和包、异常处理和程序调试、文件和目录操作、数据库编程、界面编程、网络编程、WEB 编程、进程和线程、网络爬虫、游戏编程等知识点,由易到难,由浅入深,一步步打下坚实的编程基础。
本系列文章涉及的算法包括搜索、回溯、递归、排序、迭代、贪心、分治和动态规划等,涉及的数据结构包括字符串、列表、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。
本系列文章是笔者为适应当前教育改革的创新要求,更好地践行语言类课程,满足实践教学与创新能力培养的需要,阅读大量书籍、各大互联网公司的面试算法、LintCode、LeetCode、九章算法和结合笔者近几年项目经验编写的系列文章,精选了 1000 个趣味性、实用性强的应用实例,从不同难度、不同算法、不同类型和不同数据结构等方面,将实际算法进行总结,希望为 Python 编程人员抛砖引玉。由于笔者经验与水平有限,博文中疏漏及不妥之处在所难免,衷心地希望各位读者在评论区多提宝贵意见及具体的修改建议,以便笔者进一步修改和完善。
一、案例:特招录取选拔 需求:假设某校招收特长生,设定有如下3种招生标准。
第1种,如果钢琴等级在9级或以上,且计算机等级在4级或以上,则直接通过。
第2种,如果文化课非常优秀,可以适当降低特长标准,钢琴等级在5级或以上,且计算机等级在2级或以上。
第3种,如果文化课及格,则按正常标准录取,即钢琴等级在7级或以上,且计算机等级在3级或以上。根据上述设定条件,编写简单的特招录取检测程序,演示效果如下图所示:
文章图片
案例完整代码如下所示:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:20.特招录取选拔.py
@time:2021/01/22
"""while True:
stu_id = int(input("请输入考号:").strip())
whk = float(input("文化课成绩: ").strip())
piano = int(input("钢琴等级: ").strip())
computer = int(input("计算机等级: ").strip())
if 20180100 < stu_id < 20181000:
if (piano >= 9 and computer >= 4) or \
(whk >= 90 and piano >= 5 and computer >= 2) \
or (whk >= 60 and piano >= 7 and computer >= 3):
print("恭喜,您被我校录取!")
else:
print("很遗憾,您未被我校录取!")
else:
print("考号输入有误,请重新输入!")
print("=================下一位:===================")
二、案例:抓小偷 需求:警察抓了a、b、c、d 四名犯罪嫌疑犯,其中一人是小偷,审讯口供如下。
a说:“我不是小偷。”
b说:“c是小偷。”
c说:“小偷肯定是d。”
d说:“c胡说。”
在上面陈述中,已知有三个人说的是实话,一个人说的是假话,请编写程序推断谁是小偷。演示效果如下图所示:
文章图片
示例完整代码如下所示:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:18.抓小偷.py
@time:2021/01/22
"""for i in range(1, 5):
if 3 == ((i != 1) + (i == 3) + (i == 4) + (i != 4)):
thief = chr(96 + i)# 将1、2、3、4转换为a、b、c、d
print(f"{thief} 是小偷")
将a、b、c、d 分别表示为1、2、3、4,循环遍历每个犯罪嫌疑人。假设循环变量i为小偷,则使用变量i带入表达式,分别判断每个嫌疑人的口供,判断是否为真,而且为真的只能有3个。
三、案例:阿姆斯特朗数 需求:“阿姆斯特朗数”是指如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。其中,当n为3时是一种特殊的“阿姆斯特朗数”,被称为“水仙花数”。例如,1634是一个“阿姆斯特朗数”,因为1634=1**4+6**4+3**4+4**4。请输入一个数,编写程序判断该数是否为阿姆斯特朗数。演示效果如下图所示:
文章图片
案例完整代码如下所示:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:19.阿姆斯特朗数.py
@time:2021/01/22
"""while True:
# 输入一个整数 赋值给两个变量,一个变量用于最后的判断,一个用于数据操作
num1 = num2 = int(input("请输入一个数:").strip())# 1634
length = len(str(num2))# 获取该数的长度:4
get_sum = 0# 定义一个整数
for i in range(length):# range(4)
if num2 > 0:
# 第一次:4**4
# 第二次:3**4
# 第三次: 6**4
# 第四次: 1**4 ==> 16*16+9*9+36*36+1==>256+81+1296+1==>1634
get_sum += (num2 % 10) ** length
num2 //= 10if num1 == get_sum:# 判断原来数num1和求和后的数get_sum是否相等
print(f"{num1} 是阿姆斯特朗数")
else:
print(f"{num1} 不是阿姆斯特朗数")
感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
文章图片
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
?编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!
推荐阅读
- Java学习笔记|Java学习笔记(2)(字符串(2)StringBuilder)
- 滑模控制|VSC/SMC(十三)——快速和非奇异Terminal滑模控制(含程序模型)
- 机器学习(ML)|带有酒店评论的情绪分析 - 处理数据
- 【Python常用包】itertools
- python|python可视化模块pandas,python数据可视化软件
- 数学建模|2022年高教社杯全国大学生数学建模国赛B题思路详解
- 2022高教社杯|2022高教社杯数学建模思路 - 案例(核方法(机器学习))
- python|2022高教社杯数学建模国赛C题思路代码实现
- 算法|人工神经网络案例分析题,人工神经网络算法实例