導航:首頁 > 編程語言 > python開發實例教程

python開發實例教程

發布時間:2023-06-03 17:47:24

A. python 基礎教程

運算

a = 21
b = 10
c = 0

c = a + b
print "1 - c 的值為:", c

c = a - b
print "2 - c 的值為:", c

c = a * b
print "3 - c 的值為:", c

c = a / b
print "4 - c 的值為:", c

c = a % b
print "5 - c 的值為:", c

a = 2
b = 3
c = a**b
print "6 - c 的值為:", c

a = 10
b = 5
c = a//b
print "7 - c 的值為:", c

python比較

a = 21
b = 10
c = 0

if ( a == b ):
print "1 - a 等於 b"
else:
print "1 - a 不等於 b"

if ( a != b ):
print "2 - a 不等於 b"
else:
print "2 - a 等於 b"

if ( a <> b ):
print "3 - a 不等於 b"
else:
print "3 - a 等於 b"

if ( a < b ):
print "4 - a 小於 b"
else:
print "4 - a 大於等於 b"

if ( a > b ):
print "5 - a 大於 b"
else:
print "5 - a 小於等於 b"

a = 5
b = 20
if ( a <= b ):
print "6 - a 小於等於 b"
else:
print "6 - a 大於 b"

if ( b >= a ):
print "7 - b 大於等於 a"
else:
print "7 - b 小於 a"

賦值

a = 21
b = 10
c = 0

c = a + b
print "1 - c 的值為:", c

c += a
print "2 - c 的值為:", c

c *= a
print "3 - c 的值為:", c

c /= a
print "4 - c 的值為:", c

c = 2
c %= a
print "5 - c 的值為:", c

c **= a
print "6 - c 的值為:", c

c //= a
print "7 - c 的值為:", c

邏輯運算符:

a = 10
b = 20

if ( a and b ):
print "1 - 變數 a 和 b 都為 true"
else:
print "1 - 變數 a 和 b 有一個不為 true"

if ( a or b ):
print "2 - 變數 a 和 b 都為 true,或其中一個變數為 true"
else:
print "2 - 變數 a 和 b 都不為 true"

a = 0
if ( a and b ):
print "3 - 變數 a 和 b 都為 true"
else:
print "3 - 變數 a 和 b 有一個不為 true"

if ( a or b ):
print "4 - 變數 a 和 b 都為 true,或其中一個變數為 true"
else:
print "4 - 變數 a 和 b 都不為 true"

if not( a and b ):
print "5 - 變數 a 和 b 都為 false,或其中一個變數為 false"
else:
print "5 - 變數 a 和 b 都為 true"

in,not in

a = 10
b = 20
list = [1, 2, 3, 4, 5 ];

if ( a in list ):
print "1 - 變數 a 在給定的列表中 list 中"
else:
print "1 - 變數 a 不在給定的列表中 list 中"

if ( b not in list ):
print "2 - 變數 b 不在給定的列表中 list 中"
else:
print "2 - 變數 b 在給定的列表中 list 中"

a = 2
if ( a in list ):
print "3 - 變數 a 在給定的列表中 list 中"
else:
print "3 - 變數 a 不在給定的列表中 list 中"

條件

flag = False
name = 'luren'
if name == 'python': # 判斷變數否為'python'
flag = True # 條件成立時設置標志為真
print 'welcome boss' # 並輸出歡迎信息
else:
print name

num = 5
if num == 3: # 判斷num的值
print 'boss'
elif num == 2:
print 'user'
elif num == 1:
print 'worker'
elif num < 0: # 值小於零時輸出
print 'error'
else:
print 'roadman' # 條件均不成立時輸出

循環語句:

count = 0
while (count < 9):
print 'The count is:', count
count = count + 1

print "Good bye!"

i = 1
while i < 10:
i += 1
if i%2 > 0: # 非雙數時跳過輸出
continue
print i # 輸出雙數2、4、6、8、10

i = 1
while 1: # 循環條件為1必定成立
print i # 輸出1~10
i += 1
if i > 10: # 當i大於10時跳出循環
break

for letter in 'Python': # 第一個實例
print '當前字母 :', letter

fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二個實例
print '當前水果 :', fruit

print "Good bye!"

獲取用戶輸入:raw_input

var = 1
while var == 1 : # 該條件永遠為true,循環將無限執行下去
num = raw_input("Enter a number :")
print "You entered: ", num

print "Good bye!"

range,len

fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '當前水果 :', fruits[index]

print "Good bye!"

python數學函數:
abs,cell,cmp,exp,fabs,floor,log,log10,max,min,mod,pow,round,sqrt

randrange

訪問字元串的值

var1 = 'Hello World!'
var2 = "Python Runoob"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

轉義字元

格式化輸出
print "My name is %s and weight is %d kg!" % ('Zara', 21)

字元串函數:

添加元素

list = [] ## 空列表
list.append('Google') ## 使用 append() 添加元素
list.append('Runoob')
print list

刪除元素

list1 = ['physics', 'chemistry', 1997, 2000]

print list1
del list1[2]
print "After deleting value at index 2 : "
print list1

列表操作

列表方法

刪除字典

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

del dict['Name']; # 刪除鍵是'Name'的條目
dict.clear(); # 清空詞典所有條目
del dict ; # 刪除詞典

print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];

字典的函數:

當前時間戳:
import time
time.time()

格式化日期輸出

import time

print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

獲取某個月日歷:calendar

import calendar

cal = calendar.month(2016, 1)
print "以下輸出2016年1月份的日歷:"
print cal

當前日期和時間

import datetime
i = datetime.datetime.now()
print ("當前的日期和時間是 %s" % i)
print ("ISO格式的日期和時間是 %s" % i.isoformat() )
print ("當前的年份是 %s" %i.year)
print ("當前的月份是 %s" %i.month)
print ("當前的日期是 %s" %i.day)
print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) )
print ("當前小時是 %s" %i.hour)
print ("當前分鍾是 %s" %i.minute)
print ("當前秒是 %s" %i.second)

不定長參數:*

lambda:匿名函數

def....

python模塊搜索路徑

獲取用戶輸入

str = raw_input("請輸入:")
print "你輸入的內容是: ", str

input可以接收表達式

open參數

write要自己添加換行符

讀取10個字元

重命名:os.rename
os.remove
os.mkdir os.chdir
os.getcwd
os.rmdir

open參數

file的方法

異常:

try:
fh = open("testfile", "w")
fh.write("這是一個測試文件,用於測試異常!!")
except IOError:
print "Error: 沒有找到文件或讀取文件失敗"
else:
print "內容寫入文件成功"
fh.close()

try:
fh = open("testfile", "w")
fh.write("這是一個測試文件,用於測試異常!!")
finally:
print "Error: 沒有找到文件或讀取文件失敗"

用戶自定義異常:

os 模塊提供了非常豐富的方法用來處理文件和目錄。常用的方法如下表所示:

| 序號 | 方法及描述 |
| 1 |

os.access(path, mode)

檢驗許可權模式 |
| 2 |

os.chdir(path)

改變當前工作目錄 |
| 3 |

os.chflags(path, flags)

設置路徑的標記為數字標記。 |
| 4 |

os.chmod(path, mode)

更改許可權 |
| 5 |

os.chown(path, uid, gid)

更改文件所有者 |
| 6 |

os.chroot(path)

改變當前進程的根目錄 |
| 7 |

os.close(fd)

關閉文件描述符 fd |
| 8 |

os.closerange(fd_low, fd_high)

關閉所有文件描述符,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略 |
| 9 |

os.p(fd)

復制文件描述符 fd |
| 10 |

os.p2(fd, fd2)

將一個文件描述符 fd 復制到另一個 fd2 |
| 11 |

os.fchdir(fd)

通過文件描述符改變當前工作目錄 |
| 12 |

os.fchmod(fd, mode)

改變一個文件的訪問許可權,該文件由參數fd指定,參數mode是Unix下的文件訪問許可權。 |
| 13 |

os.fchown(fd, uid, gid)

修改一個文件的所有權,這個函數修改一個文件的用戶ID和用戶組ID,該文件由文件描述符fd指定。 |
| 14 |

os.fdatasync(fd)

強制將文件寫入磁碟,該文件由文件描述符fd指定,但是不強制更新文件的狀態信息。 |
| 15 |

os.fdopen(fd[, mode[, bufsize]])

通過文件描述符 fd 創建一個文件對象,並返回這個文件對象 |
| 16 |

os.fpathconf(fd, name)

返回一個打開的文件的系統配置信息。name為檢索的系統配置的值,它也許是一個定義系統值的字元串,這些名字在很多標准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。 |
| 17 |

os.fstat(fd)

返迴文件描述符fd的狀態,像stat()。 |
| 18 |

os.fstatvfs(fd)

返回包含文件描述符fd的文件的文件系統的信息,像 statvfs() |
| 19 |

os.fsync(fd)

強制將文件描述符為fd的文件寫入硬碟。 |
| 20 |

os.ftruncate(fd, length)

裁剪文件描述符fd對應的文件, 所以它最大不能超過文件大小。 |
| 21 |

os.getcwd()

返回當前工作目錄 |
| 22 |

os.getcw()

返回一個當前工作目錄的Unicode對象 |
| 23 |

os.isatty(fd)

如果文件描述符fd是打開的,同時與tty(-like)設備相連,則返回true, 否則False。 |
| 24 |

os.lchflags(path, flags)

設置路徑的標記為數字標記,類似 chflags(),但是沒有軟鏈接 |
| 25 |

os.lchmod(path, mode)

修改連接文件許可權 |
| 26 |

os.lchown(path, uid, gid)

更改文件所有者,類似 chown,但是不追蹤鏈接。 |
| 27 |

os.link(src, dst)

創建硬鏈接,名為參數 dst,指向參數 src |
| 28 |

os.listdir(path)

返回path指定的文件夾包含的文件或文件夾的名字的列表。 |
| 29 |

os.lseek(fd, pos, how)

設置文件描述符 fd當前位置為pos, how方式修改: SEEK_SET 或者 0 設置從文件開始的計算的pos; SEEK_CUR或者 1 則從當前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效 |
| 30 |

os.lstat(path)

像stat(),但是沒有軟鏈接 |
| 31 |

os.major(device)

從原始的設備號中提取設備major號碼 (使用stat中的st_dev或者st_rdev field)。 |
| 32 |

os.makedev(major, minor)

以major和minor設備號組成一個原始設備號 |
| 33 |

os.makedirs(path[, mode])

遞歸文件夾創建函數。像mkdir(), 但創建的所有intermediate-level文件夾需要包含子文件夾。 |
| 34 |

os.minor(device)

從原始的設備號中提取設備minor號碼 (使用stat中的st_dev或者st_rdev field )。 |
| 35 |

os.mkdir(path[, mode])

以數字mode的mode創建一個名為path的文件夾.默認的 mode 是 0777 (八進制)。 |
| 36 |

os.mkfifo(path[, mode])

創建命名管道,mode 為數字,默認為 0666 (八進制) |
| 37 |

os.mknod(filename[, mode=0600, device])
創建一個名為filename文件系統節點(文件,設備特別文件或者命名pipe)。

|
| 38 |

os.open(file, flags[, mode])

打開一個文件,並且設置需要的打開選項,mode參數是可選的 |
| 39 |

os.openpty()

打開一個新的偽終端對。返回 pty 和 tty的文件描述符。 |
| 40 |

os.pathconf(path, name)

返回相關文件的系統配置信息。 |
| 41 |

os.pipe()

創建一個管道. 返回一對文件描述符(r, w) 分別為讀和寫 |
| 42 |

os.popen(command[, mode[, bufsize]])

從一個 command 打開一個管道 |
| 43 |

os.read(fd, n)

從文件描述符 fd 中讀取最多 n 個位元組,返回包含讀取位元組的字元串,文件描述符 fd對應文件已達到結尾, 返回一個空字元串。 |
| 44 |

os.readlink(path)

返回軟鏈接所指向的文件 |
| 45 |

os.remove(path)

刪除路徑為path的文件。如果path 是一個文件夾,將拋出OSError; 查看下面的rmdir()刪除一個 directory。 |
| 46 |

os.removedirs(path)

遞歸刪除目錄。 |
| 47 |

os.rename(src, dst)

重命名文件或目錄,從 src 到 dst |
| 48 |

os.renames(old, new)

遞歸地對目錄進行更名,也可以對文件進行更名。 |
| 49 |

os.rmdir(path)

刪除path指定的空目錄,如果目錄非空,則拋出一個OSError異常。 |
| 50 |

os.stat(path)

獲取path指定的路徑的信息,功能等同於C API中的stat()系統調用。 |
| 51 |

os.stat_float_times([newvalue])
決定stat_result是否以float對象顯示時間戳

|
| 52 |

os.statvfs(path)

獲取指定路徑的文件系統統計信息 |
| 53 |

os.symlink(src, dst)

創建一個軟鏈接 |
| 54 |

os.tcgetpgrp(fd)

返回與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組 |
| 55 |

os.tcsetpgrp(fd, pg)

設置與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組為pg。 |
| 56 |

os.tempnam([dir[, prefix]])

返回唯一的路徑名用於創建臨時文件。 |
| 57 |

os.tmpfile()

返回一個打開的模式為(w+b)的文件對象 .這文件對象沒有文件夾入口,沒有文件描述符,將會自動刪除。 |
| 58 |

os.tmpnam()

為創建一個臨時文件返回一個唯一的路徑 |
| 59 |

os.ttyname(fd)

返回一個字元串,它表示與文件描述符fd 關聯的終端設備。如果fd 沒有與終端設備關聯,則引發一個異常。 |
| 60 |

os.unlink(path)

刪除文件路徑 |
| 61 |

os.utime(path, times)

返回指定的path文件的訪問和修改的時間。 |
| 62 |

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

輸出在文件夾中的文件名通過在樹中遊走,向上或者向下。 |
| 63 |

os.write(fd, str)

寫入字元串到文件描述符 fd中. 返回實際寫入的字元串長度 |

B. python入門教程

Python語言是一種典型的腳本語言,簡潔,語法約束少,接近人類語言。有豐富的數據結構,例如列表、字典、集合等。具有可移植性,支持面向過程和面向對象編程,並且開源。
下載安裝:從python官網下載開發和運行環境程序。本例下載python-3.3.3.amd64的安裝包,並安裝。
開發工具:window系統中,python有多種開發工具,比如,一、直接在cmd命令窗口執行,但此種僅能單條語句執行,不能運行完整的程序。二、python自帶的集成開發環境,可通過開始——所有程序——python3.3——IDLE(Python GUI)啟動。三、其他集成開發環境,如PythonWin等,有編輯和調試能力,還實現了MFC類庫存的包裝。
本例中,使用python自帶的開發環境。File—New File,新建py文檔,編寫程序,保存。Run——Run mole,可得到運行結果。
封裝性:可以把屬性、方法結合在一起,不可以直接訪問對象的屬性,僅能通過介面與對象發生聯系。以下把方法和屬性封裝成了一個類。
構造器:python有3種類型的構造器,且一個類中僅可以定義一個構造器,若多個,則以最後為准。1.若不聲明,則默認為一個沒有任何操作的特殊的__init__方法,__init__(self),此時可通過obj = my_class()聲明實例。 2.自聲明__init__構造器,會覆蓋默認的,且可以更新類的數據屬性。3.構造器方法__new__(),用於不可變內置類型派生,不能通過實例訪問屬性,僅能通過類訪問。
繼承性:python支持多繼承,且子類繼承了父類的方法和屬性。若子類中有和父類相同名稱的方法,則子類會覆蓋(Override)父類方法。父類方法依舊可以訪問。
數據結構:有豐富的數據結構,例如列表、字典、集合等。本例簡單介紹字典的使用。字典是鍵值對的無序集合,是可變對象。鍵在字典中是唯一的且必須是不可變對象。值可以是可變對象或不可變對象。以下例子對python字典的定義、訪問、更新等的操作。
文件的讀寫:python系統提供open()函數建立文件對象,並打開要讀寫的文件。可對文件進行讀,寫,若不需要時,需關閉文件,釋放系統資源。
其他:python的數據類型,如數字類型、字元串類型等。運算符、程序控制結構、函數、異常處理等內容。一些基本的用法,可在平時的使用中鞏固加強。若熟知java,python上手會很快。

C. 如何用Python開發一個簡單的Webkit瀏覽器

在這篇教程中,我們會用 Python 的 PyQt 框架編寫一個簡單的 web 瀏覽器。關於 PyQt ,你可能已經有所耳聞了,它是 Qt 框架下的一系列 Python 組件,而 Qt(發音類似「cute」)是用來開發GUI的 C++ 框架。嚴格來講, Qt 也可用於開發不帶圖形界面的程序,但是開發用戶界面應該是 Qt 框架最為廣泛的應用了。Qt 的主要優勢是可以開發跨平台的圖形界面程序,基於 Qt 的應用能夠藉助於各平台的原生性在不同類的設備上運行,而無須修改任何代碼庫。

Qt 附帶了webkit的介面,你可以直接使用 PyQt 來開發一個基於 webkit 的瀏覽器。

我們本次教程所開發的瀏覽器可以完成如下功能:

D. Python程序開發之簡單小程序實例(11)小游戲-跳動的小球

Python程序開發之簡單小程序實例

(11)小 游戲 -跳動的小球

一、項目功能

用戶控制擋板來阻擋跳動的小球。

二、項目分析

根據項目功能自定義兩個類,一個用於控制小球在窗體中的運動,一個用於接收用戶按下左右鍵時,擋板在窗體中的運動。在控制小球的類中,我們還需要考慮當小球下降時,碰到擋板時的位置判斷。

三、程序源代碼

源碼部分截圖:

源碼:

#!/usr/bin/python3.6

# -*- coding: GBK -*-

#導入相應模塊

from tkinter import *

import random

import time

#自定義小球的類 Ball

class Ball:

# 初始化

def __init__(self,canvas,paddle,color):

#傳遞畫布值

self.canvas=canvas

#傳遞擋板值

self.paddle=paddle

#畫圓並且保存其ID

self.id=canvas.create_oval(10,10,25,25,fill=color)

self.canvas.move(self.id,245,100)

#小球的水平位置起始列表

start=[-3,-2,-1,1,2,3]

#隨機化位置列表

random.shuffle(start)

self.x=start[0]

self.y=-2

self.canvas_heigh=self.canvas.winfo_height()#獲取窗口高度並保存

self.canvas_width=self.canvas.winfo_width()

#根據參數值繪制小球

def draw(self):

self.canvas.move(self.id,self.x,self.y)

pos=self.canvas.coords(self.id)#返回相應ID代表的圖形的當前坐標(左上角和右上角坐標)

#使得小球不會超出窗口

pad=self.canvas.coords(self.paddle.id)#獲取小球擋板的坐標

if pos[1]=self.canvas_heigh or(pos[3]>=pad[1] and pos[2]>=pad[0] and pos[2]

E. 有沒有利用python開發資料庫的案例

在Windows平台上安裝mysql模塊用於Python開發

用python連接mysql的時候,需要用的安裝版本,源碼版本容易有錯誤提示。下邊是打包了32與64版本。
MySQL-python-1.2.3.win32-py2.7.exe
MySQL-python-1.2.3.win-amd64-py2.7.exe
實例 1、取得 MYSQL 的版本

# -*- coding: UTF-8 -*-
#安裝 MYSQL DB for python
import MySQLdb as mdb
con = None
try:
#連接 mysql 的方法: connect('ip','user','password','dbname')
con = mdb.connect('localhost', 'root','root', 'test');

#所有的查詢,都在連接 con 的一個模塊 cursor 上面運行的
cur = con.cursor()

#執行一個查詢
cur.execute("SELECT VERSION()")
#取得上個查詢的結果,是單個結果

data = cur.fetchone()
print "Database version : %s " % data
finally:
if con:
#無論如何,連接記得關閉
con.close()

實例 2、創建一個表並且插入數據

import MySQLdb as mdb
import sys

#將 con 設定為全局連接
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:

#獲取連接的 cursor,只有獲取了 cursor,我們才能進行各種操作
cur = con.cursor()

#創建一個數據表 writers(id,name)
cur.execute("CREATE TABLE IF NOT EXISTS
Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")

#以下插入了 5 條數據
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")

實例 3、 python 使用 slect 獲取 mysql 的數據並遍歷

import MySQLdb as mdb
import sys

#連接 mysql,獲取連接的對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:

#仍然是,第一步要獲取連接的 cursor 對象,用於執行查詢
cur = con.cursor()

#類似於其他語言的 query 函數, execute 是 python 中的執行查詢函數
cur.execute("SELECT * FROM Writers")

#使用 fetchall 函數,將結果集(多維元組)存入 rows 裡面
rows = cur.fetchall()

#依次遍歷結果集,發現每個元素,就是表中的一條記錄,用一個元組來顯示
for row in rows:
print row

運行結果:

(1L, 『Jack London')
(2L, 『Honore de Balzac')
(3L, 『Lion Feuchtwanger')
(4L, 『Emile Zola')
(5L, 『Truman Capote')
上面的代碼,用來將所有的結果取出,不過列印的時候是每行一個元祖列印,現在我們使用方法,取出其中的單個數據:

import MySQLdb as mdb
import sys

#獲取 mysql 的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
#獲取執行查詢的對象
cur = con.cursor()
#執行那個查詢,這里用的是 select 語句
cur.execute("SELECT * FROM Writers")
#使用 cur.rowcount 獲取結果集的條數
numrows = int(cur.rowcount)
#循環 numrows 次,每次取出一行數據
for i in range(numrows):
#每次取出一行,放到 row 中,這是一個元組(id,name)
row = cur.fetchone()
#直接輸出兩個元素
print row[0], row[1]

運行結果:

1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 4、使用字典 cursor 取得結果集(可以使用表欄位名字訪問值)

import MySQLdb as mdb
import sys
#獲得 mysql 查詢的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取連接上的字典 cursor,注意獲取的方法,
#每一個 cursor 其實都是 cursor 的子類
cur = con.cursor(mdb.cursors.DictCursor)
#執行語句不變
cur.execute("SELECT * FROM Writers")
#獲取數據方法不變
rows = cur.fetchall()
#遍歷數據也不變(比上一個更直接一點)
for row in rows:
#這里,可以使用鍵值對的方法,由鍵名字來獲取數據
print "%s %s" % (row["Id"], row["Name"])

實例 5、獲取單個表的欄位名和信息的方法

import MySQLdb as mdb
import sys
#獲取資料庫的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取普通的查詢 cursor
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
#獲取連接對象的描述信息
desc = cur.description
print 'cur.description:',desc
#列印表頭,就是欄位名字
print "%s %3s" % (desc[0][0], desc[1][0])
for row in rows:
#列印結果
print "%2s %3s" % row

運行結果:

cur.description: ((『Id', 3, 1, 11, 11, 0, 0), (『Name', 253, 17, 25, 25, 0, 1))
Id Name
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 6、使用 Prepared statements 執行查詢(更安全方便)

import MySQLdb as mdb
import sys

con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
cur = con.cursor()
#我們看到,這里可以通過寫一個可以組裝的 sql 語句來進行
cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Guy de Maupasant", "4"))
#使用 cur.rowcount 獲取影響了多少行
print "Number of rows updated: %d" % cur.rowcount

結果:
Number of rows updated: 1

實例 7、把圖片用二進制存入 MYSQL

有人喜歡把圖片存入 MYSQL(這種做法貌似很少吧),我看大部分的程序,圖片都是存放在伺服器上的文件,資料庫中存的只是圖片的地址而已,不過 MYSQL 是支持把圖片存入資料庫的,也相應的有一個專門的欄位 BLOB (Binary Large Object),即較大的二進制對象欄位,請看如下程序,注意測試圖片自己隨便找一個,地址要正確:
首先,在資料庫中創建一個表,用於存放圖片:

復制代碼代碼如下:

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);

然後運行如下 PYTHON 代碼進行:

import MySQLdb as mdb
import sys

try:
#用讀文件模式打開圖片
fin = open("../web.jpg")
#將文本讀入 img 對象中
img = fin.read()
#關閉文件
fin.close()
except IOError, e:
#如果出錯,列印錯誤信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
try:
#鏈接 mysql,獲取對象
conn = mdb.connect(host='localhost',user='root',passwd='root',
db='test')
#獲取執行 cursor
cursor = conn.cursor()
#直接將數據作為字元串,插入資料庫
cursor.execute("INSERT INTO Images SET Data='%s'" %
mdb.escape_string(img))
#提交數據
conn.commit()
#提交之後,再關閉 cursor 和鏈接
cursor.close()
conn.close()
except mdb.Error, e:
#若出現異常,列印信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

實例 8、從資料庫中把圖片讀出來

import MySQLdb as mdb
import sys

try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#執行查詢該圖片欄位的 SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二進制寫文件的方法,打開一個圖片文件,若不存在則自動創建
fout = open('image.png','wb')
#直接將數據如文件
fout.write(cursor.fetchone()[0])
#關閉寫入的文件
fout.close()
#釋放查詢數據的資源
cursor.close()
conn.close()
except IOError, e:
#捕獲 IO 的異常 ,主要是文件寫入會發生錯誤
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

實例 9、使用 Transaction 即事務(手動提交,自動回滾)

import MySQLdb as mdb
import sys

try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#如果某個資料庫支持事務,會自動開啟
#這里用的是 MYSQL,所以會自動開啟事務(若是 MYISM 引擎則不會)
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Leo Tolstoy", "1"))
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Boris Pasternak", "2"))
cursor.execute("UPDATE Writer SET Name = %s WHERE Id = %s",
("Leonid Leonov", "3"))
#事務的特性 1、原子性的手動提交
conn.commit()
cursor.close()
conn.close()
except mdb.Error, e:
#如果出現了錯誤,那麼可以回滾,就是上面的三條語句要麼執行,要麼都不執行
conn.rollback()
print "Error %d: %s" % (e.args[0],e.args[1])

結果:
1、因為不存在 writer 表( SQL 第三條語句),所以出現錯誤:Error 1146: Table 『test.writer' doesn't exist
2、出現錯誤,出發異常處理, 3 條語句的前兩條會自動變成了沒有執行,結果不變
3、如果本代碼放到一個 MyISAM 引擎表,前兩句會執行,第三句不會;如果是 INNDB 引擎,則都不會執行。

F. 怎麼用python實現一個頁面的開發

去年春節期間,沒事報了一個pythonweb開發的網路課程,根據自己的學習情況來回答一下。

一個頁面的開發,應該是分前端和後端的。

關於後端

在python中有兩個最常見的開發框架:Django,flask。

Django大而全,什麼功能模塊都已經封裝好了,調用即可;flask小而精,沒有很高的封裝,但是有許多功能模塊,需要我們自己去集成。

當初學習的那個網路課程是用flask框架來做的,上手很簡單:

當初學習的時候能寫一個小的網站,本來想轉行做python後端開發的,但是後來還是接著做數據挖掘了橘旅臘,許久不用,倒是有點生疏了。總得來說,有幾大模塊:

路由

route()裝飾器把一個函數綁定到對應的URL上,Flask的URL規則基圓滑於Werkzeug的路由模塊。這個模塊背後的思想是基於Apache以及更早的HTTP伺服器主張的先例,保證優雅且唯一的URL。

模板渲染Jinja2

用Python生成HTML十分無趣,而且相當繁瑣,因為你必須手動對HTML做轉義來保證應用的安鎮液全。為此,Flask配備了Jinja2模板引擎。當然你也可以使用其他的模板引擎,但是建議你還是使用jinja2模板

請求對象request

你可以使用全局request對象訪問進入的請求數據。Flask處理進入的請求數據並允許你用這個全局對象訪問它。如果你工作在多線程環境,Flask內部保證你總會在當前線程上獲取正確的數據。

資料庫交互-Flask-SQLAlchemy

通過sqlalchemy對資料庫增刪改查,使用的是orm模式,不需要寫SQL語句。

在資料庫中,一個表就是一個python類,一個類的實例就是表中的行。

在開發過程中,會用到一些python的高級應用:

裝飾器:在許可權驗證的時候很需要用到

模塊的導入:防止循環導入

圖像處理:驗證碼生成

property使用:密碼加密時使用

關於前端

如果對前端不熟,想做一個小網站練練手,推薦你使用Bootstrap

裡面有各種的CSS樣式,各種組件,JS插件,還有一些網站實例供你參考,對前端HTML,CSS不是很熟悉的,可以通過這略微修改快速搭建一個前端頁面。

後記:

將來的數據挖掘工作者可能也需要懂網站後端開發,因為以後建模不會一直都是在單機中,可能會集成到網站中,實時數據流入模型,結果展示在網站上。

G. python入門實例教程

python入門實例教程!
步驟1:這里我將簡單告訴大家一個用python軟體編寫的一個關於貨物售價折扣方面的一個計算程序,首先打開python軟體。
步驟2:進入python後,會出現如圖所示界面,按照圖中箭頭指示,先選擇File選項,然後在下拉菜單中選擇New file選項。
步驟3:選擇完畢後,會出現一個新的界面,如圖箭頭和紅色框指示。
步驟4:進入這個新的界面,在裡面輸入自己想編輯的程序,如圖所示是我自己編寫的一個關於貨物售價折扣方面的一個簡單的計算程序。
步驟5:程序輸入完畢後,按照圖中箭頭和紅色框指示,先選擇Run選項,然後在下拉菜單中選擇Run Mole(註:除此方法外還可以點擊鍵盤F5)。
步驟6:此時會在原界面出現如圖所示的字樣,這是因為我編寫程序編輯好的,此時你可以輸入一個數字,然後回車,它又會讓你輸入一個折扣,輸入完即可得出最後售價結果。
步驟7:如圖所示,這里我輸入的原價是10,折扣是0.2,故此系統根據我編寫的程序計算除了打折後的價格為2。

H. Python程序開發之簡單小程序實例(3)-列印99乘法口訣表

Python程序開發之簡單小程序實例

(3)-列印99乘法口訣表

一、項目功能

在屏幕中列印格式化的九九乘法口訣表。

二、項目分析

按九九乘法口訣的運算順序,列印的口訣表共有9行9列,第1行只有1列,第2行有2列……,第9行共有9列,如下所示:

1 1

1 2 2 2

1 3 2 3 3 3

……

……

1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 9

要按格式控制輸出,需定義2個循環,其中一個循環(我們稱其為外循環,在其內定義變數i)嵌套另一個循環(我們稱其為內循環,在其內定義變數j),外循環(變數i)控制行,循環次數大於等於1且小於10,內循環(變數j)控制列,循環次數取決於外循環變數i的值。

三、程序源代碼

#!/usr/bin/python3.6

# -*- coding: GBK -*-

print("九九乘法口訣表")

for i in range(1, 10):

print()

for j in range(1, i+1):

print ("%d*%d=%d" % (j, i, i*j), end=" " )

四、代碼解釋:

在程序的第一行為引用python版本,本實例為python3.6

第二行是程序編碼引用,因為在程序中包含有中文字元,所以必須引用GBK,否則就會報錯。

第三行為輸出標題「九九乘法口訣表」

第四行至第七行為程序主體,由兩個循環嵌套組成,在循環內的第五行,為一個控制行格式輸出語句print(),用於換行操作。

五、運行後的輸出結果

下一篇:《Python程序開發之簡單小程序實例(4)》

I. 推薦幾個適合新手練手的Python項目

《Python實戰:四周實現爬蟲系統》網路網盤免費下載

鏈接:

提取碼: xb

Python實戰:四周實現爬蟲系統

J. 求python的項目實例教程

Python實戰:四周實現爬蟲系統(高清視頻)網路網盤

鏈接:

提取碼: c6yg 復制這段內容後打開網路網盤手機App,操作更方便哦

若資源有問題歡迎追問~

閱讀全文

與python開發實例教程相關的資料

熱點內容
java集成spring 瀏覽:352
壯熊警察李鐵峰小說 瀏覽:731
幕川北玩的什麼伺服器 瀏覽:475
男主有病需要喝奶的小說 瀏覽:214
ftp傳文件命令 瀏覽:625
small壓縮 瀏覽:878
小白楊小說完整版免費 瀏覽:912
一本女主叫顧念的小說 瀏覽:155
成人亂小說短篇小說 瀏覽:424
可編程式控制制器輸出開關量介面類型 瀏覽:66
《喪屍高校》 瀏覽:864
7000部藍光電影免費看 瀏覽:985
朴惠麗 瀏覽:508
美國禁止播放的電影都有哪些解說 瀏覽:627
免費服裝app哪裡下載 瀏覽:620
php編碼字元串 瀏覽:311
如何壓縮視頻10秒 瀏覽:991
jxslmj 瀏覽:290
單立文三極有哪些 瀏覽:246
網信辦演算法控制 瀏覽:206