Python中的程序控制结构 顺序结构和选择结构

目录

  • Python中的程序控制结构(一)
    • 1.程序中的组织结构
    • 2.顺序结构
    • 3.对象的布尔值
    • 4.分支结构
      • 4.1 单分支if结构
      • 4.2 双分支if...else结构
      • 4.3 多分支if...elif...else结构
      • 4.4 if语句的嵌套
      • 4.5 条件表达式
    • 5.pass空语句

Python中的程序控制结构(一)

说明:本篇文章为自己在学习Python时做的学习笔记。参考马士兵Python课程。

1.程序中的组织结构

任何简单或复杂的算法都可以由顺序结构选择结构循环结构这三种基本结构组合而成。

2.顺序结构

程序从上到下顺序地执行代码,中间没有任何的判断和跳转,直到程序结束。

#  顺序结构
'''把大象装冰箱一共分几步?'''
print('1.把冰箱门打开')
print('2.把大象装冰箱里')
print('3.把冰箱门关上')
print('***********程序结束************')

3.对象的布尔值

在将分支结构和循环结构之前,先介绍对象的布尔值。
Python一切皆对象,所有的对象都有一个布尔值,可以使用内置函数bool()来获取对象的布尔值。
以下对象的布尔值为False
(1)False
(2)数值0
(3)None
(4)空字符串
(5)空列表
(6)空元组
(7)空字典
(8)空集合
除了上述对象,其他对象的布尔值均为True

# 测试对象的布尔值
print('***********以下对象的布尔值为False 其他对象的布尔值均为True***************')
print(bool(False))    # False
print(bool(0))        # False
print(bool(None))     # False
print(bool(''))       # False
print(bool(""))       # False
print(bool([]))       # False 空列表
print(bool(list()))   # False 空列表
print(bool(tuple()))  # False 空元组
print(bool({
     }))       # False 空字典
print(bool(dict()))   # False 空字典
print(bool(set()))    # False 空集合

4.分支结构

程序根据判断条件的布尔值选择性地执行部分代码。
我们需要明确地让计算机知道在什么条件下,该去做什么。

4.1 单分支if结构

语法结构:
i f 条 件 表 达 式 : 条 件 执 行 体 if \quad条件表达式:\\ \quad条件执行体 if

# 单分支结构
money=1000      # 余额
s=int(input('请输入取款金额:'))  # 取款金额
# 判断余额是否充足
if money>=s:
    money=money-s
    print('取款成功,余额为:',money)

4.2 双分支if…else结构

语法结构:
i f 条 件 表 达 式 : 条 件 执 行 体 1 e l s e : 条 件 执 行 体 2 \begin{array}{ll}if \quad条件表达式:\\ \qquad条件执行体1\\ else:\\ \qquad条件执行体2\end{array} if1else:2

# 双分支结构 if...else 二选一
'''从键盘录入一个整数,编写程序让计算机判断它是奇数还是偶数'''
num=int(input('请输入一个整数:'))
# 条件判断
if num%2==0:
    print(num,'偶数')
else:
    print(num,'奇数')

4.3 多分支if…elif…else结构

语法结构:
i f 条 件 表 达 式 1 : 条 件 执 行 体 1 e l i f 条 件 表 达 式 2 : 条 件 执 行 体 2 ⋮ e l i f 条 件 表 达 式 N : 条 件 执 行 体 N [ e l s e : ] 条 件 执 行 体 N + 1 \begin{array}{ll}if \quad条件表达式1:\\ \qquad条件执行体1\\ elif条件表达式2:\\ \qquad条件执行体2\\\qquad \qquad \vdots\\ elif条件表达式N:\\ \qquad条件执行体N\\ [else:] \\ 条件执行体N+1\end{array} if11elif2:2elifN:N[else:]N+1

# 多分支结构
'''从键盘录入整数 成绩
90-100 A
80-89 B
70-79 C
60-69 D
0-59  E
小于0或大于100 非法数据
'''
score=int(input('请输入一个成绩'))
# 判断
if score>=90 and score<=100:  # 也可以写成 90<=score<=100
    print('A')
elif score>=80 and score<=89:
    print('B')
elif score >= 70 and score <= 79:
    print('C')
elif score >= 60 and score <= 69:
    print('D')
elif score >= 0 and score <= 59:
    print('E')
else:
    print('非法成绩')

4.4 if语句的嵌套

语法结构
i f 条 件 表 达 式 : i f 内 层 条 件 表 达 式 : 内 层 条 件 执 行 体 e l s e : 内 层 条 件 执 行 体 e l s e : 条 件 执 行 体 \begin{array}{ll}\textcolor{red}{if} \quad条件表达式:\\ \qquad \textcolor{blue}{if}\quad 内层条件表达式:\\ \qquad \qquad内层条件执行体\\ \qquad \textcolor{blue}{else}:\\ \qquad \qquad 内层条件执行体\\ \textcolor{red}{else}:\\ \qquad条件执行体\end{array} ififelse:else:

# if语句的嵌套
'''会员 >=200 8>=100 9<100  不打折
  非会员  >=200  9.5<200 不打折
'''
answer=input('您是会员吗?y/n')
money=int(input('请输入您的购物金额:'))
# 外层判断是否是会员
if answer=='y':  # 会员
    print('会员')
    if money>=200:
        print('8 折 付款金额为:',money*0.8)
    elif money>=100:
        print('9 折 付款金额为:', money*0.9)
    else:
        print('不打折 付款金额为:', money)
else: # 非会员
    print('非会员')
    if money >= 200:
        print('9 折 付款金额为:', money*0.9)
    else:
        print('不打折 付款金额为:',money)

4.5 条件表达式

条件表达式是 if…else 的简写。
语法结构:
x i f 判 断 条 件 e l s e y x \quad \textcolor{red}{if} \quad判断条件 \quad \textcolor{red}{else} \quad y xifelsey
运算规则:
如果判断条件的布尔值为 T r u e \textcolor{red}{True} True,条件表达式的返回值为 x \textcolor{red}{x} x,否则条件表达式的返回值为 F a l s e \textcolor{red}{False} False

# 条件表达式
'''从键盘输入两个整数,比较两个整数的大小'''
num_a=int(input('请输入第一个整数:'))
num_b=int(input('请输入第二个整数:'))
# 比较大小
'''if num_a>=num_b:
    print(num_a,'大于等于',num_b)
else:
    print(num_a,'小于',num_b)
'''
# 使用条件表达式进行比较
print((num_a,'大于等于',num_b) if num_a>=num_b else (num_a,'小于',num_b)) # 输出不好看 改写一下
print( str(num_a)+'大于等于'+str(num_b) if num_a>=num_b else  str(num_a)+'小于'+str(num_b))

5.pass空语句

pass语句:

语句什么都不做,只是一个占位符,用在语法上需要语句的地方。

什么时候使用呢?

先搭建语法结构,还没想好代码怎么写的时候。

哪些语句一起使用?

  1. if语句的条件执行体
  2. for-in语句的循环体
  3. 定义函数时的函数体
# pass语句 什么都不做,只是一个占位符,用到需要写语句的地方
answer=input('您是会员吗?y/n')
# 判断是否是会员
if answer=='y':
    pass
else:
    pass
# 程序不会报错

最后:

'''
为什么要讲对象的布尔值:
我们在写代码的时候可以直接将对象放在条件表达式中进行判断
'''
age=int(input('请输入您的年龄:'))
if age:
    print(age)
else:
    print('年龄为:',age)

你可能感兴趣的:(Python基础,算法,python,程序设计)