克隆策略

条件if

条件语句格式:

if 判断条件:
    执行语句……
else:
    执行语句……

当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。


由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……
In [1]:
# 实现成绩统计,分数在0-100之间,0-59 为不合格,60-80为合格,80-90为良,90-100为优
num = int(input("input a score between 0 ~ 100: "))
if num < 0 or num > 100:
    print("输入的数字不在范围之内")
elif 0 <= num < 60:
    print("不合格")
elif 60 <= num < 80:
    print("合格")
elif 80 <= num < 90:
    print("良")
elif 90 <= num < 100:
    print("优")
else:
    print("excelent")
合格

循环

稍后会介绍更加奇特的迭代工具,如生成器、filter和reduce。现在先从最基础的学起。

Python提供了for循环和while循环(在Python中没有do...while循环),for循环一般比while计数器循环运行得更快

break语句,在语句块执行过程中终止循环,并且跳出整个循环

continue语句,在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。

pass语句,是空语句,是为了保持程序结构的完整性。不做任何事情,一般用做占位语句。

循环else块,只有当循环正常离开时才会执行(也就是没有碰到break语句)

while

计算1到1000之间的所有数之和:

In [2]:
# 计算1到1000之间的所有数之和:
sum_while = 0
i = 1
while i <= 1000:
    sum_while += i
    i += 1
print("the sum between 1 and 1000 is : {}".format(sum_while))
the sum between 1 and 1000 is : 500500

for

下面将用for来实现上面求和的功能

In [3]:
sum_for = 0
for i in range(0, 1001):
    sum_for += i
print("the sum between 1 and 1000 is : {}".format(sum_for))
the sum between 1 and 1000 is : 500500
In [4]:
# 对字符串遍历
for s in 'hello world':
    print(s)
h
e
l
l
o
 
w
o
r
l
d
In [5]:
# 对列表中进行遍历
seq = ['hello', 'world', 'hello', 'every']
for s in seq:
    print(s)
hello
world
hello
every

break的用法

In [6]:
# break 
for letter in 'Python':     
    if letter == 'h':
        break
    print('Current Letter :', letter)
Current Letter : P
Current Letter : y
Current Letter : t

continue的用法

In [7]:
for letter in 'Python':     
    if letter == 'h':
        continue
    print('Current Letter :', letter)
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n

pass的用法

In [8]:
for letter in 'Python':
    if letter == 'h':
        pass
        print('这是 pass 块')
    print('当前字母 :', letter)
当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : h
当前字母 : o
当前字母 : n
In [9]:
# 一个例子
def calc(numbers):
    amount = 0
    for num in numbers:
        amount += num
    return amount

numbers = [100, 200, 3, 4]
calc(numbers)
Out[9]:
307