Python|Python 编程1000例(8)(特招录取选拔、抓小偷、阿姆斯特朗数案例)


文章目录

  • 一、案例:特招录取选拔
  • 二、案例:抓小偷
  • 三、案例:阿姆斯特朗数

【Python|Python 编程1000例(8)(特招录取选拔、抓小偷、阿姆斯特朗数案例)】本系列文章通过 1000(一篇文章表示 1 个实例) 个实例 ,为读者提供较为详细的练习题目,以便读者举一反三,深度学习。本系列的文章涉及到 Python 知识点包括:Python 语言基础、运算符和表达式、语句和程序结构、列表和元组、字典和集合、字符串、正则表达式、函数、面向对象编程、模块和包、异常处理和程序调试、文件和目录操作、数据库编程、界面编程、网络编程、WEB 编程、进程和线程、网络爬虫、游戏编程等知识点,由易到难,由浅入深,一步步打下坚实的编程基础。
本系列文章涉及的算法包括搜索、回溯、递归、排序、迭代、贪心、分治和动态规划等,涉及的数据结构包括字符串、列表、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。
本系列文章是笔者为适应当前教育改革的创新要求,更好地践行语言类课程,满足实践教学与创新能力培养的需要,阅读大量书籍、各大互联网公司的面试算法、LintCode、LeetCode、九章算法和结合笔者近几年项目经验编写的系列文章,精选了 1000 个趣味性、实用性强的应用实例,从不同难度、不同算法、不同类型和不同数据结构等方面,将实际算法进行总结,希望为 Python 编程人员抛砖引玉。由于笔者经验与水平有限,博文中疏漏及不妥之处在所难免,衷心地希望各位读者在评论区多提宝贵意见及具体的修改建议,以便笔者进一步修改和完善。
一、案例:特招录取选拔 需求:假设某校招收特长生,设定有如下3种招生标准。
第1种,如果钢琴等级在9级或以上,且计算机等级在4级或以上,则直接通过。
第2种,如果文化课非常优秀,可以适当降低特长标准,钢琴等级在5级或以上,且计算机等级在2级或以上。
第3种,如果文化课及格,则按正常标准录取,即钢琴等级在7级或以上,且计算机等级在3级或以上。根据上述设定条件,编写简单的特招录取检测程序,演示效果如下图所示:

Python|Python 编程1000例(8)(特招录取选拔、抓小偷、阿姆斯特朗数案例)
文章图片

案例完整代码如下所示:
# -*- 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胡说。”
在上面陈述中,已知有三个人说的是实话,一个人说的是假话,请编写程序推断谁是小偷。演示效果如下图所示:

Python|Python 编程1000例(8)(特招录取选拔、抓小偷、阿姆斯特朗数案例)
文章图片

示例完整代码如下所示:
# -*- 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。请输入一个数,编写程序判断该数是否为阿姆斯特朗数。演示效果如下图所示:
Python|Python 编程1000例(8)(特招录取选拔、抓小偷、阿姆斯特朗数案例)
文章图片

案例完整代码如下所示:
# -*- 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} 不是阿姆斯特朗数")

感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
Python|Python 编程1000例(8)(特招录取选拔、抓小偷、阿姆斯特朗数案例)
文章图片

好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
?编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

    推荐阅读