• 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
    ", 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

    不断学习中。。。

  • 相关阅读:
    面向对象-类
    模块04
    总结
    昨天的新的解决方法
    感冒了~ vs中py和vb实现一个小算法
    vs2015社区版不支持installshield
    网站被黑了
    2018/11/18(python)
    2018/11/14
    2018/11/12(python)
  • 原文地址:https://www.cnblogs.com/hanerfan/p/3762851.html
Copyright © 2020-2023  润新知