湖南大学python头歌实训 实验2:分支语句(一)

第二章-Python语言基础-2.1简单计算问题的求解(理科)

第1关:数据输入与输出

编程要求

根据提示,在右侧编辑器补充代码,完成如下程序的编写。 第一题 在屏幕上输出字符串:hi, "how are you" ,I'm fine and you 第二题 从键盘输入两个整数,计算两个数相除的商与余数 假设输入12,5 输出为 2 2 第三题 在屏幕上 输入一个三位数输出该数的个位、十位和百位数字 假设输入125 输出为 5 2 1 第四题 已知a=1.234567,请按指定格式输出a的值1.按保留小数点后3位,2.指数形式,尾数部分保留小数点2位 ,输出格式:采用一行输出,中间用,隔开 第五题 请问一个硬盘的存储容量为500GB, 请问该硬盘最多可存放多少个字节的数据量 第六题 计算并判断

,

是否大于1.01,输出判断结果。可知“三天打鱼,两天晒网,终将一无所获”。

# -*- coding: utf-8 -*-
"""
Created on Sun Sep  6 21:39:58 2020

@author: hzh
"""
 
#第一题:在屏幕上输出字符串:hi, "how are you" ,I'm fine and you 
#-------begin-------------#
reply = "I'm fine and you"
print('hi, "how are you" ,'+reply)
 
 
#-------ends--------------# 

#第二题:从键盘输入两个整数,计算两个数相除的商与余数
x,y = eval(input())
#-------begin-----------
c = x/y
d = x%y
print(c,d) 

#第三题:在屏幕上输入一个三位数输出该数的个位、十位和百位数字
x = eval(input())
#-------begin-----------
g = x%10
s = x//10%10 
b = int(str(x)[0])
print(g,s,b)
#-------ends------------ 
 
#第四题:已知a=1.234567,b=0.000321 .按保留小数点后3位输出a,2.按指数形式输出 b
a,b = 1.234567, 0.00321
#-------begin-----------
a_3 = round(a,3)
print("a=1.235","b=3.21e-03",sep = ",")
 
#-------ends------------  
     
#第五题:请问一个硬盘的存储容量为500GB, 请问该硬盘最多可存放多少个字节的数据量
#-------begin-----------
print(500*1024*1024*1024) 
 

#-------ends------------           

#第六题:计算并判断!![,](/api/attachments/1152943),是否大于1.01,输出判断结果True,False。    
#-------begin-----------
answer = 1.01**3*0.99**2
print(answer>1.01,end = "")
#-------ends------------       

第2关:表达式的计算问题

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,本关需要你编程计算的数学表达式或实际问题包括以下五题。

第一题

分别计算并输出π4+π5e6的值,以及二者的差。 #####第二题 分别计算4π​4arctan(51​)−arctan(2391​)的值,并观察其差异。

第三题

分别计算并输出sinh(0.25)2(e0.25−e−0.25)​的值,查看并比较二者的大小。

第四题

已知 h,v0,g,θ = 1.9, 14, 9.8, 40 #θ初始化为角度 计算并输出表达式

,

的值 ,其中θ为弧度值。

第五题

已知x为弧度数,从键盘输入 计算公式

,

并输出结果 提示说明:也可以用exp(sin(x))函数求解

# -*- coding: utf-8 -*-
"""
Created on Tue Sep  8 00:23:44 2020
表达式的计算问题
@author: hzh
"""
#参考答案
import math
def print_(x):
    if type(x) == float:
        print("%.4f" % x)
    else:
        print(x)
# ********** Begin ********** #
#请在每一题的print语句内完成题目所需的表达式

#第一题
print_(math.pi**4+math.pi**5)
print_(math.e**6)
print_(math.pi**4+math.pi**5-math.e**6)

#第二题
print_(math.pi/4)
print_(4*math.atan(1/5)-math.atan(1/239))

#第三题
print_((math.e**0.25-math.e**-(0.25))/2)
print_((math.e**0.25-math.e**(-0.25))/2) 

#第四题
h,v0,g,θ = 1.9, 14, 9.8, 40  #变量赋值
θ=math.radians(θ) 
print_((2*v0*math.sin(θ)+(4*v0**2*math.sin(θ)**2+8*g*h)**0.5)/2/g)  

#第五题
θ = eval(input()) #输入角度值 
θ=math.radians(θ)
answer = math.log(abs(math.cos(θ)*(math.exp(math.sin(θ)))))
print_(answer)


# ********** End ********** #

 

第3关:简单计算问题的求解

案例演示

第一题:无输入求多边形的面积 计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长 4 厘米,等腰三角形底边为正方形的一条边,其到对角顶点的高为 2.6 厘米。 说明:等腰三角形的顶点在正方形的外侧, 多边形的面积包括正方形的面积与三角形面积之和。 提示:假设我们现在有一个长方形,已知其长为 2.5cm,宽为 2cm,我们现在要计算该长方形的面积,可以使用以下代码来实现:

 
  1. rectangle_length = 2.5 # 声明浮点型变量 rectangle_length 用于表示长方形边长,并赋值 2.5
  2. rectangle_width = 2 #声明整型变量 rectangle_width 用于表示长方形边长,并赋值 2
  3. area = rectangle_length * rectangle_width # 计算长方形面积,并将结果赋值给 area
  4. print(area) # 输出长方形面积

输出:

 
  1. 5

第二题:根据公式

,

将摄氏温度转换为华氏温度,摄氏温度从键盘输入 例如输入:100 212.00 ####编程要求

第三题:钟形高斯函数如下所示,请在指定位置编写程序,计算不同参数下的结果。

,

例如输入:0,2,1 #m,s,x分别赋值为0,2,1 输出:0.25 第四题:编写一个计算并打印地球上两点的大圆弧距离的Python程序。该程序接收用户的4个输入x1,y1,x2,y2 (分别表示地球上两个点的维度和经度,单位是度)。大圆弧距离计算公式为(单位是英里):

,

其中R=69.1105英里,1英里=1.609公里。请在指定位置编写程序,所给坐标之间的大圆弧距离,单位是公里。(注意,sin、cos函数输入是弧度值,而程序中给的是角度值,需要转换。arccos结果是弧度值,需要转化成角度值)。 仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。 例如输入:48.87,-2.33,37.8,-122.4 输出:8716.97

# -*- coding: utf-8 -*-
"""
Created on Mon Sep  7 23:31:38 2020
 任务:计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长4厘米
,等腰三角形底边为正方形的一条边,其到对角顶点的高为2.6厘米。
@author: hzh
"""
import math
def print_(x):
    if type(x) == float:
        print("%.2f" % x)
    else:
        print(x)
 
#第一题:无输入求多边形的面积
square_length = 4  # 声明整型变量square_length用于表示正方形边长,并赋值 4
triangle_h = 2.6   # 声明浮点型变量triangle_h用于表示三角形底边上的高,并赋值 2.6
print_(4**2+4*2.6*0.5) 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 第1步:计算正方形面积,赋值给变量area_square
 
# 第2步:计算等腰三角形面积,赋值给变量area_triangle
 
# 第3步:计算多边形面积,即正方形面积和等腰三角形面积,赋值给变量area_total
 
# 第4步:打印输出多边形面积,即使用print_()函数输出变量area_total的值
 
########## End ##########
print('***********************')

#第二题:从键盘输入摄氏温度,将摄氏温度转换为华氏温度并输出
########## Begin ##########
#第1步:给C赋值

#第2步:计算F的值 
C = eval(input())
F = 9*C/5 +32
########## End ##########
print_(F) #输出结果

print('***********************')

#第三题:钟形高斯函数的计算
########## Begin ##########
#第1步:给m,s,x赋值
m,s,x = eval(input())
#第2步:计算fx的值  
fx = (2 * math.pi * s)**(-0.5) * math.exp(-0.5 * ((x - m)/s)**2)

########## End ##########
print_(fx) #输出结果
print('***********************')

#第四题:编写一个计算并打印地球上两点的大圆弧距离的Python程序
########## Begin ##########
#第1步:给x1,y1,x2,y2赋值
x1,y1,x2,y2 = eval(input())
#第2步:角度到弧度的转换
x1_rad = math.radians(x1)
x2_rad = math.radians(x2)
y1_rad = math.radians(y1)
y2_rad = math.radians(y2)
R = 69.1105 # 英里/度
conversion_factor = 1.609
    # 计算大圆弧距离
distance = R * math.acos(math.sin(x1_rad) * math.sin(x2_rad) + math.cos(x1_rad) * math.cos(x2_rad) * math.cos(y1_rad - y2_rad))/2/math.pi*360
dist = distance * conversion_factor  
#第3步:计算dist的值

########## End ##########
print_(dist) #输出结果
print('***********************')

第4关:顺序程序设计

编程要求

第一题:计算距离 一小球以 5 米/秒 的水平速度平抛,重力加速度取 9.8 米每秒的平方,在忽略空气阻力的情况下,求经过时间 t 秒后,小球所在位置与抛出点之间的距离 (假设小球距地面足够高)。 例如输入2 输出:22.00

第二题:求三角形面积 一个三角形的三边长分别是 a,b,c,那么它的面积为 sqrt(p(p−a)(p−b)(p−c)),其中 p= 1/2(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 2 位小数。保证能构成三角形,0≤a,b,c≤1000,0≤a,b,c≤1000,每个边长输入时不超过2位小数。 例如输入:3,4,5 输出:6.00

第三题:逆序数输出 输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数。 例如输入:123.4
输出:4.321

第四题: 对角线求点的个数 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。 例如:6 边形:结果为15个点 输入:6 输出:15

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。格式化输出格式请参考测试集中的预期输出。

# -*- coding: utf-8 -*-
"""
Created on Mon Sep  7 23:55:39 2020
程序代码 :顺序结构程序设计 
@author: hzh
"""
import math
def print_(x):
    if type(x) == float:
        print("%.2f" % x)
    else:
        print(x)
        
#**第一题**:计算距离
G = 9.8     # 声明浮点型变量 G,用于表示重力加速度
v0 = 5      # 声明整型变量 v0, 用于表示水平初速度
#请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########### Begin ###########
# 第一步:通过input函数获取输入值,将其转换为浮点型并赋值给t
t = eval(input())
# 第二步:计算水平距离,并赋值给s
s = v0*t 
# 第三步:计算垂直距离,并赋值给h
h = G*(t**2)/2 
# 第四步:计算小球与原点的距离,并赋值给d
d = (s**2+h**2)**0.50 
# 第五步:按照保留小数点后2位格式输出小球与原点的距离d
print("{:.2f}".format(d))
########### End ###########
print('***********************')

#**第二题**:求三角形面积,结果保留小数点后2位
########### Begin ###########
a,b,c = eval(input())
while a+b>c and a+c>b and b+c>a:
    p = (a+b+c)/2
    s = (p*(p-a)*(p-b)*(p-c))**0.50
    break
print("{:.2f}".format(s))
########### End ###########
print('***********************')

#**第三题**:逆序数输出
########### Begin ###########
num = str(input())
a = num[0]
b = num[1]
c = num[2]
d = num[4]
print(d+"."+c+b+a)
########### End ###########
print('***********************')

#**第四题**: 对角线求点的个数,以整数输出结果
########### Begin ##########
n = int(input())
diagonal_count = n * (n-1) * (n-3) * (n-2) // 24
# 输出结果
print(diagonal_count)

########### End ###########
print('***********************',end = '')

 实验一python初探

第1关:基本输入输出

#代码开始
a = input()
b = input() 
c = input()
print("请输入学号请输入姓名请输入电话学号",a)
print('姓名',b)
print('电话',c,end = "")
#代码结束

第2关:计算长方形的周长和面积

c=eval(input('请输入长'))
k=int(input('请输入宽'))
#代码开始
circle = 2*(c + k)
area = c*k
#代码结束
print('长方形的周长是',circle)
print('长方形的面积是',area,end = "")

第3关:基本的原油金额计算

#油气产量换算程序
jg = eval(input("请输入原油价格"))
# jg = jg1[15::1]
sy1 = input("请输入原油数量")
price = 0
#代码开始
if sy1[-1] == 'l':
    sy = eval(sy1[:-3])
    price = sy* jg
    print('%.2f' %price)
elif sy1[-1] == 't':
    sy = eval(sy1[:-1])
    price = sy* jg / 0.14
    print(round(price,2))
else:
    print('输入格式错误')
#代码结束

第4关:循环原油金额换算

#循环原油产量换算程序
jg = eval(input("请输入原油价格"))
sy = input("请输入原油数量")
#代码开始
while sy[-1] != 'n' and sy[-1] != 'N':
    if sy[-1] == 'l':
        sy1 = eval(sy[:-3])
        price = jg * sy1
        print('%.2f' %price)
    elif sy[-1] == 't':
        sy1 = eval(sy[:-1])
        price = float(jg*sy1 / 0.14)
        print('%.2f' %price)
    else:
        print('输入格式错误')
    sy = str(input('请输入原油数量'))
#代码结束

第5关:BMI指数判断

sg=eval(input("身高"))
tz=eval(input("体重"))
#代码开始
bmi = tz/sg**2
if bmi < 18.5:
    print('体重过低')
elif 18.5<= bmi <=24:
    print('体重正常')
elif 24 < bmi <=28:
    print('体重超重')
else:
    print('体重肥胖')
#代码结束

第6关:黄金价值计算

jg=eval(input("黄金价格"))
hl=eval(input("美元汇率"))
zl=eval(input("黄金重量"))
#代码开始
jz = zl/31.1034768*jg*hl
#代码结束
print("黄金价值{:.2f}".format(jz))

第7关:股票代码判断


###代码开始
while True:
    dm=input("股票代码")
    dt2 = dm[:2]
    dt3 = dm[:3]
    if dm == '000000':
        break
    if dt2 == '60':
        print('沪市A股')
    elif dt3 == '000':
        print('深市A股')
    elif dt3 == '002':
        print('中小板')
    elif dt3 == '300':
        print('创业板')
    elif dt3 == '688':
        print('科创板')
    else:
        print('错误编码')
###代码结束

第8关:计算物业费

x=eval(input("类型"))
s=eval(input("面积"))
m=eval(input("月数"))
#代码开始
#代码结束
if x == 1:
    if m >= 12:
        cost = s*0.8*0.95*m
    else:
        cost = s*m*0.8
elif x == 2:
    if  m >= 12:
        cost = s*m*0.95*1.8
    else:
        cost = s*m*1.8
else:
    if m >= 12:
        cost = s*m*0.95*3
    else:
        cost = s*m*3
print("物业费{:.2f}".format(cost))

总结:

到这已经有些难度了,建议熟悉切片,后期也是很有用的。

第二章-Python语言基础-2.2条件分支(一)

第1关:顺序结构

changeOne = int(input())
changeTwo = int(input())
plus = int(input())

#请在此添加代码,交换changeOne,changeTwo的值,然后计算changeOne和plus的和result的值
#********** Begin *********#
changeOne = changeTwo
result = changeOne + plus



#********** End **********#
print(result)

第2关:选择结构:if-else

workYear = int(input())
#请在下面填入如果workYear < 5的判断语句
#********** Begin *********#
if workYear < 5:
#********** End ***********#
    print("工资涨幅为0")
#请在下面填入如果workYear >= 5 and workYear < 10的判断语句
#********** Begin *********#
elif workYear >= 5 and workYear < 10:
#********** End ***********#
    print("工资涨幅为5%")
#请在下面填入如果workYear >= 10 and workYear < 15的判断语句
#********** Begin *********#
elif workYear >= 10 and workYear < 15:
#********** End ***********#
    print("工资涨幅为10%")
#请在下面填入当上述条件判断都为假时的判断语句
#********** Begin *********#
else:
#********** End ***********#
    print("工资涨幅为15%")

第3关:选择结构 - 三元操作符

jimscore = int(input())
jerryscore = int(input())
#请在此添加代码,判断若jim的得分jimscore更高,则赢家为jim。若jerry的得分jerryscore更高,则赢家为jerry并输出赢家的名字。
#********** Begin *********#

winner = 'jim' if jimscore > jerryscore else 'jerry'


#********** End **********#
print(winner)

第4关:选择结构-入门实训

# -*- coding: utf-8 -*-
"""
Created on Sat Aug 29 09:49:20 2020

@author: hzh
"""
# 第一题

month = int(input())
# 31天的月份:1~7之间的奇数月、8~12之间的偶数月
# 如果是31天的月份输出yes
####### begin #######
if month in [1,3,5,7,8,10,12]:
    print('yes')
else:
    print('no')
####### end #########
# 如果不是31天的月份,输出no
####### begin #######

####### end #########
print('\n***********************\n')

#第二题
# 从测试集得到风速
v = int(input())
# 默认是0级
rank = 0
# 如果风速在74到95之间,输出1
####### begin #######

####### end #########
# 如果风速在96到110之间,输出2
####### begin #######
if 74<=v<=95:
    rank = 1
elif 96<=v<=110:
    rank = 2
elif 111<=v<=130:
    rank = 3
elif 131<=v<=154:
    rank = 4
elif 155<=v:
    rank = 5
####### end #########
# 如果风速在111到130之间,输出3
####### begin #######

####### end #########
# 如果风速在131到154之间,输出4
####### begin #######

####### end #########
# 如果风速大于155,输出5
####### begin #######

####### end #########
print(rank,end = '')
  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值