python习题

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值