输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出
转换的公式为如下:
输入输出描述
输入一个值表示摄氏温度celsius
输出华氏温度fahrenheit ,结果保留一位小数点
def convert(celsius):
return (9 / 5) * celsius + 32
n = float(input("输入摄氏温度:"))
print("华氏温度为:%.1f" %(convert(n)))
题目描述
输入圆柱的半径和高,并利用公式计算圆柱体的底面积和体积。
输入输出描述
分别输入圆柱的半径radius和高度length,两个数据之间用空格分隔
输出两行,第一行为圆柱底面积area,第二行为圆柱体积volume,结果保留两位小数点
PI = 3.1415
radius = float(input("输入半径和高:"))
length = float(input("输入高:"))
print("area:%.2f" % (PI * radius * radius))
print("volume:%.2f" % (PI * radius * radius * length))
输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米
输入输出描述
输入一个数据表示英尺数
输出转换后的米数,结果保留四位小数点
i = float(input("输入英尺数:"))
print("米数为:%.4f" % (0.305 * i))
题目描述
读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是1.5元,合计金额为11.5元
输入输出描述
分别输入小计和酬金率,两个数据用之间用空格分隔
输出两行,第一行为小费,第二行为合计金额,结果保留两位小数
i = float(input("输入小计费:"))
j = float(input("输入酬金率:"))
print("小费:%.2f" % (j / 100 * i))
print("总额:%.2f" % (i + i * j / 100))
题目描述
读取一个0到1000之间的整数,并计算它各位数字之和
输入输出描述
输入一个[0,1000]之间的整数
输出该数字的各位数字之和
i = int(input("请输入:"))
s = 0
for j in range(i):
s += (i % 10)
i //= 10
print("各位数之和:%d" % s)
题目描述
输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365天
输入输出描述
输入一个分钟数
输出两行,第一行为年数,第二行为天数
i = int(input("请输入:"))
print("年数:%d" % (i // 525600))
print("天数:%d" % (i // 1440))
题目描述
水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:
这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计
输入输出描述
输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度
输出所需的能量值,结果保留一位小数
i = float(input("请输入水量:"))
begin = float(input("请输入起始温度:"))
end = float(input("请输入终点温度:"))
print("最终所释放的能量为:%.1f" % (i * (end - begin) * 4184))
题目描述
输入一个四位整数,并以反向顺序显示
输入输出描述
输入一个四位整数
输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位
i = int(input("请输入一个四位数:"))
print("倒序四位数:")
num = []
while i > 0:
num.append(i % 10)
i //= 10
for i in range(3, -1, -1):
print(num[i])
题目描述
输入三角形的三个顶点坐标,并计算其面积,计算公式如下
输入输出描述
输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔
输出三角形的面积,结果保留一位小数
# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
a = float(input('输入三角形第一边长: '))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长: '))
# 计算半周长
s = (a + b + c) / 2
# 计算面积
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
print('三角形面积为 %0.1f' %area)
题目描述
输入你所在的时区,并输出当前的时间
输入输出描述
输入时区,如东八区为8,西五区为-5
输出二十四小时制的时间,格式为 时:分:秒
# 输入你所在的时区,并输出当前的时间
# 从datetime模块导入datetime类和timedelta类(表示时间间隔)
from datetime import datetime,timedelta
place = int(input("请输入时区:"))
# 获取当前时间
now = datetime.now()
# 将时间格式化为字符串
time_8= now.strftime("%H:%M:%S")
if place == 8:
print(time_8)
elif place == -5:
# 修改时间(将小时加11)
modified_time = now +timedelta(hours=11)
time_5= modified_time.strftime("%H:%M:%S")
print(time_5)
else:
print("输入有误重新输入")
题目描述
输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角
输入输出描述
输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔
输出三行,分别为A、B、C三个角的度数,结果保留两位小数
# 输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少
import math
x1,y1,x2,y2,x3,y3=map(float,input("请输入顶点坐标,用空格隔开:").split())
# 计算三条边长
side1 = math.sqrt( (x1-x2)**2+(y1-y2)**2)
side2 = math.sqrt((x2-x3)**2+(y2-y3)**2)
side3 = math.sqrt((x1-x3)**2+(y1-y3)**2)
# 公式计算(弧度制)
cont1=math.acos((side1**2-side2**2-side3**2)/(-2*side2*side3))
cont2=math.acos((side2**2-side1**2-side3**2)/(-2*side1*side3))
cont3=math.acos((side3**2-side2**2-side1**2)/(-2*side1*side2))
# 将弧度制转化为角度制
angle_1=math.degrees(cont1)
angle_2=math.degrees(cont2)
angle_3=math.degrees(cont3)
print("%.2f\n%.2f\n%.2f\n"%(angle_1,angle_2,angle_3))
题目描述
假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币
输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
输入输出描述
输入总金额
输出每种硬币的个数
#题目 : 假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币
#输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
# 兑换最小数量的硬币
money = float(input("请输入金额:"))
# 计算一元硬币
yuan = int(money)
print("有%s个一元硬币"%yuan)
# 计算剩下的钱
last = money - yuan
# 计算两角五分的硬币
money2_5 = (last)/0.25
print("有%s个两角五分的硬币"%int(money2_5))
# 更新剩下的钱
last = last - 0.25*int(money2_5)
# 计算一角硬币个数
money1 = last/0.1
print("有%s个一角硬币"%int(money1))
# 再次更新余额
last = last - int(money1)*0.1
# 计算五分硬币个数
money_5 = last/0.05
print("有%s个五分硬币"%int(money_5))
# 更新余额
last= last - int(money_5)*0.05
# 计算一分硬币
money_1 = last/0.01
print("有%s个一分硬币"%int(money_1))
题目描述
正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:
输入输出描述
输入两个数据分别表示边的个数n和边的长度s,数据之间用空格分隔
输出边长为s的正n多边形的面积,结果保留两位小数
#输入两个数据分别表示边的个数n和边的长度s,数据之间用空格分隔
#输出边长为s的正n多边形的面积,结果保留两位小数
import math
π = 3.14
side, lengs = map(float,input("请输入边的个数和长度用空格隔开:").split())
area = (side * lengs**2) / (4 * math.tan(π/side))
print("面积是%.2f"%area)
题目描述
BMI是根据体重测量健康的方式,通过以千克为单位的体重除以以米为单位的身高的平方计算而出
# 计算身体质量指数
weight ,high = map(int,input("输入体重和身高,数据之间用空格分隔:").split())
# 体重除以以米为单位的身高的平方
BMI = weight/(high**2)
if BMI<18.5:
print("超轻")
elif BMI<25.0:
print("标准")
elif BMI<30.0:
print("超重")
elif BMI>=30.0:
print("肥胖")
else:
print("输入不合法,重新输入")
题目描述
一个年份如果能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年
输入输出描述
输入一个年份
输出Yes表示该年份为闰年,No则表示不是闰年
# 判定闰年
year = int (input("请输入想要知道年分:"))
if year%4==0 and year%100!=0 or year%400 == 0:
print("yes")
else :
print("no")
题目描述
随机产生一个两位数数字,然后用户输入一个两位数数字,并根据以下规则判定用户赢得的奖金是多少
(1)输入的数字和随机产生的数字完全相同(包括顺序),奖金为10000元
(2)输入的数字和随机产生的数字相同(不包括顺序),奖金为3000元
(3)输入的数字和随机产生的数字有一位数相同,奖金为1000美元
(4)输入的数字和随机产生的数字都不相同,没有奖金,0元
输入输出描述
输入一个两位数
输出两行,第一行输出那个随机产生的两位数,第二行输出用户的奖金
import random
input_num = int (input("输入:"))
input_str = str(input_num)
random_num = random.randint(10,99)
random_str = str(random_num)
print(random_num)
if input_num ==random_num:
print("10000")
elif random_str[0] == input_str[1] and random_str[1] == input_str[0]:
print("3000")
elif (random_str[0] == input_str[0] or random_str[0] == input_str[1])or(random_str[1] == input_str[0] or random_str[1] == input_str[1]) :
print("1000")
else:
print("0")
题目描述
一元二次方程$ax^2+bx+c=0 (a != 0)$的解可以使用下面的公式计算
其中$b^2-4ac$称为判别式,如果它为正,则方程有两个实数解;为零,方程只有一个实数解;为负,没有实数解
输入输出描述
输入a、b、c三个数据,数据之间用空格分隔
两个解每行输出一个;一个解单行输出;无解则单行输出无实数解,保留两位小数
# 解一元二次方程
# ax^2+bx+c=0
import math
a,b,c = map(float,input("输入:").split())
if a==0:
print("输入不合法")
elif b**2-4*a*c>0:
# round(number[, ndigits])----四舍五入保留ndigits位小数
print( round((-b+math.sqrt(b**2-4*a*c))/(2*a),2))
print( round((-b-math.sqrt(b**2-4*a*c))/(2*a),2))
elif b**2-4*a*c==0:
print(round((-b)/(2*a),2))
elif b**2-4*a*c<0:
print("无实数解")
题目描述
如有一个2×2的线程方程组:
你可以使用克莱姆法则解该线性方程:
其中$ad-bc$为判别式,如果为零则输出无解
输入输出描述
输入a、b、c、d、e、f六个数据,数据之间用空格分隔
输出两行,第一行x的解,第二行y的解,保留一位小数
# 解2×2线程方程
a,b,c,d,e,f = map(float,input("输入:").split())
# 前提:(ad - bc)不等于0
# x = (ed - bf) / (ad - bc)
# y = (af - ec) / (ad - bc)
if (a*d - b*c) ==0:
print("无解")
else:
x = (e*d - b*f) / (a*d - b*c)
y = (a*f - e*c) / (a*d - b*c)
print(x,y)
题目描述
输入表示今天是一周内哪一天的数字(星期天是0,星期一是1,...,星期六是6)
并输入今天之后到未来某天的天数,然后输出该天是星期几
输入输出描述
输入两个数据,分别表示今日星期几的数字和未来某天的天数,数据之间用空格分隔
输出未来某天是星期几
week ,future_day = map(int ,input("输入:").split())
day = (week+future_day)%7
if day == 0:
print("星期天")
if day == 1:
print("星期一")
if day == 2:
print("星期二")
if day == 3:
print("星期三")
if day == 4:
print("星期四")
if day == 5:
print("星期五")
if day == 6:
print("星期六")
题目描述
给定某年、某月、某日的一个日期,计算该日是今年中的第几天
输入输出描述
输入三个数据分别表示年、月、日,数据之间用空格分隔
输出该日是今年中的第几天
year,month,day = map(int,input("输入").split())
# 定义每月的天数表
month_day =[0,31,28,31,30,31,30,31,31,30,31,30,31]
# 判断闰年,并对二月进行加一操作
if (year %4 ==0 and year%100 ==0) or year%400 == 0:
month_day[2] += 1
for i in range(0 , month):
day += month_day[i]
print(day)
题目描述
计算机随机产生一个数字0、1和2分别表示剪刀、石头和布
用户输入数字0、1或2,输出用户赢、计算机赢或平局
输入输出描述
输入数字0、1或2
输出有三行,第一行输出计算机出的啥,第二行输出用户出的啥,第三行输出结果
import random
use_num =int( input("输入:"))
com_num = random.randint(0,2)
# 定义一个方法:将数字和字符转换,
def vo(num):
if num ==0:
return " 剪刀"
elif num == 1:
return " 石头"
elif num ==2:
return " 布"
else :
return 0
# 对用户输入数据进行判断
if vo(use_num)==0:
print("输入不合法")
else:
print("计算机输出"+vo(com_num))
print("用户出的"+vo(use_num))
if com_num==use_num:
print("平手")
elif (com_num==1 and use_num==0) or(com_num==0 and use_num==2) or (com_num == 2 and use_num == 1):
print("计算机赢")
else:
print("用户赢")
题目描述
输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法
如果任意两边之和大于第三边则输入都是合法的
输入输出描述
输入三个数据表示三边,数据之间用空格分隔
输出三角形的周长,如果非法则输出非法
side1,side2,side3 = map(int,input("输入:").split())
if side1+side2>side3 and side1+side3>side2 and side2+side3>side1:
print(side1+side2+side3)
else:
print("非法")
题目描述
泽勒的一致性是一个由泽勒开发的算法,用于计算一周的星期几,公式如下:
(1)$h$是指一周的星期几(0表示星期六、1表示星期天、...、6表示星期五)
(2)$q$是一个月的哪一天
(3)$m$是月份(3表示三月、4表示四月、...、12表示十二月),其中一月和二月都是按照前一年的13月和14月来计数的,所以还得把年份改为前一年
(4)$j$是世纪数,即$\lfloor\frac{year}{100}\rfloor$
(5)$k$是一个世纪的某一年,即$year \% 100$
(6)$\lfloor\rfloor$为向下取整符号
输入输出描述
输入年、月、日三个数据,数据之间用空格分隔
输出该日是周几
# 判断一年中某天是星期几
# 输入年、月、日三个数据,数据之间用空格分隔
# 输出该日是周几
year,month,day = map(int,input("输入:").split())
# 一月和二月都是按照前一年的13月和14月来计数的,所以还得把年份改为前一年
if month ==1 or month == 2:
year-=1
month+=12
h =int((day+26*(month+1)//10+year%100+year%100//4+year/100//4+5*year/100)%7)
if h == 0:
print("星期六")
elif h == 1:
print("星期天")
elif h == 2:
print("星期一")
elif h == 3:
print("星期二")
elif h == 4:
print("星期三")
elif h == 5:
print("星期四")
elif h == 6:
print("星期五")
题目描述
直线A上的两个点是$(x1,y1)$和$(x2,y2)$,直线B上的两个点是$(x3,y3)$和$(x4,y4)$
如果两条直线有交点,可以通过解下面的线性等式找出:
如果没有解,则表示两条直线平行
输入输出描述
输入八个数据,分别为x1 y1 x2 y2 x3 y3 x4 y4,数据之间用空格分隔
如有交点则输出交点的坐标x y,否则输出两条直线平行
x1, y1 = map(float, input("请输入第一个顶点的坐标,以空格分隔:").split())
x2, y2 = map(float, input("请输入第二个顶点的坐标,以空格分隔:").split())
x3, y3 = map(float, input("请输入第三个顶点的坐标,以空格分隔:").split())
x4, y4 = map(float, input("请输入第三个顶点的坐标,以空格分隔:").split())
try:
x = ( (x3-x4) * ( (y1 - y2)*x1 - (x1 - x2)*y1 ) - (x1 - x2) * ( (y3 - y4)*x3 - (x3 - x4)*y3 ) ) / ( (y1 - y2)*(x3 - x4) - (y3 - y4)*(x1 - x2) )
y = ( (y3-y4) * ( (y1 - y2)*x1 - (x1 - x2)*y1 ) - (y1 - y2) * ( (y3 - y4)*x3 - (x3 - x4)*y3 ) ) / ( (y1 - y2)*(x3 - x4) - (y3 - y4)*(x1 - x2) )
except ZeroDivisionError:
print("两直线平行")
else:
print("直线的交点是:(",x,",",y,")")
题目描述
输入一个三位整数,然后判断其是否为一个回文数
如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数
输入输出描述
输入一个数字
输出Yes表示是回文数,否则输出No
# 回文数
# 输入一个三位整数,然后判断其是否为一个回文数
# 如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数
# 用户需要判断的数字
num = int (input("输入:"))
# num会在后续的操作中改值,所以需要定义一个变量存储num的值
tem =num
# 定义一个变量用于存储反转后的数字
change_num =0
while num >0:
change_num *= 10
change_num += num%10
num //= 10
if tem == change_num:
print("yes")
else:
print("no")
题目描述
判断两个矩形之间的关系:包含,重叠,相离
输入输出描述
输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高
输出两者的关系
# 判断两个矩形之间的位置关系
# 输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高
# 输出两者的关系
x1,y1,winth1,high1 = map(float ,input("输入").split())
x2,y2,winth2,high2 = map(float ,input("输入").split())
# 包含:如果两个矩形的中心点之间的水平距离小于两个矩形宽度之和的一半,并且垂直距离小于两个矩形高度之和的一半,则两个矩形相交。
# 重叠: 如果一个矩形的中心点到另一个矩形的中心点的水平距离小于两个矩形宽度之差的一半,并且垂直距离小于两个矩形高度之差的一半
# 定义两个函数用于存储中心点的水平距离和垂直距离
level =abs(x1-x2)
vertical = abs(y1-y2)
# 判断:
if level < (winth1+winth2)/2 and vertical<(high1+high2)/2:
print("包含")
elif level<abs(winth1-winth2) and vertical<abs(high1-high2):
print("重叠")
else:
print("相离")
利用循环,寻找规律,打印如下数字模式:
模式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("模式1:")
for i in range(2, 8):
for j in range(1, i):
print(j, end=' ')
print()
print("模式2:")
for i in range(7, 1, -1):
for j in range(1, i):
print(j, end=' ')
print()
print("模式3:")
for i in range(1, 7):
for j in range(1, 7):
if 7 - j <= i:
print(7 - j, end=' ')
else:
print(" ", end=' ')
print()
print("模式4:")
for i in range(0, 6):
for j in range(6, 0, -1):
if 7 - j > i:
print(7 - j - i, end=' ')
else:
print(" ", end=' ')
print()