实例11
题目
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
分析
可通过定义一个函数,然后利用递归的思想将其实现;
代码
#!/usr/bin/python3# -*- coding:utf-8 -*-# @Time : 2018-10-10 8:49# @Author : Manu# @Site :# @File : rabbit_num.py# @Software: PyCharmdef rabbit_num(month):if month == 1 or month == 2:return 1else:return rabbit_num(month-2) + rabbit_num(month-1)while True:month = input('输入第几个月')if month.isdigit():month = int(month)print('第 %d 个月的兔子数为 %d 对' %(month, rabbit_num(month)))elif month == 'q':breakelse:print('输入错误,请重新输入')
结果

实例12
题目
判断101-200之间有多少个素数,并输出所有素数;
分析
先设置一个标志位默认为False,进入循环判断是否为素数,不为素数则置为True,然后将标志位为False的数输出则为所求素数;
代码
#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018-10-7 19:06# @Author : Manu# @Site :# @File : prime_number.py# @Software: PyCharmimport mathflag = Falsecount = 0for i in range(101, 201):for j in range(2, int(math.sqrt(i + 1)) + 1):if i % j == 0:flag = Truebreakif flag == False:count += 1print(i, end='\t')if count % 5 == 0:print()flag = False
结果

实例13
题目
打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身
分析
对100-1000之内的三位数进行循环,求出这些三位数各自个位、十位、百位上的数,然后将他们的立方和与这个三位数比较,若两者相等则说明这个三位数是水仙花数;
代码
#!/usr/bin/python3# -*- coding:utf-8 -*-# @Time : 2018-10-10 8:25# @Author : Manu# @Site :# @File : narcissistic_num.py# @Software: PyCharmprint('水仙花数列表:')for i in range(100, 1000):ge = i % 10shi = i // 10 % 10bai = i // 100if i == (ge ** 3 + shi ** 3 + bai ** 3):print(i)
结果

实例14
题目
将一个正整数分解质因数;
分析
- 若这个质数恰等于n,则说明分解质因数的过程结束,打印即可;
- 若n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步;
- 若n不能被k整除,则用k+1作为k的值,重复执行第一步;
代码
#!/usr/bin/python3# -*- coding:utf-8 -*-# @Time : 2018-10-8 18:41# @Author : Manu# @Site :# @File : Prime.py# @Software: PyCharmdef prime(n):print(str(n) + ' = ')if not isinstance(n, int) or n <= 0 :print('Please input a valid number !')exit(0)elif n in [1] :print(n)while n not in [1]:for index in range(2, int(n + 1)):if n % index == 0:n /= indexif n == 1:print(index)else :print(str(index) + " *", end=' ')breaknum = input('Input the num, enter "q" to quit:')while num != 'q':prime(int(num))num = input('Input the num:')
结果

实例15
题目
利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示;
分析
输入成绩,判断是否为数字,是数字则判定属于哪个等级,若不是数字怎根据代码设定返回重新输入成绩或者直接退出程序;
代码
#!/usr/bin/python3# -*- coding:utf-8 -*-# @Time : 2018-10-10 8:33# @Author : Manu# @Site :# @File : score_.py# @Software: PyCharmprint('输入成绩查看登记,输入"q"则退出')while True:score = input('输入你的成绩:')if score.isdigit():score_rank = int(score) // 10if score_rank >= 9:print('A')elif score_rank >= 6 and score_rank < 9:print('B')else:print('C')elif score == 'q':breakelse:print('输入错误,请重新输入!')
结果

