注释

我们在文言文中经常会看到注释,注释可以帮助读者对文章的理解。代码中的注释也是一样,优秀的代码注释可以帮助读者对代码的理解。当然在代码编写过程中,注释的使用不一定只是描述一段代码,也可能的是对代码的调试。

Python注释一共有# 、''' ''' 、""" """三种方式。我们在编写代码中,一般用#进行单行注释,''' '''或""" """进行多行注释。如下代码所示:

# 这是一段注释

'''
这是多行注释,使用英文单引号。
这是多行注释,使用英文单引号。
这是多行注释,使用英文单引号。
''' """
这是多行注释,使用英文双引号。
这是多行注释,使用英文双引号。
这是多行注释,使用英文双引号。
""" # 单行注释 这是一个加法
def add(a, b):
return a + b
# 先把print(add(1, 2))注释掉,下次如果用到print(add(1, 2))把#去掉
# print(add(1, 2))

我们右击运行,发现不会输出任何内容,虽然我们定义了一个add函数,但是并没有调用add函数,当我们把# print(add(1, 2))的#去掉时,再右击运行,打印台会输出3。关于函数的使用,会在后面内容进行介绍。

变量

变量的概念和数学方程式变量是一致的。比如一元一次方程 x+1>5 ,x就是一个变量。

在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。变量在程序中用一个变量名表示,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,不能使用关键字作为变量。如下代码所示:

a = [1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA']]
A = 1.1
b = '1'
B = 'test'
c = True
_C = False
d1 = 'test'
name = {'testDog', 'Jim', 'Mary', 'Jim', 'Jack', 'Rose'}

Python中关键字如下所示:

and Exec not
assert Finally or
break For pass
class From print
continue Global raise
def If return
del Import try
elif In while
else Is with
except lambda yield

缩进

一般当我们定义一个函数、使用if…else、while等时,第二行都必需要进行缩进。使用四个空格或键盘上的tab键表示缩进。如下代码所示:

def add(a, b):
return a + b if 0 < 1:
print("True")

如果我们缩进位置不对时,运行下面这段代码一般会报IndentationError: expected an indented block错误。如下代码所示:

def add(a, b):
return a + b print(add(1, 2))

input和print

input意思是等待用户输入,print我们之前也已经用过,表示打印的意思。我们运行下面这段代码,会发现Pycharm打印台需要我们输入2个数,当我们输入第一个数字时,按下Enter,会让我们输入第二个数,输完第二个数,按Enter,程序运行结束。当然下面这段代码是有Bug的,猜猜Bug在哪里呢?如下代码所示:

a = input("请输入第一个数:")
b = input("请输入第二个数:")
print("输入的2个数和为:", (a + b)

上面代码将输出如下内容:

请输入第一个数:1

请输入第二个数:2

输入的2个数和为:3

import与from...import

python 用 import 或者 from...import 来导入相应的模块。

将整个模块(somemodule)导入,格式为: import somemodule

从某个模块中导入某个函数,格式为: from somemodule import somefunction

从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import *

import

import time

print(time.strftime('%Y.%m.%d',time.localtime(time.time())))

上面代码将输出如下内容:

2019.02.01

from...import

模块导入函数

from datetime import datetime
print(datetime.now())

上面代码将输出如下内容:

2019-02-01 10:14:45.614800

从.py文件导入

已知目录结构如下:

test1.py代码如下:

def add(a, b):
return a + b

test2.py代码如下:

from test1 import add

print(add(1,2))

运行test2.py打印如下内容:

3

注意,该目录结构有一个__init__.py文件,这个__init__.py文件声明该目录是一个python模块。小伙伴可以试试去掉__init__.py后是否可以执行。

定义一个函数

def 函数名(参数列表):
函数体

函数实例

def hello():
print("hello world")

创建一个类和对象

class People():
"""
定义一个人类
"""
def __init__(self, name):
self.name = name def my_name(self):
print("我的名字是:"+self.name) bobby = People('bobby') # 创建一个对象
bobby.my_name()

上面代码将输出如下内容:

我的名字是:bobby

注意

  1. 第一种方法init()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法。
  2. self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

我们创建了一个People类,People类有一个构造函数,当我们创建一个People类的对象时需要传入一个参数,创建的对象可以调用People类中的方法

异常处理

我们在编写Python程序时,经常会因为一些错误导致剩下的代码无法执行,为了解决这个问题,Python内置了一套try...except...finally...的错误处理机制。我们先看一段会抛出异常的代码

a = 10

if a > 0:
b = a / 0
else:
b = a + 1 print(b)

上面代码将输出如下内容:

Traceback (most recent call last):

File "F:/新建文件夹/blogApiTest/test5.py", line 42, in

b = a/0

ZeroDivisionError: division by zero

上面代码比较简单,我们发现,我们的当a>0时,我们将执行 b = a / 0,除数为0。我们都知道除数不能为0,所以Python程序会 抛出异常,那么我们怎么才能接受这个异常并使程序继续执行下去呢?我们可以使用try...except...finally. 如下代码所示:

try:
a = 10
if a > 0:
b = a / 0
else:
b = a + 1
print(b)
except ZeroDivisionError as e:
print(e)
finally:
print("end")

上面代码将输出如下内容:

division by zero

end

我们将我们的程序放在try里面,如果发生错误抛出ZeroDivisionError 异常,这里为了简便,把ZeroDivisionError 重命名为e,当然,我们也可以不使用finally,可以直接使用try...except 。这里有个问题,我是怎么知道会抛出ZeroDivisionError 异常的呢?我将给大家罗列一些常见异常,如下表格所示:

异常 描述
AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
NameError 使用一个还未被赋予对象的变量
SyntaxError 语法错误
TypeError 传入对象类型与要求的不符合
ValueError 传入一个调用者不期望的值,即使值的类型是正确的

当然如果我们不知道会抛出什么异常,我们可以使用BaseException,因为所有的错误类型都继承自BaseException,所以在使用except时需要注意的是,它不但捕获该类型的错误,还把其子类也“一网打尽”。比如:

try:
a = 10
if a > 0:
b = a / 0
else:
b = a + 1
print(b)
except BaseException as e:
print(e)

上面代码将输出如下内容:

division by zero

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

3. Python基础语法的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  3. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  4. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  5. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  6. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  7. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  8. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  9. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  10. python学习第三讲,python基础语法之注释,算数运算符,变量.

    目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...

随机推荐

  1. (转)MAVEN的安装和Myeclipse+maven的配置和使用

    转:https://blog.csdn.net/shikongshengzhu/article/details/51779159 MAVEN的安装和Myeclipse+maven的配置和使用 步骤如下 ...

  2. 92、R语言分析案例

    1.读取数据 > bank=read.table("bank-full.csv",header=TRUE,sep=";") > 2.查看数据结构 & ...

  3. grub命令详解

    在grub下引导linux:其步骤如下;a 进入grub的命令模式.b 先熟悉一下grub 的一些命令 grub>help c 熟悉一下cat命令d root指令来指定/boot所在的分区e k ...

  4. 接口自动化测试框架-AIM2.0

    跳转到3.0版本https://www.cnblogs.com/df888/p/12031649.html AIM是我用python搭建的第一款接口自动化测试框架,随着技术的提升,框架也在升级,故有了 ...

  5. haproxy附加

    1.安装haproxy yum -y install haproxy 2.编写文件  vim /etc/haproxy/haproxy.cfg

  6. 转 mysql查询结果输出到文件

    mysql查询结果输出到文件   mysql查询结果导出/输出/写入到文件 方法一:直接执行命令:mysql> select count(1) from table  into outfile ...

  7. 把我坑惨的一个MySQL双引号!

    来源:For DBA www.fordba.com/mysql-double-quotation-marks-accident.html 一.前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找 ...

  8. void v.s. void *

    在學校老師一定都會教void是無型態的返回值例如 void swap(int *a, int *b){      int temp = *a;      *a = *b;      *b = temp ...

  9. CTU OPEN 2017 Ice cream samples /// 尺取法

    题目大意: 给定n k 接下来n行 给定n个摊位的冰淇淋信息 首先给一个t 表示这个摊位有t个冰淇淋 接下来t个数表示对应冰淇淋的品种 走到连续的几个摊位 会买下走过的摊位的所有的冰淇淋 求 要买下所 ...

  10. adb基本操作

    用途 命令 备注 安装app adb install xxx.apk -l 锁定该应用程序-r 替换已存在的应用程序,也就是说强制安装-t 允许测试包-s 把应用程序安装到sd卡上-d 允许进行降级安 ...