且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

牛逼!Python的判断、循环和各种表达式(长文系列第②篇)(一)

更新时间:2022-05-12 03:41:08

判断语句(if)

判断语句中最有名的应该就是if-else的组合,并且很多语言都通用这种格式,但是对于elif而言,不同语言表达形式可能会不同:

In [1]: x = 5
In [2]: if x>0:
   ...:     print('正整数')
   ...: elif x<0:
   ...:     print('负整数')
   ...: else:
   ...:     print('零')
   ...:
正整数

一组判断语句可能会有零到多个 elif 部分,else 是可选的。关键字 elif  是 else if 的缩写,由于python对缩进的要求很严格,而这种写法恰巧可以有效地避免过深的缩进。if ... elif ... elif ... 序列用于替代其它语言中的 switch 或 case 语句。

循环语句

1、for循环

如果C语言是你最熟悉的需要,要注意python和C语言中的for语句表达形式完全不同。Python 的 for 语句依据任意序列(字符串、列表)中的子项,按照它们在序列中的顺序来进行迭代。

In [3]: str1 = 'mao'

In [4]: for i in str1:
   ...:     print(i)
   ...:
m
a
o

对列表的循环与字符串几乎一致,只是子项不同。

In [5]: list1 = ['a','aa','aaa']
In [6]: for i in list1:
   ...:     print(i,len(i))
   ...:
a 1
aa 2
aaa 3

for语句与range函数结合是一种很常见的组合,range函数主要提供一个数值序列。

In [8]: for j in range(len(list1)):
   ...:     print(j,list1[j])
   ...:
0 a
1 aa
2 aaa

range提供的数值索引方式可以参考列表的切片,同样默认以0开始,且不包括最后一位,上面这种场合利用enumerate()函数表达会更加简单。

In [9]: for i,v in enumerate(list1):
   ...:     print(i,v)
   ...:
0 a
1 aa
2 aaa

2、while语句

In [10]: i = 1
In [11]: list2 = []
In [12]: while i<=5:
    ...:     list2.append(i)
    ...:     i+=1
In [14]: list2
Out[14]: [1, 2, 3, 4, 5]

3、break、continue、pass

break语句的作用就是用来跳出一个for或while循环。

In [15]: for i in range(0,5):
    ...:     if i == 3:
    ...:         break
    ...:     else:
    ...:         print(i)
0
1
2

可以看到在for循环中加了一个判断语句,当i等于3时会跳出for循环,不再继续执行,输出与语义符合。