python综合练习题(一)

文章介绍了如何用Python编写代码来寻找10000以内的第三个完美数,计算给定日期是一年中的第几天,生成所有不重复三位数的数量,计算斐波那契数列的特定项,分解给定数的质因数,以及模拟一球自由落体运动的总距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.找出10000以内的从小到大的第三个完美数;说明:完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身。例如:6(6=1+2+3)和28(28=1+2+4+7+14)就是完美数。

def is_perfect_number(num):
    factors_sum = 0
    for factor in range(1,num):
        if num % factor == 0:
            factors_sum += factor
        
    return factors_sum == num

count = 0
num = 1

while count < 3:
    if is_perfect_number(num):
        count += 1
        if count == 3:
            print(f'第三个完美数是:{num}')
    num += 1

# 运行结果:第三个完美数是:496

2.2022-05-08这一日期是2022年的第几天。

from datetime import datetime

input_date = '2022-05-08'

date_object = datetime.strptime(input_date,'%Y-%m-%d')

day_of_year = date_object.timetuple().tm_yday

print(f'{input_date}是该年的第{day_of_year}天')

# 运行结果:2022-05-08是该年的第128天
'''
知识点
tm_yday 计算一年中的第几天,范围[1,366]
tm_mday 计算一月中的第几天,范围[1,31]
tm_wday 计算一周中的第几天,范围[0,6] 0代表星期一
'''

3. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?输出数字总个数;

count = 0
numbers = [1,2,3,4]
for i in numbers:
    for j in numbers:
        for k in numbers:
            if i!=j and i!=k and j!=k:
                num = i*100+j*10+k
                #print(num)
                count += 1
print(count)

# 运行结果:24

5.输出斐波那契数列索引为15的数;(索引从0开始数)

斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。

def Fibonacci(index):
    if index == 0:
        return 0
    if index == 1:
        return 1
    else:
        fib = [0,1]
        for i in range(2,index+1):
            fib.append(fib[i-1]+fib[i-2])

        return fib[i]

print(Fibonacci(15))

# 运行结果:610

6. 将230分解质因数,结果保留质因数中最大的那个数。

def prime_factors(num):
    factors = []
    divisor = 2

    while divisor <= num:
        if num % divisor == 0:
            factors.append(divisor)
            num //= divisor
        else:
            divisor += 1

    return max(factors)

max_prime_factors = prime_factors(230)
print(max_prime_factors )

# 运行结果:23

7.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?答案保留整数部分(format); 

ini_height = 100
total_distance = 0

for _ in range(11):
    total_distance += ini_height * 2
    ini_height /= 2

total_distance = int(total_distance-100)
print(total_distance)

# 运行结果:299

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值