Python编程题集(第一部分基本语法基础)

Demo01 摄氏温度转化为华氏温度

题目描述:

输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出

转换的公式为如下:fahrenheit = (9 / 5 ) * celsius + 32

输入输出描述

输入一个值表示摄氏温度celsius

输出华氏温度fahrenheit ,结果保留一位小数点。

代码如下:

celsius = float(input("请输入你要转换的的摄氏温度的值:"))
fahrenheit = (9 / 5 ) * celsius + 32
print("输出的华氏温度为:",fahrenheit)
print("输出的华氏温度为:%s"   %fahrenheit)
print("输出的华氏温度为:{fahrenheit}")
print("输出的华氏温度为:{}".format(fahrenheit))

Demo02 计算圆柱体的体积

题目描述

输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。

输入输出描述

分别输入圆柱的半径radius和高度length,两个数据之间用空格分隔

输出两行,第一行为圆柱底面积area,第二行为圆柱体积volume,结果保留两位小数点

代码如下:

import math
radius = float(input("请输入圆柱体的半径:"))
length = float(input("请输入圆柱体的高度:"))
radius , length = map(float,input("请分别输入圆柱体的半径和高度:").split())
area = radius * radius * 3.14
volume = area * length
#使用多种输出方式表示
print("圆柱体的底面积为:", area)
print("圆柱体的体积为:", volume)
print("圆柱体的底面积为:%s" %area)
print("圆柱体的体积为:%s" %volume)
print("圆柱体的底面积为:{}".format(area))
print("圆柱体的体积为:{}".format(volume))
print('%.2f'% area)
print('%.2f'% volume)

Demo03 将英尺数转换为米数

题目描述

输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米

输入输出描述

输入一个数据表示英尺数

输出转换后的米数,结果保留四位小数点

代码如下:

feet = float(input("请输入你要转换的英尺数的值:"))
meter = feet * 0.305
print("输出的米数为:")
print('%0.4f'% meter)

#也可以是以下的这种输出方式:
#print(f"输出的米数为{meter:.2f}")

Demo04 计算小费

题目描述

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

输入输出描述

分别输入小计和酬金率,两个数据用之间用空格分隔

输出两行,第一行为小费,第二行为合计金额,结果保留两位小数

代码如下:

subtotal = float(input("请输入客户的小计:"))
tip = subtotal * 0.15 #酬金率为15%
Totalamount =  subtotal + tip #总金额
print("小费为:")
print('%.2f'% tip)
print("总金额为:")
print('%.2f'% Totalamount)

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

题目描述

读取一个0到1000之间的整数,并计算它各位数字之和

输入输出描述

输入一个[0,1000]之间的整数

输出该数字的各位数字之和

代码如下:

num = int(input("请输入一个整数(0-1000之间):"))
a = num // 100 #百位上的数字
b = num % 100 // 10 #十位上的数
c = num % 100 % 10 #个位上的数
sum = a + b + c
print("这个整数的各位数字之和为:", sum)


#改进
num = int(input("请输入一个【0,1000】之间的整数:"))
if num < 0 or num > 1000:
    print("输入不合法,请重新输入")
else:
    total = 0
    num_str = str(num)
    for digit in num_str:
        total += int(digit)
    print("各位数字之和为:",total)

Demo06 计算年数和天数

题目描述

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

输入输出描述

输入一个分钟数

输出两行,第一行为年数,第二行为天数

代码如下:

minutes = int(input("请输入分钟数:")) #输入分钟
years = minutes // (60 * 24 * 365) #计算年数
days = minutes % (60 * 24  * 365) //(60 * 24) #计算天数
print("年数:",years) #输出年数数
print("天数:",days) #输出天数

 

Demo07 计算能量

题目描述

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

Q = M * (finalTemperature - initialTemperature) * 4184

这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计

输入输出描述

输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度

输出所需的能量值,结果保留一位小数

代码如下:

M = float(input("请输入水量:"))
initialTemperature = float(input("请输入初始温度:"))
finalTemperature = float(input("请输入最终温度:"))
Q = M * (finalTemperature - initialTemperature) * 4184
print(f"所需的热量为:{Q}")

Demo08 分割数字

题目描述

输入一个四位整数,并以反向顺序显示

输入输出描述

输入一个四位整数

输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位

代码如下:

num = int(input("请输入一位四位数:"))
if num >= 10000  and num <= 0:
    print("你输入的数字不在我们规定的范围内,请重新输入。")
    num = int(input("请输入一位四位数:"))
while num > 0:
    a = num % 10
    print(a)
    num = num // 10

Demo09 计算三角形的面积

题目描述

输入三角形的三个顶点坐标,并计算其面积,计算公式如下

输入输出描述

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三角形的面积,结果保留一位小数

代码如下:

import math


x1 = float(input("请输入第一个点的横坐标:"))
y1 = float(input("请输入第一个点的纵坐标:"))
x2 = float(input("请输入第二个点的横坐标:"))
y2 = float(input("请输入第二个点的纵坐标:"))
x3 = float(input("请输入第三个点的横坐标:"))
y3 = float(input("请输入第三个点的纵坐标:"))
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 = (side1 + side2 + side3) / 2
area = math.sqrt(s * (s - side1) * (s - side2) * (s - side3))
print("三角形的面积为:%.1f" %area)

Demo10 显示当前时间

题目描述

输入你所在的时区,并输出当前的时间

输入输出描述

输入时区,如东八区为8,西五区为-5

输出二十四小时制的时间,格式为 时:分:秒

代码如下:​​​​​​​


import time


timezone = int(input("请输入时区:"))
gmt_time = time.gmtime()
adjusted_time = time.localtime(time.mktime(gmt_time) + (timezone * 3600))

hour = str(adjusted_time.tm_hour).zfill(2)
minute = str(adjusted_time.tm_min).zfill(2)
second = str(adjusted_time.tm_sec).zfill(2)

# timezone = input("请输入您所在的时区(例如东八区为8,西五区为-5):")
print(f"当前时间:{hour}:{minute}:{second}")

# print("当前的时间为:{:%H:%M:%S}".format(local_time))

Demo11 计算三角形的三个角

题目描述

输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)

其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角

输入输出描述

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三行,分别为A、B、C三个角的度数,结果保留两位小数

代码如下:

import math


x1 = float(input("请输入第一个点的横坐标:"))
y1 = float(input("请输入第一个点的纵坐标:"))
x2 = float(input("请输入第二个点的横坐标:"))
y2 = float(input("请输入第二个点的纵坐标:"))
x3 = float(input("请输入第三个点的横坐标:"))
y3 = float(input("请输入第三个点的纵坐标:"))

# x1,y1 = map(int,input("请输入第一个点的坐标:").split(" "))
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)
 

A = math.degrees(math.acos((a * a - b * b - c * c) / (-2 * b * c)))
B = math.degrees(math.acos((b * b - a * a - c * c) / (-2 * a * c)))
C = math.degrees(math.acos((c * c - a * a - b * b) / (-2 * a * b)))
# print("A的角度为%.2f,B的角度为%.2f,C的角度为%.2f"%A, B, C)
print(f"A的角度为{A:.2f},B的角度为{B:.2f},C的角度为{C:.2f}")

Demo12 最小数量的硬币

题目描述

假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币

输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少

输入输出描述

输入总金额

输出每种硬币的个数

代码如下:

#直接运算法
count = float(input("请输入总金额:"))

num_oneyuan = count // 1
count = count - num_oneyuan * 1

num_liangjiaowufen = count // 0.25
count = count - num_liangjiaowufen * 0.25

num_yijiao = count // 0.1
count = count - num_yijiao * 0.1

num_wufen = count //  0.05
count = count - num_wufen * 0.05

num_yifen = count // 0.01
print(f"{num_oneyuan}个一元硬币,{num_liangjiaowufen}个两角五分硬币,{num_yijiao}个一角硬币,{num_wufen}个五分硬币,{num_yifen}个硬币")


#使用元组方法:
coins = {1:"一元", 0.25:"两角五分", 0.1:"一角", 0.05:"五分", 0.01:"一分硬币"}
total_count = float(input("请输入总金额:"))
for coin_value , coin_name in coins:
    coin_count = int(total_count / coin_value)
    total_count -= coin_count * coin_value
    print(f"{coin_count}个{coin_name}硬币")

Demo13 正多边形的面积

题目描述

正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:

输入输出描述

输入两个数据分别表示边的个数n和边的长度s,数据之间用空格分隔

输出边长为s的正n多边形的面积,结果保留两位小数

代码如下:​​​​​​​

import math


# side = float(input("请输入多边形的边长:"))
n,s = map(float,input("请输入正多边形的边长的个数和边的长度:").split(","))
area = n * s**2 / (4 * math.tan(math.pi / n))
print(f"正多边形的面积为:{area:.2f}")

Demo14 计算身体质量指数

题目描述

BMI是根据体重测量健康的方式,通过以千克为单位的体重除以以米为单位的身高的平方计算而出

BMI指数解读如下:

BMI解释
BMI < 18.5超轻
18.5 ≤ BMI < 25.0标准
25.0 ≤ BMI < 30.0超重
30.0 ≤ BMI肥胖

输入输出描述

输入体重和身高,数据之间用空格分隔

输出BMI指数结果

代码如下:​​​​​​​

weight , height =map(float , input("依次输出你的体重(kg)和身高(m):").split(","))
BMI = weight /(height**2)
print("你的BML指数是:")
if BMI < 18.5:
    print("超轻")
elif 18.5 <= BMI <25.0:
    print("标准")
elif 25.0 <= BMI <30.0:
    print("超重")
elif 30.0 <= BMI:
    print("肥胖")

Demo15 判定闰年

题目描述

一个年份如果能被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")

Demo16 中彩票

题目描述

随机产生一个两位数数字,然后用户输入一个两位数数字,并根据以下规则判定用户赢得的奖金是多少

(1)输入的数字和随机产生的数字完全相同(包括顺序),奖金为10000元

(2)输入的数字和随机产生的数字相同(不包括顺序),奖金为3000元

(3)输入的数字和随机产生的数字有一位数相同,奖金为1000美元

(4)输入的数字和随机产生的数字都不相同,没有奖金,0元

输入输出描述

输入一个两位数

输出两行,第一行输出那个随机产生的两位数,第二行输出用户的奖金

代码如下:

import random


random_num = random.randint(10,99)

user_num = int(input("请输入一个两位数:"))
print(f"随机数:{random_num}")
if user_num  < 10 or user_num > 90:
    print("你没有遵守要求请重新输入:")
    user_num = int(input("请输入一个两位数:"))
else:
    if user_num == random_num:
        prize = 10000
    elif sorted(str(user_num)) == sorted(str(random_num)):
        prize = 3000
    elif str(user_num)[0] == str(random_num)[0] or str(user_num)[1] == str(random_num)[1] or str(user_num)[0] ==str(random_num)[1] or str(user_num)[1] == str(random_num)[0]:
        prize = 1000
    else:
        prize = 0
print(f"奖金为:{prize}元")

Demo17 解一元二次方程

题目描述

一元二次方程$ax^2+bx+c=0 (a != 0)$的解可以使用下面的公式计算

其中$b^2-4ac$称为判别式,如果它为正,则方程有两个实数解;为零,方程只有一个实数解;为负,没有实数解

输入输出描述

输入a、b、c三个数据,数据之间用空格分隔

两个解每行输出一个;一个解单行输出;无解则单行输出无实数解,保留两位小数

代码如下:

import math


def solve_quadratic_equation(a,b,c):
    discriminant = b**2 - 4 * a * c
    if discriminant > 0: 
        root_1 = (-b + math.sqrt(discriminant)) / (2 * a)
        root_2 = (-b - math.sqrt(discriminant)) / (2 * a)
        return round(root_1,2) , round(root_2,2)
    if discriminant == 0:
        root = -(b / 2*a)
        return round(root,2)
    else:
        return "无实数解"
    
a,b,c = map(float,input("依次输入a,b,c三个数:").split(" "))
solution = solve_quadratic_equation(a,b,c)
if isinstance(solution,tuple):
    print(f"第一个解:{solution[0]},第二个解:{solution[1]}")
else:
    print(solution)

Demo18 解2×2线程方程

题目描述

如有一个2×2的线程方程组:

你可以使用克莱姆法则解该线性方程:

其中$ad-bc$为判别式,如果为零则输出无解

输入输出描述

输入a、b、c、d、e、f六个数据,数据之间用空格分隔

输出两行,第一行x的解,第二行y的解,保留一位小数

代码如下:

def system_of_linear_equations(a,b,c,d,e,f):
    discriminant = a*d - b*c
    if discriminant != 0:
        root_x = (e*d - b*f) / discriminant
        root_y = (a*f - e*c) / discriminant
        return round(root_x, 1) , round(root_y, 2)
    else: 
        return "无解!"
    
a,b,c,d,e,f = map(float , input("请依次输入a,b,c,d,e,f六个数据,用空格隔开:").split(" "))
solution = system_of_linear_equations(a,b,c,d,e,f)
print("方程的解为:",solution)
    
# # 输入
# a, b, c, d, e, f = map(float, input("请依次输入a,b,c,d,e,f六个数据,数据之间使用空格隔开:").split())

# # 计算判别式
# discriminant = a * d - b * c

# # 判断是否有解
# if discriminant == 0:
#     print("无解")
# else:
#     # 计算x和y的解
#     x = (e * d - b * f) / discriminant
#     y = (a * f - e * c) / discriminant
    
#     # 输出结果,保留一位小数
#     print("{:.1f}".format(x))
#     print("{:.1f}".format(y))

Demo19 未来是周几

题目描述

输入表示今天是一周内哪一天的数字(星期天是0,星期一是1,...,星期六是6)

并输入今天之后到未来某天的天数,然后输出该天是星期几

输入输出描述

输入两个数据,分别表示今日星期几的数字和未来某天的天数,数据之间用空格分隔

输出未来某天是星期几

代码如下:​​​​​​​

# import datetime


# #获取今天是星期几的数字和未来某天的天数
# today,days = map(int,input("请输入今天是星期几(0-6),并输入未来某天的天数:").split(" "))
# #获取今天的日期
# current_day = datetime.datetime.now().date()
# #计算未来某一天的日期
# future_day = current_day + datetime.timedelta(days = days)
# #获取未来某天是星期几
# weekday = future_day.weekday()
# print(f"未来某天是星期{weekday}")


#使用列表和取余运算
# #获取今天是星期几的数字和未来某天的天数

# today,days = map(int,input("请输入今天是星期几(0-6),并输入未来某天的天数:").split(" "))
# #星期几的列表
# weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
# # 获取某天是星期几
# future_weekday = (today + days) % 7

# print(f"今天是{weekdays[future_weekday]}")



#使用calendar 模块
import calendar #调用日历


today,days = map(int,input("请输入今天是星期几(0-6),并输入未来某天的天数:").split(" "))

weekday = (today + days) % 7

print(f"今天是星期{weekday}")

Demo20 本年中的第几天

题目描述

给定某年、某月、某日的一个日期,计算该日是今年中的第几天

输入输出描述

输入三个数据分别表示年、月、日,数据之间用空格分隔

输出该日是今年中的第几天

代码如下:

# def is_leapyear(year):
#     return ((year % 4 == 0 and year % 100 != 0) or year % 400 ==0)
# Mouth_days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31]
# res = 0

# year,month,day = map(int,input("请依次输入年月日,数据之间使用空格隔开:").split(" "))
# if is_leapyear:
#     Mouth_days[2] +=1
# for i in range(month):
#     res +=Mouth_days[i]
# print(f"这是一年中的第{res+day}天")



import datetime

# 输入年月日
year, month, day = map(int, input("请输入年、月、日,用空格分隔:").split())

# 构造日期对象
date_obj = datetime.date(year, month, day)

# 获取一年中的第几天
day_of_year = date_obj.timetuple().tm_yday

print(f"{year}年{month}月{day}日是今年中的第{day_of_year}天")

Demo21 剪刀石头布I

题目描述

计算机随机产生一个数字0、1和2分别表示剪刀、石头和布

用户输入数字0、1或2,输出用户赢、计算机赢或平局

输入输出描述

输入数字0、1或2

输出有三行,第一行输出计算机出的啥,第二行输出用户出的啥,第三行输出结果

代码如下:

import random


choices = ["石头", "剪刀", "布"]
#choices = {"石头":0, "剪刀":1, "步":2}
player_score = 0
computer_score = 0

while True:
    # 玩家进行选择
    player_choice = input("请出拳(石头、剪刀、布):")
    
    # 随机生成计算机的选择
    computer_choice = random.choice(choices)
    
    # 判断胜负并更新分数
    if player_choice == computer_choice:
        print("平局!")
    elif (player_choice == "石头" and computer_choice == "剪刀") or \
         (player_choice == "剪刀" and computer_choice == "布") or \
         (player_choice == "布" and computer_choice == "石头"):
        print("你赢了!")
        player_score += 1
    else:
        print("你输了!")
        computer_score += 1
    
    # 显示当前分数
    print(f"当前分数:玩家 {player_score} - {computer_score} 计算机")
    
    # 询问是否继续游戏
    play_again = input("是否继续游戏?(输入 y 继续,其他任意键退出):")
    if play_again.lower() != "y":
        break

print("游戏结束!")
#这段代码使用了一个无限循环 while True,以便让玩家可以连续进行多轮游戏。玩家需要输入自己的选择(石头、剪刀、布),计算机随机生成选择,并比较两者的选择来决定胜负。每轮结束后,会显示当前的分数,并询问玩家是否继续游戏。如果玩家选择不继续,则循环结束,游戏结束。




choices = ["石头", "剪刀", "布"]
player1_score = 0
player2_score = 0

while True:
    # 玩家1进行选择
    player1_choice = input("玩家1请出拳(石头、剪刀、布):")
    
    # 玩家2进行选择
    player2_choice = input("玩家2请出拳(石头、剪刀、步):")
    
    # 判断胜负并更新分数
    if player1_choice == player2_choice:
        print("平局!")
    elif (player1_choice == "石头" and player2_choice == "剪刀") or \
         (player1_choice == "剪刀" and player2_choice == "布") or \
         (player1_choice == "布" and player2_choice == "石头"):
        print("玩家1赢了!")
        player1_score += 1
    else:
        print("玩家1输了!")
        player2_choice += 1
    
    # 显示当前分数
    print(f"当前分数:玩家1 {player1_score} - {player2_score} 玩家2")
    
    # 询问是否继续游戏
    play_again = input("是否继续游戏?(输入 y 继续,其他任意键退出):")
    if play_again.lower() != "y":
        break

print("游戏结束!")
#这段代码使用了一个无限循环 while True,以便让玩家可以连续进行多轮游戏。玩家需要输入自己的选择(石头、剪刀、布),计算机随机生成选择,并比较两者的选择来决定胜负。每轮结束后,会显示当前的分数,并询问玩家是否继续游戏。如果玩家选择不继续,则循环结束,游戏结束。








Demo22 三角形的周长

题目描述

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

如果任意两边之和大于第三边则输入都是合法的

输入输出描述

输入三个数据表示三边,数据之间用空格分隔

输出三角形的周长,如果非法则输出非法

代码如下:

 

a,b,c = map(int, input("依次输入三角形三条边长:").split( ))

# 判断是否合法
if a + b > c and a + c > b and b + c > a:
    # 计算周长
    perimeter = a + b + c
    print(perimeter)
else:
    print("非法")

Demo23 一周的星期几

题目描述

泽勒的一致性是一个由泽勒开发的算法,用于计算一周的星期几,公式如下:

(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=eval(input("请输入年份:"))
# month=eval(input("请输入月份:"))
# day=eval(input("请输入日期:"))

year,month,day = map(int, input("依次输入年,月,日三个数据(数据之间使用空格隔开)").split(" "))

q=day
if month<=2:
    m=12+month
    year-=1
else:
    m=month
j=year//100
k=year%100
h=(q+26*(m+1)//10+k+k//4+j//4+5*j)%7
weekDay=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
print(year,"年",month,"月",day,"日","是",weekDay[h-1])

Demo24 直线的交点

题目描述

直线A上的两个点是$(x1,y1)$和$(x2,y2)$,直线B上的两个点是$(x3,y3)$和$(x4,y4)$

如果两条直线有交点,可以通过解下面的线性等式找出:

如果没有解,则表示两条直线平行

输入输出描述

输入八个数据,分别为x1 y1 x2 y2 x3 y3 x4 y4,数据之间用空格分隔

如有交点则输出交点的坐标x y,否则输出两条直线平行

代码如下:​​​​​​​

x1, y1, x2, y2, x3, y3, x4, y4 = map(float, input("依次输入八个数据,分别为x1 y1 x2 y2 x3 y3 x4 y4,数据之间用空格分隔:").split(" "))

if x2 - x1 == 0:
    k1 = None
    b1 = 0
else:
    k1 = (y2 - y1) / (x2 - x1)
    b1 = y1 - x1 * k1

if x4 - x3 == 0:
    k2 = None
    b2 = 0
else:
    k2 = (y4 - y3) / (x4 - x3)
    b2 = y3 - x3 * k2

# 检查两条线是重合还是平行
if k1 is None and k2 is None:
    if x1 == x3:
        print("两直线重合")
    else:
        if x1 == x2 or x2 == x3 or x3 == x4 or x4 == x1:
            print("两直线平行")
        else:
            print("两直线无交点")
elif k1 is not None and k2 is None:
    x = float(input("请输入第三个点的横坐标:"))
    y = k1 * x + b1
elif k1 is None and k2 is not None:
    x = float(input("请输入第三个点的横坐标:"))
    y = k2 * x + b2
else:
    # 检查具有不同斜率和不同截距的两条直线的交点
    if k1 != k2 or b1 != b2:
        x = (b2 - b1) / (k1 - k2)
        y = k1 * x + b1
    else:
        print("两直线重合")
        print(f"请输入第三个点的横坐标:")    
print(f"两直线的交点坐标为({x:.2f},{y:.2f})")  

Demo25 回文数

题目描述

输入一个三位整数,然后判断其是否为一个回文数

如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数

输入输出描述

输入一个数字

输出Yes表示是回文数,否则输出No

代码如下:​​​​​​​

# num = int(input("请输入你想要判断的数:"))

#方法一:转换为字符串判断:
def is_palindrome(num):
    '''
    功能:判断一个数是不是回文数
    num:输入一个整数
    '''
    num_str = str(num)
    reversed_str = num_str[::-1]
    if reversed_str == num_str:
        return "YES"
    else:
        return "NO"
num = input("请输入一个三位整数:")
if len(num) == 3 and num.isdigit(): 
     #isdigit函数是Python中的内置函数,它用于检查字符串是否只包含数字字符
    print(is_palindrome(int(num)))
else:
    print("输入无效请重新输入一个三位整数:")

#方法二:数学判断:
def is_palindrome(num):
    '''
    功能:判断一个数是不是回文数
    num:输入一个整数
    '''
    original_num = num
    reversed_num = 0

    while num > 0: 
        #构建最后一位数字
        reversed_num = reversed_num * 10 + num % 10
         #原来的num就去掉最后一位数字
        num = num // 10

        #比较原来的数字与反转后的数字是否是相等的
    if original_num == reversed_num:
        return "YES"
    else:
        return "NO"
num = int(input("请输入一个三位整数:"))
if 100 <= num <= 999:
    print(is_palindrome(num))
else:
    print("输入无效,请重新输入一个三位数")

Demo26 两个矩形

题目描述

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

输入输出描述

输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高

输出两者的关系

代码如下:​​​​​​​

def rectangle_relation(rect1, rect2):
    # 解析矩形1的参数
    x1, y1, w1, h1 = rect1
    # 解析矩形2的参数
    x2, y2, w2, h2 = rect2
    
    # 矩形1的边界坐标
    left1 = x1 - w1/2
    right1 = x1 + w1/2
    top1 = y1 + h1/2
    bottom1 = y1 - h1/2
    
    # 矩形2的边界坐标
    left2 = x2 - w2/2
    right2 = x2 + w2/2
    top2 = y2 + h2/2
    bottom2 = y2 - h2/2
    
    # 判断关系
    if left1 > right2 or left2 > right1 or bottom1 > top2 or bottom2 > top1:
        return "相离"
    elif left1 == left2 and right1 == right2 and top1 == top2 and bottom1 == bottom2:
        return "重叠"
    else:
        return "包含"

# 输入两个矩形的参数
rect1 = list(map(float, input("请输入第一个矩形的中心坐标x、y和宽高(空格分隔):").split()))
rect2 = list(map(float, input("请输入第二个矩形的中心坐标x、y和宽高(空格分隔):").split()))

# 判断两个矩形的关系并输出结果
relation = rectangle_relation(rect1, rect2)
print("两个矩形之间的关系是:", relation)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值