我们已经接触了function中的内在逻辑,class中的更新属性值,set中的交集和并集。
解决一个问题不是靠一江春水向东流,是时候引入分支和循环了。
运算、分支、循环是最简单的算法。
这些运算符返回的都是数字。
算术运算符
+ | - | * | / | % | ** | // |
---|---|---|---|---|---|---|
加 | 减 | 乘 | 除 | 模 | 幂 | 整 |
赋值运算符
= | += | -= | *= | /= | %= | **= | //= |
---|---|---|---|---|---|---|---|
等 | 加等 | 减等 | 乘等 | 除等 | 模等 | 幂等 | 整等 |
以c += a
为例,表示c = c+a
位运算符
& | | | ^ | ~ | << | >> |
---|---|---|---|---|---|
按位与 | 按位或 | 按位异或 | 按位取反 | 左移 | 右移 |
以二进制进行运算,有更高的效率。
这些运算符返回的都是布尔值。
比较(关系)运算符
== | != | > | < | >= | <= |
---|---|---|---|---|---|
等于 | 不等于 | 大于 | 小于 | 大于等于 | 小于等于 |
逻辑运算符
and | or | not |
---|---|---|
与 | 或 | 非 |
成员运算符
in | not in |
---|---|
在序列中 | 不在序列中 |
其中序列可以是字符串、元组、列表、字典。
身份运算符
is | is not |
---|---|
同一个对象 | 不同对象 |
请参考别的资料,不知道优先级自己用小括号包起来。
分支就是不同的情况、不同的条件,导致不同的结果。
age = 20
if age >= 18:
print('adult')
else:
print('child')
# adult
循环一般用来遍历列表或者字典。
some_list = ['a','b']
for i in some_list:
print(i)
# a
# b
其中的i
是一个临时的变量名,把列表中的元素依次赋值给它,你也可以取成别的。
通常情况下,我们遇到字典列表的机会比较大。例如:
some_list = [
{'name':'xiaoming','age':12},
{'name':'dawang','age':20},
]
打印出每个人的名字和年龄。
for person in some_list:
print(person['name'],person['age'])
# xiaoming 12
# dawang 20
for i in some_list:
if i['age']>18 :
print('%s is an adult.' % i['name'])
else:
print('%s is a child.' % i['name'])
# xiaoming is a child.
# dawang is an adult.