学习10:Python重要知识
Python易忽略知識
(1)print 默認輸出是換行的,如果要實現不換行需要在變量末尾加上 end="":
(2)isinstance 和 type 的區別在于:type()不會認為子類是一種父類類型。isinstance()會認為子類是一種父類類型。這么理解,父類:動物;子類:貓。isinstance()認為貓是動物,type()認為貓就是貓不是動物。
(3)數值的除法包含兩個運算符:/ 返回一個浮點數,// 返回一個整數。
(4)Python 不支持單字符類型,單字符在 Python 中也是作為一個字符串使用。
(5)迭代器與生成器。
- 迭代是Python最強大的功能之一,是訪問集合元素的一種方式。迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會后退。迭代器有兩個基本的方法:iter() 和 next()。把一個類作為一個迭代器使用需要在類中實現兩個方法 iter() 與 next() 。
- 在 Python 中,使用了 yield 的函數被稱為生成器(generator)。生成器是一個返回迭代器的函數,只能用于迭代操作,更簡單點理解生成器就是一個迭代器。每次遇到 yield 時函數會暫停并保存當前所有的運行信息,返回 yield 的值, 并在下一次執行 next() 方法時從當前位置繼續運行。使用 yield 實現斐波那契數列:
(6)列表的棧與隊列
(7)將輸出的值轉成字符串,可以使用 repr() 或 str() 函數來實現。
- str(): 函數返回一個用戶易讀的表達形式。
- repr(): 產生一個解釋器易讀的表達形式。
(8)類定義了 init() 方法,類的實例化操作會自動調用 init() 方法。類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的第一個參數名稱, 按照慣例它的名稱是 self。與一般函數定義不同,類方法必須包含參數 self, 且為第一個參數,self 代表的是類的實例。self 的名字并不是規定死的,也可以使用 this,但是最好還是按照約定是用 self。
(9)**__private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs**。
(10)處理從 urls 接收數據的 urllib.request 以及用于發送電子郵件的 smtplib:
>>> from urllib.request import urlopen >>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'): ... if 'EST' in line or 'EDT' in line.decode('utf-8'): ... print(line)>>> import smtplib >>> server = smtplib.SMTP('localhost') >>> server.sendmail('soothsayer@example.org', 'jcaesar@example.org', ... """To: jcaesar@example.org ... From: soothsayer@example.org ... ... Beware the Ides of March. ... """) >>> server.quit()(11)doctest掃描模塊并根據程序中內嵌的文檔字符串執行測試。通過用戶提供的例子,它強化了文檔,允許 doctest 模塊確認代碼的結果是否與文檔一致:
def average(values):return sum(values) / len(values)import doctest print(doctest.testmod()) # 自動驗證嵌入測試(12)Python實例總結 https://www.runoob.com/python3/python3-examples.html
(13)Python實現查找與排序:https://www.runoob.com/python3/python3-examples.html
(14)re.match 嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。flags是否區分大小寫。
re.match(pattern, string, flags=0)(15)re.match與re.search的區別。re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;而re.search匹配整個字符串,直到找到一個匹配。
(16)Python連接MySQL
import MySQLdb# 顯示所有數據庫 mydb = MySQLdb.Connect(host='localhost',user='root',passwd='root',database='all_news') mycursor = mydb.cursor() mycursor.execute("SHOW DATABASES") for x in mycursor:print(x) print("*"*20)# 創建數據表 # mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))") mycursor.execute("SHOW TABLES") for x in mycursor:print(x)# 修改表 # mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")# 插入數據 # sql = "INSERT INTO sites (name, url) VALUES (%s, %s)" # val = ("RUNOOB", "https://www.runoob.com") # mycursor.execute(sql, val) # mydb.commit() # 數據表內容有更新,必須使用到該語句 # print(mycursor.rowcount, "記錄插入成功。")# 批量插入 # sql = "INSERT INTO sites (name, url) VALUES (%s, %s)" # val = [ # ('Google', 'https://www.google.com'), # ('Github', 'https://www.github.com'), # ('Taobao', 'https://www.taobao.com'), # ('stackoverflow', 'https://www.stackoverflow.com/') # ] # mycursor.executemany(sql, val) # mydb.commit() # 數據表內容有更新,必須使用到該語句 # print(mycursor.rowcount, "記錄插入成功。")# 查詢數據 print("="*20) mycursor.execute("SELECT * FROM sites") myresult = mycursor.fetchall() # fetchall() 獲取所有記錄 # myresult = mycursor.fetchone() # 讀一條數據 for x in myresult:print(x)# 刪除數據 # sql = "DELETE FROM sites WHERE name = 'stackoverflow'" # mycursor.execute(sql) # mydb.commit() # print(mycursor.rowcount, " 條記錄刪除")# 更新數據 sql = "UPDATE sites SET name = 'ZH' WHERE id = 4" mycursor.execute(sql) mydb.commit() print(mycursor.rowcount, " 條記錄被修改")# 執行事務 # SQL刪除記錄語句 sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20) try:# 執行SQL語句cursor.execute(sql)# 向數據庫提交db.commit() except:# 發生錯誤時回滾db.rollback()(17) 格式化日期:
#!/usr/bin/python3 import time # 格式化成2016-03-20 11:45:39形式 print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))# 格式化成Sat Mar 28 22:24:24 2016形式 print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))(18)Python操作MongoDB
- 啟動服務
- MongoDB
(19)WSGI 應用和常見的 Web 框架
- 部署Django
- 部署Flask
創建文件 myflaskapp.py ,代碼如下:
from flask import Flask app = Flask(__name__) @app.route('/') def index():return "<span style='color:red'>I am app 1</span>"執行以下命令:
uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191轉載于:https://www.cnblogs.com/baiboy/p/11014657.html
總結
以上是生活随笔為你收集整理的学习10:Python重要知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 控制Dell服务器的风扇转速
- 下一篇: 基于python下django框架 实现