1. 程式人生 > >Python 常用技巧

Python 常用技巧

一些合適的技巧能夠幫助程式碼的可讀性更好、效能更高。


# 多行字串
a = (
		"sele sd "
		"shgg sd"
       	"ssss, aaa"
    )
print(a)
# sele sd shgg sdssss, aaa


# if 語句
if i in {1,2,3,4}:
	pass


# 列舉
class Shapes:
	A,B,C,D=range(4)

print(Shapes.A)

# 找出列表中出現最頻繁的數
test=[1,2,3,4,3,2,3,4,5,3,2,3,4,5,3,4]
print(max(set(test),key=test.count))
# 3


# 搜尋字串的多個前後綴
print('http://www.google.com'.startswith(('http://','https://')))
# True
print('http://www.google.com'.endswith(('.cn','.com')))
# True


# 不使用迴圈構造一個列表
import itertools
test=[[1,2],[3,4],[5,6]]
list(itertools.chain.from_iterable(test))
# [1, 2, 3, 4, 5, 6]

# 重置遞迴限制
import sys
sys.setrecursionlimit(1200)
print(sys.getrecursionlimit())
# 1200

# 遞迴把巢狀列表解開為一維列表
test = [1,[2,3,[4,5,6,[7,8,9,10],11],12,14],16,17,[18]]
unlock = lambda s: sum(map(unlock,s),[]) if isinstance(s,(list,tuple)) else [s]
print(unlock(test))
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17, 18]


# 使用字典模擬模擬構造一個 switch-case
def switch(x):
	return switch._system_dict.get(x,'不存在')


switch._system_dict = {'folder':'D:\\','file': 'a.txt'}
print(switch('a'))
# 不存在
print(switch('file'))
# a.txt


# 娛樂一下,輸出心形文字
print('\n'.join([''.join([('但願人長久'[(x-y)%5] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else',')for x in range(-30,30)])for y in range(15,-15,-1)]))
"""
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,久但願人長久但願人,,,,,,,,,,,久但願人長久但願人,,,,,,,,,,,,,,,
,,,,,,,,,,,,願人長久但願人長久但願人長久但願人,,,願人長久但願人長久但願人長久但願人,,,,,,,,,,,
,,,,,,,,,,但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但,,,,,,,,,
,,,,,,,,,但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人,,,,,,,,
,,,,,,,,但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久,,,,,,,
,,,,,,,,願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但,,,,,,,
,,,,,,,,人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願,,,,,,,
,,,,,,,,長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人,,,,,,,
,,,,,,,,久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長,,,,,,,
,,,,,,,,但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久,,,,,,,
,,,,,,,,,人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久,,,,,,,,
,,,,,,,,,,久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久,,,,,,,,,
,,,,,,,,,,但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但,,,,,,,,,
,,,,,,,,,,,,長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久,,,,,,,,,,,
,,,,,,,,,,,,,但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久,,,,,,,,,,,,
,,,,,,,,,,,,,,人長久但願人長久但願人長久但願人長久但願人長久但願人長久但願人長久,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,但願人長久但願人長久但願人長久但願人長久但願人長久但願人長,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,長久但願人長久但願人長久但願人長久但願人長久但願人,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,願人長久但願人長久但願人長久但願人長久但願,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,但願人長久但願人長久但願人長久,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,久但願人長久但願人,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,長久但,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,但,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"""