Python题库:流程控制
目录
- 1 百分制成绩转换五分制(2022重点看)
- 2 温度转换异常处理
- 2.1 描述
- 2.2 输入格式
- 2.3 输出格式
- 3 特殊数列求和
- 4 阶乘和数
- 5 老鼠打洞
- 6 判断IP地址合法性(2022重点看)
百分制成绩转换五分制(2022重点看)
描述
编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于90且小于或等于100的输出为“A”,成绩大于或等于80且小于90的输出为“B”,成绩大于或等于70且小于80的输出为“C”,成绩大于或等于60且小于70的输出为“D”,成绩小于60的输出为“E”。输入数据不合法时输出“data error!”。用户可反复输入成绩进行转换,输入负数时输出“end”并结束程序
输入格式
每次输入一个浮点数,代表百分制成绩;反复输入,输入负数结束程序
===输出格式===
根据每一次的输入值分别输出A、B、C、D、E中的一个字母或"data error!"或"end"。输出end时程序结束。
温度转换异常处理
描述
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母 C 或小写字母 c 结尾,温度可以是整数或小数,如:12.34C 指摄氏度 12.34 度;
(2) 输入输出的华氏度采用大写字母 F 或小字字母 f 结尾,温度可以是整数或小数,如:87.65F 指华氏度 87.65 度;
(3) 考虑异常输入的问题,如输入不合法则抛出异常;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
输入格式
输入一个带单位的温度
输出格式
输入正常,输出转换后的温度,保留小数点后2位小数。
当用户输入值末位不是“C、c、F、f”中的一个时,输出"输入错误,末位只能是'C','c','F','f'"
当检测到NameError错误时输出'试图访问的变量名不存在'
当检测到SyntaxError 错误时输出'存在语法错误'
特殊数列求和
描述
用户输入一个小于10的正整数,求1 + 12 + 123 + 1234 + …… 的前n项的和,当输入大于或等于10时,输出“data error!”
输入格式
一个小于10的正整数
输出格式
数列的前 n 项和或“data error!” 输入输出示例
n = int(input()) if n <= 9: total = 0 tmp = 0 # 用来存上一个数 for i in range(1, n + 1): tmp = tmp * 10 + i # 计算下一个要加的数: 1 —> 12,1234 —> 12345 total = total + tmp print(total) else: print('data error!')
阶乘和数
描述
一个正整数如果等于组成它的各位数字的阶乘之和,则该正整数称为阶乘和数。例如正整数145,1!+4!+5!等于145,因此145就是一个阶乘和数。输入一个正整数,计算它的各位数字的阶乘之和,判断它是否是一个阶乘和数。当输入的数字为阶乘和数时,输出“YES”,否则输出“NO”。注意:输入的正整数的最高位不为0。
输入
一个正整数。
输出
输出字符串“YES”或“NO”
输入输出示例
输入 输出 示例 1 145 YES 示例 21400 NO
正整数145,1!+4!+5!等于145 import math # 循环解法 # n = input() # total = 0 # for i in n: # total = total + math.factorial(int(i)) # print(total) # if int(n) == total: # print('YES') # else: # print('NO') import math n = input() s = sum(math.factorial(int(i)) for i in n) # 推导式 if int(n) == s: print('YES') else: print('NO')
老鼠打洞
描述
《九章算术》的“盈不足篇”里有一个很有意思的老鼠打洞问题。原文这么说的:今有垣厚十尺,两鼠对穿。大鼠日一尺,小鼠亦一尺。大鼠日自倍,小鼠日自半。问:何日相逢?各穿几何?
这道题的意思就是说,有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打一尺,小老鼠也是一尺。大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。问它们几天可以相逢,相逢时各打了多少。
(注:本题禁止使用幂运算)
输入格式
输入1个整数,代表墙的厚度,单位为尺
输出格式
第一行输出1个整数,表示相遇时所需的天数
第二行输出2个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1位数字。
输入输出样例
判断IP地址合法性(2022重点看)
描述
互联网上的每台计算机都有一个独一无二的编号,称为IP地址,每个合法的IP地址由'.'分隔开的4个数字组成,每个数字的取值范围是0-255。
现在用户输入一个字符串 s (不含空白符,不含前导0,如001直接输入1),请你判断 s 是否为合法IP,若是,输出'Yes',否则输出'No'。
如用户输入为202.114.88.10, 则输出Yes; 当用户输入202.114.88,则输出No。
输入格式
一个字符串
输出格式
输出'Yes'或'No' ===输入输出示例===
输入 输出
示例 1 255.255.255.0 Yes