条件语句
Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。
Python 程序语言指定任何非 0 和非空(None)值为 True,0 或者 None为 False。
if 语句的基本形式
Python 中,if 语句的基本形式如下:
if 判断条件:
执行语句……
else:
执行语句……
前面也提到过,Python 语言有着严格的缩进要求,因此这里也需要注意缩进,也不要少写了冒号 : 。
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
# -*-coding:utf-8-*-
results=59
if results>=60:
print ('及格')
else :
print ('不及格')
输出的结果为:
不及格
上面也说道,非零数值、非空字符串、非空 list 等,判断为True,否则为False。因此也可以这样写:
num = 6
if num :
print('Hello Python')
s2 = None
if s2 :#None表示s2没有任何对象,由于s2初始值为None,条件判断不成立
print(f'{123}是name')
else:
print('123')
结果
123
if not s2:
print(123)
else:
print(456)
结果
123
xli = []
#如果容器中没有任何元素,在条件上表示为空
#b获取的值是false
b = xli == None
print(b)
if xli :
print(123)
else:
print(456)
结果
False
456
#多重if结构
score = input("请输入成绩")
score = float(score)
if score >= 90:
print('A')
elif score >=80 :
print('B')
elif score >=70:
print('C')
else:
print('D')
结果
A
if 语句多个判断条件的形式
有些时候,我们的判断语句不可能只有两个,有些时候需要多个,比如上面的例子中大于 60 的为及格,那我们还要判断大于 90 的为优秀,在 80 到 90 之间的良好呢?
这时候需要用到 if 语句多个判断条件,
用伪代码来表示:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
if 语句多个条件同时判断
Python 不像 Java 有 switch 语句,所以多个条件判断,只能用 elif 来实现,但是有时候需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
# -*-coding:utf-8-*-
java = 86
python = 68
if java > 80 and python > 80:
print('优秀')
else :
print('不优秀')
输出结果:
不优秀
注意:if 有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于 >(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
循环语句
一般编程语言都有循环语句,循环语句允许我们执行一个语句或语句组多次。
循环语句的一般形式如下:
Python 提供了 for 循环和 while 循环,当然还有一些控制循环的语句:
break 在语句块执行过程中终止循环,并且跳出整个循环
continue 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
pass pass 是空语句,是为了保持程序结构的完整性
While 循环语句
#从1到100相加
count = 1
sum = 0
while count <=100:
sum = sum+count
count = count +1
print(sum)
结果
5050
当然 while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于跳出本层循环
比如,上面的例子是计算 1 到 100 所有整数的和,当我们需要判断 sum 大于 1000 的时候,不在相加时,可以用到 break ,退出整个循环
count = 1
sum = 0
while count <=100:
sum = sum + count
if sum >1000: #当sum大于1000时退出循环
break
count=count+1
print(sum)
结果
1035
#Python中if体或者循环体,都不能形成封闭作用域
#一旦执行if或者循环体中的语句后,在语句中变量定义的作用域存储主模块区域
if not None:
k = 9
if None:
#由于if条件不成立,w=9语句不能执行
w = 9
i=1
while i<11:
j=8
i=i+1
print(j,k)
结果
8 9
有时候,我们只想统计 1 到 100 之间的奇数和,那么也就是说当 count 是偶数,也就是双数的时候,我们需要跳出当次的循环,不想加,这时候可以用到 continue
count = 1
sum = 0
while count <= 100:
if count % 2 == 0: # 双数时跳过输出
count = count + 1
continue
sum = sum + count
count = count + 1
print(sum)
结果
2500
在 Python 的 while 循环中,还可以使用 else 语句,while … else 在循环条件为 false 时执行 else 语句块
#Python的while特殊结构
#s=1,i=0 错误写法
s,i = 0,1
while i<5:
i+=1
print(i)
else:
print('over')
结果
2
3
4
5
over
##99乘法表
i:int = 1
j:int = 1
while i < 10:
j=1
while j <= i:
print(f'{i}*{j}={i*j}',end='\t')
j=j+1;
print(end='\n')
i=i+1
结果
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81