python练习100例之11-15

实例十一


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

嗯?这个怎么这么跟斐波那契数列相像呢?


参考答案:

def fib(n):
    if n == 1:
        return [1]
    if n == 2:
        return [1,1]
    fib_list = [1,1]
    for index in range(2,n):
        fib_list.append(fib_list[-1] + fib_list[-2])
    return fib_list
print(fib(3))

实例十二


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

素数曾称质数。一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数


参考答案:

import math
for index in range(101,201):
    leap = 1
    for i in range(2,int(math.sqrt(index))+1):
        if index % i == 0:
            leap = 0
            break
    if leap == 1:
        print(index)

实例十三


打印所有的水仙花数。

"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。


参考答案:

for index in range(100,1000):
    Bit = index % 10
    TenPlace = index // 10 % 10
    HundredBit = index // 100
    if index == Bit ** 3 + TenPlace ** 3 + HundredBit ** 3:
        print('%s is the number of daffodils'%index)

实例十四


将一个正整数分解质因数

答案不是很满意,但是水平有限,先这样,以后水平提高了在改进。


参考答案一:

def Factorization(num):
    while num != 1:
        for index in range(2,num+1):
            if num % index == 0:
                num //= index
                if num == 1:
                    print(index)
                else:
                    print('{} *'.format(index) )
                break
Factorization(10)

参考答案二:

def Factorization(num):
    for index in range(2,num+1):
        if num % index == 0:
            print(index)
            break
    num //= index
    if num == 1:
        exit()
    Factorization(num)
Factorization(10)

实例十五


利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。


参考答案:

score = input('please input score:')
if score.isdecimal():
    score = int(score)
    if score >= 90:
        print("Excellent! Get A")
    elif score >= 60:
        print("Pretty good! Get B")
    else:
        print("Come on. Only get C")
else:
    print("please input right score!")

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值