Python练习:Demo01~Demo30

Demo01 摄氏温度转化为华氏温度
输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出
输入输出描述
输入一个值表示摄氏温度 celsius
输出华氏温度 fahrenheit ,结果保留一位小数点
示例
输入:
43
输出:
109.4
实现代码:
cel=eval(input("请输入一个摄氏温度:"))

fah=9 / 5 * cel + 32

print("%.1f" % fah)

Demo02 计算圆柱体的体积
题目描述
输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。
输入输出描述
分别输入圆柱的半径 radius 和高度 length ,两个数据之间用空格分隔
输出两行,第一行为圆柱底面积 area ,第二行为圆柱体积 volume ,结果保留两位小数点
示例
输入:
5.5 12
输出:
95.03
1140.41
实现代码:
radius , length = eval(input("请输入半径和高:"))

area = radius ** 2 * 3.1415926

volumn = area * length

print("底面积:%.2f" % area)

print("体积:%.2f" % volumn)
Demo03 将英尺数转换为米数
题目描述
输入英尺数然后将它转换为米数,并输出结果,一英尺等于 0.305
输入输出描述
输入一个数据表示英尺数
输出转换后的米数,结果保留四位小数点
示例
输入:
16.5
输出:
5.0325
实现代码:
feet = eval(input("请输入英尺数:"))

meters = feet * 0.305

print("米数是:%.4f" % meters)
Demo04 计算小费
题目描述
读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为 10 元,酬金率为 15% ,那么小费是1.5元,合计金额为 11.5
输入输出描述
分别输入小计和酬金率,两个数据用之间用空格分隔
输出两行,第一行为小费,第二行为合计金额,结果保留两位小数
示例
输入:
15.69 15
输出:
2.35
实现代码:
subtotal, feerate = eval(input("请分别输入小计和酬金率:"))

fee = subtotal * feerate * 0.01

print("小费为:%.2f" % fee)
Demo05 对一个整数中的各位数字求和
题目描述
读取一个 0 1000 之间的整数,并计算它各位数字之和
输入输出描述
输入一个 [0,1000] 之间的整数
输出该数字的各位数字之和
示例 1
输入:
999
输出:
27
解释:
999 各位数之和为 9 + 9 + 9 = 27
示例 2
输入:
12
输出:
3

实现代码:

num = eval(input("请输入一个一到三位数的整数:"))

ge = num % 10

shi = num // 10 % 10

bai = num // 100

nsum= ge + shi + bai

print("各位数字之和为:%d" % nsum)
Demo06 计算年数和天数
题目描述
输入分钟数,然后将该分钟数转换为年数和天数,假定一年有 365
输入输出描述
输入一个分钟数
输出两行,第一行为年数,第二行为天数
示例
输入:
1000000000
输出:
1902
214
实现代码:
minutes = eval(input("请输入分钟数:"))

hours = minutes // 60

days = hours // 24

years = days // 365

days %= 365

print("年数为:%d" % years)

print("余下的天数为:%d" % days)
Demo07 计算能量
题目描述
水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:

这里的 M 是按千克计的水量,初始温度和最终温度均为摄氏度,热量 Q 以焦耳计
输入输出描述
输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度
输出所需的能量值,结果保留一位小数
示例
输入:
55.5
3.5
10.5
输出:
1625484.0
实现代码:
M, initialTemperature, finalTemperature = eval(input("请输入水量,初始和最终温度:"))

Q = M * (finalTemperature - initialTemperature) * 4148

print("需要能量:%.1f" % Q)
Demo08 分割数字
题目描述
输入一个四位整数,并以反向顺序显示
输入输出描述
输入一个四位整数
输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位
示例
输入:
5213
输出:
3
1
2
5
实现代码:
num = eval(input("请输入一个四位整数:"))

ge = num % 10

num //= 10

shi = num % 10

num //= 10

bai = num % 10

num //= 10

qian = num % 10

print(ge)

print(shi)

print(bai)

print(qian)
Demo09 计算三角形的面积
题目描述
输入三角形的三个顶点坐标,并计算其面积,计算公式如下
输入输出描述 输入六个数据,分别表示三角形三个顶点的坐标 x1 y1 x2 y2 x3 y3 ,数据之间用空格分隔
输出三角形的面积,结果保留一位小数
示例
输入:
1.5 -3.4 4.6 5 9.5 -3.4
输出:
33.6
实现代码:
x1, y1, x2, y2, x3, y3 = eval(input("请输入三个点的坐标:"))

side1=((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5

side2=((x2 - x3) ** 2 + (y2 - y3) ** 2) ** 0.5

side3=((x1 - x3) ** 2 + (y1 - y3) ** 2) ** 0.5

s = (side1 + side2 +side3) / 2

area = (s * (s - side1) * (s-side2) * (s- side3)) ** 0.5

print("三角形的面积为:%.1f" % area)
Demo10 显示当前时间
题目描述
输入你所在的时区,并输出当前的时间
输入输出描述
输入时区,如东八区为 8 ,西五区为 -5
输出二十四小时制的时间,格式为 时 : :
示例
输入:
8
输出:
21:43:12
实现代码:
import time

timezone = eval(input())

zone0time = time.time()

yourzonetime = zone0time + timezone * 60 * 60

seconds = yourzonetime % 60

minutes = yourzonetime // 60 % 60

hours = yourzonetime // 60 // 60 % 24

print("%d:%d:%d" % (hours,minutes,seconds))
Demo11 计算三角形的三个角
题目描述
输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)

其中 a b c 分别表示三条边, A B C 分别表示三边对应的角
输入输出描述
输入六个数据,分别表示三角形三个顶点的坐标 x1 y1 x2 y2 x3 y3 ,数据之间用空格分隔
输出三行,分别为 A B C 三个角的度数,结果保留两位小数
示例
输入:
1 1 6.5 1 6.5 2.5
输出:
15.26
90.00
实现代码:
import math

x1, y1, x2, y2, x3, y3 = eval(input("请输入三个顶点坐标:"))

# 计算三边长度

a = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

b = math.sqrt((x3 - x2) ** 2 + (y3 - y2) ** 2)

c = math.sqrt((x3 - x1) ** 2 + (y3 - y1) ** 2)

#计算三角度数

A = math.degrees(math.acos((b ** 2 + c ** 2 - a ** 2) / (2 * b * c)))

B = math.degrees(math.acos((a ** 2 + c ** 2 - b ** 2) / (2 * a * c)))

C = math.degrees(math.acos((a ** 2 + b ** 2 - c ** 2) / (2 * a * b)))

print("A角为%.2f度" % A)

print("B角为%.2f度" % B)

print("C角为%.2f度" % C)
Demo12 最小数量的硬币
题目描述
假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币
输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
输入输出描述
输入总金额
输出每种硬币的个数
示例
输入:
11.56
输出:
11 个一元硬币
2 个两角五分硬币
0 个一角硬币
1 个五分硬币
1 个一分硬币
实现代码:
money = eval(input("请输入金额:"))

coin1, coin025, coin01, coin005, coin001 = 100, 25, 10, 5, 1

money100 = money * 100

num1 = money100 // 100

money100 %= 100

num2 = money100 // 25

money100 %= 25

num3 = money100 // 10

money100 %= 10

num4 = money100 // 5

money100 %= 5

num5 = money100 // 1

print("%d个一元硬币" % num1)

print("%d个两角五分硬币" % num2)

print("%d个一角硬币" % num3)

print("%d个五分硬币" % num4)

print("%d个一分硬币" % num5)  
Demo13 正多边形的面积
题目描述
正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:

输入输出描述
输入两个数据分别表示边的个数 n 和边的长度 s ,数据之间用空格分隔
输出边长为 s 的正 n 多边形的面积,结果保留两位小数
示例
输入:
5 6.5
输出:
72.69
实现代码:
import math

n, s = eval(input("请输入边的个数和长度:"))

Pi = 3.14159267

area = (n * s ** 2) /(4 * math.tan(Pi / n))

print("正多边形面积为:%.2f" % area)
Demo14 计算身体质量指数
题目描述
BMI 是根据体重测量健康的方式,通过以千克为单位的体重除以以米为单位的身高的平方计算而出
输入输出描述
输入体重和身高,数据之间用空格分隔
输出 BMI 指数结果
示例
输入:
60 1.8
输出:
标准
实现代码:
weight, height= eval(input())

BMI = weight / height ** 2

if BMI < 18.5:

    print("超轻")

elif BMI < 25.0:

    print("标准")

elif BMI < 30.0:

    print("超重")

else:

    print("肥胖")
Demo15 判定闰年
题目描述
一个年份如果能被 4 整除但不能被 100 整除,或者能被 400 整除,那么这个年份就是闰年
输入输出描述
输入一个年份
输出 Yes 表示该年份为闰年, No 则表示不是闰年
示例 1
输入:
2008
输出:
Yes
示例 2
输入:
2002
输出:
No
实现代码:
year = eval(input("请输入一个年份:"))

if year % 400 == 0:

    print("闰年")

elif year % 4 == 0:

    if year % 100 == 0:

        print("不是闰年")

    else:

        print("闰年")

else:

    print("不是闰年")
Demo16 中彩票
题目描述 随机产生一个两位数数字,然后用户输入一个两位数数字,并根据以下规则判定用户赢得的奖金是多少
1 )输入的数字和随机产生的数字完全相同(包括顺序),奖金为 10000
2 )输入的数字和随机产生的数字相同(不包括顺序),奖金为 3000
3 )输入的数字和随机产生的数字有一位数相同,奖金为 1000 美元
4 )输入的数字和随机产生的数字都不相同,没有奖金, 0
输入输出描述
输入一个两位数
输出两行,第一行输出那个随机产生的两位数,第二行输出用户的奖金
示例 1
输入:
12
输出:
12
10000
示例 2
输入:
12
输出:
21
3000
示例 3
输入:
12
输出:
23
1000
示例 4
输入:
12
输出:
45
0
实现代码:
import random

ranNum = random.randint(10,99)

userNum = eval(input())

r1 = ranNum // 10

r2 = ranNum % 10

u1 = userNum // 10

u2 = userNum % 10

if random == userNum:

    print(10000)

elif r1 == u1 and r2 == u2:

    print(5000)

elif r1 == u1 or r1 == u2 or r2 == u1 or r2 == u2:

    print(3000)

else:

    print(0)
Demo17 解一元二次方程
题目描述
输入输出描述
输入 a b c 三个数据,数据之间用空格分隔
两个解每行输出一个;一个解单行输出;无解则单行输出无实数解,保留两位小数
示例 1
输入:
1.0 3 1
输出:
-0.38
-2.62
示例 2
输入:
1 2.0 1
输出:
-1.00
示例 3
输入:
1 2 3
输出:
无实数解
实现代码:
a, b, c = eval(input())

delt = b ** 2 - 4 * a * c

if delt > 0:

    x1 = (-b + delt ** 0.5) / (2 * a)

    x2 = (-b - delt ** 0.5) / (2 * a)

    print("%.2f" % x1)

    print("%.2f" % x2)

elif delt == 0:

    x = -b / (2 * a)

    print("%.2f" % x)

else:

    print("无实数解")
Demo18 2×2 线程方程

输入输出描述
输入 a b c d e f 六个数据,数据之间用空格分隔 输出两行,第一行 x 的解,第二行 y 的解,保留一位小数
示例 1
输入:
9.0 4.0 3.0 -5.0 -6.0 -21.0
输出:
-2.0
3.0
示例 2
输入:
1.0 2.0 2.0 4.0 4.0 5.0
输出:
无解
实现代码:
a, b, c, d, e, f = eval(input("请输入六个数据:"))

delt = (a * d) - (b * c)

x = (e * d - b * f) / (a * d - b * c)

y = (a * f - e * c) / (a * d - b * c)

if delt == 0:

    print("无解")

else:

    print("%.1f"%x)

    print("%.1f"%y)
Demo19 未来是周几
题目描述
输入表示今天是一周内哪一天的数字(星期天是 0 ,星期一是 1 ... ,星期六是 6
并输入今天之后到未来某天的天数,然后输出该天是星期几
输入输出描述
输入两个数据,分别表示今日星期几的数字和未来某天的天数,数据之间用空格分隔
输出未来某天是星期几
示例 1
输入:
1 3
输出:
星期四
示例 2
输入:
0 31
输出:
星期三
实现代码:
today, future = eval(input("请输入今天是一周内哪一天的数字和今天之后到未来某天的天数:"))

futureweek = (today + future) % 7

if futureweek == 0:

    print("周日")

elif futureweek == 1:

    print("周一")

elif futureweek == 2:

    print("周二")

elif futureweek == 3:

    print("周三")

elif futureweek == 4:

    print("周四")

elif futureweek == 5:

    print("周五")

else:

    print("周六")
Demo20 本年中的第几天
题目描述
给定某年、某月、某日的一个日期,计算该日是今年中的第几天
输入输出描述 输入三个数据分别表示年、月、日,数据之间用空格分隔
输出该日是今年中的第几天
示例 1
输入:
2023 1 28
输出:
28
示例 2
输入:
2023 3 2
输出:
61
实现代码:
year, month, day = eval(input("请输入年月日的日期,用逗号隔开:"))

days = 0

if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:

    for i in range(1, month):

        if i in (1, 3, 5, 7, 8, 10, 12):

            days += 31

            i=i+1

        elif i in (4, 6, 9, 11):

            days += 30

            i=i+1

        else:

            days += 29

else:

    for i in range(1, month):

        if i in (1, 3, 5, 7, 8, 10, 12):

            days += 31

            i=i+1

        elif i in (4, 6, 9, 11):

            days += 30

            i=i+1

        else:

            days += 28

            i=i+1

days += day

print(days)
Demo21 剪刀石头布 I
题目描述
计算机随机产生一个数字 0 1 2 分别表示剪刀、石头和布
用户输入数字 0 1 2 ,输出用户赢、计算机赢或平局
输入输出描述
输入数字 0 1 2
输出有三行,第一行输出计算机出的啥,第二行输出用户出的啥,第三行输出结果
示例 1
输入:
0
输出:
计算机出的 石头
用户出的 剪刀
计算机赢
示例 2
输入:
1
输出:
计算机出的 剪刀
用户出的 石头
用户赢
示例 3
输入:
2
输出:
计算机出的 布
用户出的 布
平局
实现代码:
import random

# 计算机随机选择剪刀、石头或布
computer_choice = random.randint(0, 2)

# 将数字对应到剪刀、石头或布
choices = ['剪刀', '石头', '布']

# 获取用户输入
user_input = int(input("请输入数字 0、1 或 2,分别代表剪刀、石头或布:"))
user_choice = choices[user_input]

# 输出计算机和用户的选择
computer_choice_str = choices[computer_choice]
print("计算机出的", computer_choice_str)
print("用户出的", user_choice)

# 判断胜负
if user_input == computer_choice:
    print("平局")
elif (user_input - computer_choice) % 3 == 1 or (user_input==0 and computer_choice==2):
    print("用户赢")
else:
    print("计算机赢")
Demo22 三角形的周长
题目描述
输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法
如果任意两边之和大于第三边则输入都是合法的
输入输出描述
输入三个数据表示三边,数据之间用空格分隔
输出三角形的周长,如果非法则输出非法
示例 1
输入:
1 1 1
输出:
3
示例 2
输入:
1 3 1
输出:
非法
实现代码:
side1, side2, side3 = eval(input("请输入三角形的三条边长:"))

if side1 + side2 > side3  and side1 + side3 > side2 and side2 + side3 > side1:

    C = side1 + side2 + side3

    print("三角形的周长为:%d" % C)

else:

    print("非法")
Demo23 一周的星期几
题目描述
泽勒的一致性是一个由泽勒开发的算法,用于计算一周的星期几,公式如下:
输入输出描述
输入年、月、日三个数据,数据之间用空格分隔
输出该日是周几
示例 1
输入:
2013 1 25
输出:
星期五
示例 2
输入:
2012 5 12
输出:
星期六
实现代码:
def zeller_congruence(year, month, day):

    if month < 3:

        month += 12

        year -= 1



    # 周几计算公式

    h = (day + (13*(month+1))//5 + year % 100 + (year%100//4) + year//400 + 5 * (year//100)) % 7



    # 将结果转换为对应的星期几

    days_of_week = ["星期六", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五"]

    return days_of_week[h]



# 输入年、月、日

year, month, day = map(int, input().split())



# 计算星期几

day_of_week = zeller_congruence(year, month, day)



# 输出结果

print(day_of_week)
Demo24 直线的交点
题目描述
输入输出描述
输入八个数据,分别为 x1 y1 x2 y2 x3 y3 x4 y4 ,数据之间用空格分隔
如有交点则输出交点的坐标 x y ,否则输出两条直线平行
示例 1
输入:
2 2 5 -1 4 2 -1 -2
输出:
2.89 1.11
示例 2
输入:
2 2 7 6 4 2 -1 -2
输出:
两条直线平行
实现代码:
#直线的交点

def find_intersection(x1, y1, x2, y2, x3, y3, x4, y4):

    # 计算方程组的系数

    a1 = y1 - y2

    b1 = x2 - x1

    c1 = (y1 - y2) * x1 - (x1 - x2) * y1



    a2 = y3 - y4

    b2 = x4 - x3

    c2 = (y3 - y4) * x3 - (x3 - x4) * y3

     # 计算交点坐标

     #利用克莱姆法则求解二元一次方程

     #x = D1 / D y = D2 / D

    determinant = a1 * b2 - a2 * b1

    if determinant == 0:

        return None  # 两条直线平行



    x = (b1 * c2 - b2 * c1) / determinant

    y = (a2 * c1 - a1 * c2) / determinant



    return x, y



# 输入直线坐标

x1, y1, x2, y2, x3, y3, x4, y4 = map(float, input().split())



# 寻找交点

intersection = find_intersection(x1, y1, x2, y2, x3, y3, x4, y4)



# 输出结果

if intersection is None:

    print("两条直线平行")

else:

    print(intersection[0], intersection[1])
Demo25 回文数
题目描述
输入一个三位整数,然后判断其是否为一个回文数
如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数
输入输出描述
输入一个数字
输出 Yes 表示是回文数,否则输出 No
示例 1
输入:
121
输出:
Yes
示例 2
输入:
123
输出:
No
实现代码:
num = input("请输入一个整数:")

left, right = 0, len(num) - 1

flag = True

for i in (num):

    if num[left] != num[right]:

        flag = False

    left += 1

    right -= 1

if flag:

    print("Yes")

else:

    print("No")
Demo26 两个矩形
题目描述
判断两个矩形之间的关系:包含,重叠,相离
输入输出描述
输入两行,每行四个数据,分别是矩形的中心坐标 x y 和矩形的宽、高
输出两者的关系
示例 1
输入:
2.5 4 2.5 43
1.5 5 0.5 3
输出:
包含
示例 2
输入:
1 2 3 5.5
3 4 4.5 5
输出:
重叠
示例 3
输入:
1 2 3 3
40 45 3 2
输出:
相离
实现代码:
#判断两个矩形之间的包含,重叠,相离关系

# 读取输入数据

rect1 = list(map(float, input().split()))

rect2 = list(map(float, input().split()))



# 解析矩形1的数据

x1, y1, w1, h1 = rect1

left1 = x1 - w1 / 2

right1 = x1 + w1 / 2

top1 = y1 + h1 / 2

bottom1 = y1 - h1 / 2



# 解析矩形2的数据

x2, y2, w2, h2 = rect2

left2 = x2 - w2 / 2

right2 = x2 + w2 / 2

top2 = y2 + h2 / 2

bottom2 = y2 - h2 / 2



# 判断两个矩形的关系

if left1 >= right2 or left2 >= right1 or top1 <= bottom2 or top2 <= bottom1:

    relation = "相离"

elif left1 <= left2 and right1 >= right2 and top1 >= top2 and bottom1 <= bottom2:

    relation = "包含"

elif left1 >= left2 and right1 <= right2 and top1 <= top2 and bottom1 >= bottom2:

    relation = "包含"

else:

    relation = "重叠"



# 输出结果

print(relation)
Demo27 打印数字 I
题目描述
利用循环,寻找规律,打印如下数字模式:
实现代码:
print("模式A")

for n in range(1,7):

    for i in range(1,n+1):

        print(i,end=" ")

    print()

print("模式B")

for n in range(6,0,-1):

    for i in range(1,n+1):

        print(i,end=" ")

    print()

print("模式C")

for n in range(1,7):

    for k in range(6-n):

        print(" ",end=" ")

    for i in range(n,0,-1):

        print(i,end=" ")

    print()

print("模式D")

for n in range(6,0,-1):

    for k in range(6-n):

        print(" ",end=" ")

    for i in range(1,n+1):

        print(i,end=" ")

    print()
Demo28 打印数字 II
题目描述

实现代码:

for n in range(1, 8):

    for k in range(7 - n):

        print(" ",end=" ")

    for i in range(1-n, n):

        print(abs(i) + 1,end=" ")

    print()
Demo29 打印数字 III
题目描述
利用循环,寻找规律,打印如下数字模式:

实现代码:

num = eval(input("请输入一个奇数:"))

for n in range(-(num // 2),num // 2 + 1):

    i= abs(n)

    for k in range(i):

        print("",end ="")

    for x in range(num // 2 + 1 -i):

        print("*",end ="")

    print()
Demo30 打印菱形 I
题目描述
如下所示,是一个高度为 9 的菱形
实现代码:
#方法一

n = eval(input("请输入菱形的行数:"))

for i in range(1,n+1):

    for k in range(abs(i - (n // 2 + 1))):

        print("",end = " ")

    for j in range(1,n + 1):

        if j <= i and  i + j <= n + 1:

            print("*",end = " ")

    print()

#方法二

rows = eval(input("请输入你要打印的行数:"))

for i in range(-(rows // 2), rows // 2 + 1):

    for k in range(abs(i)):

        print("",end=" ")

    for j in range(rows // 2 + 1 - abs(i)):

        print("*", end = " ")

    print()

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值