没有bug队——加贝——Python 练习实例 11,12

11.题目:

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

注:为什么{} {}那里有很多空格?是为了输出时好看,但需要手动调整,看输出结果吧!

#11
f1 = 1
f2 = 1
for i in range(1,22):
    print (' {}   {}   '.format(f1,f2), end=" ")
    if (i % 3) == 0:
        print ('')
    f1 = f1 + f2
    f2 = f1 + f2

输出:

 看上面的输出结果是不是感觉越往下越拥挤呢,那么有什么好办法解决呢?

此时应引出我们的一个新知识点

 但在这里我用到的时

%ld是指长整数
%12ld指输出12位的长整数
"%12ld %12ld" 输出两个12位的长整数

 此时代码应变为:

f1 = 1
f2 = 1
for i in range(1,22):
    print ('%12ld %12ld' % (f1,f2), end=" ")
    if (i % 3) == 0:
        print ('')
    f1 = f1 + f2
    f2 = f1 + f2

输出:

 此时是不是感觉好看多了,嘿嘿!!

12.题目:

判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。  

h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101,201):
    k = int(sqrt(m + 1))
    for i in range(2,k + 1):
        if m % i == 0:
            leap = 0
            break
    if leap == 1:
        print ('%-4d' % m)
        h += 1
    leap = 1

输出:

看输出结果,我们如果想知道有多少个还得自己去数,如果我们加上一行代码就知道了!

 在文末加上:print ('总个数为',h)

当然,我们还可以10个数分一组,这只需两行代码完成

if h % 10 == 0:

         print ('')

意思是每到整十时,就输出一个空

代码如下:

#12
h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101,201):
    k = int(sqrt(m + 1))
    for i in range(2,k + 1):
        if m % i == 0:
            leap = 0
            break
    if leap == 1:
        print ('%-4d' % m)
        h += 1
        if h % 10 == 0:
            print ('')
    leap = 1
print ('总个数为',h)

输出:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值