【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测试开发栈】—python内存管理机制(二)—垃圾回收
在上一篇文章中(python 内存管理机制-引用计数)中,我们介绍了python内存管理机制中的引用计数,python正是通过它来有效的管理内存.今天来介绍python的垃圾回收,其主要策略是引用计数 ...
- 【python测试开发栈】python内存管理机制(一)—引用计数
什么是内存 在开始进入正题之前,我们先来回忆下,计算机基础原理的知识,为什么需要内存.我们都知道计算机的CPU相当于人类的大脑,其运算速度非常的快,而我们平时写的数据,比如:文档.代码等都是存储在磁盘 ...
- 【python测试开发栈】带你彻底搞明白python3编码原理
在之前的文章中,我们介绍过编码格式的发展史:[文章传送门-todo].今天我们通过几个例子,来彻底搞清楚python3中的编码格式原理,这样你之后写python脚本时碰到编码问题,才能有章可循. 我们 ...
- 【python测试开发栈】—理解python深拷贝与浅拷贝的区别
内存的浅拷贝和深拷贝是面试时经常被问到的问题,如果不能理解其本质原理,有可能会答非所问,给面试官留下不好的印象.另外,理解浅拷贝和深拷贝的原理,还可以帮助我们理解Python内存机制.这篇文章将会通过 ...
- 【python测试开发栈】—帮你总结Python os模块高频使用的方法
Python中的os模块是主要和系统操作相关的模块,在平时的工作中会经常用到,花时间整理了os模块的高频使用方法,同时整理出使用时需要注意的点.归纳来讲,os模块的方法可以分为:目录操作.文件操作.路 ...
- 【python测试开发栈】帮你总结python random模块高频使用方法
随机数据在平时写python脚本时会经常被用到,比如随机生成0和1来控制逻辑.或者从列表中随机选择一个元素(其实抽奖程序也类似,就是从公司所有人中随机选择中奖用户)等等.这篇文章,就帮大家整理在pyt ...
- 《Python测试开发技术栈—巴哥职场进化记》—前言
写在前面 今年从4月份开始写一本讲Python测试开发技术栈的书,主要有两个目的,第一是将自己掌握的一些内容分享给大家,第二是希望自己能系统的梳理和学习Python相关的技术栈.当时我本来打算以故事体 ...
- 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”
上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...
- 《Python测试开发技术栈—巴哥职场进化记》—初来乍到,请多关照
上文<巴哥职场进化记-Python测试开发技术栈>开篇讲到巴哥毕业初到深圳,见到了来自五湖四海的室友.一番畅聊之后,抱着对未来职场生活的期待,大家都进入了梦乡.今天我们来看看巴哥第一天上班 ...
随机推荐
- KMP算法复习笔记
KMP 算法 KMP 算法是一种改进的字符串匹配算法,KMP 算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的.具体实现就是实现一个next()函数,函数本身包含了 ...
- [Luogu4550] 收集邮票
题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮票,所 ...
- opencv实践::透视变换
问题描述 拍摄或者扫描图像不是规则的矩形,会对后期处理产生不 好影响,需要通过透视变换校正得到正确形状. 解决思路 通过二值分割 + 形态学方法 + Hough直线 +透视变换 #include &l ...
- java源码解析
String深入解析 String具有不变性的原因: String被final修饰,它不可能被继承,也就是任何对String的操作方法,都不会被继承覆写 String中保存数据的是一个char数组的v ...
- php是做前端的吗?
php是做前端的吗 不是,php是后台脚本语言,由服务器执行. PHP即“超文本预处理器”,是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语 ...
- AB实验的高端玩法系列2 - 更敏感的AB实验, CUPED!
背景 AB实验可谓是互联网公司进行产品迭代增加用户粘性的大杀器.但人们对AB实验的应用往往只停留在开实验算P值,然后let it go...let it go ... 让我们把AB实验的结果简单的拆解 ...
- Java 中的 final、finally、finalize 有什么不同?
Java 中 final.finally.finalize 有什么不同?这是在 Java 面试中经常问到的问题,他们究竟有什么不同呢? 这三个看起来很相似,其实他们的关系就像卡巴斯基和巴基斯坦一样有基 ...
- 远程控制服务(SSH)之Linux环境下客户端与服务端的远程连接
本篇blog将讲述sshd服务提供的两种安全验证的方法,并且通过这两种方法进行两台Linux虚拟机之间的远程登陆. 准备工作: (1) 准备两台安装有Linux系统的虚拟机,虚拟机软件采用VM ...
- MYSQL DATE_FORMAT参数列表及用法
MYSQL DATE_FORMAT参数列表及用法 主要涉及用法 DATE_SUB(DATE, INTERVAL EXPR TYPE) DATE_FORMAT(DATE,FORMAT) REPLACE( ...
- 关于Java 项目的思考总结
Java 项目思考总结 前言 今天是2017年3月25日,笔者已经毕业半年,工作经验一年. 正好有心思写这个总结. 持续开发 对于Java项目,我所接触的一般就是JavaWeb项目和 Java Jar ...