编程练习(python)

一、语法基础
Demo01
"""
数据:celsius fahrenheit
步骤:
1.输入摄氏度的值
2.用公式计算华氏摄氏度
3.输出
"""
print("输入一个摄氏温度的值:")
celsius = eval(input())
#摄氏温度转华氏摄氏温度的计算公式
fahrenheit = celsius * (9.0 / 5.0) + 32
print("它的华氏摄氏度是:%.1f" % fahrenheit)
Demo02
"""
数据:radius length area volume 
1.输入半径和高
2.用公式计算底面积
3.计算体积
4.输出
"""
import math
radius, length = map(float,input("分别输入圆柱的半径和高:").split())
#计算圆柱底面积
area = radius * radius * math.pi
#计算圆柱体积
volume = area * length
print("圆柱的底面积是:%.2f,圆柱体积是:%.2f" % (area,volume))
Demo03
"""
数据:inch metre
1.输入
2.计算米
3.输出
"""
#1英尺约等于0.305米
print("输入一个英尺数:")
inch = eval(input())
metre = inch * 0.305
print("英尺数转化为米数为:%.4f" % metre)
Demo04
"""
读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是
1.5元,合计金额为11.5元
数据:count money sumMoney 
1.输入
2.计算小费
3.计算合计金额
4.输出
"""
count, money = map(float,input("分别输入小计和酬金率:").split())
#计算小费
xiaofei = money * 0.01 * count
#计算合计金额
sumMoney = count + xiaofei
print("小费是:%.2f" % xiaofei)
print("合计金额是:%.2f" % sumMoney)
Demo05
"""
读取一个0到1000之间的整数,并计算它各位数字之和
数据:num onesPlace tensPlace hundredsPlace
"""
print("请输入一个0~1000之间的整数")
num = int(input())
#取整数的个位
onesPlace = num % 10
#取整数的十位
tensPlace = num // 10 % 10
#取整数的百位
hundredsPlace = num // 100
#计算各位数字相加
sumPlace = onesPlace + tensPlace + hundredsPlace
print("各位数字之和为:%d" % sumPlace)
Demo06
"""
输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365天
"""
print("输入一个分钟数:")
minutes = int(input())
#计算年份
year = minutes // 60 // 24 // 365
#计算天数
day = minutes // 60 // 24 % 365
print("年数为:%d" % year)
print("天数为:%d" % day)
Demo07
"""
水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:
Q = M * (finalTemperature - initialTemperature) * 4184
这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计
输入输出描述
"""
print("输入水量:")
M = eval(input())
print("输入初始温度:")
initialTemperature = eval(input())
print("输入最终温度:")
finalTemperature = eval(input())
Q = M * (finalTemperature - initialTemperature) * 4184
print("所需的能量值是:%.1f" % Q)
Demo08
"""
输入一个四位整数,并以反向顺序显示
"""
print("输入一个四位整数:")
num = eval(input())
#取个位数
onesPlace = num % 10
#取十位数
tensPlace = num // 10 % 10
#取百位数
hundredsPlace = num // 100 % 10
#取千位数
thousandsPlace = num // 1000
print("%d" % onesPlace)
print("%d" % tensPlace)
print("%d" % hundredsPlace)
print("%d" % thousandsPlace)
Demo09
"""
输入三角形的三个顶点坐标,并计算其面积,计算公式如下:
s = (side1 + side2 + side3)/2
area = sqrt(s*(s-side1)*(s-side2)*(s-side3))
"""
import math
print("输入六个数据,分别表示三角形三个顶点的坐标x1,y1,x2,y2,x3,y3:")
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((x3 - x2) **2 + (y3 - y2) **2)
#计算三角形的s
s = (side1 + side2 + side3)/2
#计算三角形的面积
area = math.sqrt(s * (s-side1) * (s-side2) * (s-side3))
print("三角形的面积是:%.1f" % area)
Demo10
"""
输入你所在的时区,并输出当前的时间
数据:TimeArea hours minutes s totals
1.输入
2.计算时间
3.输出
"""
import time 

TimeArea = eval(input("请输入您所在的时区: "))
totals = time.time()
#计算从今天0点到现在的秒数
totals = totals % (60 * 60 * 24) + TimeArea * 60 * 60
#计算小时
hours = totals // 3600
#计算分钟
minutes = totals // 60 % 60
#计算秒
s = totals % 60
print("%d:%d:%d" % (hours,minutes,s) )
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
"""
题目描述
假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币
输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
"""
money = eval(input("请输入总金额:"))
OneYuanCoin = money // 1.0
TwentyfiveFenCoin = (money - OneYuanCoin) // 0.25
TenFenCoin = (money - OneYuanCoin - TwentyfiveFenCoin * 0.25) // 0.1
FiveFenCoin = (money - OneYuanCoin - TwentyfiveFenCoin * 0.25 - TenFenCoin * 0.1) // 0.05
OneFenCoin = (money - OneYuanCoin - TwentyfiveFenCoin * 0.25 - TenFenCoin * 0.1 - FiveFenCoin * 0.05) // 0.01
print("%d个一元硬币" % OneYuanCoin)
print("%d个两角五分硬币" % TwentyfiveFenCoin)
print("%d个一角硬币" % TenFenCoin)
print("%d个五分硬币" % FiveFenCoin)
print("%d个一分硬币" % OneFenCoin)
Demo13
"""
数据:n s area 
1.输入
2.计算面积
3.输出
"""
import math
n, s = map(float,input().split())
area = (n * s * s) / (4 * math.tan(math.pi / n))
print("%.2f" % area)
Demo14
"""
数据:weight height BMI
1.输入
2.计算BMI
3.根据表格判断BMI指数结果
4.输出
"""
weight, height = map(float,input().split())
BMI = weight / height ** 2
if BMI < 18.5:
    print("超轻")
elif BMI < 25:
    print("标准")
elif BMI < 30:
    print("超重")
else:
    print("肥胖")
Demo15
"""
数据:year
1.输入一个年份
2.判断该年份是否是闰年
3.输出判断结果
"""
year = eval(input())
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 :
    print("Yes")
else:
    print("No")
Demo16
"""
数据:randNum userNum r1 r2 u1 u2
1.输入
2.判断随机数和用户输入数的对比
3.根据判断输出
"""
import random
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 r1 == u2 and r2 == u1:
    print(3000)
elif r1 == u1 or r1 == u2 or r2 == u1 or r2 == u2:
    print(1000)
else:
    print(0)
Demo17
#分别输入a, b ,c
a, b , c = map(float,input().split())
#计算delt
delt = b ** 2 - 4 * a * c
#根据delt判断方程解
if delt > 0:
    x1 = (-b + delt ** 0.5) / (2 * a)
    x2 = (-b - delt ** 0.5) / (2 * a)
    print(x1)
    print(x2)
elif delt == 0:
    x1 = x2 = -b / (2 * a)
    print(x1)
else:
    print("没有实数解")
Demo18
"""
数据: a b c d e f x y
1.输入数据
2.判断ad - bc
3.根据判断用公式计算x,y
"""
a, b , c, d, e, f = map(float,input().split())
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)
    print(y)
Demo19
"""
数据: num days FutureDay
1.输入
2.计算未来星期几
3.输出
"""
num, days = map(int,input().split())
FutureDay = (num + days) % 7
if FutureDay == 1 :
    print("星期一")
elif FutureDay == 2 :
    print("星期二")
elif FutureDay == 3 :
    print("星期三")
elif FutureDay == 4 :
    print("星期四")
elif FutureDay == 5 :
    print("星期五")
elif FutureDay == 6 :
    print("星期六")
else:
    print("星期天")
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
"""
数据:randNum userNum 
1.生成随机数并输入用户数
2.根据randNum和userNum判断输赢
3.根据判断输出
"""
import random
randNum = random.randint(0,2)
print(randNum)
userNum = int(input())
if randNum == 0 and userNum == 1:
    print("计算机出的 剪刀")
    print("用户出的 石头")
    print("用户赢")
elif randNum == 0 and userNum == 2:
    print("计算机出的 剪刀")
    print("用户出的 布")
    print("计算机赢")
elif randNum == 0 and userNum == 0:
    print("计算机出的 剪刀")
    print("用户出的 剪刀")
    print("平局")

if randNum == 1 and userNum == 1:
    print("计算机出的 石头")
    print("用户出的 石头")
    print("平局")
elif randNum == 1 and userNum == 2:
    print("计算机出的 石头")
    print("用户出的 布")
    print("用户赢")
elif randNum == 1 and userNum == 0:
    print("计算机出的 石头")
    print("用户出的 剪刀")
    print("计算机赢")

if randNum == 2 and userNum == 1:
    print("计算机出的 布")
    print("用户出的 石头")
    print("计算机赢")
elif randNum == 2 and userNum == 2:
    print("计算机出的 布")
    print("用户出的 布")
    print("平局")
elif randNum == 2 and userNum == 0:
    print("计算机出的 布")
    print("用户出的 剪刀")
    print("用户赢")
Demo22
"""
数据:a b c 
1.输入数据
2.判断两两之和是否大于第三边
3.输出
"""
a, b, c = map(int,input().split())
if a + b > c and a + c > b and b + c > a:
    print(a + b + c)
else:
    print("非法")
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
1.输入点
2.判断两条直线是否平行
3.不平行则计算出交点
4.输出
"""
x1, y1,x2 ,y2 ,x3 ,y3 ,x4 ,y4 = map(int,input().split())

# 计算直线A的斜率  
slope_a = (y2 - y1) / (x2 - x1)
# 计算直线B的斜率  
slope_b = (y4 - y3) / (x4 - x3)
 # 如果两条直线斜率相等,判断它们是否重合  
if slope_a == slope_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 slope_a == float('inf') or slope_b == float('inf'):  
# 处理垂直线的情况  
    if slope_a == float('inf'):  
        x = x1  
        y = slope_b * x + y3 - slope_b * x3  
    else:  
        x = x3  
        y = slope_a * x + y1 - slope_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
"""
数据:三位数整数 num 
1.输入
2.取百位和个位
3.判断个位和百位是否相同
4.输出
"""
num = eval(input())
hundreds = num // 100
ones = num % 10
if hundreds == ones:
    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
"""
1.已知循环次数,用for循环
2.输出
"""
print("模式A")
for j in range(2, 8):
    for i in range(1, j):
        print(i , end = " ")
    print()
print("模式B")
for j in range(8, 2, -1):
    for i in range(1, j - 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(1, n + 1):
        print(i, end = " ")
    print()
print("模式D")
for n in range(1, 7):
    for k in range(n - 1):
        print(" ", end = " ")
    for i in range(1, 8 - n):
        print(i, end = " ")
    print()
Demo28
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
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
"""
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()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值