二级Python学习笔记(四)


上一篇:二级Python学习笔记(三)

第4章 程序的控制结构

4.1 程序的三种控制结构

程序流程图7种基本元素:

20180801214736480.png

起止框:表示程序逻辑的开始或结束;
判断框:表示一个判断条件,并根据判断结果选择不同的执行路径;
处理框:表示一组处理过程,对应于顺序执行的程序逻辑;
输入输出框:表示程序中的数据输入或结果输出;
注释框:表示程序的注释;
流向线:表示程序的控制流,以带箭头直线或曲线表达程序的执行路径;
连接点:表示多个流程图的连接方式,常用于将多个较小流程图组织成较大流程图。

程序由三种基本结构组成:顺序结构、分支结构和循环结构。

顺序结构是程序按照线性顺序依次执行的一种运行方式:

20180801215220124.png

分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,基础的分支结构是二分支结构。

20180801215303304.png

循环结构是程序根据条件判断结果向后反复执行的一种运行方式,根据循环体触发条件不同,包括条件循环和遍历循环结构

20180801215332879.png

异常处理:使用try-except保留字,以程序异常为判断条件,根据一段代码执行的正确性进行程序逻辑选择。是分支结构的一种扩展。

控制循环的执行过程:break控制符用来结束当前循环,continue控制符用来结束当前循环的当次循环过程,是循环结构的一种扩展。


4.2 程序的分支结构

单分支结构: if

#格式
if  <条件>:
    语句块

# 判断用户输入数字的奇偶性 
s = eval(input("请输出一个整数:"))
if s % 2 == 0:
    print("这是个偶数")
print("输入数字是:", s)

#多个条件使用and或or表示与、或关系
# 判断用户输入数字的特定 
s = eval(input("请输出一个整数:"))
if s % 3 == 0 and s % 5 == 0:
    print("这个数字既能被3整除,又能被5整除")
print("输入数字是:", s)


二分支结构: if-else

#格式
if  <条件>:
    <语句块1>
else:
    <语句块2>
    
# 判断用户输入数字的某个属性
s = eval(input("请输出一个整数:"))
if s % 3 == 0 and s % 5 == 0:
    print("这个数字能够同时被3和5整除")
else:
    print("这个数字不能够同时被3和5整除")


#简洁方式: <表达式1>  if  <条件>  else  <表达式2>
(适合<表达式1>和<表达式2>都只包含简单表达式的情况)

# 判断用户输入数字的某个属性
s = eval(input("请输出一个整数:"))
token = "" if s % 3 == 0 and s % 5 == 0  else "不"
print("这个数字{}能够同时被3和5整除".format(token))


多分支结构: if-elif-else

#格式
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))


关系操作符:

20180801221134872.png

>>>4 < 5
True 

>>>"Python" > "python"
False

#非零数值、非空数据都等价于True,0或空类型等价于False
>>>0 == False
True
 
>>>"" == True
False

#保留字not(否)、and(与)和or(或)对条件进行逻辑运算或组合
>>>not True
False

>>>a = 80
>>>( a > 100) or ( a > 50 and a < 90)
True


4.3 程序的循环结构

遍历循环: for

#遍历字符串
for  <循环变量>  in  <字符串变量>:
     <语句块> 
      
>>> for c in "Python":
	print(c)
P
y
t
h
o
n


#使用range()函数,可以指定语句块的循环次数
for  <循环变量>  in  range(<循环次数>):      			
     <语句块>                  
           			    

>>> for i in range(5):
	print(i)
0
1
2
3
4


#扩展模式,else语句在for循环正常执行之后才执行并结束
for <循环变量>  in  <遍历结构>:
    <语句块1>
else:
   <语句块2>
   
   

for s in "PY":
   print("循环执行中: " + s)
else:
   s = "循环正常结束"
print(s)

>>> 
循环执行中: P
循环执行中: Y
循环正常结束


无限循环: while

#格式 while判断条件如果为True,执行循环体语句
while  <条件>:
       <语句块>
              
>>>n = 0
>>>while  n < 10:
   print(n)
     n = n + 3
0
3
6
9

#扩展模式
while  <条件>:
       <语句块1>
else:
       <语句块2>    
       
s, idx = "PY", 0
while idx < len(s):
   print("循环执行中: " + s[idx])
   idx += 1
else:
   s = "循环正常结束"
print(s)

>>> 
循环执行中: P
循环执行中: Y
循环正常结束


两个辅助循环控制的保留字:break和continue。(区别:continue语句只结束本次循环,不终止整个循环的执行,而break具备结束循环的能力。)

#break:跳出最内层for或while循环,之后程序从循环后代码继续执行
while True:
  s = input("请输入一个名字(按Q退出): ")
  if s == "Q":
    break
  print("输入的名字是:", s)
print("程序退出")

>>> 
请输入一个名字(按Q退出): 毛泽东
输入的名字是: 毛泽东
请输入一个名字(按Q退出): 邓小平
输入的名字是: 邓小平
请输入一个名字(按Q退出): Q
程序退出


#continue:结束当前当次循环,跳出循环体中下面尚未执行的语句,不跳出当前循环。
for s in "PYTHON":
   if s == "Y" or s == "Y":
      continue
   print(s, end="")

>>> 
PTHON


4.4 程序的异常处理

#格式 当语句块1执行异常时执行语句块2
try:
    <语句块1>
except:
    <语句块2>
    
try:
   n = eval(input("请输入一个数字: "))
   print("输入数字的3次方值为: ", n**3)
except:
   print("输入错误,请输入一个数字!")

>>> 
请输入一个数字: 1010
输入数字的3次方值为:  1030301000 
>>> 
请输入一个数字: python
输入错误,请输入一个数字!


#处理运行异常
>>>for i in range(5):
   print(10/i, end=" ")
Traceback (most recent call last):
  File "", line 2, in     print(10/i, end=" ")
ZeroDivisionError: division by zero

try:
   for i in range(5):
   print(10/i, end=" ")
except:
   print("某种原因,出错了!")

>>> 
某种原因,出错了!


第四章,写的有点快,得消化消化,做做题~~~

lws博客
请先登录后发表评论
  • 最新评论
  • 总共81条评论