python基础-程序结构与条件控制

1996年证明算法由顺序、选择、循环结构组成。Python顺序结构按顺序执行,对象有布尔值,假值如0、None、空容器。分支结构包括单、双、多分支及嵌套,条件表达式简写if-else,pass占位符用于未完成代码。

Posted by Hilda on June 25, 2025

1.程序的组织结构

1996年,计算机科学家证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成

image-20250625124542226

2.顺序结构

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

image-20250625124614727

3.对象的布尔值

每个对象都有一个布尔值(True 或 False),通过 bool() 函数可以显式转换为布尔值。某些对象在布尔上下文中默认被视为 False,称为“假值”(falsy),而其他对象被视为 True,称为“真值”(truthy)。

在 Python 中,每个对象都有一个布尔值(True 或 False)的原因源于 Python 的设计哲学和其“一切皆对象”(everything is an object)的核心理念。

Python 是一种面向对象的编程语言,所有数据类型(整数、字符串、列表等)和函数、模块等都被视为对象。每个对象都拥有自己的属性和方法。

为了在布尔上下文中(如条件语句 if 或逻辑运算 and/or)统一处理这些对象,Python 为每个对象定义了一个布尔值。通过内置函数 bool(),可以显式地将任何对象转换为布尔值。

Python 中会被视为 False 的常见对象:

  • False:布尔类型的值 False。
  • 数值 0:整数 0 或浮点数 0.0。
  • None:Python 中的空值对象,表示无值。
  • 空字符串:”” 或 ‘‘(不含任何字符的字符串)。
  • 空列表:[](不含元素的列表)。
  • 空元组:()(不含元素的元组)。
  • 空字典:{}(不含键值对的字典)。
  • 空集合:set()(不含元素的集合)。

这些假值在控制流(如 if、while)和逻辑运算中非常重要。例如,检查列表是否为空时,可以直接用 if lst:,如果 lst 是空列表([]),条件为 False,不会执行代码块。

这种设计简化了代码,开发者无需显式比较 == False == None,提高了可读性和简洁性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 博客地址: https://kirsten-1.github.io/
# 创建者: kirsten-1
# 时间: 2025/6/25  15:17
print("-------------以下对象的布尔值均为False---------------")
print(bool(False))
print(bool(0))
print(bool(0.0))
print(bool(''))
print(bool(""))
print(bool([]))
print(bool(list()))
print(bool(()))
print(bool(tuple()))
print(bool({}))
print(bool(dict()))
print(bool(set()))

print("-------------其他对象的布尔值均为True---------------")

控制台结果:

image-20250625151941111

4.分支结构

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

image-20250625152017690

(1)单分支if结构

中文语义:如果……就…. 如果你是妖怪,就该被孙悟空打 如果下雨,就带伞 如果是周六,就不上班 语法结构:

1
2
if 条件表达式
	条件执行体

image-20250625152116792

(2)双分支if…else结构

中文语义:如果……不满足……就…… 如果中奖就领奖,没中奖就不领 如果是妖怪就打,不是就不打 如果是周末不上班,不是就上班 语法结构:

1
2
3
4
if 条件表达式
	条件执行体1
else
	条件执行体2

image-20250625153704213

1
2
3
4
5
6
7
money = 1000
amount = int(input("请输入你想取的金额:"))
if money >= amount:
    money-=amount
    print("取款成功!余额为:", money)
else:
    print("取款失败!金额不足!")

image-20250625153943091

(3)多分支if…elif…else结构

多分支结构

中文语义: 成绩是在90分以上吗?不是 成绩是80到90分之间吗?不是 成绩是70到80分之间吗?不是 成绩是60到70分之间吗?不是 成绩是60分以下吗?是

语法结构:

1
2
3
4
5
6
7
8
9
if 条件表达式1:
	条件执行体1
elif 条件表达式2:
	条件执行体2
......
elif 条件表达式N:
	条件执行体N
else
	条件执行体N+1

最后的else是可选的。

image-20250625154208732

一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'''
是不是大于等于0小于等于100
90-100:A  包含90
80-90:B   包含80
70-80:C
60-70:D
不及格
'''

score = int(input("请录入成绩"))
if 0 <= score <= 100:  # 注意python中可以像写数学表达式(0 <= score <= 100)那样写条件,其他语言不一定可以
    if 90 <= score <= 100:
        print("A")
    elif 80 <= score < 90:
        print("B")
    elif 70 <= score < 80:
        print("C")
    elif 60 <= score < 70:
        print("D")
    else:
        print("不及格")
else:
    print("输入非法")

(4)If语句的嵌套

语法结构:

1
2
3
4
5
6
7
   if 条件表达式1:
         if  内层条件表达式:
                内存条件执行体1
        else:
                 内存条件执行体2
    else:
          条件执行体

image-20250625155152531

例如:

image-20250625155207154

用代码书写就是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
isVIP = input("您是会员吗?y/n:")
bill = int(input("请输入购买金额:"))
if isVIP == 'y' :
    if bill >= 200 :
        print("打8折,您需要支付", bill * 0.8)
    elif bill >= 100:
        print("打9折,您需要支付", bill * 0.9)
    else:
        print("不打折,您需要支付", bill)
else:
    if bill >= 200:
        print("打9.5折,您需要支付", bill * 0.95)
    else:
        print("不打折,您需要支付", bill)

4.条件表达式

条件表达式是if……else的简写

语法结构: x if 判断条件 else y

运算规则 如果判断条件的布尔值为True,条件表达式的返回值为x,否则条件表达式的返回值为False

例如:

1
2
3
4
5
6
7
8
a = int(input("输入第一个数"))
b = int(input("输入第二个数"))

if a >= b :
    print(a, "大于等于", b)
else:
    print(a, "小于", b)

是多个双分支结构,可以简写为条件表达式:

1
print(str(a) + "大于等于" + str(b) if a >= b else str(a) + "小于" + str(b))

和上面双分支的结果是一样的。

5.pass空语句

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

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

哪些语句一起使用:

  • if语句的条件执行体
  • for-in语句的循环体
  • 定义函数时的函数体

例如:下面的代码如果还没想好怎么写,就可以这么写,后期想到了可以再来补充

1
2
3
4
5
isVIP = input("您是否是会员?y/n:")
if isVIP == "y" :
    pass
else:
    pass

而且程序这么写不会报错。