一、条件表达式
算术运算符:+、-、*、/、//、%、**
关系运算符:>、<、==、<=、>=、!=
测试运算符:in、not in、is、is not
逻辑运算符:and、or、not,注意短路求值
位运算符:~、&、|、 ^、 <<、>>
条件表达式的结果:True False
- 逻辑运算符“and”和“or”以及关系运算符,具有短路求值或惰性求值的特点,只计算必须计算的表达式的值。
- 在选择和循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为与True等价。
- 在Python中,条件表达式中不允许使用赋值运算符“=”,避免了其他语言中误将关系运算符“==”写作赋值运算符“=”带来的麻烦,例如下面的代码,在条件表达式中使用赋值运算符“=”将抛出异常,提示语法错误
二、选择结构
1.单分支
if 表达式:
语句块
if 90>100:
print('a')
print('b')
print('c')
2.双分支
if 表达式:
语句块1
else:
语句块2
a= ['1', '2', '3', '4', '5']
if a:
print(a)
else:
print('empty')
['1', '2', '3', '4', '5']
注意:Python还支持类似于java三元运算符的形式。
例:value1 if condition else value2
3. 多分支
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
else:
语句块4
#关键字elif是else if的缩写
4.选择结构嵌套
if 表达式1:
语句块1
if 表达式2:
语句块2
else:
语句块3
else:
if 表达式4:
语句块4
#注意:缩进必须要正确并且一致
三、循环结构
- for循环
格式
for 取值 in 序列或迭代对象:
循环体
[else:
else子句代码块]
注意:
-
for循环一般用于循环次数可以提前确定的情况,尤其是用于枚举序列或迭代对象中的元素。
-
一般优先考虑使用for循环。
-
若循环因为条件表达式不成立而自然结束,则执行else结构中的子句;如果因为执行了break语句导致的提前结束,则不执行else子句。
for循环实例
用户输入一个整型数,求该数的阶乘。如:3 = 3*2*1
num = int(input('num:'))
res=1
for i in range(1,num+1):
res=res*i
print(num,res)
- while循环
格式
while 条件表达式:
循环体
[else:
else子句代码块]
注意
-
while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况
-
若循环因为条件表达式不成立而自然结束,则执行else结构中的子句;如果因为执行了break语句导致的提前结束,则不执行else子句。
实例
用while循环来实现计算100以内所有奇数之和。
sum=0
n=99
while n>0:
sum=sum+n
n=n-2
print(sum)
四、break和continue语句
作用:
-
break语句在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。
-
continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。
break实例
计算小于100的最大素数
for n in range(100,1,-1):
for i in range(2,n):
if n%i == 0:
break
else:
print(n)
break
97
continue实例
输出10以内的奇数
i=0
while i<10:
if i%2 == 0:
continue
print(i,end=' ')
i+=1
永不结束的死循环,Ctrl+C强行终止。
#改正后
i=0
while i<10:
i+=1
if i%2 == 0:
continue
print(i,end='')
1,3,5,7,9