条件、循环和其他语句

  • 在命令行窗口运行程序的文本

工具:Sunblime Text、Notepad++等。

过程:在文本编辑工具中将写好的代码保存到指定目录,文件后缀为.py;在命令行窗口中切换到存有后缀为.py的目录下输入:python 文件名.py

dos命令教程

  • import的使用

1、import语句(就像c++中头文件包含函数:include<cmath>,include相当于import而cmath则与模块相似,不同的是include不能同时包含多个函数)

import module[,module[,...moduleN]

一个import语句可以导入多个模块,但各个模块之间需要用逗号隔开。

搜索路径:一个解释器,先搜索所有目录的列表。

使用import语句时,python的搜索路径(由一些列目录组成)依次从这些目录中寻找引入的模块,与环境变量相似。

from与import连用可以达到从模块中引入指定部分到当前名命名空间的目的。

from modname import name1[,name2[,...nameX]  例如:from math import pi即为导入math模块中的pi。(如果导入模块,就会得到模块中所有对象,但如果导入某个对象那么就只能得到这个对象。使用from语句时,虽然不能使用某个模块中的所有对象,但使用引用的对象时更为简洁:pi,如果直接导入整个模块,则需输入:math.pi。

如果需要使用from语句将模块中的多个对象则对像间用逗号隔开:如果需要全部导入,则输入:from math import *。

在import后加上as语句,则可以给模块或模块的某个对象取别名。


2、逗号输出

print语句中输出多个表达式只需要将每个表达式用逗号隔开。另外,不使用格式化操作符直接填入变量名也可以输出想要的结果。

  • 赋值方式

1、序列解包

python中一条语句就可以对多个变量赋值,不同变量之间用逗号隔开即可:x,y,z=1,2,3。

交换所做的事情叫做序列解包(可选迭代解包),即将多个值的序列解开,然后放到变量序列中。


 popitem()方法可将建-值对作为元组返回,返回的元组可通过序列解包赋值到两个变量之中。该方法没有参数。代码如下:


dict={‘name’,‘小明’,‘number,’10112‘}

k,v=dict.popitem()


序列解包允许函数返回一个以上的值并打包成元组,然后通过一个赋值语句进行访问,但需要注意的是,序列解包中“=”左右两边的变量和值必须数量完全一致,否则会报错。(序列解包时,一定要保证左右两边的数量相等)

2、链式赋值

通过多个等式对不同的变量赋同样的值:x=y=z=1101

3、增量赋值

语句x=x+10等同于x+=10,对*、/、%、等运算符同样适用,另外增量赋值也同样适用于二元运算(任意两个集合、矩阵、函数等相加相乘)符的数据类型,如:

a=‘hello ’

b=‘world!’

a+=b

print(a)

输出结果为:“hello world!”

增量赋值使代码更简练、紧凑。

  • 语句块

python中连续保持相同首行缩进的一系列代码组成一个语句块,其中冒号”:“用来标识语句块的开始(冒号之后的语句块为一个整体,例如在条件语句后加上冒号,冒号之后的首行缩进相同的语句为循环体)

  • 条件语句

1、布尔变量

非零即为真,所有类型的数字0(包浮点型、长整数型和其他类型)、空序列(如空字符串、空元组和空列表)以及空字典都为假,其他值都为真,包括原生的布尔值true。

bool函数,将其他值转换为布尔值:bool(‘ ‘)结果为false,bool(2),结果为true。

需要注意的是:bool(’ ‘)==bool([])==false,但’ ‘与[]本身并不相等,其他类型也一样。

2、if语句

if 条件:

  语句块

条件中除了表示大小关系的符号判断之外,还可以使用函数返回值作为条件判定,这与C++类似,只是语法格式有所差异。

另外在开头两行写下语句:

#!/usr/bin/python3

#-*-coding:UTF-8-*-

可以解决代码移植和编码的问题。

3、else语句

与C++类似,else需要与if语句连用。

4、elif子句

elif即为else if的简写,用法与C++中else if 语句类似,需要注意的是,只能和if、else连用,不能独立使用,并且只能以if语句开头,是否以else结尾可根据需要选择。

5、嵌套代码块

即if、else、elif的混合使用,这里需要注意的是每个语句块需要保持相同的首行缩进。

  • 其他操作

1、is:同一性运算符

is运算符用于判断同一性而不是相等性(判定两个不同变量是否指向同一个内存空间),他们的值可能相等,但却不是同一个对象。

使用==运算符是判断两个对象是否相等,而is 是判定两个对象是否等同(是否为同一对象)。相等即为值相等,等同为所指对象相同。

2、比较字符串和序列

可以对列表进行比较操作,如果一个列表中包括其他序列元素,比较规则也适用于其他序列元素(如嵌套列表的比较),比较字符串时,是比较其对应的ascll码。

3、布尔运算符

x and y,当x、y都为真时,才返回真,否则返回假,有一个为假时,如果x为假,返回x的值,否则返回y。(短路逻辑)

x or y,x为真时返回x,否则返回y,返回某个值后,该语句后面的代码不会被执行。

  • 断言

与if接近的伪代码:

if not condition

      crash program

防止在运行时崩溃,使其在出现错误条件时就崩溃。

assert关键字可以要求一些条件必须为真。当assert后的条件为真时,程序正常运行;当assert后面的条件为假时,输出错误信息提示(由用户自己定义,称为异常参数)


使用assert时需要注意:

(1)assert断言用来声明某个条件是真的;

(2)如果确信使用的列表中至少有一个元素,要想检验这一点,并在他非真时引发一个错误,就可以使用assert语句;(3)assert语句失败,会引发一个AssertionError。

  • 循环

1、while循环

while 判断条件:

      语句块

while循环用法和c++类似,不同的是python中没有do语句。

2、for循环

for循环与C++中用法有所差别,语法格式如下:

  for iterating_var in sequence:

    statements(s)

其中,sequence是任意序列,iterating_var是序列中需要遍历的元素。(for循环中需要建立一个类似于临时变量的东西,通过这个临时变量对相关序列进行遍历。)

python中for语句执行流程:

  首先对for条件判定,游标指向第0个位置,即指向第一个元素,看sequence中是否有元素,若有,则将元素值赋给iterating_var,接着执行语句块,若语句块中需要获取元素值,则使用iterating_var 的值,执行完语句块后,将序列游标指向下一位置,再判断,如此往复循环,直至下一个位置没有元素时,结束循环。


3、利用for循环遍历字典

dict={‘姓名’:‘小明’,‘编号’:‘110012’}

for d in dict:#简单遍历方法

  print(‘%s:%s’%(d,dict[d]))

在for循环中使用序列解包,items方法:将键-值对作为元组返回。不过需要注意的是,字典中的元素是没有顺序的,即用for循环输出字典中的元素时,不会按照顺序输出。

dict={'姓名':'小明‘,’编号‘:’110012‘}

for k,v in dict.items():

  print('%s:%s'%(k,v))

4、迭代工具

(1)并行迭代

同时迭代两个序列:

num1=[1,2,3,4]

num2=[a,b,c,d]

for n in range(len(num2)):

  print(num2[n],'----',num1[n])

python 中,内建函数zip可用来进行并行迭代,可以把 两个序列合并在一起,返回一个元组的列表:

num1=[1,2,3,4]

num2=[a,b,c,d]

for n,v in zip(num1,num2):

  print(n,'----',v)

结果和上一段代码结果一样。

zip函数可以作用于任意数量的序列,并且可以应付不等长的序列,不过当短序列“用完”时,zip函数就会停止。即以段序列为准,当段序列遍历结束时,for循环就会遍历结束。

2、翻转和排序迭代

reversed和sorted函数可作用于任何序列或可迭代对象,但不是原地修改对象,而是返回翻转或排序后的版本。需要注意的是,sorted(默认情况下按ascll码从小到大排序)返回的是一个列表,reversed返回的是一个可迭代的对象。

  • 跳出循环

1、break

与C++类似,break直接终止循环语句,不管条件或序列有没有遍历完都会停止循环,需要注意的是,如果使用了嵌套循环,break语句会停止执行最深层次的循环,并开始执行下一行代码。

2、continue

与c++类似,continue用于跳过当前循环的剩余语句,继续下一轮的循环。

  • 循环中的else子句

1、在while循环中使用else语句

在while条件语句为false时,执行else的语句块。

2、在for循环中使用else语句

在for循环条件语句为false或结束后没有break中断时,执行else语句块。

  • pass语句

python中pass是空语句,用来保持程序结构的而完整性。pass不做任何事,只是占位符。



猜你喜欢

转载自blog.csdn.net/song_10/article/details/79679224
今日推荐