斐波那契數(shù)列(2.7)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
def fbis(num):
result = [0,1]
for i in range(num-2):
result.append(result[-2]+result[-1])
return result
def main():
result = fbis(10)
fobj = open('result','w+')
for i,num in enumerate(result):
print u'第%d個數(shù)是:%d' % (i,num)
fobj.write('%d\n'% num)
time.sleep(1)
if __name__ == '__main__':
main()
數(shù)據(jù)類型
整數(shù)
浮點數(shù)
字符串
字符串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。如果'本身也是一個字符,那就可以用""括起來,比如"I'm OK"包含的字符是I,',m,空格,O,K這6個字符。
如果字符串內部既包含'又包含"怎么辦?可以用轉義字符\來標識,比如:
'I\'m \"OK\"!'
表示的字符串內容是:
I'm "OK"!
Sequence類型簇
List類型
list是一種有序的集合,可以隨時添加和刪除其中的元素。
list是一個可變的有序表,所以,可以往list中追加元素到末尾:
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
也可以把元素插入到指定的位置,比如索引號為1的位置:
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
要刪除list末尾的元素,用pop()方法
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
要刪除指定位置的元素,用pop(i)方法,其中i是索引位置:
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
Tuple元組
tuple一旦初始化就不能修改
Dictionary類型
Set類型
條件判斷
if <條件判斷1>:
<執(zhí)行1>
elif <條件判斷2>:
<執(zhí)行2>
elif <條件判斷3>:
<執(zhí)行3>
else:
<執(zhí)行4>
Input類型
input()返回的數(shù)據(jù)類型是str,str不能直接和整數(shù)比較,必須先把str轉換成整數(shù)
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
循環(huán)
for 循環(huán)
sum = 0
for x in range(101):
sum = sum + x
print(sum)
while 循環(huán)
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
定義函數(shù)
在Python中,定義一個函數(shù)要使用def語句,依次寫出函數(shù)名、括號、括號中的參數(shù)和冒號:,然后,在縮進塊中編寫函數(shù)體,函數(shù)的返回值
函數(shù)的參數(shù)
定義默認參數(shù)要牢記一點:默認參數(shù)必須指向不變對象!
def add_end(L=None):
if L is None:
L = []
L.append('END')
return L
變長參數(shù)
元組變長參數(shù)
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
字典變長參數(shù)
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
命名關鍵字參數(shù)
如果要限制關鍵字參數(shù)的名字,就可以用命名關鍵字參數(shù),例如,只接收city和job作為關鍵字參數(shù)。這種方式定義的函數(shù)如下:
def person(name, age, *, city, job):
print(name, age, city, job)
和關鍵字參數(shù)**kw不同,命名關鍵字參數(shù)需要一個特殊分隔符*,*后面的參數(shù)被視為命名關鍵字參數(shù)。
調用方式如下:
>>> person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer
如果函數(shù)定義中已經有了一個可變參數(shù),后面跟著的命名關鍵字參數(shù)就不再需要一個特殊分隔符*了:
def person(name, age, *args, city, job):
print(name, age, args, city, job)
命名關鍵字參數(shù)必須傳入?yún)?shù)名,這和位置參數(shù)不同。如果沒有傳入?yún)?shù)名,調用將報錯
匿名函數(shù)
print(lambda x,y:x-y)(3,4)
錯誤調試
try:
print('try...')
r = 10 / int('2')
print('result:', r)
except ValueError as e:
print('ValueError:', e)
except ZeroDivisionError as e:
print('ZeroDivisionError:', e)
else:
print('no error!')
finally:
print('finally...')
print('END')