python
- 前言
- 1.1球表面积和体积
- 1.2 摄氏温度和华氏温度转换
- 2.1 三角形边长求面积
- 2.2 解一元二次方程
- 3.1 求区间偶数和
- 3.2 求区间闰年
- 3.3 求阶乘
- 4.1 鸡兔同笼
- 4.2 小球下落
- 4.3 猴子吃桃问题
- 5.1 统计单词个数
- 5.2 建立列表
- 6.1 统计字符
- 6.2 判断回文串
- 6.3 翻转键值对
- 7.1 求最小值
- 7.2 斐波那契数列
- 8.1 求区间素数
- 8.2 求逆序数
- 8.3 杨辉三角
基础
前言
代码打包上传到资源里了
有需求自取,包含以下所有题目的代码
链接:资源下载链接
1.1球表面积和体积
题目:输入球半径,计算球的表面积和体积。要求:结果保留2位小数,程序文件名为P1_1.py。
运行结果如下(键盘输入内容用下划线标注):
半径=1.2345
球半径=1.23,表面积=19.15,体积=7.88
答案:将程序代码复制粘贴到答案区。
重要提示:因为是系统自动批阅给分,即使结果正确,如果结果中多输出一个符号(如:空格,换行,等等),系统都认为答案错误,给0分。所以一定要严格按照题目要求输出结果信息(包括input函数的提示信息);所有标点符号都使用英文的,不要使用汉字的。以后题目不再提示。
代码:
import math
class MyMath:
def __init__(self, r):
self.r = r
def perimeter_round(self):
return 2 * math.pi * self.r
def area_round(self):
return math.pi * self.r * self.r
def fun_r(self):
return self.r;
def area_ball(self):
return 4 * math.pi * self.r ** 2
def volume_ball(self):
return 4 / 3 * math.pi *self.r ** 3
if __name__ == '__main__':
n = float(input("请输入半径:"))
m = MyMath(n)
print("球的半径={0:.2f},球的表面积={1:.2f},球的体积={2:.2f}".\
format(m.fun_r(),m.area_ball(), m.volume_ball()))
结果:
1.2 摄氏温度和华氏温度转换
题目:摄氏温度和华氏温度转换。摄氏温标(C)和华氏温标(F)之间的换算关系为:F=C×1.8+32,C=(F-32)÷1.8。要求:结果保留2位小数,程序文件名为P1_2.py。
运行结果如下(键盘输入内容用下划线标注):
请输入摄氏温度:36.789
摄氏温度:36.79,华氏温度:98.22
请输入华氏温度:123.456
华氏温度:123.46,摄氏温度:50.81
代码:
class Temperature:
def __init__(self, degree):
self.degree = degree
def toF(self):
return self.degree*9/5 + 32
def toC(self):
return (self.degree -32) * 5/9
if __name__ == '__main__':
n1 = float(input("请输入摄氏温度:"))
t1 = Temperature(n1)
print("摄氏温度:{0:.2f},华氏温度:{1:.2f}".format(n1, t1.toF()))
n2 = float(input("请输入华氏温度:"))
t2 = Temperature(n2)
print("华氏温度:{0:.2f},摄氏温度:{1:.2f}".format(n2,t2.toC()))
结果:
2.1 三角形边长求面积
题目:输入三角形的三边长,计算三角形的面积。要求:如果三边长不能构成三角形,则显示“无法构成三角形”,否则显示结果;结果保留2位小数,程序文件名为P2_1.py。
运行结果如下(键盘输入内容用下划线标注):
第1条边长=10
第2条边长=10
第3条边长=25
无法构成三角形
运行结果如下(键盘输入内容用下划线标注):
第1条边长=3
第2条边长=4
第3条边长=5
边长分别为:3.00,4.00和5.00的三角形的面积=6.00
代码:
# 实验2 第一题
from math import sqrt
a = float(input("第1条边长="))
b = float(input("第2条边长="))
c = float(input("第3条边长="))
a1=a
a2=b
a3=c
if(a < b): a,b = b,a
if(a < c): a,c = c,a
if(b < c): b,c = c,b
if(a < 0 or b < 0 or c < 0 or b+c <= a): print("无法构成三角形")
else:
h = (a+b+c)/2
area = sqrt(h*(h-a)*(h-b)*(h-c))
print("边长分别为:{0:.2f},{1:.2f}和{2:.2f}的三角形的面积={3:.2f}".format(a1,a2,a3,area))
结果:
2.2 解一元二次方程
题目:输入一元二次方程的三个系数,求解方程的根。要求:必须是二次方程,否则报错“不是二次方程”;对于二次方程,分重根、两个相异实根和共轭复根三种情况显示结果;结果保留2位小数,程序文件名为P2_2.py。
运行结果如下(键盘输入内容用下划线标注):
二次项系数=0
一次项系数=3
常数项=-9
三个系数分别为:0.00,3.00和-9.00
不是二次方程
运行结果如下(键盘输入内容用下划线标注):
二次项系数=1
一次项系数=-6
常数项=9
三个系数分别为:1.00,-6.00和9.00
两个重根为:3.00
运行结果如下(键盘输入内容用下划线标注):
二次项系数=1
一次项系数=-1
常数项=-6
三个系数分别为:1.00,-1.00和-6.00
两个相异实根分别为:3.00和-2.00
运行结果如下(键盘输入内容用下划线标注):
二次项系数=3
一次项系数=0
常数项=18
三个系数分别为:3.00,0.00和18.00
两个共轭复根分别为:0.00+2.45j和-0.00-2.45
代码:传送门
3.1 求区间偶数和
题目:编写程序,计算区间[m,n]中的偶数之和(m,n从键盘输入,要求m,n都为整数且n>m)。
程序文件名为P3_1.py。
运行结果如下(键盘输入内容用下划线标注):
请输入整数m:1
请输入整数n(n>m):100
m-n中所有偶数的和: 2550
请输入整数m:1
请输入整数n(n>m):1000
m-n中所有偶数的和: 250500
代码:传送门
3.2 求区间闰年
题目:编写程序输出第m年到第n年(m,n从键盘输入,要求m,n都为整数且n>m)的所有闰年。
程序文件名为P3_2.py。
运行结果如下(键盘输入内容用下划线标注):
请输入起始年份m:2000
请输入终止年份n(n>m):2200
2000 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 2068 2072 2076 2080 2084 2088 2092 2096 2104 2108 2112 2116 2120 2124 2128 2132 2136 2140 2144 2148 2152 2156 2160 2164 2168 2172 2176 2180 2184 2188 2192 2196
代码:传送门
3.3 求阶乘
题目:编写程序,输入整数n(n>=0),分别利用for循环和while循环求n!。
程序文件名为P3_3.py。
运行结果如下(键盘输入内容用下划线标注):
请输入非负整数n:5
for循环:5!=120
while循环:5!=120
代码:传送门
4.1 鸡兔同笼
题目:编程实现鸡兔同笼问题。已知在同一个笼子里共有h只鸡和兔,鸡和兔的总脚数为f,其中h和f由用户输入,求鸡和兔各有多少只?要求使用两种方法:一是利用循环进行枚举测试;二是求解方程。
程序文件名为P4_1.py。
运行结果如下(键盘输入内容用下划线标注):
请输入总头数:10
请输入总脚数(必须是偶数):26
方法一:鸡:7只,兔:3只
方法二:鸡:7只,兔:3只
请输入总头数:10
请输入总脚数(必须是偶数):25
请输入总脚数(必须是偶数):26
方法一:鸡:7只,兔:3只
方法二:鸡:7只,兔:3只
请输入总头数:10
请输入总脚数(必须是偶数):16
方法一:无解,请重新运行测试!
方法二:无解,请重新运行测试!
代码:传送门
4.2 小球下落
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n(n为大于零的整数,要求从键盘输入)次落地时,共经过多少米?第n次反弹多高?
程序文件名为P4_2.py。
运行结果如下(键盘输入内容用下划线标注):
请输入n的值(n>0且为整数):10
小球在第10次落地时,共经过299.609375米
第n次反弹0.09765625米
代码:传送门
4.3 猴子吃桃问题
题目:猴子第1天摘下了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第2天早上又把剩下的桃子吃掉了一半,又多吃了一个,然后每天早上都吃了前一天剩下的一半零一个,到第n天早上想吃时,发现只剩下一个桃子了,编写程序求第一天共摘了多少个桃子?其中n从键盘输入。
代码:传送门
5.1 统计单词个数
题目:初始字符串需要手工输入
程序文件名为P5_1.py。
运行结果如下:
请输入字符串:I love china!
其中的单词总数有: 3
代码:传送门
5.2 建立列表
题目:请先建立一个元素类型为字符串的列表,建立过程为:从键盘输入列表元素(允许列表元素重复),以字符’Q’结束。然后删除列表里的重复元素,并输出新的列表。
运行结果如下(键盘输入内容用下划线标注):
请输入列表元素(允许重复输入),以字符’Q’结束:a
请输入列表元素(允许重复输入),以字符’Q’结束:A
请输入列表元素(允许重复输入),以字符’Q’结束:a
请输入列表元素(允许重复输入),以字符’Q’结束:b
请输入列表元素(允许重复输入),以字符’Q’结束:2
请输入列表元素(允许重复输入),以字符’Q’结束:2
请输入列表元素(允许重复输入),以字符’Q’结束:1
请输入列表元素(允许重复输入),以字符’Q’结束:q
初始列表为: [‘a’, ‘A’, ‘a’, ‘b’, ‘2’, ‘2’, ‘1’]
删除重复元素后的列表为: [‘a’, ‘A’, ‘b’, ‘2’, ‘1’]
代码:传送门
6.1 统计字符
题目:输入一个字符串,分类统计并显示其中的英文字母(不区分大小写)、数字、空格和其他字符出现的次数。
请输入字符串:Cat has -56.7
字符总数: 13
字母个数: 6
数字个数: 3
空格个数: 2
其它字符个数: 2
代码:传送门
6.2 判断回文串
题目:输入一个字符串,判断其是否是一个“回文串”。如果一个字符串从左向右与从右向左读完全一致,就是回文串。如字符串“121”和“A8A”是回文串,“1232”不是回文串。
请输入字符串:1232
不是回文串
运行结果如下(键盘输入内容用下划线标注):
请输入字符串:12ABA21
是回文串
代码
#实验六 第二题
s = input('请输入字符串:')
a = reversed(list(s))
if list(a) == list(s):
print('是回文串')
else:
print('不是回文串')
6.3 翻转键值对
题目:输入3个字典元素,建立一个字典(假设键和值都是字符串),并且键对应的值不允许重复,显示该字典。然后将每个元素的键和值交换,再建立一个新字典,显示新字典。例如字典{“a”:1,“b”:2,“c”:3}对应的新字典为{1: ‘a’, 2: ‘b’, 3: ‘c’}。
键=id
值=2021213102
键=name
值=张三
键=age
值=18
原字典: {‘id’: ‘2021213102’, ‘name’: ‘张三’, ‘age’: ‘18’}
新字典: {‘2021213102’: ‘id’, ‘张三’: ‘name’, ‘18’: ‘age’}
代码:传送门
7.1 求最小值
题目:编写程序,利用可变参数定义一个求任意个数数值的最小值的函数(函数名及参数为:min_n(a,b,*c)),并编写测试代码进行测试(如输入测试数据:8,2,3,0,9,分两次调用函数,分别输出8,2两个数的最小值及8,2,3,0,9五个数的最小值)。
请输入参数a:8
请输入参数b:2
请输入参数c:3
请输入参数d:0
请输入参数e:9
8 2 两个数最小值为 2
8 2 3 0 9 五个数最小值为 0
代码:传送门
7.2 斐波那契数列
题目:编写一个求斐波那契数列的函数fib(n),并编写测试代码,输出前m项(要求:m大于零的整数,需要键盘输入。每项宽度5个字符位置,右对齐)。分别用递归和非递归方式实现。
请输入m的值:10
递归实现结果:
1 1 2 3 5 8 13 21 34 55
非递归实现结果:
1 1 2 3 5 8 13 21 34 55
代码:传送门
8.1 求区间素数
题目:显示区间[m , n]中所有素数。假设:m和n都是大于1的整数,m≤n,n小于10000。
要求:
每行显示5个素数,每个素数占6列,右对齐;
m和n从键盘输入;
编写函数p(x)判断大于1的整数x是否是素数。若x是素数,则p(x)的值为True,否则为False。
代码:传送门
8.2 求逆序数
题目:输入一个整数,显示其逆序数。比如123的逆序数为321,-123的逆序数为-321。
要求:设计函数inv(m),功能是逆序显示m;程序循环输入整数,显示该数及其逆序数,直到输入字母Q结束;程序文件名为
请输入一个整数,Q或q表示结束:1234
1234的逆序数=4321
请输入一个整数,Q或q表示结束:0
0的逆序数=0
请输入一个整数,Q或q表示结束:-456
-456的逆序数=-654
请输入一个整数,Q或q表示结束:q
代码:传送门
8.3 杨辉三角
题目:输入一个小于16的正整数n,显示杨辉三角形的前n行。
杨辉三角形,第m行有m个元素。每行第1个和最后一个元素都是1,其余元素等于其上方与左上方两个元素之和。
要求:每个元素占5列,右对齐;程序文件名为P8_3.py。
程序运行结果如下(键盘输入内容用下划线标注):
行数=7
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
代码:传送门