测试开发之Python核心笔记:认识Python

1. 认识Python

Python是一门动态的、强类型的语言,是目前非常流行的语言。流行的主要原因是Python 语言应用广泛,可以用应用在Web开发、爬虫、数据分析、软件测试和机器学习等多个领域。另外,Python语言简单易学,吸引了更多编程初学者的喜爱。Python语言简洁的语法和丰富的第三方库,使得业务开发的效率非常高。在自动化测试中,Python也是首选的编程语言,可以做接口测试、web测试、app测试、性能测试和测试平台开发。

Python测试开发核心笔记系列文章第一篇,先来认识Python这门编程语言。

1.1 Python 语言的特性

1.1.1 Python是强类型语言

强类型是针对弱类型而言的。对于强类型语言和弱类型语言并没有明确的定义,维基百科上这样说:

in general a strongly typed language is more likely to generate an error or refuse to compile a program if the argument passed to a function does not closely match the expected type. A very weakly typed language may produce unpredictable results or may perform implicit type conversion instead.

直观上来说,Python强类型表现在不允许两种不同类型的变量相互操作。比如,在python交互式命令行中输入下面的代码:

>>> b="a"
>>> a=1
>>> a+b

按回车键后,则会收到TypeError异常,表示 int 变量和 str 变量 不能用+操作符。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

常见的强类型语言有:

  • Python
  • Java

与之对应的是弱类型语言,比如 JavaScript,它就允许不同类型变量进行运算,比如:

var b = 'a';
var a = 1;
console.log(a + b ); //输出1a

JavaScript 在string 和 int 相加时,自动将int转化为 string。常见的弱类型语言有:

  • C
  • C++
  • PHP
  • Javascript

1.1.2 Python是解释型语言

Python编写的程序,在运行之前不需要进行编译,而是通过Python解释器对程序一边解释一边执行的。

1.1.3 Python是动态语言

Python因为没有编译阶段,所以对变量的数据类型是在程序执行期间决定的。也就是在编写代码的时候可以不指定变量的数据类型,在程序执行时根据赋给变量的对象类型来确定变量的数据类型。常见的动态语言包括:

  • Python
  • JavaScrpit
  • PHP

变量的类型在编译阶段就已经确定的,是静态类型语言。常见的静态类型语言包括:

  • C/C++
  • Java
  • Scala

1.2 书写格式

Python的书写格式规范主要涉及缩进格式、行间空行数、变量和等号空格等。 完整的Python 编码规范可以参考PEP8。如果使用Pycharm开发,遇到不符合规范的编码,Pycharm会有提示。

1.2.1 缩进

Python 最具特色的地方就是用缩进代替 Java、C++ 中的 {},缩进的层级结构表示代码的逻辑层次。Python 的缩进方法,一般为 4 个空格。下面这个例子来自Python著名的单元测试框架Pytest。

# content of test_demo.py
class TestClass:
    """
    测试类,可以有多个测试函数
    """

    def test_one(self):
        """第一个测试函数"""
        x = "this"
        # 验证this中含有h字符
        assert "h" in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, "check")
  • 代码行 class TestClass 与代码行 def test_one(self): 之间有 4 个字符的缩进;
  • 代码行 def test_one(self)assert也有4 个字符的缩进。

通过这种缩进层级结构,展现了代码的逻辑层次。

1.2.2 注释

注释可以起到一个说明和备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,清晰详细的注释让调用者对所调用函数的使用方法和逻辑更加清晰。强烈建议大家写代码的时候添加适当的注释。Python解释器对注释内容会忽略,不执行。

上面例子,第一行#开头的就是一个注释,说明这段代码是在test_demo.py这个文件中。""" “”"是一个多行注释,经常用于描述类、函数或方法的作用、参数类型和返回值等。

1.3 版本及安装

1.3.1 版本

Python官网在2020年4月20日发布了Python2的最后一个版本2.7.18。从此之后不再对Python2的全部版本进行支持。因此,建议大家从今天开始,学习和使用Python3.7及其以后的版本。

1.3.2 安装

通常的安装方法是,通过下载对应操作系统的安装包,通过安装包的方式安装Python。 下载地址:https://www.python.org/downloads/。

但是,我更推荐使用pyenv方式安装,pyenv使得在同一个系统上安装多个不同版本的Python变的简单。这部分计划在本专栏第二篇章,搭建测试开发环境那节介绍。

1.3.3 开发工具

强烈建议开发Python代码时使用Pycharm这个集成开发环境。它配置简单,完全为Python开发打造。会让我们写代码的效率更好,不容易出错。

Pycharm有两个版本,一个收费版本,一个社区版本。使用社区版本就足够满足我们日常的开发工作了。下载地址:https://www.jetbrains.com/pycharm/download/,选择Community版本。

1.4 变量

Python中的变量,就是代数中的变量概念一样。用来代表或者说指向一个具体的数值、字符串等对象。

1.4.1 变量命名

在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头。最好是具有实际意义的英文单词,这样可以通过变量名称了解它的实际意义。例如:age,my_age,_gender,edge_1等。

注意变量名不能与Python自带的关键字(keyword)同名。可以在Python的交互是命令行输入下面两行代码,如下所示:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

1.4.2 变量赋值

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。在Python交互式命令行输入:

>>> a=1  # a赋值为数值1
>>> a='s'  # a又被赋值为字符串s
>>> b=a  # 变量a赋值给变量b
>>> c=d=10  # c和d连续赋值为10
>>> a=a+'m'  # a变成sm
>>> b  # 依然是s

而且Python语言,在变量赋值之前,不需要声明变量,可以直接赋值。

当给变量a赋值为s时,即书写代码a = 's'时,Python解释器干了两件事情:

  1. 在内存中创建一个's'的字符串;
  2. 在内存中创建一个名为a的变量,并让a指向's'
  3. 当把一个变量a赋值给另一个变量b时,即上面代码中b=a,这个操作实际是把变量b指向变量a所指向的数据,即变量b也指向了变量a指向的's'
  4. a=a+‘m’,并不是让 a 的值拼接一个m,而是表示重新创建了一个新的sm 的对象,并让 a 指向它。但是 b 仍然不变,仍然指向 s这个对象。

1.4.3 数据类型

变量指向的对象,都有固定的类型,比如:

  • 整数
  • 浮点数
  • 字符串
  • 布尔值

可以通过type()函数查看变量的类型:

>>> a=10
>>> type(10)
<class 'int'>
>>> b='st'
>>> type(b)
<class 'str'>
>>> c=True
>>> type(c)
<class 'bool'>
>>> d=10.0
>>> type(d)
<class 'float'>

数据的类型用来表示对象的取值范围以及可以对它进行什么操作。
除了上面的数据类型,Python中还有元组、列表、字典、集合等类型。

1.5 面试题

  1. 什么是强类型语言?什么是弱类型语言?Python是强类型语言还是弱类型语言?
  2. Python语言如何区分代码之间的层次结构?
  3. 什么是注释?怎么样给Python代码增加注释?
  4. Python的变量命名规则是怎样的?
  5. Python内部的内置关键字有哪些,如何查看?
  6. Python的赋值语句怎么写?赋值时,Python解释器干了什么事情?
  7. 为什么编程语言要有不同的数据类型?Python语言如何查看一个对象的数据类型?

欢迎留言写下答案,欢迎关注作者公众号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值