3. Python基础语法
注释
我们在文言文中经常会看到注释,注释可以帮助读者对文章的理解。代码中的注释也是一样,优秀的代码注释可以帮助读者对代码的理解。当然在代码编写过程中,注释的使用不一定只是描述一段代码,也可能的是对代码的调试。
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 | |
| 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
注意:
- 第一种方法init()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法。
 - 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基础语法的更多相关文章
- python之最强王者(2)——python基础语法
		
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
 - Python 基础语法(三)
		
Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...
 - Python 基础语法(四)
		
Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...
 - Python 基础语法(二)
		
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
 - Python 基础语法
		
Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...
 - 吾八哥学Python(四):了解Python基础语法(下)
		
咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...
 - python学习第五讲,python基础语法之函数语法,与Import导入模块.
		
目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...
 - python学习第四讲,python基础语法之判断语句,循环语句
		
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
 - Python基础语法(三)
		
Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...
 - python学习第三讲,python基础语法之注释,算数运算符,变量.
		
目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...
 
随机推荐
- (转)MAVEN的安装和Myeclipse+maven的配置和使用
			
转:https://blog.csdn.net/shikongshengzhu/article/details/51779159 MAVEN的安装和Myeclipse+maven的配置和使用 步骤如下 ...
 - 92、R语言分析案例
			
1.读取数据 > bank=read.table("bank-full.csv",header=TRUE,sep=";") > 2.查看数据结构 & ...
 - grub命令详解
			
在grub下引导linux:其步骤如下;a 进入grub的命令模式.b 先熟悉一下grub 的一些命令 grub>help c 熟悉一下cat命令d root指令来指定/boot所在的分区e k ...
 - 接口自动化测试框架-AIM2.0
			
跳转到3.0版本https://www.cnblogs.com/df888/p/12031649.html AIM是我用python搭建的第一款接口自动化测试框架,随着技术的提升,框架也在升级,故有了 ...
 - haproxy附加
			
1.安装haproxy yum -y install haproxy 2.编写文件 vim /etc/haproxy/haproxy.cfg
 - 转  mysql查询结果输出到文件
			
mysql查询结果输出到文件 mysql查询结果导出/输出/写入到文件 方法一:直接执行命令:mysql> select count(1) from table into outfile ...
 - 把我坑惨的一个MySQL双引号!
			
来源:For DBA www.fordba.com/mysql-double-quotation-marks-accident.html 一.前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找 ...
 - void v.s. void *
			
在學校老師一定都會教void是無型態的返回值例如 void swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp ...
 - CTU OPEN 2017 Ice cream samples /// 尺取法
			
题目大意: 给定n k 接下来n行 给定n个摊位的冰淇淋信息 首先给一个t 表示这个摊位有t个冰淇淋 接下来t个数表示对应冰淇淋的品种 走到连续的几个摊位 会买下走过的摊位的所有的冰淇淋 求 要买下所 ...
 - adb基本操作
			
用途 命令 备注 安装app adb install xxx.apk -l 锁定该应用程序-r 替换已存在的应用程序,也就是说强制安装-t 允许测试包-s 把应用程序安装到sd卡上-d 允许进行降级安 ...