Python实战小程序

一、存款多少年才能翻倍

1、题目:存款多少年才能翻倍?
#1万本金,利息0.0325每年,问连本带息多少年可以翻倍?

#1、存款多少年才能翻倍?
#1万本金,利息0.0325每年,问连本带息多少年可以翻倍?

base = 10000
interest = 0.0325
year = 0
while base < 20000:
    year += 1
    base += base * interest
    print(year,base)

运行结果:

1 10325.0
2 10660.5625
3 11007.03078125
4 11364.759281640625
5 11734.113958293945
6 12115.472661938498
7 12509.2255234515
8 12915.775352963674
9 13335.538051934993
10 13768.94303862288
11 14216.433687378123
12 14678.467782217913
13 15155.517985139995
14 15648.072319657045
15 16156.6346700459
16 16681.72529682239
17 17223.88136896912
18 17783.657513460617
19 18361.626382648086
20 18958.37924008415
21 19574.526565386885
22 20210.698678761957

可见,需要22年,才可以翻倍。

二、小球坠落长度计算

2、题目:一个小球,从100米高空坠落,每次反弹回原来高度的一半,问第10次反弹完,小球经过多少米?

#小球坠落长度计算
#一个小球,从100米高空坠落,每次反弹回原来高度的一半,问第10次反弹完,小球经过多少米?

height = 100 #初始高度
distance = 0 #记录长度
count = 0 #经过多少次

for count in range(10):
    distance += height #记录坠落时经过的长度
    height = height / 2 #反弹回的高度
    distance += height #记录反弹回经过的长度
    count += 1
    print(count, distance, height)

运行结果:

1 150.0 50.0
2 225.0 25.0
3 262.5 12.5
4 281.25 6.25
5 290.625 3.125
6 295.3125 1.5625
7 297.65625 0.78125
8 298.828125 0.390625
9 299.4140625 0.1953125
10 299.70703125 0.09765625

三、猴子吃桃

3、题目:有一堆桃子,猴子每天吃桃子总数的一半并多吃一个,吃了10天,到11天只剩一个桃子。问:猴子吃之前,一共有多少个桃子。

#3、猴子吃桃
#有一堆桃子,猴子每天吃桃子总数的一半并多吃一个,吃了10天,到11天只剩一个桃子。问:猴子吃之前,一共有多少个桃子。
#算法:
#11——1
#10——(1+1)*2=4
#9——(4+1)*2=10
#8——(10+1)*2=22

n = 1 #n代表桃子个数,n=1代表第11天的桃子还剩1个
day = 11 #当前的天为11
while day > 1:
    n = (n + 1) * 2  #前一天吃之前的桃子数量
    day -=1
    print(day,n)

运行结果:

10 4
9 10
8 22
7 46
6 94
5 190
4 382
3 766
2 1534
1 3070

可见,第一天一共有3070个桃子。

四、寻找列表中的最大值和最小值

#4、寻找列表中的最大值和最小值
data = [9,10,21,4,32,25,2,11]
max_n = data[0] #假设第一个值最大
min_n = data[7] #假设最后一个数最小
for i in data:
    if i > max_n: #交换
        max_n = i
    if i < min_n:
        min_n = i
print(max_n)
print(min_n)

运行结果:

32
2

可见,最大值是32,最小值是2。

五、寻找组合

题目:从两个列表里各取1个数,如果这两个数的和等于10,则以列表的方式输出这两个数。

#5、寻找组合
#从两个列表里各取1个数,如果这两个数的和等于10,则以列表的方式输出这两个数

data1 = [1,2,3,4,5,6,7,8,9,10]
data2 = [8,7,3,9,10.14,13]
for i in data1:
    for j in data2:
        if i + j == 10:
            print([i,j])

运行结果:

[1, 9]
[2, 8]
[3, 7]
[7, 3]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值