Python语法基础编程练习

1,

输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出
转换的公式为如下:
输入输出描述
输入一个值表示摄氏温度 celsius
输出华氏温度 fahrenheit ,结果保留一位小数点
cel = eval ( input ())
fah = 9 / 5 * cel + 32
print ( "%.1f" % fah )
38
100.4
2,输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。结果保留两位小数

radius, length = eval(input())

area = radius * radius * 3.14

volume = area * length

print("%.2f" %area)

print("%.2f" %volume)

50,50
7850.00
392500.00

3,输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米 结果保留四位小数点

y = eval(input())

m = y * 0.305

print("%.4f" %m)

6.6
2.0130

4,读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是 1.5元,合计金额为11.5元,结果保留两位小数

x, c = eval(input())

f = x * c * 0.01

s = f + x

print("%.2f" %f)

print("%.2f" %s)

66,15
9.90
75.90

5,读取一个01000之间的整数,并计算它各位数字之和

num = eval(input())

ge = num % 10  

num = num // 10

shi = num % 10  

num = num // 10

bai = num % 10  

nsum = ge + shi + bai

print(nsum)

888
24

6,输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365

minutes = eval(input())

hours = minutes // 60

days = hours // 24    

years = days // 365    

days = days % 365      

print(years)

print(days)

200000000
380
188

7,水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:

这里的 M 是按千克计的水量,初始温度和最终温度均为摄氏度,热量 Q以焦耳计结果保留一位小数

x, ini, fin = eval(input())

q = x * (fin - ini) * 4184

print("%.1f" %q)

55.5,3.5,10.5
1625484.0

8,输入一个四位整数 ,输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位

num = eval(input())

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)

9871
1
7
8
9

9,输入六个数据,分别表示三角形三个顶点的坐标x1y1x2y2x3y3,数据之间用空格分隔 输出三角形的面积,结果保留一位小数

x1, y1, x2, y2, x3, y3 = eval(input())

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

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

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

s = (side1 + side2 + side3) / 2

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

print("%.1f" %area)

1.5,-3.4, 4.6, 5, 9.5, -3.4
33.6
10, 输入你所在的时区,并输出当前的时间 输出二十四小时制的时间,格式为 时 : :
11, 输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
其中 a b c 分别表示三条边, A B C 分别表示三边对应的角
输入输出描述
输入六个数据,分别表示三角形三个顶点的坐标 x1 y1 x2 y2 x3 y3 ,数据之间用空格分隔
输出三行,分别为 A B C 三个角的度数,结果保留两位小数
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)

12,
假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币
输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
输入输出描述
输入总金额
输出每种硬币的个数
13,
正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:
输入输出描述
输入两个数据分别表示边的个数 n 和边的长度 s ,数据之间用空格分隔
输出边长为 s 的正 n 多边形的面积,结果保留两位小数
import math 
n, s = eval(input()) 
area = n * s * s / (4 * math.tan(3.14 / n))
print("%.2f" %area)
 
 
  

14,
输入体重和身高,数据之间用空格分隔
输出 BMI 指数结果

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("肥胖")

125,1.75
肥胖

15,

一个年份如果能被 4 整除但不能被 100 整除,或者能被 400 整除,那么这个年份就是闰年
输入输出描述
输入一个年份
输出 Yes 表示该年份为闰年, No 则表示不是闰年
year = eval(input()) 
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):  
    print("YES")  
else:  
    print ("No" ) 
  
 
 
  

16,
随机产生一个两位数数字,然后用户输入一个两位数数字,并根据以下规则判定用户赢得的奖金是多少
1 )输入的数字和随机产生的数字完全相同(包括顺序),奖金为 10000
2 )输入的数字和随机产生的数字相同(不包括顺序),奖金为 3000
3 )输入的数字和随机产生的数字有一位数相同,奖金为 1000 美元
4 )输入的数字和随机产生的数字都不相同,没有奖金, 0
输入输出描述
输入一个两位数
输出两行,第一行输出那个随机产生的两位数,第二行输出用户的奖金

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)

86
45
0

17,

一元二次方程
的解可以使用下面的公式计算
其中
称为判别式,如果它为正,则方程有两个实数解;为零,方程只有一个实数解;为负,没
有实数解
a, b, c = eval(input())
delt = b ** 2 - 4 * a * c
if delt > 0:
    x1 = -1 * b + (b ** 2 - 4 * a * c) ** 0.5
    x2 = -1 * b - (b ** 2 - 4 * a * c) ** 0.5
    print(x1)
    print(x2)
elif delt == 0:
    x = -1 * b / 2 * a
    print(x)
else:
    print("无实数解")

输入输出描述
输入 a b c 三个数据,数据之间用空格分隔
两个解每行输出一个;一个解单行输出;无解则单行输出无实数解,保留两位小数

a, b, c = eval(input())

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

if delt > 0:

    x1 = -1 * b + (b ** 2 - 4 * a * c) ** 0.5

    x2 = -1 * b - (b ** 2 - 4 * a * c) ** 0.5

    print(x1)

    print(x2)

elif delt == 0:

    x = -1 * b / 2 * a

    print(x)

else:

    print("无实数解")

1.2,5,6
无实数解

18,

如有一个 2×2 的线程方程组:
你可以使用克莱姆法则解该线性方程:
其中
为判别式,如果为零则输出无解
输入输出描述
输入 a b c d e f 六个数据,数据之间用空格分隔 输出两行,第一行 x 的解,第二行 y 的解,保留一位小数
19,
输入表示今天是一周内哪一天的数字(星期天是 0 ,星期一是 1 ... ,星期六是 6
并输入今天之后到未来某天的天数,然后输出该天是星期几
输入输出描述
输入两个数据,分别表示今日星期几的数字和未来某天的天数,数据之间用空格分隔
输出未来某天是星期几
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])

20,
给定某年、某月、某日的一个日期,计算该日是今年中的第几天
输入输出描述 输入三个数据分别表示年、月、日,数据之间用空格分隔
输出该日是今年中的第几天
from datetime import datetime  
  
def day_of_year(year, month, day):  
 
    date = datetime(year, month, day)  
  
    return date.timetuple().tm_yday  
  
year, month, day = eval(input())  

print(day_of_year(year, month, day))

21,
计算机随机产生一个数字 0 1 2 分别表示剪刀、石头和布
用户输入数字 0 1 2 ,输出用户赢、计算机赢或平局
输入输出描述
输入数字 0 1 2
输出有三行,第一行输出计算机出的啥,第二行输出用户出的啥,第三行输出结果
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("计算机赢")

22,
输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法
如果任意两边之和大于第三边则输入都是合法的
输入输出描述
输入三个数据表示三边,数据之间用空格分隔
输出三角形的周长,如果非法则输出非法
a, b, c = eval(input())
if(a + b > c and b + c > a and a + c > b):
    print(a + b + c)
else:
    print("非法")

23,
泽勒的一致性是一个由泽勒开发的算法,用于计算一周的星期几,公式如下:
1 ) 是指一周的星期几(
0 表示星期六、 1 表示星期天、 ... 6 表示星期五)
2 ) 是一个月的哪一天
3 ) 是月份(
3 表示三月、 4 表示四月、 ... 12 表示十二月),其中一月和二月都是按照前一年的 13
月和 14 月来计数的,所以还得把年份改为前一年
4 ) 是世纪数,即
5 ) 是一个世纪的某一年,即
6 ) 为向下取整符号
输入输出描述
输入年、月、日三个数据,数据之间用空格分隔
输出该日是周几
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())  
  
weekday = zeller_congruence(day, month, year)  
print(weekday)

24,
直线 A 上的两个点是
,直线 B 上的两个点是
如果两条直线有交点,可以通过解下面的线性等式找出:
如果没有解,则表示两条直线平行
输入输出描述
输入八个数据,分别为 x1 y1 x2 y2 x3 y3 x4 y4 ,数据之间用空格分隔
如有交点则输出交点的坐标 x y ,否则输出两条直线平行
25,
输入一个三位整数,然后判断其是否为一个回文数
如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数
输入输出描述
输入一个数字
输出 Yes 表示是回文数,否则输出 No
n = eval(input())
ge = n % 10
bai = n // 100
if ge == bai:
    print("YES")
else:
    print("NO")

26,
判断两个矩形之间的关系:包含,重叠,相离
输入输出描述
输入两行,每行四个数据,分别是矩形的中心坐标 x y 和矩形的宽、高
输出两者的关系
27,
模式 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()

28,
                  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()

29,
                        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()

30,
        *
       * *
     * * *
    * * * *
  * * * * *
   * * * *
    * * *
     * *
      *
n = eval(input())
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()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值