python作业1

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("相离")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值