这两天学的是赋值运算符、比较运算符、逻辑运算符、移位运算符
以及选择语句循环语句
赋值运算符
主要针对的是变量
+=,-=,*=,/=,//=,**=,%=
归结为?=
左边必须是变量,右边随意
a ?= 1
a = a ? 1
>>> a = 1
>>> a += 1
>>> a
2
>>> a -= 1
>>> a
1
>>> a *= 10
>>> a
10
>>> a /= 2
>>> a
5.0
>>> 10 /= 2
File "<stdin>", line 1
SyntaxError: cannot assign to literal
>>> a = 1
>>> b = 2
>>> a += b
>>> a
3
# 左边必须是变量 右边变量或者常量都行
比较运算符
运算的结果只能是布尔类型
>大于,<小于,>=大于等于,<=小于等于,==等于,!=不等于
注意:==
永远比的是对象数据的值
>>> 3 > 2
True
>>> 1 < 2
True
>>> 1 != 2
True
>>> 2 == 2
True
以上的代码都称之为是布尔表达式
逻辑运算符
运算的结果只能是布尔类型
and逻辑与,or逻辑或,not 逻辑非
and和or双目运算符(左右两边必须都有数据),not 单目运算符,参与的数据必须是布尔类型
>>> 3 and 2
2
>>> 3 > 2 and 2 > 1
True
>>> 3 > 2 or 1 > 2
True
>>> not 3 > 2
False
>>> not False
True
>>> not True
False
移位运算符
&位与
,|位或
,<<左移
,>>右移
,^异或
位与全一为1,位或有一是1
左移右移是逻辑还是算数运算得看是符号数还是无符号数,具体用法到用的时候再看,用的不多
>>> 12 & 7
4
"""
1100
0111 &
0100
"""
>>> 12 | 7
15
"""
1100
0111 |
1111
"""
>>> 2 << 4
32
"""
0010
00100000
2 * 2^4
"""
>>> 3 << 3
24 # 3 * 2^3
>>> 16 >> 2
4
"""
10000
00100
16 / 2^2
"""
>>> 10 ^ 7
13
"""
1010
0111 ^
1101
"""
1.4 选择语句
回顾一下,我们之前写的这些代码运行流程基本都是从上到下依句执行-顺序语句
任何代码宏观来看都是顺序语句执行
选择语句就是在某些条件满足的情况下执行部分1 不满足执行部分2
# C C++ Java
if (布尔表达式) {
部分1的代码
} else {
部分2的代码
}
# Python
#############################
A...
if 布尔表达式 :
B...
else :
C...
D...
True: A-B-D
False: A-C-D
#############################
A...
if 布尔表达式 :
B...
D...
True: A-B-D
False: A-D
#############################
A...
if 布尔表达式1 :
B...
elif 布尔表达式2 :
C...
elif 布尔表达式3 :
D...
else :
E...
F...
1T : A - B - F
1F 2T :A - C - F
1F 2F 3T : A - D - F
1F 2F 3F : A - E - F
不同于C\C++\JAVA,python 中是用table键的缩进来表示从属关系的,而不是大括号。
1.5 循环语句
循环主要解决重复性代码问题
分为两大类:
- 已知次数:向前走10步
- 已知条件:向前走直到碰到墙为止
循环四要素:
- 循环的初始化
- 循环的继续条件
- 循环的循环体
- 循环的步长-周期-间距
for循环
在Python当中,它对for循环进行改版,主要用在已知循环次数的情况下
for循环后面针对的是一个已知的序列
# Python
for i in range(1,11): # [1,11)
print(i)
// C/Java
for (int i = 1; i <= 10; i++) {
print(i);
}
range(start,end,step)
for i in range(1,11,1):
print("*")# 每个都换行了
for i in range(1,11,1):
print("*",end="") #排成一排
print()#默认换行
(2)
*
**
***
****
*****
******
for line in range (0,6):
for i in range (0,line+1):
print("*",end="")
print()
(3)
******
*****
****
***
**
*
for i in range (7,0,-1):
for j in range (i-1,0,-1):
print ("*",end="")
print()
"""
(4)
i j
* 1 1
** 2 1 2
*** 3 1 2 3
**** 4 1 2 3 4
***** 5 1 2 3 4 5
****** 6 1 2 3 4 5 6
***** 7 1 2 3 4 5
**** 8 1 2 3 4
*** 9 1 2 3
** 10 1 2
* 11 1
j <= i i + j <= 12
"""
for i in range (1,12):
for j in range (1,i+1):
if j <= i and j +i <= 12:#假设每行按i打印,在加限制条件
print("*",end="")
print()
(5)
"""
k i j
* -5 1 1
** -4 2 1 2
*** -3 3 1 2 3
**** -2 4 1 2 3 4
***** -1 5 1 2 3 4 5
****** 0 6 1 2 3 4 5 6
***** 1 7 1 2 3 4 5
**** 2 8 1 2 3 4
*** 3 9 1 2 3
** 4 10 1 2
* 5 11 1
"""
print("=" * 10)
for i in range(1, 12):
for k in range(0, abs(i - 6)):
print(" ", end="")
for j in range(1, i + 1):
if j <= i and i + j <= 12:
print("*", end="")
print()
"""
(4)
k i j
* -5 1 1
* * -4 2 1 2
* * * -3 3 1 2 3
* * * * -2 4 1 2 3 4
* * * * * -1 5 1 2 3 4 5
* * * * * * 0 6 1 2 3 4 5 6
* * * * * 1 7 1 2 3 4 5
* * * * 2 8 1 2 3 4
* * * 3 9 1 2 3
* * 4 10 1 2
* 5 11 1
"""
print("=" * 10)
for i in range(1, 12):
for k in range(0, abs(i - 6)):
print(" ", end="")
for j in range(1, i + 1):
if j <= i and i + j <= 12:
print("* ", end="")
print()
"""
(4)
k i j
* -5 1 1
* * -4 2 1 2
* * -3 3 1 2 3
* * -2 4 1 2 3 4
* * -1 5 1 2 3 4 5
* * 0 6 1 2 3 4 5 6
* * 1 7 1 2 3 4 5
* * 2 8 1 2 3 4
* * 3 9 1 2 3
* * 4 10 1 2
* 5 11 1
j == 1 i == j i + j == 12
"""
print("=" * 10)
for i in range(1, 12):
for k in range(0, abs(i - 6)):
print(" ", end="")
for j in range(1, i + 1):
if j <= i and i + j <= 12:#打当前行
if j == 1 or j == i or i + j == 12:#当前行哪个位置打*
print("* ", end="")
else :
print(" ", end="")
print()
while循环
while 布尔表达式:
循环语句
循环的初始化
while 循环的继续条件:
循环的循环体
循环的步长
while True:
循环体
"""
打印1~100之间的偶数
"""
num = 1
while num <= 100:
if num % 2 == 0:
print(num)
num += 1
"""
*
**
***
****
*****
"""
i = 1
while i <= 5:
j = 1
while j <= i:
print("*", end="")
j += 1
print()
i += 1
# 死循环
"""
while True:
print("哈哈")
想要用while True 实现循环 一定要记得在某个时刻break
"""
"""
打印1~100之间的奇数
"""
num = 1
while True:
if num % 2 == 1:
print(num)
num += 1
if num > 100 :#这段放在上面的IF前面的话会多一次循环操作
break
编程题练习写到Demo54