Python实现:斐波那契数列、交换两个变量的值、从一组数据中找出最大最小值
Fibonacci series, swapping two variables, finding maximum/minimum among a list of number
维基百科:费波那西数列(Fibonacci Sequence),又译费波拿契数、斐波那契数列、费氏数列、黄金分割数列。
用文字来说,就是费波那西数列由 0 和 1 开始,之后的费波那西系数就由之前的两数相加。首几个费波那西系数是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,
#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
费波那西数列由 0 和 1 开始,之后的费波那西系数就由之前的两数相加
@author: 易枭寒
'''
def fib(n):
"""打印n个Fib序列值"""
fib_result = []
a, b = 0, 1
if n == 0:
fib_result = [0]
return fib_result
if n == 1:
fib_result = [0, 1]
return fib_result
while a < n:
fib_result.append(a)
a, b = b, a + b
return fib_result
print fib(0)
print fib(1)
print fib(20)
代码二:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
费波那西数列由 0 和 1 开始,之后的费波那西系数就由之前的两数相加
@author: 易枭寒
'''
num = int(raw_input("请输入一个数字:"))
def fib(num):
result = [0, 1]
for i in range(num - 2):
result.append(result[-2] + result[-1])
return result
print fib(num)
代码三:考虑用 __iter__ 实现 (TODO)
--------------------------------------------------
#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
Python 实现交换两个变量的值
传统的做法是,定义一个临时变量。但,Python中有更简洁的交换方法,
也即#a, b = b, a 强烈推荐a,b=b,a这种写法!!!
@author: 易枭寒
'''
a = 1024
b = "Python"
print "a is %s, b is %s" %(a, b)
temp = a
a = b
b = temp #a, b = b, a 强烈推荐a,b=b,a这种写法!!!
print "After swapped,a is %s, b is %s" %(a, b)
-----------------------------------------------------------------
#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
Python 从一组数据中找出最大最小值
@author: 易枭寒
'''
#最简单的实现内置函数max()和min(),或者使用list内置函数sort()先排序,再切片操作。#sort()函数为原位(就地)操作,也即修改的是列表本身。
my_list = [4, 6, 3, 2, 1, 8, 9]
my_list.sort()
max_num = max(my_list)
print max_num
min_num = min(my_list)
print min_num
print "The max number is:%d" % my_list[-1]
print "The min number is:%d" % my_list[0]
>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
#考虑列表长度。列表元素相等(set()去重复元素)
#扩展:无序列表,先排序,再搜索。自己实现一个排序方法吧(TODO)