【python测试开发栈】python基础语法大盘点

周边很多同学在用python,但是偶尔会发现有人对python的基础语法还不是特别了解,所以帮大家梳理了python的基础语法(文中的介绍以python3为例)。如果你已然是python大牛,可以跳过这篇文章。

编码

python3的默认编码格式是:UTF-8 ,换句话说也就是:如果不在文件头部声明编码格式,python解释器默认以UTF-8的方式来读取python文件。作为对比,我们知道python2的默认编码格式是ascii,所以假如在python2文件中使用了中文,必须在文件头部声明gbk编码:

# 修改编码格式
#coding=gbk # hello world
print ("Hello, Python!")

这会告诉python解释器,以gbk的方式来读取python文件,这样python解释器就能正确的处理中文字符了。关于python编码这一块涉及的内容挺多,我会单独再写一篇文章来讲解。

标识符

通俗的讲标识符就是:给计算机程序里面的数据,起的名字,就好比现实世界中,每个人都有名字一样。在程序中比较常见的变量名、方法名、类名都属于标识符,标识符有一些通用的规定:

  • 不能和关键字同名。(下一小节会提到关键字)
  • 标识符不能重名。(不过这个有一定的作用范围,不同类型的标识符,作用范围也不同。就好比,在你家里,不可能有人和你重名吧!)
  • 只能由字母、数字、下划线组成。但是不能以数字作为开头,同时字母大小写是有区别的。
  • 命名规则:
    • 在java语言中,常见的是驼峰命名法 ,也就是所有单词的首字母需要大写,比如:声明一个变量:firstCounter。需要注意的是对于 变量和方法,名称的首个字母需要小写。
    • 在python语言中,因其完全遵循PEP8编码格式,所以其命名方式是:对于变量用_来连接,比如:first_counter。需要注意的是Python中的类还是使用的驼峰命名法。个人感觉PEP8的命名方式不如驼峰命名法直观,但是还是建议大家遵循官方的命名建议。

python关键字

在python中预留了很多关键字,这些关键字是python解释器的约定,比如:True和False,当我们在使用关键字时,python解释器就能知道具体的含义是什么。关键字比较多,完全没必要记忆,平时工作中会经常用到,另外使用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']

注释

python中单行注释可以使用#,多行注释可以使用''' 或者"""""",另外需要注意Python的方法注释是写在方法体里面的,这和java语言有区别。我们来举个例子:

def test_method():
"""
todo something
:return:
"""
# 这里放你需要放的逻辑 '''
这里是单引号多行注释
这里是单引号多行注释
这里是单引号多行注释
'''
"""
这里是双引好多行注释
这里是双引好多行注释
这里是双引好多行注释
"""
pass

代码行与缩进

上面也提到,因为python是遵循PEP8规范的,所以有严格的缩进要求,其用缩进来表示代码块,不像java,用{}来表示一个代码块。举个例子:

def test_code():
ok = False
# 正确的代码缩进,同一级别的代码缩进必须一致
if ok:
print("True")
print("Answer")
else:
print("False")
print("Answer") # 错误的代码缩进,这样相当于print("Answer")又在print("True")的下一级
# 会抛出异常 IndentationError: unexpected indent
if ok:
print("True")
print("Answer")
else:
print("False")
print("Answer")

所以建议大家平时在开发过程中,使用pycharm等IDE,因为它可以自动帮你检查代码的格式是否正确。

import 与 from…import

在之前的文章里我们也详细介绍过python模块的导入方式:,这里就简单提一下两者的区别:

  • import一般是将整个module导入到项目中。
  • from…import可以控制导入的粒度:可以导入某个module的某个方法、或者多个方法。

格式化与打印

在python中我们可以使用print来打印内容,同时可以使用'xxxx'.format()这种方法来格式化输出内容,比如:

def test_print():
# 1. 打印内容后不换行,不加end参数,默认是换行的
print('this is a test', end="") # 2. 使用String.format
print("{}.{}".format("hello", "world")) # 3. 将输出的值转为字符串—str,将值转化为适用于人阅读的字符串形式
x = 1/7
print(str(x)) # 4. 将输出的值转为字符串—repr(),将值转换成解释器读取的字符串形式
x = 1/7
print(repr(x))

总结

上面总结了python一些基础的用法和概念,算是给初学者对python的一个初印象,后续会围绕着python测试开发技术栈相关技术进行更深层次的介绍。

【python测试开发栈】python基础语法大盘点

上一篇:《Python测试开发技术栈—巴哥职场进化记》—前言


下一篇:Java代理模式——静态代理模式