Python3.*(第十五课——流程控制①)

本章开始学习对程序的控制,类似于文章当中的句子,前面我们学习了字、词。我个人觉得比喻就是如此。python中提供了两种控制结构,分支结构和循环结构。(if语句、while循环、for-in循环)还提供了break和continue。

顺序结构

       顺序结构就是程序从上到下一行行地执行,中间没有任何判断和跳转。(很简单,了解即可)

if分支结构

       Python的if 语句有如下三种形式:

              第一种形式:

              if expression :

                  statements …

              第二种形式:

              if expression :

                   statements …

              else :

                  statements …

              第三种形式:
              if expression :
                     statements …
              elif expression :
                     statements …
              …//可以有零条或多条elif语句
              else :
                     statements …

       ①它的代码块是通过缩进来标记的。

       ②具有相同缩进的多行代码属于同一个代码块。

       ③if条件后的条件执行体一定要缩进。只有缩进后的代码才能算条件执行体。

s_age = input("请输入您的年龄:")
age = int(s_age)
if age > 20 :
print("年龄已经大于20岁了")

       ④Python 通常建议缩进4个空格。

么有缩进带来的问题:

s_age = input("请输入您的年龄:")
age = int(s_age)
if age > 20 :
    print("年龄已经大于20岁了")
print("20岁以上的人应该学会承担责任...")

#---------------------------------------------

# 定义变量b,并为其赋值
b = 5
if b > 4:
    # 如果b>4,则执行下面的条件执行体,只有一行代码作为代码块
    print("b大于4")
else:
    # 否则,执行下面的条件执行体,只有一行代码作为代码块
    b -= 1
# 对于下面代码而言,它已经不再是条件执行体的一部分,因此总会执行
print("b不大于4")

#---------------------------------------------

if、else、elif后的条件执行体必须使用想相同缩进的代码块,将这个代码块整体作为条件执行体。当if后有多条语句作为条件执行时,如果忘了缩进某一行代码,则会引起语法错误。

# 定义变量c,并为其赋值
c = 5
if c > 4:
    # 如果c>4,则执行下面的条件执行体,只有c-=1一行代码为条件执行体
    c -= 1
# 下面是一行普通代码,不属于条件执行体
print("c大于4")
# 此处的else将没有if语句,因此编译出错
else:
    # 否则,执行下面的条件执行体,只有一行代码作为代码块
    print("c不大于4")

       ⑤Python语法允许代码块随意缩进N 个空格,但同一个代码块内的代码必须保持相同的缩进,不能一会儿缩进2格空格,一会缩进4个空格。

⑥ Python 冒号精确表示代码块的开始点。不仅在条件执行体中如此, 后面的循环体、方法体、类体全部遵守该规则

总结:不要忘记缩进、不要随意缩进、不要遗忘冒号

if条件的类型

       if 条件可以是任意类型

              False、None、0、" "、( )、[ ]、{ }

              当上面的值作为bool表达式时,会被解释器当作False 处理

# 定义空字符串
s = ""
if s :
    print('s不是空字符串')
else:
    print('s是空字符串')
# 定义空列表
my_list = []
if my_list:
    print('my_list不是空列表')
else:
    print('my_list是空列表')
# 定义空字典
my_dict = {}
if my_dict:
    print('my_dict不是空字典')
else:
    print('my_dict是空字典')

if分支的逻辑错误

       if else 语句时有一条基本规则: 总是优先把包含范围小的条件放在前面处理。

       (可以这么说:在使用if else分支语句时,一定要先处理包含范围更小的情形)

错误:

age = 45
if age > 20 :
    print("青年人")
elif age > 40 :
    print("中年人")
elif age > 60 :
    print("老年人")

错误2:

age = 45
if age > 20 :
    print("青年人")
# 在原本的if条件中增加了else的隐含条件
if age > 40 and not(age > 20) :
    print("中年人")
# 在原本的if条件中增加了else的隐含条件
if age > 60 and not(age > 20) and not(age > 40 and not(age > 20)) :
    print("老年人")

经分析后发现条件永远不能满足。

正确的如下:

age = 45
if age > 60 :
    print("老年人")
elif age > 40 :
    print("中年人")
elif age > 20 :
    print("青年人")
#-------------------------同下--------------------------

age = 45
if age > 60 :
    print("老年人")
# 在原本的if条件中增加了else的隐含条件
if age > 40 and not(age >60) :
    print("中年人")
# 在原本的if条件中增加了else的隐含条件
if age > 20 and not(age > 60) and not(age > 40 and not(age >60)) :
    print("青年人")

正确的判断条件:

age大于60岁,判断为“老年人”

age大于40岁,且age小于或等于60岁,判断为“中年人”

age大于20岁,且age小于或等于40岁,判断为“青年人”

age>60的范围比age>20岁的范围更小,所以应先处理age>60的情形

if表达式

if分支语句还可作为表达式,此时if表达式相当于其他语言中的三目运算符。

pass语句

       Python 的pass语句就是空语句。不想让程序做任何事情,但是又为了程序更完整。

              例如:

                     s = input("请输入一个整数: ")

                     s = int(s)

                     if s > 5:

                         print("大于5")

                     elif s < 5:

                         # 空语句,相当于占位符

                         pass

                     else:

                          print("等于5")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值