Python基础题1-30

Demo1:摄氏温度转化为华氏温度

"""
数据:cel fah
步骤:
1.输入cel
2.根据给定公式计算fah
3.输出fah
"""
cel = eval (input())
fah = 9 / 5 * cel + 32 
print("%.1f" % fah)

Demo2:计算圆柱体的体积

"""
数据:radius length area volume
步骤:
1.输入radius和length
2.计算area底面积
3.计算volume体积
4.输出
"""
radius, length = eval(input())
area = radius * radius * 3.14159267
volume = area * length
print("%.2f" % area)
print("%.2f" % volume)

Demo3:将英尺数转换为米数

print("请输入英尺数")
a = eval(input())
b = a * 0.305
print("米数为:" , b)

Demo4:计算小费


"""
读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是
1.5元,合计金额为11.5元
数据:count money sumMoney 
1.输入
2.计算小费
3.计算合计金额
4.输出
"""
print("请输入小计和酬金率,两个数据用之间用空格分隔")
a, b = map(float, input().split())
c = a + a * b * 0.01
print("小费为:" , a * b * 0.01)
print("合计为:" , c)

Demo5:对一个整数中的各位数字求和

"""
数据:num ge shi bai total
步骤:
1.输入一个数字[0,1000)
17 / 21
2.按照顺序 从右往左拆
123 // 10 = 12
12 % 10 = 2
12 // 10 = 1
1 % 10 = 1
1 // 10 = 0
3.三者相加 输出
"""
num = eval(input())
ge = num % 10
num //= 10
shi = num %10
num //= 10 
bai = num % 10
nsum = ge + shi + bai
print(nsum)

Demo6:计算年数和天数

"""
数据:minutes hours days years
步骤:
1.输入minutes
2.计算总小时数 minutes // 60
3.计算总天数 hours // 24
4.计算总年数 days // 365
5.输出
"""
minutes = eval(input())
hours = minutes // 60
days = hours // 24
years = days //365
days = days % 365
print(years)
print(days)

Demo7:计算能量

print("请输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度度")
a = float(input())
b = float(input())
c = float(input())
d = a * (c - b) * 4184 #根据公式计算能量
print("所需的能量值为:" , d)

Demo8:分割数字

输入一个四位整数,并以反向顺序显示
print("请输入一个四位整数")
n = eval(input ())
a = n % 10 
b = n // 10 % 10 
c = n //100 % 10
d = n // 1000 % 10
print(a)
print(b)
print(c)
print(d)

Demo9:计算三角形的面积

"""
数据:三个顶点坐标x-1-2-3 y1-2-3 三边side1-2-3 半周长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:显示当前时间

import time
print(time.time())
# 表示从1970年1月1日 00:00:00 至今 经历的总秒数

Demo11:计算三角形的三个角

"""
输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
    A = acos((a*a-b*b-c*c)/(-2*b*c))
    B = acos((b*b-a*a-c*c)/(-2*a*c))
    C = acos((c*c-b*b-a*a)/(-2*a*b))
其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角
"""
import math
x1, y1, x2, y2, x3, y3 = map(float,input("分别输入6个数据,表示x1,y1,x2,y2,x3,y3:").split())
#算出a,b,c三条边的值
a = math.sqrt((x1 - x2) **2 + (y1 - y2) **2)
b = math.sqrt((x1 - x3) **2 + (y1 - y3) **2)
c = math.sqrt((x3 - x2) **2 + (y3 - y2) **2)
# 使用余弦定理计算角度的余弦值,然后转换为角度  
cos_A = (b ** 2 + c ** 2 - a ** 2) / (2 * b * c)  
cos_B = (a ** 2 + c ** 2 - b ** 2) / (2 * a * c)  
cos_C = (a ** 2 + b ** 2 - c ** 2) / (2 * a * b)  
  
# 使用反余弦函数得到角度  
A = math.degrees(math.acos(cos_A))  
B = math.degrees(math.acos(cos_B))  
C = math.degrees(math.acos(cos_C)) 
 
print(A)
print(B)
print(C)

Demo12:最小数量的硬币

a = 100 #一元硬币
b = 25  #两角五分硬币
c = 10  #一角硬币
d = 5   #五分硬币
e = 1   #一分硬币
n = float(input())
m = n * 100
A = m // 100
B = m % 100 // 25
C = m % 100 % 25 // 10
D = m % 100 % 25 % 10 // 5
E = m % 100 % 25 % 10 % 5 
print(int(A) , "个一元硬币")
print(int(B) , "个两角五分硬币")
print(int(C) , "个一角硬币")
print(int(D) , "个五分硬币")
print(int(E) , "个一分硬币")

Demo13:正多边形的面积

import math
n, s = map(float, input().split())
a = math.pi / n  # a = pai / n
b = math.tan(a)  # b = tan(Π/n)
area = (n * s * s) / (4 * b)
area1 = round(area,2)  # 结果保留2位小数
print(area1)

Demo14:计算身体质量指数

"""
数据:体重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 整除,那么这个年份就是闰年
n = eval(input())
if (n % 4 == 0 and n % 100 != 0) or (n % 400 == 0) :
    print("Yes")
else:
    print("No")

Demo16:中彩票

"""
数据:随机产生的数字randNum 用户输入的数字 userNum r1 r2 u1 u2
randNum = r1 * 10 + r2
userNum = u1 * 10 + u2
步骤:
1.输入
2.拆数字
3.判断
(1) randNum == userNum
(2) r1 == u2 and r2 == u1
(3) r1 == u1 or r1 == u2 or r2 == u1 or r2 == u2
(4) 啥也没有
4.输出对应的结果
"""
import random
randNum = random.randint(10, 99)
userNum = eval(input())
r1 = randNum //10
r2 = randNum % 10
u1 = userNum // 10
u2 = userNum % 10
if randNum == userNum:
    print(10000)
elif r1 == u2 and r2 == u1:
    print(5000)
elif r1 == u1 or r1 == u2 or r2 == u1 or r2 == u2:
    print(3000)
else:
    print(0)

Demo17:解一元二次方程

"""
数据: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线程方程

a, b, c, d, e, f = map(float, input().split())
if a * d != b * c:
    x = (e * d - b * f) / (a * d - b * c)
    y = (a * f - e * c) / (a * d - b * c)
    print(x)
    print(y)
else :  #(a * d - b * c)=0的情况
    print("无解")

Demo19:未来是周几

输入两个数据,分别表示今日星期几的数字和未来某天的天数,数据之间用空格分隔
输出未来某天是星期几
a, b = map(int,input().split())
week = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]
c = (a + b) % 7
print(week[c])

Demo20:本年中的第几天

给定某年、某月、某日的一个日期,计算该日是今年中的第几天
"""
数据:year month day
1.输入和定义变量
2.判断年份是否是闰年、月份的天数
3.根据年份和月份计算天数
4.输出
"""
year, month, day = map(int,input().split())
i = 1
days = day
# 判断年份  
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:  
    is_leap_year = True  
else:  
    is_leap_year = False  
  
while i < month:  
    if i == 2:  
        if is_leap_year:  
            days += 29  
        else:  
            days += 28  
    elif i in [1, 3, 5, 7, 8, 10, 12]:  
        days += 31  
    elif i in [4, 6, 9, 11]:  
        days += 30  
    i += 1  
  
print(days)

Demo21:剪刀石头布 I

计算机随机产生一个数字 0 1 2 分别表示剪刀、石头和布
用户输入数字 0 1 2 ,输出用户赢、计算机赢或平局
import random
print("请输入0、1或2")
a = int(input())
b = random.randint(0,2)
print("计算机出的" , b)
print("用户出的" , a)
if (a < b) or (a == 2 and b == 0) :
    print("计算机赢")
elif a == b :
    print("平局")
else :
    print("用户赢")

Demo22:三角形的周长

输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法

a, b, c = map(int,input().split())
if a + b < c or a + c < b or b + c < a :
    print("非法")
else :
    print(a + b + c)

Demo23:一周的星期几

"""
数据:h是指一周的星期几(0表示星期六、1表示星期天、...、6表示星期五)
    q是一个月的哪一天 
    m是月份(3表示三月、4表示四月、...、12表示十二月),其中一月和二月都是按照前一年的13
月和14月来计数的,所以还得把年份改为前一年 
    j是世纪数,即year // 100
    k是一个世纪的某一年,即year % 100
    year month day
1.输入
2.分别计算出q, j , k, m
3.用公式计算h
4.输出
"""
import math
year, month , day = map(int, input().split())
if month < 3:
    m = month + 12
    year -= 1
else:
    m = month
j = year // 100
k = year % 100
q = day
h = (q + math.floor(26 * (m + 1) / 10) + k + math.floor(k / 4) + math.floor(j / 4) + 5 * j) % 7
print(h)
weekdays = ["星期六", "星期天", "星期一", "星期二", "星期三", "星期四", "星期五"]  
print(weekdays[h])

Demo24:直线的交点

x1, y1, x2, y2, x3, y3, x4, y4 = map(int,input().split)
a = (y2 - y1) / (x2 - x1) #a为直线A的斜率
b = (y4 - y3) / (x4 - x3) #b为直线B的斜率
if a == b and (x1 != x3 or y1 != y3): # 如果两条直线斜率相等,判断它们是否重合
    if (y2 - y1) * (x3 - x1) == (y3 - y1) * (x2 - x1) and (y4 - y1) * (x3 - x1) == (y3 - y1) * (x4 - x1):
       print("两条直线重合") 
    else:
        print("两条直线平行")
# 如果斜率不相等或其中一条直线是垂直线,则计算交点
if a == float('inf') or b == float('inf'):
    if a = float('inf'): # 垂直线的情况
        x = x1
        y = b * x + y3 - b * x3
    else:
        x = x3
        y = a * x + y1 - a * x1
else:# 计算交点
    x = ((y3 - y4) * (x1 * y2 - y1 * x2) - (y1 - y2) * (x3 * y4 - y3 * x4)) / ((y3 - y4) * (x2 - x1) - (x3 - x4) * (y2 - y1))
    y = ((x3 - x4) * (x1 * y2 - y1 * x2) - (x1 - x2) * (x3 * y4 - y3 * x4)) / ((y3 - y4) * (x2 - x1) - (x3 - x4) * (y2 - y1))
    print("{:.2f} {:.2f}".format(x, y))

Demo25:回文数

输入一个三位整数,然后判断其是否为一个回文数
print("请输入一个三位数")
n = int(input())
if n % 10 == n // 100 :
    print("Yes")
else :
    print("No")

Demo26:两个矩形

判断两个矩形之间的关系:包含,重叠,相离

"""
数据: x y width high
1.输入
2.计算矩形的左上角坐标和右下角坐标
3.判断矩形关系
4.输出
"""
x1, y1, width1, high1 = map(float,input().split())
x2, y2, width2 ,high2 = map(float,input().split())
 
#计算第一个矩形的左上角坐标和右下角坐标
LightUp_x1, LightUp_y1 = x1 - width1 / 2, y1 + high1 / 2
RightDown_x1,RightDown_y1 = x1 + width1 / 2, y1 - high1 / 2
#计算第二个矩形的左上角坐标和右下角坐标
LightUp_x2, LightUp_y2 = x2 - width2 / 2, y2 + high2 / 2
RightDown_x2,RightDown_y2 = x2 + width2 / 2, y2 - high2 / 2
 
#判断矩形关系
if (LightUp_x1 <= LightUp_x2 and RightDown_x1 >= RightDown_x2 and LightUp_y1 >= LightUp_y2 and RightDown_y1 <= RightDown_y2) or (LightUp_x1 >= LightUp_x2 and RightDown_x1 <= RightDown_x2 and LightUp_y1 <= LightUp_y2 and RightDown_y1 >= RightDown_y2) :
    print("包含")
elif (LightUp_x1 < RightDown_x2 and RightDown_x1 > LightUp_x2 and LightUp_y1 < RightDown_y2 and RightDown_y1 > LightUp_y2):
    print("重叠")
else:
    print("相离")

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()
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 x in range(1 - n, n):
        print(abs(x) + 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 x in range(1 - n, n):
        num = 2 ** (n - 1 - abs(x))
        print("%-2d" % (num), end = " ")
    print()

Demo30:打印菱形 I

    * 
   * *
  * * *
 * * * *
* * * * *
 * * * *
  * * *
   * *
    *
"""
m = int(input())
for n in range(- m // 2, m // 2 + 1):
    for k in range(abs(n)):
        print(" ", end = "")
    for i in range((m // 2 + 1) - abs(n)):
        print("*", end = " ")
    print()
"""
 
n = eval(input())
for i in range(1, n + 1):
    for j in range(abs(n // 2 + 1 - i)):
        print(" ", end = "")
    for k in range(1, i + 1):
        if k <= i and k + i <= n + 1:
            print("*", end = " ")
    print()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值