Python经典例题20道

第一部分 

【程序 1】

有 1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

from itertools import permutations

# 获取所有可能的排列组合
numbers = [1, 2, 3, 4]
permutations_list = list(permutations(numbers, 3))

# 过滤出三位数(百位不能为0,此处无需过滤)
valid_numbers = [''.join(map(str, perm)) for perm in permutations_list]

# 计算有效三位数的个数并打印
count = len(valid_numbers)
print(f"能组成{count}个互不相同且无重复数字的三位数")

# 打印所有符合条件的三位数
for number in valid_numbers:
    print(number)

# 注意:由于这里的数字都大于0,所以直接使用排列即可得到符合条件的三位数

【程序 2】

企业发放的奖金根据利润提成。利润(0)低于或等于 10万元时,奖金可提 10%;利润高于 10 万元,低于 20 万元时,低于 10万元的部分按 10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成540万60万之间时高于40万元的部分,可提成3%60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按 1%提成,从键盘输入当月利润1,求应发放奖金总数?

def calculate_bonus(profit):
    bonus = 0
    if profit <= 100000:
        bonus = profit * 0.1
    elif profit <= 200000:
        bonus = 10000 + (profit - 100000) * 0.075
    elif profit <= 400000:
        bonus = 17500 + (profit - 200000) * 0.05
    elif profit <= 600000:
        bonus = 30000 + (profit - 400000) * 0.03
    elif profit <= 1000000:
        bonus = 48000 + (profit - 600000) * 0.015
    else:  # 利润超过100万
        bonus = 66000 + (profit - 1000000) * 0.01
    
    return int(bonus)  # 返回整型奖金数额

# 输入利润值
profit_input = int(input("请输入当月利润(单位:万元): "))
bonus = calculate_bonus(profit_input)
print(f"应发放奖金总数为:{bonus}元")

【程序 3】

一个整数,它加上 100 后是一个完全平方数,再加上 268 又是一个完全平方数,请问该数是多少?

程序分析:在10万以内判断,先将该数加上100 后再开方,再将该数加上 268后再开方,如果开方后的结果满足如下条件,即是结果。

def find_integer():
    for num in range(100000):  # 在10万以内搜索
        square_1 = int((num + 100) ** 0.5) ** 2
        square_2 = int((num + 268) ** 0.5) ** 2
        
        if square_1 == num + 100 and square_2 == num + 268:
            return num

result = find_integer()
print(f"该数是:{result}")

【程序 4】输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

import datetime

def day_of_year(year, month, day):
    date_object = datetime.datetime(year, month, day)
    return date_object.timetuple().tm_yday

# 输入年份、月份和日期
year_input = int(input("请输入年份: "))
month_input = int(input("请输入月份: "))
day_input = int(input("请输入日期: "))

day_count = day_of_year(year_input, month_input, day_input)
print(f"{year_input}年{month_input}月{day_input}日是这一年的第{day_count}天")

【程序 5】

输入三个整数 x,Y.z,请把这三个数由小到大输出。

程序分析:我们想办法把最小的数放到x 上,先将x与y进行比较,如果 xy则将x与y的值进行交换,然后再用x与工进行比较,如果xz则将x与工的值进行交换,这样能使x最小。

def sort_three_numbers(x, y, z):
    # 使用一个列表来简化交换过程,并利用sort方法排序
    numbers = [x, y, z]
    numbers.sort()
    
    return numbers

# 输入三个整数
x = int(input("请输入第一个整数: "))
y = int(input(

相关推荐

  1. Python经典例题20

    2024-01-22 17:28:00       62 阅读
  2. C语言经典例题-20

    2024-01-22 17:28:00       41 阅读
  3. C语言经典例题-20

    2024-01-22 17:28:00       30 阅读
  4. C语言经典例题(27)

    2024-01-22 17:28:00       45 阅读
  5. 剪枝例题

    2024-01-22 17:28:00       44 阅读
  6. 图论 经典例题

    2024-01-22 17:28:00       47 阅读
  7. 3 万字 25 Nginx经典面试题总结

    2024-01-22 17:28:00       21 阅读
  8. Python每日三经典面试题(十四)

    2024-01-22 17:28:00       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-22 17:28:00       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-22 17:28:00       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-22 17:28:00       82 阅读
  4. Python语言-面向对象

    2024-01-22 17:28:00       91 阅读

热门阅读

  1. Hive之set参数大全-11

    2024-01-22 17:28:00       47 阅读
  2. PiflowX组件-PostgresCdc

    2024-01-22 17:28:00       55 阅读
  3. 柠檬微趣面试准备

    2024-01-22 17:28:00       50 阅读
  4. 使用helm部署 redis 单机版

    2024-01-22 17:28:00       53 阅读
  5. NGINX网站服务

    2024-01-22 17:28:00       44 阅读
  6. CCF ---- 仓库规划

    2024-01-22 17:28:00       46 阅读
  7. vim命令打开日志中文乱码问题解决

    2024-01-22 17:28:00       50 阅读
  8. 解决Unity WebGLInput插件全屏输入的问题

    2024-01-22 17:28:00       56 阅读