python MySQLdb模块介绍

当我们需要python操作mysql数据库时,可以安装MySQLdb模块以支持mysql的操作。
1、安装MySQLdb模块
因为CentOS有现成的rpm包,所以我们可以选择yum安装。

  1. yum install MySQL-python

2、第一个示例

  1. #!/usr/bin/python
  2. import MySQLdb as mdb  #导入MySQLdb模块为mdb
  3. con=None #初始化con为None
  4. con=mdb.connect(‘localhost’,’root’,’root’,’mysql’) #连接数据库,参数依次为主机,用户,密码,数据库
  5. cur=con.cursor() #取得cursor对象,为了能遍历数据。
  6. cur.execute("select version()") #执行查询语句
  7. data=cur.fetchone() #取一条数据
  8. print "Database version: %s " % data #打印数据
  9. con.close() #关闭连接

3、创建并填充表

  1. #!/usr/bin/python
  2. import MySQLdb as mdb
  3. con = mdb.connect(‘localhost’, ‘testuser’, ‘test623’, ‘testdb’);
  4.  
  5. with con:
  6.     
  7.     cur = con.cursor()
  8.     cur.execute("CREATE TABLE IF NOT EXISTS
  9.         Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))") #创建表格
  10.     cur.execute("INSERT INTO Writers(Name) VALUES(‘Jack London’)")  #填充数据
  11.     cur.execute("INSERT INTO Writers(Name) VALUES(‘Honore de Balzac’)")
  12.     cur.execute("INSERT INTO Writers(Name) VALUES(‘Lion Feuchtwanger’)")
  13.     cur.execute("INSERT INTO Writers(Name) VALUES(‘Emile Zola’)")
  14.     cur.execute("INSERT INTO Writers(Name) VALUES(‘Truman Capote’)")

3、检索数据

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import MySQLdb as mdb
  5. import sys
  6.  
  7.  
  8. con = mdb.connect(‘localhost’, ‘testuser’,
  9.         ‘test623’, ‘testdb’);
  10.  
  11. with con:
  12.  
  13.     cur = con.cursor()
  14.     cur.execute("SELECT * FROM Writers")
  15.  
  16.     rows = cur.fetchall()  #把所有数据以元组类型赋值给rows
  17.  
  18.     for row in rows:  #循环打印数据
  19.         print row

MySQLdb文档:http://mysql-python.sourceforge.net/MySQLdb-1.2.2/

python习题答案

Q1答案:

  1. for i in range(1,5):
  2.         for j in range(1,5):
  3.                 for k in range(1,5):
  4.                         if (i!=j) and (i!=k) and (j!=k):
  5.                                 print i,j,k

Q2答案:

  1. bonus10=100000*0.1
  2. bonus20=bonus10+200000*0.075
  3. bonus40=bonus20+400000*0.05
  4. bonus60=bonus40+600000*0.03
  5. bonus100=bonus60+1000000*0.015
  6.  
  7. i=int(raw_input("input gain:"))
  8. if (i<=100000):
  9.         bonus=i*0.1
  10. elif (i>=100000):
  11.         bonus=bonus10+(i-100000)*0.075
  12. elif (i>=200000):
  13.         bonus=bonus20+(i-200000)*0.05
  14. elif (i>=400000):
  15.         bonus=bonus40+(i-400000)*0.03
  16. elif (i>=600000):
  17.         bonus=bonus60+(i-600000)*0.015
  18. else:
  19.         bonus=bonus100+(i-1000000)*0.01
  20.  
  21. print "bonus=",bonus

Q3答案:

  1. import math
  2.  
  3. for i in range(100000):
  4.         x=int(math.sqrt(i+100))
  5.         y=int(math.sqrt(i+268))
  6.         if (x*x==i+100) and (y*y==i+268):
  7.                 print i

Q4答案:

  1. year=int(raw_input("input year:"))
  2. month=int(raw_input("input month:"))
  3. day=int(raw_input("input day:"))
  4.  
  5. months = (0,31,59,90,120,151,181,212,243,273,304,334)
  6. if (1<=month<=12):
  7.         days=months[month-1]+day
  8. else:
  9.         print "month errors!"
  10.  
  11. leap=0
  12. if ((year%4==0) and (year%100!=0)) or (year%400==0):
  13.         leap=1
  14. if (leap==1) and (month>=2):
  15.         days+=1
  16. print ‘it is the %dth day.’ % days

Q5答案

  1. l=[]
  2. for i in range(3):
  3.         l.append(int(raw_input("input a number:")))
  4. l.sort()
  5. print l

Q6答案

  1. print "*" * 10
  2. print "*        *n" * 4,
  3. print "*" * 10
  4. print "*n" * 4

python习题(不定时更新)

Q1

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

Q2

题目:企业发放的奖金根据利润提成。
1、利润(I)低于或等于10万元时,奖金可提10%;
2、利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
3、20万到40万之间时,高于20万元的部分,可提成5%;
4、40万到60万之间时高于40万元的部分,可提成3%;
5、60万到100万之间时,高于60万元的部分,可提成1.5%;
6、高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?

Q3

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

Q4

题目:输入某年某月某日,判断这一天是这一年的第几天?

Q5

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

Q6

用*号输出P字母的图案

习题答案:http://devops.webres.wang/2012/08/python-exercise-answers/