计算机为什么可以做自动化任务,主要依赖于条件控制和循环。
条件控制
何为条件控制?
中午又到饭点的时间了,纠结吃什么已经成为日常条件反射。下面举个例子:那么中午吃什么呢?
逻辑判断-True/False
人的大脑可以思考并判断中午吃什么,而计算机本身没有思考能力,要想让计算机自动化执行任务,必须依赖在程序中加入逻辑判断的逻辑,让计算机根据程序的指引决定该执行什么不该执行什么。
比较运算符
比较运算符,运算结果为True/False,例如:
#!/usr/bin/env python3 # _*_ coding: utf-8 _*_ # @Author : qa.yw # @Time : 2021/3/26 6:25 下午 # @File : 语句控制.py # @desc : a = 21 b = 10 c = 0 if (a == b): print("1 - a 等于 b") else: print("1 - a 不等于 b") if (a != b): print("2 - a 不等于 b") else: print("2 - a 等于 b") if (a < b): print("3 - a 小于 b") else: print("3 - a 大于等于 b") if (a > b): print("4 - a 大于 b") else: print("4 - a 小于等于 b")
执行结果:
代码语言:javascript复制1 - a 不等于 b
2 - a 不等于 b
3 - a 大于等于 b
4 - a 大于 b
逻辑运算符-not
代码语言:javascript复制布尔"非": 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
例子:
代码语言:javascript复制a = True
print(not a)
>> False
in
代码语言:javascript复制x in y: y包含x,则True; 否则False
代码语言:javascript复制a = 'h'
b = 'hello word'
print(a in b)
>> True
if...elif...else...
if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4>
比如判断是否成年的例子:
age = 20 if age >= 6: print('teenager') elif age >= 18: print('adult') else: print('kid') >> teenager
循环
看一下下面的公式,你肯定见过吧。设想加入不知道这些数列公式,完全让你去计算前n个数之和,你该如何下手这些重复的加法运算。毫无疑问是非常痛苦的。
而计算机最大的优点就是可以不知疲倦地计算成千上万次重复运算,而这依赖于循环语句。
Python的循环有两种:
- for...in循环
- while循环,只要条件满足,就不断循环,条件不满足时退出循环。
for循环
for循环需要依赖其他的数据结构list/tuple。本节先不详细这两个数据结构。
例子:计算前100个数字之和
total = 0 for x in range(101): total = total x print(total) >> 5050
for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。
Tips: range()函数:range(start, stop[, step]) 参数说明: start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step: 步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) 例子: for x in range(5): print(x) >> 0 1 2 3 4
while循环
例子:计算前100个数字之和
total = 0 x = 0 while(x<101): total = total x x = 1 print(total) >> 5050
在循环内部变量x
不断自增,直到变为101
时,不再满足while条件,循环退出。
break
在循环中,break
语句可以提前退出循环。
n = 1 while n <= 100: if n > 10: # 当n = 11时,条件满足,执行break语句 break # break语句会结束当前循环 print(n) n = n 1 print('END')
continue
在循环过程中,也可以通过continue语句,跳过当前循环,直接开始下一次循环。
例子:打印10以内的奇数
for x in range(11): if x % 2 == 0: continue print(x) >> 1 3 5 7 9