利用Python进行数据分析笔记:02Python语言基础(下)

三、控制流

1.if, elif和else

一个if语句可以接多个elif代码块和一个else代码块,如果所有elif条件均为False, 则执行else代码块:

if x < 0:
    print('It`s negative')
elif x == 0:
    print('Equal to zero')
elif 0 < x < 5:
    print('Positive but smaller than 5')
else:
    print('Positive and larger than or equal to 5')

如果某个条件为True, 则后面的elif和else代码块不会执行。

当使用and和or进行混合条件判断时,条件判断是从左到右的并且在and或or两侧的条件会有“短路”现象:

a = 5; b = 7
c = 8; d = 4
if a < b or c > d:
    print('Made it')
### 本例中c>d是不会去判断的,因为第一个比较判断为True

2.for循环

for循环用于遍历一个集合(例如列表或元组)或一个迭代器。标准的for循环语法如下:

for value in collection:
    # 用值做些什么
  • continue关键字可以跳过continue后面的代码进入下一次循环:
###对列表中的非None值进行累加:
sequence = [1, 2, None, 4, None, 5]
total = 0
for value in sequence:
    if value is None:
        continue
    total += value
  • break关键字可以结束一个for循环:
### 对列表元素累加直到5出现
sequence = [1, 2, 0, 4, 6, 5, 2, 1]
total_until_5 = 0
for value in sequence:
    if value == 5:
        break
    total_until_5 += value

### break 关键字只结束最内层的for循环;
### 外层的for循环会继续运行:
for i in range(4):
    for j in range(4):
        if j > i:
            break
        print((i, j))
......:
(0, 0)
(1, 0)
(1, 1)
(2, 0)
(2, 1)
(2, 2)
(3, 0)
(3, 1)
(3, 2)
(3, 3)
  • 如果集合或迭代器中的元素是一个序列(比如元组或列表),它们可以在for循环语句中很方便地通过拆包成为变量:
for a, b, c in iterator:
    # 做些什么

3. while循环

while循环会在条件符合时一直执行代码块,直到条件判断为False或显式地以break结尾时才结束:

x = 256
total = 0
while x > 0:
    if total > 500:
        break
    total += x
    x = x // 2

4. pass

pass就是什么都不做的语句,表示不执行任何操作:

if x < 0:
    print('negative!')
elif x == 0:
    pass
else:
    print('positive!')

5. range

range函数返回一个迭代器,该迭代器生成一个等差整数序列:

range(10)
Out[39]: range(0, 10)
list(range(10))
Out[40]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

### 起始/结尾/步进(可以是负的)可以传参给range函数:
list(range(0, 20, 2))
Out[41]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
list(range(5, 0, -1))
Out[42]: [5, 4, 3, 2, 1]

range产生的整数包含起始但不包含结尾range常用于根据序列的索引遍历序列:

seq = [1, 2, 3, 4]
for i in range(len(seq)):
    val = seq[i]

将0到99,999中所有可以被3或5整除的整数相加:

sum = 0
for i in range(100000):
    #%是求模(余数)操作符
    if i % 3 == 0 or i % 5 ==0:
        sum += i
sum
Out[44]: 2333316668

6. 三元表达式

三元表达式允许你将一个if-else代码块联合起来,在一行代码或一个语句中生成数据。语法如下:

value = treu-expr if condition else false-expr

它与以下更详细的代码效果一致:

if condition:
    value = true-expr
else:
    value = false-expr

以下是具体例子:

'Non-negative' if x >= 0 else 'Negative'

三元表达式可以压缩代码量,但是可能会牺牲可读性。

你可能感兴趣的:(利用Python进行数据分析笔记:02Python语言基础(下))