3.1程序的分支结构
3.1.1程序的判断条件
not表示单个条件的“否”关系
and表示多个条件之间的“与”关系
or表示多个条件之间的“或”关系
当and存在时,只要存在false,结果为false。
当or存在时,只要存在true,结果为true。
3.1.2 if语句
if条件:
语句块;
s=eval(input("请输入一个整数:"))
if s % 3==0 and s % 5==0:
print("这个数字既可以被3整除,也可以被5整除。")
print("输入数字是:",s)
print("程序结束。")
Python语言中,任何非零的数值、非空的数据类型都等价于True,0等价于False,可以直接用作判断条件。
s=eval(input("请输入一个整数:"))
if s % 2:
print("这个数是一个奇数。")
print("输入数字是:",s)
print("程序结束。")
3.1.2 if-else语句
if条件:
语句块1;
else:
语句块2;
s=eval(input("请输入一个整数:"))
if s % 3==0 and s%5==0:
print("这个数可以被3和5整除。")
else :
print("这个数不可以同时被3和5整除。")
print("输入数字是:",s)
print("程序结束。")
二分支还有更简洁的表达方式,适合语句块1和语句块2都只是包含简单的表达式的情况:
语法格式如下:
表达式1 if 条件 else 表达式2
a=99+1
s=eval(input("请输入一个整数:"))
token="可以" if s % 3==0 and s%5==0 else "不"
print("这个数字{}能同时被3和5整除".format(token))
print("程序结束。")
3.1.3 多分支语句
if 条件1:
语句块1
elif 条件2:
语句块2
…
else:
语句块N
score=eval(input("请输入学生百分制成绩:"))
if score>=90.0:
grade="A"
elif score>=80.0:
grade="B"
elif score>=70.0:
grade="C"
elif score>=60.0:
grade="D"
else:
grade="E"
print("该学生对应的五分制成绩是:{}".format(grade))
3.2循环结构
3.2.1遍历循环:for
使用方式:
for循环变量 in遍历结构:
语句块
遍历循环可以理解为从遍历结构中,逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。
遍历结构可以是字符串、文件、range()函数或组合数据类型等。
for c in "Python":
print(c)
print("程序结束")
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 c in range(10): #第一个参数如果省略,默认为0.
print(c) #输出0123456789
print("程序结束")
for c in range(1,10):
print(c) #输出123456789
print("程序结束")
for c in range(1,10,2):#2是一种切片,也就是当元素是第2个位置,或者2的倍数,都不输出。
print(c) #输出13579
print("程序结束")
结果输出如下:
遍历控制保留字:break和continue
break用来跳出当前循环,脱离该循环后,程序从循环后代码继续执行。如果有2层或多层循环,break跳出最内层循环。
continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。
for c in "python":
if c=="t":
break #跳出所属for循环
print(c)
print("程序结束")
for c in "python":
if c=="t":
continue #结束当前当次循环
print(c)
print("程序结束")
循环结构的扩展模式
for 循环变量 in 遍历结构:
语句块1
else
语句块2
当for循环正常执行结束后,程序会继续执行else语句的内容。else语句只在循环正常执行之后才执行并结束。因此可以在语句2中放置判断循环执行情况的语句
for c in "python":
if c=="t":
break #跳出所属for循环
print(c)
else:
print("循环正常结束")
print("程序结束")
for c in "python":
if c=="t":
continue #跳出所属for循环
print(c)
else:
print("循环正常结束")
print("程序结束")
3.2.2嵌套循环
for i in range(1,3):
print("外面循环第{}次".format(i))
for j in range(1,3):
print("内部循环第{}次".format(j),end=" ") #如果不写end就自动换行了
print("{}*{}={}".format(i,j,i*j))
print("程序结束")
3.2.3无限循环 while
while 条件:
语句块1
判断条件如果为TRUE,执行语句块。返回再次判断while条件,当条件是FALSE时,循环终止。继续后续语句。
n=0
while n<10:
print(n)
n=n+3
print("程序结束")
无限循环的扩展模式
while条件:
语句块1
else
语句块2
当while循环正常执行结束后,程序会继续执行else语句的内容。else语句只在循环正常执行之后才执行。因此可以在语句2中放置判断循环执行情况的语句
循环非正常结束:
s,num="py",0 #s='py';num=0
while num<len(s):
print("循环执行中:"+s[num])
num +=1 #num=2
break #非正常执行结束
else:
s="循环正常结束"
print(s)
循环正常结束:
s,num="py",0 #s='py';num=0
while num<len(s):
print("循环执行中:"+s[num])
num +=1 #num=2
#正常执行结束
else:
s="循环正常结束"
print(s)
3.3异常处理try和except
Python程序一般对输入有一定要求,当实际输入不满足程序要求时,可能会产生程序运行错误。Python语言使用保留字try和except进行异常处理
语句块1是正常执行的内容,当执行这个语句块发生异常时,则执行except保留字后面的语句块2.
例1:
try:
n=eval(input("请输入一个数字:"))
print("输入数字的3次方值为:",n**3)
except:
print("输入错误,请输入一个数字!")
例2:
while True:
try:
n=eval(input("请输入一个数字:"))
break
except:
print("输入错误,请输入一个数字!")
print("输入的数字为:",n)
运行结果: