1、斐波那契数列
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1] + F[n-2] (n=>2)
方法一:采用递归解决
def f(n):
if n == 2:
return 1
elif n == 1:
return 0
return f(n-1)+f(n-2)
x = int(input('enter the number:'))
print(f(x))
方法二:采用循环来解决
def fib(n):
a,b=0,1
for i in range(n-1):
a,b=b,a+b
return a
print(fib(10))
2、输出 9*9 乘法口诀表。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
print()
for j in range(1,i+1):
print("%d*%d=%d" %(i,j,i*j),end=" ")
3、暂停一秒输出,并格式化当前时间
采用time模块下的方法
函数time.time()用于获取当前时间戳,从1970年到当前时间,单位为s
函数:time.localtime(time.time()),获取当前时间,返回时间元组
函数:time.asctime( time.localtime(time.time()) ),获取格式化当前时间
函数:time.sleep(),暂停,单位为s
import time
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
time.sleep(1)
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
4、经典问题:不死神兔
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…,
与第一个问题斐波那契数列相同:a[i]+a[i+1]=a[i+2],参考问题一代码
5、判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
#9、判断101-200之间有多少个素数,并输出所有素数。
from math import sqrt
count=0 #总量
flag=0 #标记
for i in range(101,201):
for j in range(2,int(sqrt(i)+1)):
if (i % j == 0):
flag=1
break
if flag==0: #是素数,则输出
print(i)
count+=1
flag=0#重置标记
print('the number is ',count)#输出总数
6、列表的综合使用
#问题一实现
products = [['iphone',6888],['MacPro',14800],
['小米6',2499],['Coffee',31],
['Book',60],['Nike',699]]
i = 0
print('------商品列表------')
for product in products:
print(i,' ',product[0],'\t',product[1])
i += 1
#问题二实现
ShopCars = [] #购物车
while True:
x = input('请输入想购买商品的编号:')
if x == 'q':
break
j = int(x)
ShopCars.append(products[j])
for shopcar in ShopCars:
print(shopcar[0],'\t',shopcar[1])