【Python學習筆記】----讓你的程式碼更pythonic
阿新 • • 發佈:2020-12-15
技術標籤:python
# -*- coding:UTF-8 -*-
# pythonic
"""# 對某個範圍進行迭代
for i in range(6):
print (i**2)
# 生成器更加高效
for i in xrange(6):
print (i**2)"""
# 迭代一個集合
colors = ['red','green','blue','yellow']
names = ['raymond', 'rachel', 'matthew']
"""for i in range(len(colors)):
print colors[i]
for color in colors:
print color
# 反向迭代
for i in range(len(colors)-1,-1,-1):
print colors[i]
for color in reversed(colors):
print color"""
"""# 帶下標的迭代
for i in range(len(colors)):
print("%d ----> %s"%(i,colors[i]))
for i,color in enumerate(colors):
print ("%d ----> %s"%(i,color))"""
"""# 迭代兩個集合
n = min (len(names),len(colors))
for i in range(n):
print names[i],'---->',colors[i]
for name,color in zip(names,colors):
print name,'---->',color
for name,color in izip(names,colors):
print name, '---->', color"""
"""# 以有序的方式進行迭代
for color in sorted (colors):
print color
for color in sorted(colors,reverse=True):
print color"""
# 多個出口的判斷for else
"""
def find():
for ...:
if ...:
break
else:
return ...(未break時執行)
return ...
"""
# 對dict的key進行迭代,需要修改用第二種
d = {'matthew': 'blue', 'rachel': 'green', 'raymond': 'red'}
"""for k in d:
print k
for k in d.keys():
if k.startswith('r'):
del d[k]"""
"""# 迭代字典
for k in d:
print k, '--->', d[k]
for k,v in d.items():
print k, '--->', v
# 返回迭代器
for k, v in d.iteritems():
print k, '--->', v"""
"""# 對序列進行解包
p = 'Raymond', 'Hettinger', 0x30, '[email protected]'
# A common approach / habit from other languages
fname = p[0]
lname = p[1]
age = p[2]
email = p[3]
print fname,lname,age,email
fname,lname,age,email = p
print fname,lname,age,email"""
# 迭代器
# 生成器
"""def gensquares(N):
for i in range(N):
yield i ** 2
for item in gensquares(5):
print item,
def gensquares(N):
res = []
for i in range(N):
res.append(i*i)
return res
for item in gensquares(5):
print item,"""
# 裝飾器
"""def decoratorNoparam(func):
print("this is decoratorNoparam")
def new(*args,**kwargs):
func()
print('new')
return func(*args,**kwargs)
print('decoratorNoparam')
return new
def func():
print("this is func function")
func1 = decoratorNoparam(func)
func1()"""
"""
this is decoratorNoparam
decoratorNoparam
this is func function
new
this is func function
"""
"""
@decoratorNoparam
def func():
print("this is func function")
func()
this is decoratorNoparam
decoratorNoparam
this is func function
new
this is func function
"""
# 上下文管理器,自動釋放描述符
"""with context_expr as context_tmp:
# 函式體"""
"""f = open("D:\codes\hello.txt","r")
print(f.read())
print "是否已關閉 : ", f.closed
f.close()
print "是否已關閉 : ", f.closed"""
"""
with open("D:\codes\hello.txt","r") as fp:
print "是否已關閉 : ", fp.closed
print "是否已關閉 : ", fp.closed
"""