导航:首页 > 编程语言 > 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库相关的资料

热点内容
base64encoderjava 浏览:482
linux视频转换 浏览:694
linux与unixshell编程指南 浏览:131
vb6反编译程序错误 浏览:119
服务器弄挂有什么影响 浏览:300
安卓软件为什么运行不了 浏览:524
什么安卓手机是四方的 浏览:477
云服务器厂商租用多少钱 浏览:353
平安车贷解压要多久 浏览:416
乐一php程序员待遇 浏览:164
ZDM命令无法识别 浏览:922
解压小手工A4纸 浏览:983
钢筋加密区是几倍 浏览:671
编译程序代码软件 浏览:808
怎么恢复加密的东西 浏览:989
程序员卖茶 浏览:699
后端程序员英文 浏览:365
滴滴程序员平均月薪 浏览:593
如何使用ftp命令 浏览:790
小书亭下载的文件在哪手机文件夹 浏览:184