導航:首頁 > 編程語言 > python字典實訓案例

python字典實訓案例

發布時間:2022-04-20 03:01:46

python可以實訓的項目簡單點的有哪些

第一階段:Python語言及應用
課程內容:Python語言基礎,面向對象設計,多線程編程,資料庫交互技術,前端特效,Web框架,爬蟲框架,網路編程
第二階段:機器學習與數據分析
課程內容:機器學習概述,監督學習,非監督學習,數據處理,模型調優,數據分析,可視化,項目實戰
第三階段:深度學習
課程內容:深度學習概述,TensorFlow基礎及應用,神經網路,多層LSTM,自動編碼器,生成對抗網路,小樣本學習技術,項目實戰
第四階段:圖像處理技術
課程內容:圖像基礎知識,圖像操作及運算,圖像幾何變換,圖像形態學,圖像輪廓,圖像統計學,圖像濾波,項目實戰

㈡ 用Python創建一個學生字典並可以查詢其中信息

你可以試試這個----------------------------------------------------------

# -*- coding:UTF-8 -*-


students=[]


def meun():

print("="*30)

print("*"*10+"學生信息管理"+"*"*10)

print("1.添加學生信息")

print("2.刪除學生信息")

print("3.指定學號查詢學生信息")

print("4.查詢全部學生信息")

print("5.保存信息")

print("0.退出系統")

print("="*30)



def add_new_info():

global students

print("您選擇了添加學生信息功能")

name = input("請輸入學生姓名:")

stuId = input("請輸入學生學號(學號不可重復):")

age = input("請輸入學生年齡:")

#驗證學號是否唯一

i = 0

leap = 0

for temp in students:

if temp['id'] == stuId:

leap = 1

break

else:

i = i + 1

if leap == 1:

print("輸入學生學號重復,添加失敗!")

break

else:

# 定義一個字典,存放單個學生信息

stuInfo = {}

stuInfo['name'] = name

stuInfo['id'] = stuId

stuInfo['age'] = age

# 單個學生信息放入列表

students.append(stuInfo)

print("添加成功!")



def del_info():

global students

print("您選擇了刪除學生功能")

delId=input("請輸入要刪除的學生學號:")

#i記錄要刪除的下標,leap為標志位,如果找到leap=1,否則為0

i = 0

leap = 0

for temp in students:

if temp['id'] == delId:

leap = 1

break

else:

i=i+1

if leap == 0:

print("沒有此學生學號,刪除失敗!")

else:

del students[i]

print("刪除成功!")



def search_info():

global students

searchID=input("請輸入你要查詢學生的學號:")

#驗證是否有此學號

i = 0

leap = 0

for temp in students:

if temp['id'] == searchID:

leap = 1

break

else:

i = i + 1

if leap == 0:

print("沒有此學生學號,查詢失敗!")

else:

print("找到此學生,信息如下:")

print("學號:%s 姓名:%s 年齡:%s "%(temp['id'],temp['name'],temp['age']))



def print_all_info():

print("序號 學號 姓名 年齡")

for temp in students:

print("sno:%s,stuName:%s,stuAge:%s" %(temp['id'],temp['name'],temp['age']))

print("*"*20)

def loda_data():

#加在之前存儲的數據

global students

f = open("info_data.data")

content = f.read()

info_list = eval(content)

f.close()


def main():

#加在數據(先存好數據,在打開這個數據直接讀取數據)

#load_data()

while True:

#1.列印工程

meun()

#2.獲取用戶的選擇

key = input("請輸入要進行的操作):")

#3.根據用戶的選擇,作出相應的事件

if key == "1":

add_new_info()

elif key == "2":

del_info()

elif key == "3":

search_info()

elif key == "4":

print_all_info()

elif key == "5":

save_data()

elif key == "0":

exit_flag = input("你確定要退出嗎?(yes or no)")

if exit_flag == "yes":

break

else:

print("輸入有誤,請重新輸入。。。")

input(" 按回車鍵可以繼續。。。")

continue

#程序開始

main()

摘自網頁鏈接-------------------------------------------------------------------

請採納,謝謝

㈢ 如何利用Python語言對字典數據類型進行各種操作

第一步,聲明一個字典tree,賦值name和sale鍵,並列印字典值
第二步,添加字典鍵值對,字典是由鍵值對來構成的,聲明一個字典hudi並賦值;再次利用該字典添加一個鍵值對,然後列印添加後的值
第三步,對添加的鍵值對進行修改鍵值,獲取age這個鍵,然後重新賦值,列印修改後的結果
第四步,列印hudi字典,利用del刪除字典color鍵值對,然後列印刪除後的結果
第五步,再次列印hudi字典,利用clear()方法刪除該字典所有的鍵值對
第六步,利用pop()方法對字典鍵值對進行刪除,會先列印出刪除的鍵值對!

㈣ Python中創建字典的幾種方法總結

1.傳統的文字表達式:
>>>d={'name':'Allen','age':21,'gender':'male'}
>>>d
{'age':21,'name':'Allen','gender':'male'}
如果你可以事先拼出整個字典,這種方式是很方便的。
2.動態分配鍵值:
>>>d={}
>>>d['name']='Allen'
>>>d['age']=21
>>>d['gender']='male'
>>>d
{'age':21,'name':'Allen','gender':'male'}
如果你需要一次動態地建立一個字典的一個欄位,那麼這種方式比較合適。
字典與列表不同,不能通過偏移量進行復制,只能通過鍵來讀取或賦值,所以也可以這樣為字典賦值,當然訪問不存在的鍵會報錯:
>>>d[1]='abcd'
>>>d
{1:'abcd','age':21,'name':'Allen','gender':'male'}
>>>d[2]
Traceback(mostrecentcalllast):
File"<pyshell#9>",line1,in<mole>d[2]
KeyError:212345678
3.字典鍵值表
>>>c=dict(name='Allen',age=14,gender='male')
>>>c
{'gender':'male','name':'Allen','age':14}
因為這種形式語法簡單,不易出錯,所以非常流行。
這種形式所需的代碼比常量少,但是鍵必須都是字元串才行,所以下列代碼會報錯:
>>>c=dict(name='Allen',age=14,gender='male',1='abcd')
SyntaxError:keywordcan'tbeanexpression
4.字典鍵值元組表
>>>e=dict([('name','Allen'),('age',21),('gender','male')])
>>>e
{'age':21,'name':'Allen','gender':'male'}
如果你需要在程序運行時把鍵和值逐步建成序列,那麼這種方式比較有用。
5.所有鍵的值都相同或者賦予初始值:
>>>f=dict.fromkeys(['height','weight'],'normal')
>>>f
{'weight':'normal','height':'normal'}

㈤ python綜合實訓項目2000字怎麼寫

可以幫實現第第一二個內容,第三個。。。。

㈥ 吉林網路工程師學習的未來發展前景怎麼樣

單純的學習網路對於現階段是沒有意義的,基礎的網路搭建基本已經完成,不需要大量的網路工程師,所以單純的學習網路是很難找到工作的,要學習的話,得想辦法多學習一些知識,可以學習雲計算的知識,需求大,比較好找工作,
階段一:Linux 與網路基礎(116 課時)
模塊:零基礎體驗、網路基礎、Linux 系統管理、Linux 網路服務
1. PC 伺服器與 Linux 初體驗(線上&串講)
2. PC 伺服器安裝 Linux 實戰(線上)
3. 了解 IP 地址!必須的(線上&串講)
4. 搭建VMware 虛擬環境(線上&串講)
5. Linux 基本操作~去看看(線上&串講)
6. 網站與域名知識掃盲、域名申請及備案(線上&串講)
7. 構建 LAMP 網站平台(線上&串講)
8. 加密解密&熊貓燒香病毒再現(線上)
9. 木馬與後門DIY(線上)
網路基礎(24)
1. 計算機網路參考模型OSI 和 TCP/IP
2. 網路傳輸介質與布線
3. 交換機基本原理與配置
4. 網路層協議與應用、ARP 攻擊與欺騙的原理及應用
5. 靜態路由原理與配置
6. VLAN 與三層交換機
7. 網路層協議高級知識:IP 分片原理、IPv6 協議(線上&串講)
Linux 系統管理(48)
1. Linux 常用命令精講
2. 目錄和文件管理
3. 安裝及管理程序
4. 賬號管理
5. 許可權及歸屬管理
6. 磁碟管理
7. 文件系統與 LVM
8. 伺服器 RAID 及配置實戰
9. 引導過程與服務控制
10. 進程和計劃任務管理
11. 系統安全、PAM 安全認證、埠掃描
12.Linux 文件系統深入,理解 inode 與 block、硬鏈接與軟鏈
接、恢復誤刪除文件、分析日誌文件
Linux 網路服務(28)
1. Linux 基礎網路設置
2. DHCP 與 DHCP 中繼原理與配置
3. Samba 文件共享服務(線上)
4. FTP 文件傳輸服務(線上&串講)
5. DNS 域名解析服務(一)
6. DNS 域名解析服務(二)(線上&串講)
7. Postfix 郵件系統(一)(線上&串講)
8. Postfix 郵件系統(二)(線上)
9. 遠程訪問及控制
10. 部署 YUM 倉庫服務;NFS 共享服務
11. PXE 高效批量網路裝機
12. Cobbler 自動裝機

項目實戰(4)
初創公司伺服器改造方案
階段目標:
1. 採用微電影形式,使用真實的硬體伺服器進行演練,網路原理採用了 Flash 動畫形式,實現快速入門
2. 能夠掌握計算機網路、安全與 Linux 系統的基礎知識,會進行 Linux 系統管理,能夠搭建企業常用的Linux 服務
3. 具備基本的網路運維、Linux 基礎運維的能力
階段二:Linux 企業級應用(132 課時)
模塊:Shell 腳本、Linux 安全、Web 伺服器、群集、MySQL
Shell 腳本(20)
1. Shell 編程規范與變數
2. Shell 編程之條件語句
3. Shell 編程之 case 語句
4. Shell 編程之正則表達式、sed 與 awk
5. Shell 編程實戰:開發 MAC 記錄與埠掃描腳本、開發系統監控腳本(項目案例)
Linux 安全(8)
1. iptables 鏈表關系與匹配流程、iptables 規則編寫
2. 利用 SNAT 策略共享上網、利用 DNAT 策略發布內網伺服器、編寫防火牆腳本、firewalld 防火牆
Web 伺服器(38)
1. Web 基礎、HTTP 協議分析、GET 和POST 方法
2. 源碼編譯構建 LAMP
3. Apache 配置與應用,日誌管理、日誌分割
4. Apache 網頁優化
5.Apache 優化深入、實現防盜鏈、ab 壓力測試、prefork 與

worker 工作模式原理與優化

6.Nginx 安裝與配置

7.Nginx 訪問控制、Nginx 虛擬主機、部署企業 LNMP 架構

8.LNMP 應用部署、Nginx+Apache 動靜分離(項目案例)

9. Nginx 優化與防盜鏈

10.部署 tomcat(2 課時)
1.LVS 負載均衡群集
2.部署 LVS-DR 群集、LVS-DR 數據包流向分析、LVS-DR 中 的 ARP 問題

群集(22)

3.LVS+Keepalived 群集

4.Haproxy 搭建 Web 群集部署方法 、日誌管理、參數優化

5.Nginx+tomcat 群集(項目案例)(2 課時)

6.Nginx+tomcat 動靜分離(項目案例)

1.MySQL 資料庫初體驗

2.MySQL 資料庫操作

3.MySQL 索引與事務

4.MySQL 資料庫管理

5.MySQL 全量備份與恢復

MySQL(44)

6. MySQL 增量備份與恢復
7. MySQL 存儲引擎 MyISAM 和 InnoDB

8.MySQL 主從復制(項目案例)

9.MySQL 讀寫分離(項目案例)

10. MMM 高可用配置及故障切換、配置 MySQL 多主多從(項

目案例)

11.MHA 高可用、MySQL 故障排查

階段目標:
1. 面向技術提升,以企業實際的項目案例進行訓練,積累運維經驗
2. 能夠掌握 Shell 腳本、安全,熟練部署 Web 伺服器、MySQL 資料庫及其優化,深入理解群集原理並部署
3. 具備 Linux 群集、應用運維的能力

階段三:雲計算與運維自動化(120 課時)
模塊:緩存及加速、監控、分布式文件服務、虛擬化、大型網站架構、運維自動化、雲計算

實訓模塊

實訓專題

緩存及加速(12)

1.Squid 代理伺服器應用:傳統代理和透明代理

2.Squid ACL 與日誌分析工具 sarg、反向代理3.Varnish 網站加速、部署Web 群集(線上) 4.Nginx 緩存加速應用(2 課時)
5.高性能內存對象緩存 Memcached 原理與部署、Memcached
群集部署

監控(8)

1.企業集中監測Cacti(線上&串講) 2.Nagios 監控服務
3.Zabbix 部署與 Zabbix 平台的使用

分布式文件服務(8)

1. 企業遠程備份同步 rsync 異地備份、rsync+inotify 實時備份
2. MFS 分布式文件系統原理與部署、MFS 災難恢復與在線擴容

容器&虛擬化(28)

1. VMware 入門、ESXi 系統配置(線上&串講)
2. KVM 架構、安裝與配置、基本功能管理、高級功能管理
3. KVM 動態遷移、性能優化
4. Docker 架構、鏡像及容器操作
5. Dockerfile 生成鏡像、數據卷與數據容器、Docker 網路通信6.實現密鑰SSH 遠程登錄、構建 Nginx、構建 MySQL、構建LNAMP 架構、構建Tomcat
7. 容器日誌實戰
8. 基於 Kubernetes 構建Docker 集群

網站架構與運維自動化(48)

1. 社交網站架構(8 課時)
1) 搭建SVN 伺服器
2) 部署社交網站
3) 對關鍵伺服器進行雙機熱備
4) 對伺服器進行壓力測試及性能調優
2. 百萬PV 網站架構
Redis 主從復制的特點、Redis 的應用場景、搭建 Redis 主從復制
3. 千萬PV 網站架構
1) RabbitMQ 開源消息隊列系統的工作過程、使用場景、搭建RabbitMQ 集群
2) Jmeter 壓力測試工具
4. Ansible 或 SaltStack 自動化運維(項目案例)(8 課時)
5. MongoDB 部署(8 課時)
6. 其他擴展項目(16 課時,根據學員情況選擇)

雲計算(16)

雲 計 算 OpenStack( 項 目 案 例 ) 1)OpenStack 體系架構、各個組件的功能
2) 部署OpenStack 雲平台,完成相應的配置和管理任務
3) 在 OpenStack 平台內部署系統鏡像,並安裝網路服務

階段目標:
1. 面向虛擬化、雲計算和運維自動化高級應用,通過企業級項目積累運維經驗,練就爐火純

青的技術
2. 能夠掌握監控、分布式文件服務,熟練部署大型網站架構及優化,能夠搭建雲計算和運維自動化應用環境
3. 具備大型網站架構、雲計算運維的能力
4.

項目實施效果圖參考

階段四:Python 運維開發與大數據(80 課時)
模塊:Python 基礎、Python 運維開發、Web 前端基礎、Django Web 開發、Python 大數據

實訓模塊

實訓專題

Python 基礎(40)

1.Python 介紹與使用;Python 變數與數據類型;Python 字元
串與列表;Python 元組與字典

2.Python 條件判斷;Python 循環

3.Python 函數與模塊

4.認識面向對象;類與對象:類的定義、類與對象、類的屬性

5.類與對象:類的方法、類與對象綜合案例;類的封裝和繼承

(加答疑、練習,8 課時)

6.文件讀寫與指針、文件和目錄操作

7.異常處理

1.Python 操作資料庫:python 操作 mysql;Python 操作 redis

Python 高級與運維開發
(20)

2. 進程和線程、Socket 網路編程、Python 實現簡單的聊天程序
3. 運維應用:Python 實現子網劃分、python socket 做監控、多線程掃描埠、探測 Web 服務質量

4.其他擴展項目案例

一、網頁製作基礎:HTML+CSS

1.走進HTML;網頁穿上美麗外衣

2.列表表格及表單

Web 前端基礎

二、使用 jQuery 製作網頁特效

1.Javascript 基礎、Javascript 對象

2.jQuery 基礎

3.jQuery 選擇器與事件

1.搭建 Django Web 開發環境;創建 Web 項目及應用;MVC

模型;Django 的 MTV 框架

2.升級Web 項目及應用

Django Web 開發

3.Django 連接 MySQL 做增刪改查

4.Django 開發 Blog

5.通訊錄

6.開發並部署BBS 論壇項目

1.Hadoop 架構組成

2.離線安裝Hadoop 生態環境並配置應用

3.CDH 部署

Python 大數據

4.使用python 編寫 hadoop 程序

5.使用亞馬遜雲AWS 進行hadoop 大數據操作實例介紹

6.Hadoop python 框架 mrjob 使用實例介紹

7.Hadoop 在AWS 上運行的性能比較
階段目標:
1. 基於運維的開發,提升運維層次,打開職業發展空間
2. 能夠掌握Web 前端基礎、Django Web 開發、Python 運維開發,能夠搭建大數據應用環境, 打造自動化運維平台
3. 具備Web 開發、運維開發、大數據運維的能力

㈦ python 使用字典記錄同學的姓名及對應身高,輸入任意同學的姓名,查找並顯示所有高於此身高的同學信息。

d=dict(Darin=170,Toto=180,Trump=190)#錯在用中文逗號
name=raw_input('pleasetypethename:')
forkeyind.keys():#錯在key()
ifd[key]>d[name]:#這行錯在'name'
printkey,d[key]

㈧ 如何用python製作特定文章的字典

1、傳統的文字表達式:

123

>>> d={'name':'Allen','age':21,'gender':'male'}>>> d{'age': 21, 'name': 'Allen', 'gender': 'male'}

如果你可以事先拼出整個字典,這種方式是很方便的。
2、動態分配鍵值:

123456

>>> d={}>>> d['name']='Allen'>>> d['age']=21>>> d['gender']='male'>>> d{'age': 21, 'name': 'Allen', 'gender': 'male'}

如果你需要一次動態地建立一個字典的一個欄位,那麼這種方式比較合適。
字典與列表不同,不能通過偏移量進行復制,只能通過鍵來讀取或賦值,所以也可以這樣為字典賦值,當然訪問不存在的鍵會報錯:

12345678

>>> d[1]='abcd'>>> d{1: 'abcd', 'age': 21, 'name': 'Allen', 'gender': 'male'}>>> d[2]Traceback (most recent call last): File "<pyshell#9>", line 1, in <mole> d[2]KeyError: 2

3、字典鍵值表

123

>>> c = dict(name='Allen', age=14, gender='male')>>> c{'gender': 'male', 'name': 'Allen', 'age': 14}

因為這種形式語法簡單,不易出錯,所以非常流行。
這種形式所需的代碼比常量少,但是鍵必須都是字元串才行,所以下列代碼會報錯:

12

>>> c = dict(name='Allen', age=14, gender='male', 1='abcd')SyntaxError: keyword can't be an expression

4、字典鍵值元組表

123

>>> e=dict([('name','Allen'),('age',21),('gender','male')])>>> e{'age': 21, 'name': 'Allen', 'gender': 'male'}

如果你需要在程序運行時把鍵和值逐步建成序列,那麼這種方式比較有用。
5、所有鍵的值都相同或者賦予初始值:

123

>>> f=dict.fromkeys(['height','weight'],'normal')>>> f{'weight': 'normal', 'height': 'normal'}

以上這篇Python中創建字典的幾種方法總結(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

㈨ python 字典傳入案例代碼 有沒有大牛 解釋下代碼

前半部分 按行讀取 TB_VEHICLE.txt文件的內容 按逗號區分 生成truck_info_dict字典內容
後半部分 把輸入內容for line in sys.stdin: 按空格區分 傳遞到 seg ,比較 seg[0] in truck_info_dict and seg[5] == truck_info_dict[seg[0]]
得到 begin_end = seg[5] + "*" + seg[9]
很容易

㈩ 有沒有利用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 引擎,則都不會執行。

閱讀全文

與python字典實訓案例相關的資料

熱點內容
c523壓縮比 瀏覽:543
命令語氣的人什麼心態 瀏覽:435
程序員喜歡留指甲嗎 瀏覽:516
七牛雲伺服器收費標准 瀏覽:627
時光相冊加密空間密碼忘記 瀏覽:474
華為雲為用戶提供的服務雲伺服器 瀏覽:634
minecraftlinux伺服器搭建 瀏覽:376
linux命令新建文件 瀏覽:708
長線pdf 瀏覽:607
程序員電腦支持手寫 瀏覽:414
解壓頭戴式耳機推薦 瀏覽:344
紙條app上怎麼樣看對方主頁 瀏覽:883
編譯英語單詞怎麼寫 瀏覽:249
編譯原理和匯編原理的區別 瀏覽:864
如何給加密的pdf解密 瀏覽:770
華為盒子時間同步伺服器地址 瀏覽:95
python處理excel亂碼 瀏覽:391
mysql的命令行 瀏覽:822
jpeg採用什麼演算法 瀏覽:701
程序員紅軸薄膜 瀏覽:306