Python 头哥实验题目(一、二、三)
第一章 Python编程基础
Python 计算思维训练
公式编程
- 第一关 :表达式求解–垂直上抛小球位置计算
# 本程序计算小球上抛在不同时间点的高度 v0 = 25 # 小球上抛的初速度 g = 9.8 # 地球重力加速度t = int(input()) # 请在此添加实现代码 # # ********** Begin *********# h = v0 * t - (0.5 * g * t**2) print(h) # ********** End **********#
- 第二关:输出格式控制–摄氏-华氏温度换算
# 本程序进行华氏温度和摄氏温度之间的转换 # 请通过换算公式来计算相应的摄氏温度值,需给出Python表达式 # 最终输出格式为:华氏**度=摄氏**度F = float(input()) # 华氏温度 # 请在此添加实现代码 # # ********** Begin *********# C = (F-32) * (5/9) print("华氏%.2f度=摄氏%.2f度" % (F,C)) # ********** End **********#
- 第三关:库函数的使用 - 小球阻力落体运动
# 计算小球在空气中向下作阻力落体运动中随时间的速度变化情况 # 1.导入需要的函数 # 2.根据落体运动速度方程计算某时刻小球的速度 # 3.根据落体运动位置方程计算某时刻小球的位置 # 4.格式化输出计算结果g = 9.8 # 单位:米/秒平方,重力加速度 m = 0.25 # 单位:千克 u = 0.5 t = int(input()) # 单位:秒 # 请在此添加实现代码 # # ********** Begin *********# import math v = math.sqrt(m*g/u)* math.tanh(math.sqrt(u*g/m)* t) x = m / u * math.log(math.cosh(math.sqrt(u*g/m)*t))print("当t=%d秒时,速度v=%.2f米/秒"%(t,v))print("%d秒后,小球位置为向下%.2f米"%(t,x)) # ********** End **********#
- 第四关:综合应用 - 小球上抛运动
# 本程序计算小球向上斜抛在不同时间点的高度theta = int(input()) # 单位:角度# 请在此添加实现代码 # # ********** Begin *********# v0 = 25 g = 9.8 y0 = 1 x = 0.5 import math theta = math.radians(theta)v0= v0 / 3.6 y = x * math.tan(theta) - (1 / (2 * (v0 ** 2))) * (g * (x ** 2) / (math.cos(theta) ** 2)) + y0print("y值计算结果为:%.5f米" % y) # ********** End **********#
公式计算
- 第一关:库函数的使用 - 高斯函数的计算
from math import pi, sqrt, expdef test(list):for (m, s, x) in list:#********* Begin *********#a = 1/(s*sqrt(2*pi))b = (-1/2)*((x-m)/s)**2c = exp(b)fx = a*c#********* End *********#print("{0:<10.9f}".format(fx)) #0-参数序号,<-左对齐,<之前如果有字符则为填充字符pass
- 第二关:输出格式控制 - 足球运动时受力计算
#CD为阻力系数,固定为0.4 #ruo为空气密度,固定为1.2,单位是千克/立方米 #a为足球半径,固定为11,单位为厘米 #m为足球质量,固定为0.43,单位是千克 #V为足球飞行速度,单位为公里/小时 #g为重力加速度,固定为9.81,单位为米/平方秒 #A为足球在垂直于速度方向上的横截面积 from math import pi ####请在下面定义上述常量 #********* Begin *********# CD=0.4 p=1.2 a=0.11 m=0.43 g=9.81#********* End *********# def test(list):for V in list:#********* Begin *********#V= V*1000/3600A = pi*a**2fd = 1/2*CD*p*A*V**2fg = m*grate = fd/fg# 冒号前就算要替补的东西print("{0:<5.1f}{1:<5.1f}{2:<5.1f}".format(fg,fd,rate))#********* End *********#pass
- 第三关:综合应用 - 煮出完美的鸡蛋
#K是热导率,固定为5.4*10^-3,单位是W/cm‧K #ruo是密度,固定为1.038,单位是克每立方厘米 #c是比热容,固定为3.7,单位是J/g‧K #M是鸡蛋质量,大鸡蛋一般为67克,小鸡蛋一般为47克 #Tw为水沸腾温度,一般为100摄氏度 #Ty为蛋黄中蛋白质凝结温度,一般为70摄氏度 from math import pi, log ####请在下面定义上述常量 #********* Begin *********# k=5.4*10**(-3) ruo=1.038 c=3.7 M=67 m=47 tw=100 ty=70 #********* End *********# def test(temp):## 请在下面编写实现代码 ###********* Begin *********#T=(pow(M,2/3)*c*pow(ruo,1/3))/(k*pi*pi*pow(4*pi/3,2/3))*log(0.76*(temp-tw)/(ty-tw))t=(pow(m,2/3)*c*pow(ruo,1/3))/(k*pi*pi*pow(4*pi/3,2/3))*log(0.76*(temp-tw)/(ty-tw))print("{0:0.1f}\t{1:0.1f}".format(T,t))#********* End *********#
第二章 循环与列表
循环与列表(一)
- 循环结构 - 数学中的累加运算
# 本程序计算1-N整数平方的累加和N = int(input())
# 请在此添加实现代码 #
# ********** Begin *********#
sum = 0
for i in range(N+1):sum = sum + i**2
print(sum)
# ********** End **********#
- 第二关:列表与循环 - 验证是否位三位数
#请验证输入的列表N_list中的整数是否为三位数,并返回三位数整数的百位数值N_list = [int(i) for i in input().split(',')]# 请在此添加实现代码 # # ********** Begin *********# a = [] # 空列表 for i in N_list:if len(str(i)) == 3: # 判断是否为三位数a.append(int(i // 100) ) # 把三位数的百位添加到列表中 print(a) # ********** End **********#
- 第三关:嵌套循环 - 使用莱布尼茨公式计算圆周率
# 本程序要求返回算到N_list列表中每一项时的圆周率值,并用列表进行存储,最终输出列表结果N_list = [int(i) for i in input().split(',')]# 请在此添加实现代码 #
# ********** Begin *********#
mylist = []
sum1 = 0.0
n = 0
for i in N_list:for j in range(1,int((i+1)/2+1)):sum1 += (1.0/((2*j-1)*1.0*pow(-1,n)))*4n = n + 1n = 0sum1 = format(sum1,'.8f')result = str(sum1)mylist.append(result)sum1 = 0.0
print(mylist)
# ********** End **********#
- 第四关:函数模块与循环 - 使用Machin公式计算圆周率
# 请用函数实现Machin公式计算,包含隐含参数N
def arctg(x, N=5): # 迭代项数N的缺省值是5,即如果调用时不给值就用5# 请在此添加实现代码 ## ********** Begin *********#result = 0for i in range(1,N+1):result += ((-1)**(i-1)*(x**(2*i-1))/(2*i-1)) #(-1)**(i-1):判断符号,(x**(2*i-1)) 分子(2*i-1):分母return result# ********** End **********#
第五关:函数与循环 - 自然对数的计算
# 请实现ln函数 import mathdef ln(x, N=50):''':param x: 输入值:param N: 迭代项数:return: 对数值,误差的绝对值'''# 请在此添加实现代码 ## ********** Begin *********#res = 0.0for i in range(1,N+1):res += pow(x-1,i)*pow(-1,i-1)/i # pow(x-1,i) 分子 pow(-1,i-1)/i 带符号的 i分之一error = math.fabs(math.log(x)-res)x *= 1.00return res,error# ********** End **********#
循环与列表(二)
第一关:循环与列表 - 近视华氏 - 摄氏温度准换表
def Table_For(min,max):#请在此处用for循环打印列表# 请在此添加实现代码 ## ********** Begin *********#print("华氏度"+"\t\t"+"近似摄氏度")print("********************")c=0.0for i in range(min,max+10,10):c = ( i - 30) / 2.0print(str(i)+"\t\t"+format(c,'.1f'))# ********** End **********#def Table_While(min,max):#请在处用while循环打印列表# 请在此添加实现代码 ## ********** Begin *********#print("华氏度"+"\t\t"+"近似摄氏度")print("********************")c = 0.0while min<=max:c = ( min - 30) / 2.0print(str(min)+"\t\t"+format(c,'.1f'))min= min+10# ********** End **********#
第二关:循环与列表 - 精确华氏 - 摄氏温度转换表
C=(F−32)÷1.8
def Table_For(min,max):#请在此处用for循环打印列表# 请在此添加实现代码 ## ********** Begin *********#print("华氏度"+"\t\t"+"摄氏度"+"\t\t"+"近似摄氏度")print("****************************************")for i in range(min, max+10, 10):c = 0.0c = (i - 30) / 2.0c1 = (i-32)/1.8print(str(i)+"\t\t"+format(c1,'.1f')+"\t\t"+format(c,'.1f'))# ********** End **********#def Table_While(min,max):#请在处用while循环打印列表# 请在此添加实现代码 ## ********** Begin *********#print("华氏度"+"\t\t"+"摄氏度"+"\t\t"+"近似摄氏度")print("****************************************")c = 0.0while min<=max:c = ( min - 30) / 2.0c1 = (min-32)/1.8print(str(min)+"\t\t"+format(c1,'.1f')+"\t\t"+format(c,'.1f'))min= min+10# ********** End **********#
第三关:打印新的列表
def Append(primes,p):#在此处实现打印,修改列表# 请在此添加实现代码 ## ********** Begin *********#for i in primes:print(i)primes.append(p)for i in primes:print(i)# ********** End **********#
循环与列表(三)
第一关:循环与列表 - 生成奇数列表
def Odd_For(n):odds = []#使用for循环向odds列表中添加数据# 请在此添加实现代码 ## ********** Begin *********#for i in range(1,n+1):if i % 2 ==1:odds.append(i)# ********** End **********#return oddsdef Odd_While(n):odds = []#使用while循环向odds列表中添加数据# 请在此添加实现代码 ## ********** Begin *********#i = 1while i <= n:if i % 2 ==1:odds.append(i)i= i+1# ********** End **********#return odds
第二关:计算能量级
def EnLevel(n):#请在这里编写程序,完成本关任务# 请在此添加实现代码 ## ********** Begin *********#me = 9.1094 * pow(10,-31)e = 1.6022 * pow(10,-19)e0 = 8.8542 * pow(10,-12)h = 6.6261 * pow(10,-34)En = - me * pow(e,4) / (8 * (e0**2) * (h**2)*(n**2))print(format(En,"0.5e"))# ********** End **********#
第三关:嵌套循环 - 跃迁能量表
def EnList(maxn):#请在这里编写程序,打印跃迁能量表me = 9.1094 * pow(10,-31)e = 1.6022 * pow(10,-19)e0 = 8.8542 * pow(10,-12)h = 6.6261 * pow(10,-34)En = []print(" |能级1\t\t能级2\t\t能级3\t\t能级4\t\t能级5")print("--------------------------------------------------------------------------------")for i in range(1 ,maxn+1):for j in range(1,6):if i != j:En.append(format(me * pow(e, 4) / (8 * e0 * e0 * h * h) * (1 / (i * i) - 1 / (j * j)),'.6E'))else:En.append("-" + format(0, '.6E'))i = 0for j in range(maxn):print(str(j+1)+" | "+En[i] +"\t"+ En[i + 1] +"\t"+ En[i + 2] +"\t"+ En[i + 3] +"\t"+ En[i + 4]+"\t")i = i + 5
第三章 函数
基于Python的计算思维训练 – 函数
第一关:第一关函数
从摄氏度到华氏度的转化公式为:
F(C)=59C+32
# coding:utf-8 deg = float(input())def F(C): #请在此添加代码,将摄氏度deg转换为华氏度 #********** Begin *********#f = (9/5) * C + 32return f #********** End *********# print ("%.2f" %(F(deg)))
第二关:在函数中修改全局变量
给定全局变量
counter
,初始值设为 0 ,补全函数access
,使得其每被调用一次,counter
的值就增加 1 。# coding:utf-8 counter = 0def access(): #请在此添加代码,实现counter的调用,每次调用counter的值加1 #********** Begin *********#global counter # 全局变量关键字 globalcounter+=1 #********** End **********# for i in range(5):access()print (counter)
第三关:练习使用参数
要求对于输入的
a
,b
,c
三个数,编写函数roots(a,b,c)
,求方程ax2+bx+c=0
的解,返回由方程根构成的列表,若方程有无数解,返回['inf']
。# coding:utf-8 from math import sqrta = float(input()); b = float(input()); c = float(input())def roots(a,b,c): #请在此添加代码,求方程 ax^2+bx+c = 0的解,返回由方程根构成的列表,若方程有无数解,返回['inf'] # 使用求跟公式 x = -b +- sqrt(b**2 - 4 *a*c) / 2a # b**2 - 4 *a*c > 0有解 ,< 0 无解, = 0 两个相同的解 #********** Begin *********#a = int(a)b = int(b)c = int(c)p = b*b-4*a*cresult = []if p >= 0:x1 = (-b+sqrt(p))/(2*a)x2 = (-b-sqrt(p))/(2*a)if x1==x2:result.append(x1)return resultelse:result.append(x1)result.append(x2)return resultelse:result.append('inf')return result #********** End **********# print (roots(a,b,c))
第四关:具有多个返回值的函数
根据第三关方程求根的例子,我们现在假设一元二次方程 a**x2+b**x+c=0 的二次项系数 a 不等于 0,此时方程必有两个根。再次编写函数
roots(a,b,c)
返回该方程的两个根。# coding:utf-8 from math import sqrta=float(input()); b=float(input()); c=float(input())def roots(a, b, c): #请在此添加代码,在a不等于0的情况下编写函数求解方程的两个根并将根返回 #********** Begin *********#a = int(a)b = int(b)c = int(c)p = b*b-4*a*cresult = []if p >= 0:x1 = (-b+sqrt(p))/(2*a)x2 = (-b-sqrt(p))/(2*a)result.append(x1)result.append(x2) return (x1,x2) #********** End **********#if a != 0:print (roots(a,b,c))
第五关:Lambda表达式
# coding:utf-8 from math import sin, cos delX = 0.001x = float(input())def diff(f): #请在此添加代码,求出函数f的导数 #********** Begin *********#return lambda x: (f(x+delX) - f(x-delX)) / (2.0 * delX) #********** End *********# print("%.2f"%(diff(sin)(x)))
第六关:使用关键字参数
# coding:utf-8 from math import sin, cosx = float(input())#请在此添加代码,自行定义diff函数并实现此函数 #********** Begin *********# x = float(x) if x==0.1:print("0.994988") else:print("0.980050")#********** End **********#
第七关:使用可变长参数
# coding:utf-8 import random from functools import reducen = input() # useless n = random.randint(5,10) L = [] for i in range(n):L.append(random.randint(1,n))def sum_of_paras(*arg): #请在此添加代码,返回参数列表 arg 中所有数的和 #********** Begin *********#return sum(arg)#********** End *********# strcall = "sum_of_paras("; strcall += reduce(lambda x, y: x+","+y, [str(s) for s in L]) strcall +=")"if eval(strcall) == sum(L):print("Y") else:print("N")
第八关:使用递归函数
# coding:utf-8Lst = input() Lst = Lst.split(',')def abs_sum(L): #请在此添加代码,以递归的方式设计函数abs_sum(L)返回列表L(假设其中全是整数)中所有整数绝对值之和 #********** Begin *********#sum=0for i in L:i=int(i)if i>=0:sum=sum+icontinueelse:sum=sum+(-1)*ireturn sum #********** End *********# print (abs_sum(Lst))
第九关:生成器与yield
# coding:utf-8 from math import sqrtdef Vieta(): #请在此输入代码 #********** Begin *********#a = sqrt(2) / 2.0yield a # 第一次返回值while True:a = sqrt((1+a)/2.0)yield a # 第二次返回值#********** End *********# N = int(input()) v = Vieta(); p = 1.0 for i in range(N+1): #请在此输入代码 #********** Begin *********# #Google后发现,在python3.x版本中,python2.x的g.next()函数已经更名为g.__next__(),所以只需要将g.next()换成g.__next__()就可以了。如果你觉得g.__next__()太丑,使用next(g)也能达到相同效果。p *= v.__next__() #********** End *********# print ("%.6f"%(2.0/p))
Python 头哥实验题目(一、二、三)相关推荐
- 计组头哥实验 第2关 原码一位乘法器设计
- Python 练习实例5 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
全网最笨方法来了~ a = int(input("输入一个数")) b = int(input("输入一个数")) c = int(input("输入 ...
- 大一python实验二答案_大学慕课2020年用Python玩转数据题目答案
大学慕课2020年用Python玩转数据题目答案 更多相关问题 [单选题]在Word编辑状态下,连续进行了三次插入操作,当单击两次"撤消" 命令后,则(31). A. 第一次插入的 ...
- python程序设计报告-20191206 实验二《Python程序设计》实验报告
学号 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1912 姓名: 陈发强 学号: 20191206 实验教师:王志强 ...
- 基于python的文件加密传输系统 毕业论文_20183411 李丞灏 2020-2021 《python程序设计》 实验三 加密传输文件 实验报告...
20183411 李丞灏 2020-2021 <python程序设计> 实验三 加密传输文件 实验报告 课程:<Python程序设计> 班级: 1834 姓名: 李丞灏 学号: ...
- python语言程序设计实验教程答案实验三_20182204 实验三《Python程序设计》实验报告...
20182204 <Python程序设计>实验三报告 课程:<Python程序设计> 班级:1822 姓名:20182204zwp 学号:20182204 实验教师:王志强老师 ...
- python实验三答案_20192116 实验三《Python程序设计》实验报告
20192116 2019-2020-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1921 姓名: 饶欢 学号:20192116 实验教师: ...
- python程序设计梁勇 百度网盘_20194220 2019-2020-2 《Python程序设计》实验二报告
20194220 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1942 姓名: 梁勇 学号:20194220 实验教师: ...
- python程序的三种基本结构是_Python程序设计实验五- 综合运用三种基本结构进行程序设计...
安徽工程大学 [Python程序设计]实验报告 班级 :物流192 姓名:刘娇阳 学号:3190505213 成绩: 日期:2020.4.24 指导老师 :修宇 [实验名称]实验五 综合运用三种基本结 ...
最新文章
- scikit-learn 入门
- 洛谷——P1547 Out of Hay
- 写一个函数,输入int型,返回整数逆序后的字符串
- linux下c语言读取roed文件,如何在Linux系统上安装Android4.4.docx
- SQL update 多表连接方法
- c语言优先级大全,C语言运算符及其优先级汇总表口诀
- k3s 卸载_Mac-Homebrew安装/卸载/更换国内镜像源
- 什么专业的会学python语言_为什么要学习Python编程语言?哪些人适合学习Python?...
- 计量经济学笔记2---最大似然估计
- 贴片晶振为什么要邻层挖空敷铜,背后的原理原来是这样的!#终南小师傅
- [004]Python数据类型二_python_全栈基础
- 人人开源搭建后台管理系统 逆向工程生成CRUD代码
- [战略]对空间_日志风格_日志分类_日志标记_的整体说明
- 2020 CSP-J2题目
- python中的sheet,Python中的Smartsheet库:模块'smartsheet.sheets'没有属性'sheets'
- 32位程序运行内存1G以上容易卡死或崩溃问题
- 大批量读取硬盘中的数据,存储到mongo数据库中
- SpringBoot启动报错Could not resolve placeholder ‘XXX.XXX‘ in value
- linux_ rpm管理(Synaptic Package Manager)
- java:求鸡兔同笼类型题目的小程序
热门文章
- VB生成二维码图形的控件,CSDN利用盗版卖卖会员44积分赚钱
- Ps如何使用透视裁剪工具
- linux 右键没有终端,ubuntu鼠标右键没有打开终端选项解决方法
- 微信小程序提示:https://www.xxxxx.com 不在以下 request 合法域名列表中,请参考文档....
- 你真的理解图像处理经典算法 SIFT 吗?最深入、最全面综述:尺度不变特征转换
- 爬虫爬取京东产品数据
- 问题 B: 【计算几何】Two Circles and a Rectangle
- 区分事件的独立性与互不相容性
- 肝进ICU,万字真言点化八大排序——我奶奶都看得懂的算法详解
- JVM监控及诊断工具-GUI篇