第一章 Python编程基础

Python 计算思维训练

公式编程

  1. 第一关 :表达式求解–垂直上抛小球位置计算

    # 本程序计算小球上抛在不同时间点的高度
    v0 = 25     # 小球上抛的初速度
    g = 9.8     # 地球重力加速度t = int(input())
    #   请在此添加实现代码   #
    # ********** Begin *********#
    h = v0 * t - (0.5 * g * t**2)
    print(h)
    # ********** End **********#
    
  2. 第二关:输出格式控制–摄氏-华氏温度换算

    # 本程序进行华氏温度和摄氏温度之间的转换
    # 请通过换算公式来计算相应的摄氏温度值,需给出Python表达式
    # 最终输出格式为:华氏**度=摄氏**度F = float(input())    # 华氏温度
    #   请在此添加实现代码   #
    # ********** Begin *********#
    C = (F-32) * (5/9)
    print("华氏%.2f度=摄氏%.2f度" % (F,C))
    # ********** End **********#
    
  3. 第三关:库函数的使用 - 小球阻力落体运动

    # 计算小球在空气中向下作阻力落体运动中随时间的速度变化情况
    # 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 **********#
    
  4. 第四关:综合应用 - 小球上抛运动

    # 本程序计算小球向上斜抛在不同时间点的高度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 **********#
    

公式计算

  1. 第一关:库函数的使用 - 高斯函数的计算

    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
    
  2. 第二关:输出格式控制 - 足球运动时受力计算

    #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
    
  3. 第三关:综合应用 - 煮出完美的鸡蛋

    #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. 循环结构 - 数学中的累加运算
# 本程序计算1-N整数平方的累加和N = int(input())
#   请在此添加实现代码   #
# ********** Begin *********#
sum = 0
for i in range(N+1):sum = sum  + i**2
print(sum)
# ********** End **********#
  1. 第二关:列表与循环 - 验证是否位三位数

    #请验证输入的列表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 **********#
    
  2. 第三关:嵌套循环 - 使用莱布尼茨公式计算圆周率

# 本程序要求返回算到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 **********#
  1. 第四关:函数模块与循环 - 使用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 **********#
  1. 第五关:函数与循环 - 自然对数的计算

    # 请实现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 **********#
    

循环与列表(二)

  1. 第一关:循环与列表 - 近视华氏 - 摄氏温度准换表

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 **********#
  1. 第二关:循环与列表 - 精确华氏 - 摄氏温度转换表

    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 **********#
  2. 第三关:打印新的列表

    def Append(primes,p):#在此处实现打印,修改列表#   请在此添加实现代码   ## ********** Begin *********#for i in primes:print(i)primes.append(p)for i in primes:print(i)# ********** End **********#
    

循环与列表(三)

  1. 第一关:循环与列表 - 生成奇数列表

    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
    
  2. 第二关:计算能量级

    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 **********#
    
  3. 第三关:嵌套循环 - 跃迁能量表

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的计算思维训练 – 函数

  1. 第一关:第一关函数

    从摄氏度到华氏度的转化公式为: 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)))
    
  2. 第二关:在函数中修改全局变量

    给定全局变量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)
    
  3. 第三关:练习使用参数

    要求对于输入的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))
    
  4. 第四关:具有多个返回值的函数

    根据第三关方程求根的例子,我们现在假设一元二次方程 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))
    
  5. 第五关: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)))
    
  6. 第六关:使用关键字参数

    # 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 **********#
    
  7. 第七关:使用可变长参数

    # 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")
    
  8. 第八关:使用递归函数

    # 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))
    
  9. 第九关:生成器与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 头哥实验题目(一、二、三)相关推荐

  1. 计组头哥实验 第2关 原码一位乘法器设计

  2. Python 练习实例5 题目:输入三个整数x,y,z,请把这三个数由小到大输出。

    全网最笨方法来了~ a = int(input("输入一个数")) b = int(input("输入一个数")) c = int(input("输入 ...

  3. 大一python实验二答案_大学慕课2020年用Python玩转数据题目答案

    大学慕课2020年用Python玩转数据题目答案 更多相关问题 [单选题]在Word编辑状态下,连续进行了三次插入操作,当单击两次"撤消" 命令后,则(31). A. 第一次插入的 ...

  4. python程序设计报告-20191206 实验二《Python程序设计》实验报告

    学号 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1912 姓名: 陈发强 学号: 20191206 实验教师:王志强 ...

  5. 基于python的文件加密传输系统 毕业论文_20183411 李丞灏 2020-2021 《python程序设计》 实验三 加密传输文件 实验报告...

    20183411 李丞灏 2020-2021 <python程序设计> 实验三 加密传输文件 实验报告 课程:<Python程序设计> 班级: 1834 姓名: 李丞灏 学号: ...

  6. python语言程序设计实验教程答案实验三_20182204 实验三《Python程序设计》实验报告...

    20182204 <Python程序设计>实验三报告 课程:<Python程序设计> 班级:1822 姓名:20182204zwp 学号:20182204 实验教师:王志强老师 ...

  7. python实验三答案_20192116 实验三《Python程序设计》实验报告

    20192116 2019-2020-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1921 姓名: 饶欢 学号:20192116 实验教师: ...

  8. python程序设计梁勇 百度网盘_20194220 2019-2020-2 《Python程序设计》实验二报告

    20194220 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1942 姓名: 梁勇 学号:20194220 实验教师: ...

  9. python程序的三种基本结构是_Python程序设计实验五- 综合运用三种基本结构进行程序设计...

    安徽工程大学 [Python程序设计]实验报告 班级 :物流192 姓名:刘娇阳 学号:3190505213 成绩: 日期:2020.4.24 指导老师 :修宇 [实验名称]实验五 综合运用三种基本结 ...

最新文章

  1. scikit-learn 入门
  2. 洛谷——P1547 Out of Hay
  3. 写一个函数,输入int型,返回整数逆序后的字符串
  4. linux下c语言读取roed文件,如何在Linux系统上安装Android4.4.docx
  5. SQL update 多表连接方法
  6. c语言优先级大全,C语言运算符及其优先级汇总表口诀
  7. k3s 卸载_Mac-Homebrew安装/卸载/更换国内镜像源
  8. 什么专业的会学python语言_为什么要学习Python编程语言?哪些人适合学习Python?...
  9. 计量经济学笔记2---最大似然估计
  10. 贴片晶振为什么要邻层挖空敷铜,背后的原理原来是这样的!#终南小师傅
  11. [004]Python数据类型二_python_全栈基础
  12. 人人开源搭建后台管理系统 逆向工程生成CRUD代码
  13. [战略]对空间_日志风格_日志分类_日志标记_的整体说明
  14. 2020 CSP-J2题目
  15. python中的sheet,Python中的Smartsheet库:模块'smartsheet.sheets'没有属性'sheets'
  16. 32位程序运行内存1G以上容易卡死或崩溃问题
  17. 大批量读取硬盘中的数据,存储到mongo数据库中
  18. SpringBoot启动报错Could not resolve placeholder ‘XXX.XXX‘ in value
  19. linux_ rpm管理(Synaptic Package Manager)
  20. java:求鸡兔同笼类型题目的小程序

热门文章

  1. VB生成二维码图形的控件,CSDN利用盗版卖卖会员44积分赚钱
  2. Ps如何使用透视裁剪工具
  3. linux 右键没有终端,ubuntu鼠标右键没有打开终端选项解决方法
  4. 微信小程序提示:https://www.xxxxx.com 不在以下 request 合法域名列表中,请参考文档....
  5. 你真的理解图像处理经典算法 SIFT 吗?最深入、最全面综述:尺度不变特征转换
  6. 爬虫爬取京东产品数据
  7. 问题 B: 【计算几何】Two Circles and a Rectangle
  8. 区分事件的独立性与互不相容性
  9. 肝进ICU,万字真言点化八大排序——我奶奶都看得懂的算法详解
  10. JVM监控及诊断工具-GUI篇