導航:首頁 > 編程語言 > pythonking庫

pythonking庫

發布時間:2023-09-24 23:56:40

⑴ 如何在python下連接Oracle資料庫

本文實例講述了python連接oracle資料庫的方法,分享給大家供大家參考。具體步驟如下:
一、首先下載驅動:(cx_Oracle)
http://www.python.net/crew/atuining/cx_Oracle/
不過要注意一下版本,根據你的情況加以選擇。
二、安裝:
首先配置oracle_home環境變數
執行那個exe安裝程序就可以了,它會一個cx_Oracle.pyd到Libsite-packages目錄下。
如果是linux,執行

python setup.py build
python setup.py install

三、執行一段測試程序:

import cx_Oracle

con = cx_Oracle.connect( "xjtu_test", "37343734","xjtu.world")
cursor = con.cursor()
cursor.close()
con.close()

里邊connect中的3個參數從左到右分別是:user, pass, TNS。
那個TNS可以用Oracle客戶端工具中的Net Configuration Assistant來配置。

四、具體的cx_Oracle API可以參考:
http://www.python.net/crew/atuining/cx_Oracle/html/cx_Oracle.html
五、示例:

>>> import cx_Oracle
>>> conn=cx_Oracle.connect ('scott/tiger@oratest')
>>> curs=conn.cursor ()
>>> sql='select * from emp'
>>> rr=curs.execute (sql)
>>> row=curs.fetchone()
>>> row
(7369, 'SMITH', 'CLERK', 7902, datetime.datetime(1980, 12, 17, 0, 0), 800.0, None, 20)
>>> while row:
(ID,NAME)=(row[0],row[1])
row=curs.fetchone ()
print ID,NAME

7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 日常
7934 MILLER

如果使用windows平台,執行那段測試代碼時你肯定遇到問題了,一般會有以下問題:
① import cx_Oracle 時報告找不到OCI.DLL:
到裝了Oracle的機器上找一個,然後到Libsite-packages目錄下就可以了。
② cx_Oracle.connect 時報告RuntimeError: Unable to acquire Oracle environment handle:
這個比較麻煩,按以下步驟來解決:(可能不需要所有的步驟,我沒有確認,不過把以下步驟都執行了,確實問題就解決了)
首先,確認你是在控制台下邊來執行這個python腳本的。而不是某些ide,例如:PyDev(它們似乎無法載入os的環境變數)。
其實,在本機安裝Oracle(只安客戶端工具就可以了)。
最後,添加以下環境變數:(我給出我的,換成你自己的路徑就可以了)

ORACLE_HOME=D:OracleOra81
PATH=D:OracleOra81bin;

希望本文所述對大家的Python程序設計有所幫助。

⑵ 怎樣python 寫一個撲克和骰子的程序,模擬的5骰子的滾動,至多三次,具體要求如下:

參考下面的代碼.


play 可能有問題,主要是沒說清楚在保留牌的時候, 輸入Ace 或者 "Ace Ace" 有什麼區別,到底是輸入一次 Ace 保留手上所有的 Ace 還是只保留一個,這個沒說清楚。看例子,這兩種用法都有,我按照輸入了幾個就保留幾個來做的。


simulate 沒問題,和圖片中的結果完全一樣


必須用 python 3


importrandom
importcollections

_dice_type=['Ace','King','Queen','Jack','10','9']

_hand_mapping=collections.OrderedDict([
('5kind','Fiveofakind'),
('4kind','Fourofakind'),
('full','Fullhouse'),
('straight','Straight'),
('3kind','Threeofakind'),
('2pair','Twopair'),
('1pair','Onepair'),
('bust','Bust'),
])

def_check_hand(dices):
counter=collections.Counter(dices)
iflen(counter)==1:
return'5kind'

sorted5=counter.most_common(5)
ifsorted5[0][1]==4:
return'4kind'

ifsorted5[0][1]==3:
ifsorted5[1][1]==2:
return'full'
else:
return'3kind'

ifsorted5[0][1]==2:
ifsorted5[1][1]==2:
return'2pair'
else:
return'1pair'

iflen(counter)==5:
dtype=sorted5[0][0]
forxinsorted5:
ifdtype!=x[0]:
break
dtype+=1
else:
return'straight'

return'bust'

defplay():
dices=[]
retry=0
whileTrue:
remain=5-len(dices)
ifremain<=0:
break

dices.extend([random.randint(0,5)forxinrange(remain)])

print("Therollis:{}".format(
"".join([_dice_type[d]fordinsorted(dices)])
))
print("Itisa{}".format(_hand_mapping[_check_hand(dices)]))

ifretry>1:
break


prompt="{}roll?".format(
"second"ifretry==0else"third"
)

whileTrue:
answer=input(prompt).lower()
ifanswer=='all':
break

answer=[x.capitalize()forxinanswer.split()]
ifset(answer).issubset(set(_dice_type)):
break
print("Thatisnotpossible,tryagain!")

retry+=1
ifanswer=='all':
print("Ok,done")
break

tmp=dices
dices=[]
forxintmp:
if_dice_type[x]inanswer:
dices.append(x)
answer.remove(_dice_type[x])

defsimulate(n,debug=False):
result=dict.fromkeys(_hand_mapping.keys(),0)
for_inrange(n):
dices=[random.randint(0,5)forxinrange(5)]
ifdebug:
print("DEBUG:","".join([_dice_type[d]fordinsorted(dices)]))
result[_check_hand(dices)]+=1

fork,vin_hand_mapping.items():
cnt=result[k]
print("{:<16s}:{:.2f}%".format(v,100*cnt/n))
閱讀全文

與pythonking庫相關的資料

熱點內容
程序員吃雞蛋炒菜 瀏覽:173
在哪裡看俄羅斯電視劇app 瀏覽:308
怎麼找資料庫伺服器地址 瀏覽:486
伺服器調試怎麼翻譯 瀏覽:921
php如何處理ajax請求 瀏覽:211
php數組下標存在 瀏覽:706
php獲取ip歸屬地 瀏覽:175
撩女程序員怎麼辦 瀏覽:508
百度伺服器做什麼 瀏覽:192
打開軟體加速伺服器有什麼危害 瀏覽:87
php去除數組下標 瀏覽:794
ipad的app內容哪裡看 瀏覽:284
遇見空間app在哪裡 瀏覽:547
用命令對一個文件內容進行統計 瀏覽:317
華為交換機配置命令縮寫 瀏覽:344
鏈接伺服器出現問題怎麼處理 瀏覽:833
華為手機怎麼打開加密 瀏覽:676
開利中央空調壓縮機 瀏覽:742
程序員面臨脫發 瀏覽:872
javaweb管理系統源碼下載 瀏覽:733