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 "<pyshell#16>", line 2, in <module>
    raise NameError('Not Zero')
NameError: Not Zero

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

新手提醒

  1. 项目不要创建在Python的安装目录中, 只要将python文件的路径配置到环境变量中, 任何目录下的python程序都可以被执行
  2. 项目的路径中不要出现中文空格
  3. 项目的目录与文件名不要与引用类库同名
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,236评论 17 410
  • @贰拾贰画生 感谢简明Python教程 输入输出 输入:raw_input string = raw_input(...
    贰拾贰画生阅读 7,445评论 4 21
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 9,667评论 4 16
  • 爱到底是什么东西,为什么那么辛酸那么痛苦,只要还能握住它,到死还是不肯放弃,到死也是甘心。淡淡的感情从开始的第一次...
    阿昕小章鱼阅读 3,021评论 0 4
  • 我总是个超不自信的人,总觉得自己收获的一些都是因为运气,而总感觉运气好好哦~希望越画越好吧!
    princess1401阅读 2,885评论 6 12