1.Demo01 摄氏温度转化为华氏温度
输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出
转换的公式为如下:
输入输出描述
输入一个值表示摄氏温度celsius
输出华氏温度fahrenheit ,结果保留一位小数点
c=float(input("请输入摄氏温度:"))
f=c*1.8+32
print("对应的华氏温度为:%.1f"%f)
f=float(input("请输入华氏温度:"))
c=5.0/9.0*(f-32)
print("对应的摄氏温度为:%.1f"%f)
2.Demo02 计算圆柱体的体积
题目描述
输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。
输入输出描述
分别输入圆柱的半径radius和高度length,两个数据之间用空格分隔
输出两行,第一行为圆柱底面积area,第二行为圆柱体积volume,结果保留两位小数点
import math
r = float(input("请输入圆柱的半径:"))
h = float(input("请输入圆柱的高:"))
V = math.pi * r ** 2 * h
print("圆柱的体积为:", V)
3.Demo03 将英尺数转换为米数
题目描述
输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米
输入输出描述
输入一个数据表示英尺数
输出转换后的米数,结果保留四位小数点
''''
英尺转换为千克
(英尺+(英寸/12))* 0.03048
'''
foot = eval(input('请输入需要转换的英尺:'))
inch = eval(input('请输入需要转换的英寸:'))
kilo = (foot + (inch / 12)) * 0.3048
print('对应的高度为:%.2f米' % kilo)
4.Demo04 计算小费
题目描述
读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是1.5元,合计金额为11.5元
输入输出描述
分别输入小计和酬金率,两个数据用之间用空格分隔
输出两行,第一行为小费,第二行为合计金额,结果保留两位小数
# 读取小计和酬金率,计算小费和合计金额
num1, num2 = input().split()
tip = float(num1) * float(num2) / 100
total = float(num1) + tip
# 输出小费和合计金额,结果保留两位小数
print("%.2f" % tip)
print("%.2f" % total)
5.Demo05 对一个整数中的各位数字求和
题目描述
读取一个0到1000之间的整数,并计算它各位数字之和
输入输出描述
输入一个[0,1000]之间的整数
输出该数字的各位数字之和
n = input() #将数字作为字符串输入
list = list(n) #将字符串转换为列表
s = 0
for i in range(len(list)):
s+= int(list[i]) #将字符转换为整数型,并累加列表中的每个数字
print(s)
8.Demo08 分割数字
题目描述
输入一个四位整数,并以反向顺序显示
输入输出描述
输入一个四位整数
输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位
num = input("请输入一个四位整数:")
for i in range(4):
print(num[3-i])
9.Demo09 计算三角形的面积
题目描述
输入三角形的三个顶点坐标,并计算其面积,计算公式如下
s=(side1+side2+side3)/2
area = \sqrt{s(s-side1)(s-side2)(s-side3)}
输入输出描述
输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔
输出三角形的面积,结果保留一位小数
# 导入math库
import math
# 输入三角形三个顶点的坐标
x1, y1, x2, y2, x3, y3 = map(float, input().split())
# 计算三边长度
side1 = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
side2 = math.sqrt((x1 - x3) ** 2 + (y1 - y3) ** 2)
side3 = math.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2)
# 计算半周长
s = (side1 + side2 + side3) / 2
# 计算面积
area = math.sqrt(s * (s - side1) * (s - side2) * (s - side3))
# 输出结果
print(round(area, 1))
10.Demo10 显示时间
题目描述
输入你所在的时区,并输出当前的时间
输入输出描述
输入时区,如东八区为8,西五区为-5
输出二十四小时制的时间,格式为 时:分:秒
# 引用datetime库
import datetime
# 获取用户输入的时区
timezone = int(input())
# 获取当前时间
now = datetime.datetime.utcnow()
# 根据时区调整时间
adjusted_time = now + datetime.timedelta(hours=timezone)
# 输出调整后的时间
print(adjusted_time.strftime('%H:%M:%S'))
12.Demo12 最小数量的硬币
题目描述
假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币
输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
输入输出描述
输入总金额
输出每种硬币的个数
def f(x):
if x==0:
return 0
elif x<0:
return float("inf")
else:
return min(f(x-1)+1,f(x-0.25)+1,f(x-0.1),f(x-0.05),f(x-0.01)+1)
print(f(2.34))
13.Demo13 正多边形的面积
题目描述
正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:
area = \frac{n*s^2}{4*tan(\frac{π}{n})}
输入输出描述
输入两个数据分别表示边的个数n和边的长度s,数据之间用空格分隔
输出边长为s的正n多边形的面积,结果保留两位小数
def polygon_area(n, s):
import math
area = (n * s ** 2) / (4 * math.tan(math.pi / n))
return round(area, 2)
n, s = 5, 5
result = polygon_area(n, s)
print(result)
17.Demo17 解一元二次方程
题目描述
一元二次方程$ax^2+bx+c=0 (a != 0)$的解可以使用下面的公式计算
r_1=\frac{-b+\sqrt{b^2-4ac}}{2a},r_2=\frac{-b-\sqrt{b^2-4ac}}{2a}
其中$b^2-4ac$称为判别式,如果它为正,则方程有两个实数解;为零,方程只有一个实数解;为负,没有实数解
输入输出描述
输入a、b、c三个数据,数据之间用空格分隔
两个解每行输出一个;一个解单行输出;无解则单行输出无实数解,保留两位小数
import math
def func(a,b,c):
if (b*b - 4*a*c) < 0:
print("此方程无解!")
elif (b*b - 4*a*c) == 0:
print('此方程有一个解!')
return (0-b+math.sqrt(b*b - 4*a*c))/2*a
else:
print('此方程有两个解!')
return (0 - b + math.sqrt(b*b - 4*a*c))/2*a,(0 - b - math.sqrt(b*b - 4*a*c))/2*a
if __name__ == '__main__':
a = eval(input("请输入二次项的系数:"))
b = eval(input("请输入一次项的系数:"))
c = eval(input("请输入常数项:"))
list = func(a,b,c)
print(list)
18.Demo18 解2×2线程方程
题目描述
如有一个2×2的线程方程组:
cx+dy=f
你可以使用克莱姆法则解该线性方程:
x=\frac{ed-bf}{ad-bc},y=\frac{af-ec}{ad-bc}
输入输出描述
输入a、b、c、d、e、f六个数据,数据之间用空格分隔
输出两行,第一行x的解,第二行y的解,保留一位小数
# 从用户输入获取数据
a, b, c, d, e, f = map(float, input().split())
# 使用克莱姆法则求解线性方程组
x = (e*d - b*f) / (a*d - b*c)
y = (a*f - e*c) / (a*d - b*c)
# 输出结果保留一位小数
print('{:.1f}'.format(x))
print('{:.1f}'.format(y))
20.Demo20 本年中的第几天
题目描述
给定某年、某月、某日的一个日期,计算该日是今年中的第几天
输入输出描述
输入三个数据分别表示年、月、日,数据之间用空格分隔
输出该日是今年中的第几天
import time
try:
y=input('请输入年份')
m=input('请输入月份')
d=input('请输入日期')
my_time=time.strptime('{} {} {}'.format(y,m,d),'%Y %m %d')
print('日期:{}-{}-{}'.format(y,m,d))
print('这天是该年的第%s天'%my_time.tm_yday)
except:
print('你输入了错误的日期格式,请检查后再试')
24.Demo24 直线的交点
题目描述
直线A上的两个点是$(x1,y1)$和$(x2,y2)$,直线B上的两个点是$(x3,y3)$和$(x4,y4)$
如果两条直线有交点,可以通过解下面的线性等式找出:
(y_3-y_4)x-(x_3-x_4)y=(y_3-y_4)x_3-(x_3-x_4)y_3
如果没有解,则表示两条直线平行
输入输出描述
输入八个数据,分别为x1 y1 x2 y2 x3 y3 x4 y4,数据之间用空格分隔
如有交点则输出交点的坐标x y,否则输出两条直线平行
# 从用户输入获取数据
x1, y1, x2, y2, x3, y3, x4, y4 = map(float, input().split())
# 计算直线的斜率
m1 = (y1 - y2) / (x1 - x2)
m2 = (y3 - y4) / (x3 - x4)
# 如果斜率相等,则两条直线平行
if m1 == m2:
print("两条直线平行")
else:
# 计算交点坐标
x = ((y3 - y4) * x3 - (x3 - x4) * y3 - (y1 - y2) * x1 + (x1 - x2) * y1) / ((y3 - y4) - (y1 - y2) * (x3 - x4) / (x1 - x2))
y = (y1 - y2) / (x1 - x2) * (x - x1) + y1
print('{:.2f} {:.2f}'.format(x, y))
25.Demo25 回文数
题目描述
输入一个三位整数,然后判断其是否为一个回文数
如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数
输入输出描述
输入一个数字
输出Yes表示是回文数,否则输出No
number = input("请输入一个三位整数: ")
if number == number[::-1]:
print("Yes")
else:
print("No")
26.Demo26 两个矩形
题目描述
判断两个矩形之间的关系:包含,重叠,相离
输入输出描述
输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高
输出两者的关系
def is_overlap(rect1, rect2):
x1, y1, w1, h1 = rect1
x2, y2, w2, h2 = rect2
if (abs(x1 - x2) * 2 < (w1 + w2)) and (abs(y1 - y2) * 2 < (h1 + h2)):
return True
else:
return False
def is_contain(rect1, rect2):
x1, y1, w1, h1 = rect1
x2, y2, w2, h2 = rect2
if (x1 - w1/2 <= x2 - w2/2) and (x1 + w1/2 >= x2 + w2/2) and (y1 - h1/2 <= y2 - h2/2) and (y1 + h1/2 >= y2 + h2/2):
return True
else:
return False
rect1 = list(map(float, input().split()))
rect2 = list(map(float, input().split()))
if is_contain(rect1, rect2):
print("包含")
elif is_contain(rect2, rect1):
print("被包含")
elif is_overlap(rect1, rect2):
print("重叠")
else:
print("相离")