#!d:/Python/bin/python__author__ = 'stone'#引入oracle支持包import cx_Oracleimport tracebackfrom pip.backwardcompat import raw_input#定义函数#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++def querysal(conn, empnum): cur=conn.cursor() #执行语句 cur.prepare('select * from emp where empno = to_number(:id)') #传递绑定变量到对应的语句 cur.execute(None, {'id': empnum}) #print(cur) #将所有选定的行放入到res res = cur.fetchall() # print(len(res)) #迭代打印出查询到的内容 for r in res: print("姓名:"+str(r[1])+" 工号:"+str(r[0])+" 薪水:"+str(r[5])+" 月奖金:"+str(r[6])+"") if(len(res)==0): cur.close() return False cur.close() return True#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++conn=cx_Oracle.connect('scott/tiger@172.15.36.225/orcl')while(1): empnum=raw_input("请数据你的工号【0:退出】:").strip("\n") if(empnum.isdigit()):#如果输入值为数字,则执行程序 if(empnum is not "0"):#如果输入值不为0,则执行程序 if(querysal(conn,empnum)):#执行查询程序 continue#执行成功继续循环 else: print("工号不存在")#执行失败时提示工号不存在 else:#输入结果为0,退出程序 break #跳出循环,并结束脚本 else:#如果输入不为数字,则提示输入数字,并继续循环 print("请输入四位数工号") continueprint("脚本结束")conn.close()
循环和控制部分,主要是涉及到if elif else 和while的使用。比较上一个程序,添加了,更多的控制,防止出现异常。因为empno字段是number型,添加控制主要是为了防止输入字符型,导致程序失败。
还有就是在python中,不再使用(),[],{}来划分语句的级别,而使用tab(或四个空格)来控制程序的结构。
执行示例
逻辑 输入员工的员工号,查询对应的工资和奖金的信息。员工号为四位数的数字字符串。
方式一,调用系统默认的python
方式二,使用python文件都指定的python文件位置运行文件