Python基础

对于一名测试人员, 更准确的说, 作为一名想要提升工作效率的人
假若能够掌握一种语言会使效率大幅提升
比如说, 我最近学会了一门编写语言Markdowm
明显感觉到自己在写文章时速度有了明显的提升
多掌握一门语言, 会使你觉得这个世界变得更加美好了

Python哲学

输入import this

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

这就是Python哲学

输出与输入

输出

print('Good Job! ')

输入

input('Your name:')

引号与注释

引号

单引号, 双引号效果相同

注释
  • 单行注释使用引号#
  • 多行注释使用三引号''' '''

分支与循环

if语句
if x > 0:
    print('Good Job!')
elif x = 0:
    print('Nice Job!')
else:
    print('HaHa')
for语句

Python语言提供了for&while两种循环, 但从大多数程序员的使用情况来看, for更受欢迎, 因其更加简单, 灵活

for i in 'Hello World!':
    print(i)

for x in range(1, 10, 2):
    print(x)

range函数: range(start, end[,step])

数组与字典

  • 数组(list)
    用方括号[]表示, 中间使用逗号,来隔开
    允许在数组中任意地放置数字或字符串
    数组下标从0开始
    append()方法可以在数组末尾追加新的元素
  • 字典
    用花括号{}表示
    每一项皆成对出现
    一个key对应一个value, 之间使用冒号:隔开, {key:value}
    不同项之间使用逗号,隔开
    一个字典中的key必须独一无二, value可以相同
    keys()函数返回字典key的列表
    values()函数返回字典value的列表
    items()函数将所有字典项以列表形式返回

函数, 类, 方法

  • 函数: def fun():
  • 类和方法: class foo(object):
    面向对象编程, 一切皆为对象, 抽象的一组对象就是类
    一般在创建类时会首先声明初始化方法__init__()

模组

模组又称模块, 类库

引用模块

import this
from selenium import webdriver

若类库未安装, 使用 pip install ... 即可

Python引包机制:

  1. 创建一个新的 module 对象(它可能包含多个 module)
  2. 把这个 module 对象插到 sys.module 中;
  3. 装载 module 的代码(如果需要,则必须先编译);
  4. 执行新的 module 中对应的代码。
  5. 在执行第 3 步时,首先需要找到 module 程序所在的位置,搜索的顺序是:
    当前路径 (以及从当前目录指定的 sys.path),PythonPATH,再后是 Python 安装时设置的相关的默认路径。
    正因为存在这样的顺序,所以如果当前路径或 PythonPATH 中存在与标准 module同样的 module,则会覆盖标准 module。也就是说,如果当前目录下存在 xml.py,那么在执行import xml 时,导入的是当前目录下的module,而不是系统标准的 xml。
    了解了这些后,我们就可以先构建一个 package,以普通 module 的方式导入,这样即可直接访问此 package 中的各个 module。

异常

try:
    open('abc.txt', 'r')
except FileNotFoundError:
    print('异常了')

异常的抛出机制:

  1. 如果在运行时发生异常, 则解释器会查找相应的处理语句,称为handler
  2. 如果在当前函数里没有找到的话, 则它会将异常传递给上层的调用函数,看看那里能不能处理
  3. 如果在最外层(全局main)还是没有找到的话, 那么解释器就会退出, 同时打印出Traceback, 以便让用户找到错误产生的原因

虽然大多数错误会导致异常, 但异常并不代表错误, 有时他们只是一个警告, 有时是一个终止信号, 例如退出循环等

在Python中,所有的异常都是继承自BaseException, 包括Exception也是继承自BaseException, 所以, 可以使用BaseException来接收所有类型的异常.

try:
    open('abc.txt', 'r')
    print(123)
except BaseException:
    print('异常了')

对于上面的例子, 只要其中一行出现了异常就会 print()异常信息,但是当打印异常时,我们并不能准确地知道到底是哪一行代码引起了异常,那么如何让 Python 直接告诉我们异常的原因呢

try:
    open('abc.txt', 'r')
    print(123)
except BaseException as msg:
    print(msg)

输出结果: [Errno 2] No such file or directory: 'adb.txt'


我们在 BaseException 后面定义了 msg 变量用于接收异常信息,并通过 print 将其打印出来。

python中常见异常:

异常 描述
BaseException 新的所有异常的基类
Exception 所有异常的基类, 但继承自BaseException类
AssertionError assert语句失败
FileNotFoundError 试图打开一个不存在的文件或目录
AttributeError 试图访问的对象没有属性
OSError 当系统函数返回一个系统相关错误, 包括I/O故障, 如"找不到文件"或"磁盘已满"时,引发此异常
NameError 使用一个还未赋值对象的变量
IndexError 当一个序列超出了范围
SyntaxError 当解析器遇到一个语法错误时引发
KeyboardInterrupt Ctrl+C被按下, 程序被强行终止
TypeError 传入的对象类型与要求不符
异常的整体结构
try: # 尝试书写代码
    a = '异常测试'
    print(a)
except Exception as msg: # 异常确认, 当异常时执行
    print(msg)
else: # 当没有异常时执行
    print('没有异常')
finally: # 无论程序是否异常, 都会被执行
    print('测试结束')
抛出异常

print() 只能打印错误信息相比, raise方法能抛出异常信息.


num = 2
if num != 0:
    raise NameError('Not Zero')

输出结果:

Traceback (most recent call last):
  File "", line 2, in 
    raise NameError('Not Zero')
NameError: Not Zero

需要注意的是: raise只能使用Python提供的异常类, 如果自定义一个abcError的异常, 则python会告诉你abcError没有定义

新手提醒

  1. 项目不要创建在Python的安装目录中, 只要将python文件的路径配置到环境变量中, 任何目录下的python程序都可以被执行
  2. 项目的路径中不要出现中文空格
  3. 项目的目录与文件名不要与引用类库同名

你可能感兴趣的:(Python基础)