Python期末复习题:流程控制

文章目录

  • Python期末复习题:流程控制
    • 一、成绩转换
    • 二、Leibniz公式计算圆周率
    • 三、输出回文素数
    • 四、输出该日期是这一年的第几天

一、成绩转换

请编写一个成绩转换程序。每次输入一个百分制的学生成绩,成绩大于或等于90且小于或等于100的输出为“A”,成绩大于或等于80且小于90的输出为“B”,成绩大于或等于70且小于80的输出为“C”,成绩大于或等于60且小于70的输出为“D”,成绩小于60的输出为“E”。

输入数据不合法(大于100或者小于0)时输出“data error!”。

可重复输入成绩进行转换,直接输入回车时结束程序‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入:

每次输入一个浮点数,代表百分制成绩;

重复输入,输入回车时结束程序‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出:

根据每一次的输入值分别输出A、B、C、D、E中的一个字母或"data error!"

while True :score = input("请输入一个浮点数,代表百分制成绩:")if score != ' ':try:score = eval(score)if score >= 90 and score <= 100:print("A")elif score >= 80 and score <= 90:print("B")elif score >= 70 and score <= 80:print("C")elif score >= 60 and score <= 70:print("D")elif score > 0 and score < 60:print("E")else:print("data error!")except:print("data error")else:break

运行结果是:

请输入一个浮点数,代表百分制成绩:90.9
A
请输入一个浮点数,代表百分制成绩:80.7
B
请输入一个浮点数,代表百分制成绩:70.5
C
请输入一个浮点数,代表百分制成绩:65.6
D
请输入一个浮点数,代表百分制成绩:59
E
请输入一个浮点数,代表百分制成绩:ddd
data error
请输入一个浮点数,代表百分制成绩:

二、Leibniz公式计算圆周率

历史上有许多计算圆周率Π的公式,其中,格雷戈里和莱布尼茨发现了下面的公式(可由等比数列求和公式变换并积分获得):

11−13+15−17+⋯=π4\frac{1}{1}-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\cdots=\frac{\pi}{4}11​−31​+51​−71​+⋯=4π​

这个公式累加1项是4.00,累加2项是2.67,累加3项是3.47…趋进于圆周率值。编程对其各项进行累加,直到最后一项的绝对值小于10−610^{-6}10−6为止,输出此时的圆周率值。

import mathsum = 0
fh = 1
fm = 1
i= 1
while math.fabs(4 / fm) > 0.000001:sum += fh * 4 / fmfh = fh * (-1)fm = fm + 2i += 1
print(f"累加次数为{i}")
print(f"Π的值为{sum}")

运行的结果是:

累加次数为2000001
Π的值为3.141592153589724

三、输出回文素数

输出20000以内的所有回文素数。回文数是指正序和逆序均相同的数,例如131;素数是除了1和它本身不能被其他任何数整除的数 。提示:可以编写一个判断素数的函数方便书写程序。

def prime(n):"""接收正整数n,判断是否为素数,返回布尔值"""if n < 2:return False       # 0和1不是素数for i in range(2, n):  # 遍历(2, n-1)中的数if n % i == 0:     # 若在(2, n-1)中存在因子则不是素数return False   # 不是素数时返回Falseelse:   # for语句遍历(2, n-1)中所有数,未发现因子存在时,才是素数return True        # 素数时返回Truefor i in range(20000):if str(i) == str(i)[::-1] and prime(i):print(i,end=' ')

运行的结果是:

2 3 5 7 11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929 10301 10501 10601 11311 11411 12421 12721 12821 13331 13831 13931 14341 14741 15451 15551 16061 16361 16561 16661 17471 17971 18181 18481 19391 19891 19991

四、输出该日期是这一年的第几天

输入年/月/日(用斜杠分隔),输出该日期是这一年的第几天?(本题目保证测试使用的年、月、日都是合法输入)技巧提示:

map()函数可以将多个数据转换成指定数据类型

split()函数可以将字符串按照指定分隔符进行间隔并生成数据列表

a, b, c = map(int, input().split(“:”))

#上述语句可以将输入格式为 “12:30:05” 的字符串分解成[“12”, “30”, “05”]

#并将列表中每个数据转换成整型数据并分别赋值给a,b,c三个变量

示例 1

输入: 2018/2/1 输出: 2018年2月1日是2018年第32天

import datetime
try:year, month, day = map(int, input().split("/"))target_day = datetime.date(year, month, day)day_count = target_day-datetime.date(target_day.year - 1, 12, 31)print(f"{year}年{month}月{day}日是{year}年第{day_count.days}天")
except:print("请输入正确的年月日!")

运行的结果是:

2018/2/1
2018年2月1日是2018年第32天

Python期末复习题:流程控制相关推荐

  1. 好好学python·运算符和流程控制

    运算符和流程控制 运算符类型 Python算术运算符 Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算符 Python身份运算符 Py ...

  2. Python基础之:Python中的流程控制

    文章目录 简介 while语句 if 语句 for语句 Break Continue pass 简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太 ...

  3. python和控制流程_Python基础之:Python中的流程控制

    简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样的地方. while语句 python中的while语句和其他语言没有什么不一样,我使用wh ...

  4. python if else格式_【Python基础】流程控制-if..else

    [Python基础]流程控制-if..else ''' 基本的使用 if 条件: 满足条件执行的代码 else: 不满足条件执行的代码 ''' # age = input("Please i ...

  5. Python实验1 流程控制

    Python实验1 流程控制 编写程序实现输入成绩,判断是否通过考试. 代码 grade = int(input("请输入成绩:")) if 60 <= grade < ...

  6. Python期末复习题:字符串与产生随机数

    Python期末复习题:字符串与产生随机数 文章目录 Python期末复习题:字符串与产生随机数 一.身份证号基本信息 二.分类统计各字符的个数 三.字符串加密 四.随机产生验证码 一.身份证号基本信 ...

  7. python流程控制语句-python语言的流程控制

    流程控制 1.python语句的分类 2.流程控制相关的分类 3.顺序结构 4.分支结构 5.循环结构 6.其他流程控制语句 1.python语句的分类 1.单行代码 一行的python代码 2.代码 ...

  8. Python学习(七) 流程控制if语句

    在Python中流程控制if语句采用如下格式: if expression : statement elif expression : statement elif expression : stat ...

  9. python中的流程控制

    流程控制 流程: 计算机执行代码的顺序,就是流程. 流程控制: 对计算机代码执行顺序的控制,就是流程控制. 流程分类: 流程控制一共分为三类,分别是 顺序结构.分支(选择)结构.循环结构. 顺序结构 ...

最新文章

  1. 计算机联锁仿真软件设计,一种基于LabVIEW的计算机联锁仿真系统的制作方法
  2. redis集群扩容和缩容_Full-Stack-Notes
  3. 联想K系引领智能电视潮流,Android 4.0将成行业标配
  4. php爬取flash的交互数据库,基于PHP的Flash与MySQL数据库通讯的实现
  5. 整数线性规划实现(lingo,python分枝界定法)
  6. SELECT TOP 1 比不加TOP 1 慢的原因分析以及SELECT TOP 1语句执行计划预估原理
  7. Win8 DirectX 开发问题总结(一)
  8. CCF NOI1057 石头剪刀布
  9. [转]唐骏谈职场 —— 管理者要学会让员工感动
  10. Codeforces Round #387 (Div. 2) 747E
  11. SIR传染病模型(微分方程系列1)
  12. VMWareCentOS7硬盘扩容
  13. log4j日志配置(超详细)
  14. 程序员必备75道逻辑思维题(附答案)之五
  15. MySQL免安装版本的下载/配置/连接DBeaver---详细教程
  16. js下载文件 阿星小栈
  17. 3年Android开发工程师面试经验分享,先收藏了
  18. 港媒:梁洛施偷吃排卵药擅生双胞胎 惹怒李泽楷
  19. 如何打造千万级Feed流系统
  20. graphx-社区发现(community detection)

热门文章

  1. 信号建模-呼吸心跳信号检测方法(三)
  2. 一个网站完整的SEO优化方案
  3. 初学者正确学习UI设计的3个方法!
  4. Java小游戏开发斗地主小游戏Java小游戏源码
  5. eas java配置_EAS客户端调试环境搭建
  6. mysql 查询获取排名的方法
  7. 动手制作智能化家居“魔镜”
  8. 关于2022年宣城市集成电路布图设计登记有效期及收费相关说明
  9. Anaconda安装踩雷+解决Anaconda Navigator打不开
  10. 中台详解(下)——怎么搭建中台