Python範例總結
阿新 • • 發佈:2020-08-29
一、基礎功能
1、操作符
- and 擁有更高優先順序,會先行運算。
- 優先順序順序為 NOT、AND、OR。
2、列表
1)列表拼接
l1 = [1,2,3] l2 = [4,5,6] # 方法1 # l1 = l1 + l2 # 方法2 # l1[len(l1):len(l1)] = l2 # 方法3 l1.extend(l2) print(l1)
3、函式
1)範例1
def greetPerson(*name): print('Hello', name) greetPerson('Runoob', 'Google') ##結果為Hello ('Runoob', 'Google')
2)範例2
加了星號 * 的引數會以元組(tuple)的形式匯入,存放所有未命名的變數引數。
x = True def printLine(text): print(text, ' Runoob') printLine('Python') ##Python Runoob
3)範例3
def Foo(x): if (x==1): return 1 else: return x+Foo(x-1) #n+n-1+1 print(Foo(100)) ##結果是5050
二、進階功能
1、函式
1)偏函式
import functools def func(a1,a2): print(a1,a2) new_func = functools.partial(func, 666) ##666 傳給第一個引數 new_func(999)
##結果
666 999
2)__開頭的函式有很多
當把面向物件中的所有__函式__實現時,物件做任何操作時,都會執行其中對應的方法
舉例1__add__
class Foo(object):
def __init__(self, num):
self.num = num
def __add__(self, other):data = self.num + other.num
return Foo(data)
obj1 = Foo(1)
obj2 = Foo(2)
v = obj1.num + obj2.num
print(v)
## 結果是3
3)鏈chain
將每個列表的函式(功能)拼接到一個大的列表中,依次執行
from itertools import chain def f1(x): return x + 1 func1_list = [f1,lambda x:x-1] def f2(x): return x + 10 new_fun_list = chain([f2], func1_list) for func in new_fun_list: print(func)
列表也可以直接使用chain
from itertools import chain l1 = [11,22,33] l2 = [44,55,66] new_list = chain(l1,l2) for item in new_list: print(item)
2、類
1)繼承字典
class MyDict(dict): def __init__(self, *args, **kwargs): super(MyDict,self).__init__(*args, **kwargs) self['modify'] = True obj = MyDict() print(obj)繼承字典
2、web框架的本質
https://www.cnblogs.com/wupeiqi/articles/5237672.html
1)werkzeug
from werkzeug.wrappers import Request, Response
@Request.application
def hello(request):
return Response('Hello World!')
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('127.0.0.1', 40000, hello)
2)wsgi
WSGI(Web Server Gateway Interface)是一種規範,它定義了使用python編寫的web app與web server之間介面格式,實現web app與web server間的解耦。
python標準庫提供的獨立WSGI伺服器稱為wsgiref。
from wsgiref.simple_server import make_server def RunServer(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ] if __name__ == '__main__': httpd = make_server('', 8000, RunServer) print("Serving HTTP on port 8000...") httpd.serve_forever()