#!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文件位置运行文件