Python基础(2)

  1、MySQL API

  1)安装

  在https://pypi.python.org/pypi/MySQL-python下载MySQL-python包 -> 解压后进入目录,先后执行sudo python setup.py build和sudo python setup.py install。

  可能出现的错误及解决方案:

  (1)sudo python setup.py build时出现错误EnvironmentError: mysql_config not found:先执行sudo apt-get install libmysqld-dev修复问题;

  (2)sudo python setup.py install时出现错误pymemcompat.h:10:20: fatal error: Python.h: 没有那个文件或目录:先执行sudo apt-get install python-dev修复问题。

  2)使用

>>> import MySQLdb
>>> db = MySQLdb.connect("192.168.0.1", "user", "passwd", "db") # 打开数据库连接 >>> cursor = db.cursor() # 获取操作游标 >>> cursor.execute("show tables") >>> rows = cursor.fetchall() # cursor.fetchone()获取"结果集指针"当前所指的一条记录;cursor.rowcount获取结果集大小 >>> for row in rows: ... print row[0] # row是一个元组 ... test1 test2 test3 >>> db.close() # 关闭数据库连接

  另外,Python DB API的事务还提供了两个方法:db.commit()和db.rollback()。

 

  2、异常处理

>>> try:
...     1 + "abc"
...     print "shit"
... except TypeError:                    # 此处可以没有或有多种异常
...     print "TypeError Exception occurs"
... else:                                # 没有异常发生
...     print "successfully"
... 

  另外,关键词finally可以定义"无论是否发生异常都会执行"的分支

>>> def MyConvert(var):
...     try:
...         return int(var)
...     except ValueError, Argument:        # ValueError异常类的实例Argument
...         print "The argument does not contain numbers\n", Argument
...         return Argument
... 
>>> c = MyConvert("xyz")
The argument does not contain numbers
invalid literal for int() with base 10: 'xyz'
>>> c
ValueError("invalid literal for int() with base 10: 'xyz'",)
>>> int("xyz")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'xyz'

  用户自定义异常:

>>> class NetworkError(RuntimeError):                      # 继承自RuntimeError类
...     def __init__(self, arg=()):  
...         self.args = arg
... 
>>> try:
...     raise NetworkError(("Bad hostname", "Bad port"))   # raise触发异常
... except NetworkError, e:                                # e是NetworkError类的实例
...     print e.args
... 
('Bad hostname', 'Bad port')

  3、获取命令行参数

import sys

print sys.argv[0]    # 脚本名
print sys.argv[1]    # 第一个参数

  4、输入输出

  1)输入

>>> str=raw_input("Enter your input:")  # 该函数从标准输入读取一行并返回一个字符串(去掉结尾的换行符)
Enter your input:hello world
>>> print str
hello world

>>> str=input("Enter your input:");    # 该函数和raw_input基本可以互换,但它会假设输入是Python表达式,并返回运算结果
Enter your input:[x * 5 for x in range(2, 10, 2)]
>>> print str
[10, 20, 30, 40]

 

 

  参考资料:

  http://www.w3cschool.cc/python/python-tutorial.html

 

 

 

不断学习中。。。

posted on 2014-05-31 22:08  han'er  阅读(402)  评论(0编辑  收藏  举报

导航