Demo01 摄氏温度转化为华氏温度
输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出
输入: 43
输出: 109.4
"""
数据:摄氏度cel,华氏温度fah
步骤:
1.输入cel
2.根据公式计算fah
3.输出fah
"""
cel = eval(input())
fah = 9 / 5 * cel + 32
print("%.1f"% fah)
Demo02 计算圆柱体的体积
题目描述 输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。
输入: 5.5 12
输出: 95.03
1140.41
"""
数据:半径radius,高length,面积area,体积volume
步骤:
1.输入rad和len
2.计算area
3.计算volume
4.输出
"""
radius, length = eval(input())
area = radius * radius * 3.1415926
volume = area * length
print("%.2f"% area)
print("%.2f"% volume)
Demo03 将英尺数转换为米数
题目描述 输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米
输入: 16.5
输出: 5.0325
"""
数据:chi,mi
步骤:
1.输入chi
2.将chi转换成mi
3.输出mi
"""
chi = eval(input())
mi = chi * 0.305
print("%.4f"% mi)
Demo04 计算小费
题目描述 读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是 1.5元,合计金额为11.5元
输入: 15.69 15
输出: 2.3518.04
"""
数据:小计ji,酬金率jin,小费fei,合计金额he
步骤:
1.输入ji和jin
2.计算小费和合计金额
3.输出
"""
ji, jin = eval(input())
fei = ji * jin / 100
he = fei + ji
print("%.2f"% fei)
print("%.2f"% he)
Demo05 对一个整数中的各位数字求和
题目描述 读取一个0到1000之间的整数,并计算它各位数字之和
输入: 999
输出: 27
解释: 999各位数之和为9 + 9 + 9 = 27
"""
数据:num ge shi bai total
步骤:
1.输入一个数字[0,1000)
2.按照顺序 从左往右拆
3.三者相加 输出
"""
num = eval(input())
ge = num % 10
num //= num
shi = num % 10
num //= 10
bai = num % 10
nsum = ge + shi + bai
print(nsum)
Demo06 计算年数和天数
题目描述 输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365天
输入: 1000000000
输出: 1902
214
"""
数据:分钟minutes 小时hours 天days 年years
步骤:
1.输入minutes
2.计算小时
3.计算天数
4.计算年数
5.输出
"""
minutes = eval(input())
hours = minutes // 60
days = hours //24
years = days //365
days = days % 365
print(years)
print(days)
Demo07 计算能量
题目描述
水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下: 这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计
输入输出描述 输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度 输出所需的能量值,结果保留一位小数
M, initialTemp, finalTemp = eval(input())
q = M* (finalTemp - initialTemp) * 4184
print("%.1f" %q)
Demo08 分割数字
题目描述 输入一个四位整数,并以反向顺序显示
输入: 5213
输出:
3
1
2
5
ge = num % 10
num = num // 10
shi = num % 10
num = num // 10
bai = num % 10
qian = num // 10
print(ge)
print(shi)
print(bai)
print(qian)
Demo09 计算三角形的面积
输入三角形的三个顶点坐标,并计算其面积
输入: 1.5 -3.4 4.6 5 9.5 -3.4
输出: 33.6
"""
数据:三个点的x坐标y坐标,三边,半周长s,面积area
步骤:
1.输入数据
2.分别计算三边长
3.通过三边算面积
4.输出结果
"""
x1, y1, x2, y2, x3, y3 = eval(input())
side1 = ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
side2 = ((x3 - x2) ** 2 + (y3 - y2) ** 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 显示当前时间 题目描述 输入你所在的时区,并输出当前的时间
Demo11 计算三角形的三个角 题目描述 输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制) 其中a、b、c分别表示三条边,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)
cos_A = math.cos((a ** 2 - b ** 2 - c ** 2) / (-2 * c * b))
cos_C = math.cos((c ** 2 - b ** 2 - a ** 2) / (-2 * a * b))
cos_B = math.cos((b ** 2 - a ** 2 - c ** 2) / (-2 * a * c))
A = a*cos_A
B = a*cos_B
C = a*cos_C
print("%.2f" %A)
print("%.2f" %B)
print("%.2f" %C)
Demo12 最小数量的硬币 题目描述 假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币 输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
Demo13 正多边形的面积 题目描述 正多边形是边长相等的多边形,而且所有的角相等,
输入: 5 6.5
输出: 72.69
import math
n, s = eval(input())
area = n * s * s / (4 * math.tan(3.14 / n))
print("%.2f" %area)
Demo14 计算身体质量指数
输入体重和身高,数据之间用空格分隔
输出 BMI 指数结果
"""
数据:体重weight,身高height BMI
步骤:
1.输入体重身高
2.计算BMI
3.参照表格
4.输出对应结果
"""
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 则表示不是闰年
输入: 2008
输出: Yes
year = eval(input())
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("YES")
else:
print ("No" )
Demo16 中彩票
随机产生一个两位数数字,然后用户输入一个两位数数字,并根据以下规则判定用户赢得的奖金是多少
输入的数字和随机产生的数字完全相同(包括顺序),奖金为 10000 元
输入的数字和随机产生的数字相同(不包括顺序),奖金为 3000 元
输入的数字和随机产生的数字有一位数相同,奖金为 1000 美元
输入的数字和随机产生的数字都不相同,没有奖金, 0 元
输入输出描述
输入一个两位数
输出两行,第一行输出那个随机产生的两位数,第二行输出用户的奖金
输入: 12
输出:
12
10000
randNum = random.randint(10,99)
print(randNum)
userNum = eval(input())
r1 = randNum % 10
r2 = randNum // 10
u1 = userNum % 10
u2 = userNum // 10
if randNum == userNum:
print(10000)
elif u1 == r2 and u2 == r1:
print(5000)
elif u1 == r1 or u1 == r2 or u2 == r1 or u2 == r2:
print(3000)
else:
print(0)
Demo17 解一元二次方程
一元二次方程用判别式判断实数解的个数,如果它为正,则方程有两个实数解;为零,方程只有一个实数解;为负,没有实数解
输入: 1.0 3 1
输出: -0.38 -2.62
输入: 1 2 3
输出: 无实数解
"""
数据:a b c delt x1 x2
步骤:
1.输入 a b c
2.计算 delt = b^2 - 4ac
3.delt判断
(1)> 0
(2)== 0
(3)< 0
4.根据不同结果输出
"""
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(x1)
print(x2)
elif delt == 0:
x = -b / (2 * a)
print(x)
else:
print("无实数解")
Demo18 解2×2线程方程
Demo19 未来是周几
输入表示今天是一周内哪一天的数字(星期天是0,星期一是1,...,星期六是6) 并输入今天之后到未来某天的天数,然后输出该天是星期几
输入: 1 3
输出: 星期四
def weekday(today_weekday, days_ahead):
future_weekday = (today_weekday + days_ahead) % 7
if future_weekday < 0:
future_weekday += 7
return future_weekday
today_weekday, days_ahead = eval(input())
future_weekday = weekday(today_weekday, days_ahead)
# 输出未来某天是星期几
weekdays = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
print(weekdays[future_weekday])
Demo20 本年中的第几天
给定某年、某月、某日的一个日期,计算该日是今年中的第几天
输入: 2023 1 28
输出: 28
def day_of_year(year, month, day):
days_in_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
days_in_month[2] = 29
total_days = sum(days_in_month[:month]) + day
return total_days
year, month, day = map(int, input("请输入年、月、日(用空格分隔):").split())
result = day_of_year(year, month, day)
print("该日是今年中的第{}天".format(result))Demo21 剪刀石头布
计算机随机产生一个数字0、1和2分别表示剪刀、石头和布 用户输入数字0、1或2,输出用户赢、计算机赢或平局
输入: 1
输出:
计算机出的 剪刀
用户出的 石头
用户赢
import random
def get_choice_name(choice):
if choice == 0:
return "剪刀"
elif choice == 1:
return "石头"
elif choice == 2:
return "布"
else:
return "无效的输入"
computer_choice = random.randint(0, 2)
computer_choice_name = get_choice_name(computer_choice)
user_choice = eval(input())
user_choice_name = get_choice_name(user_choice)
print("计算机出的", computer_choice_name)
print("用户出的", user_choice_name)
if user_choice == computer_choice:
print("平局")
elif (user_choice == 0 and computer_choice == 2) or (user_choice == 1 and computer_choice == 0) or (user_choice == 2 and computer_choice == 1):
print("用户赢")
else:
print("计算机赢")
Demo22 三角形的周长
输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法
如果任意两边之和大于第三边则输入都是合法的
输入输出描述
输入三个数据表示三边,数据之间用空格分隔
输出三角形的周长,如果非法则输出非法
a, b, c = eval(input())
if(a + b > c and b + c > a and a + c > b):
print(a + b + c)
else:
print("非法")
Demo23 一周的星期几
泽勒的一致性是一个由泽勒开发的算法,用于计算一周的星期几,公式如下:
(1) 是指一周的星期几(0表示星期六、1表示星期天、...、6表示星期五)
(2) 是一个月的哪一天
(3) 是月份(3表示三月、4表示四月、...、12表示十二月),其中一月和二月都是按照前一年的13 月和14月来计数的,所以还得把年份改为前一年
(4) 是世纪数,即
(5) 是一个世纪的某一年,即
(6) 为向下取整符号
输入: 2013 1 25
输出: 星期五
def zeller_congruence(day, month, year):
if month < 3:
month += 12
year -= 1
h = (day + 26 * (month + 1) // 10 + year % 100 + year % 100 // 4 + year // 400 + 5 * (year // 400)) % 7
weekdays = ["星期六", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五"]
return weekdays[h]
year, month, day = eval(input())
Demo24 直线的交点
直线A上的两个点是 和 ,直线B上的两个点是 和 如果两条直线有交点,可以通过解下面的线性等式找出,输入八个数据,分别为x1 y1 x2 y2 x3 y3 x4 y4,数据之间用空格分隔 如有交点则输出交点的坐标x y,否则输出两条直线平行
Demo25 回文数
输入一个三位整数,然后判断其是否为一个回文数
如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数
输入输出描述
输入一个数字
输出 Yes 表示是回文数,否则输出 No
n = eval(input())
ge = n % 10
bai = n // 100
if ge == bai:
print("YES")
else:
print("NO")
Demo26 两个矩形
判断两个矩形之间的关系:包含,重叠,相离
输入输出描述
输入两行,每行四个数据,分别是矩形的中心坐标 x 、 y 和矩形的宽、高
输出两者的关系
Demo27 打印数字 I
模式 A
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
模式 B
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
模式 C
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
模式 D
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
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(1, 7):
for i in range(1, 8 - n):
print(i, end = " ")
print()
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
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
6 5 4 3 2 1 2 3 4 5 6
7 6 5 4 3 2 1 2 3 4 5 6 7
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
1
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
1 2 4 8 16 8 4 2 1
1 2 4 8 16 32 16 8 4 2 1
1 2 4 8 16 32 64 32 16 8 4 2 1
for n in range(1, 8):
for k in range(7 - n):
print(" " ,end = " ")
for i in range(1 - n, n):
num = 2 ** (n - 1 - abs(i))
print("%-2d" %(num), end = " ")
print()
Demo30 打印菱形 I
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
for i in range(1, n + 1):
for k in range(abs(n // 2 + 1 - i )):
print(" ", end = "")
for j in range(1, i + 1):
if j <= i and i + j <= n + 1:
print("*", end = " ")
print()