序言:
在上期,我们已经对python进行了初步的学习和了解。本期,我将继续带领大家学习关于python的基本知识!!

目录
(一)顺序语句
(二)条件语句
1、什么是条件语句
2、语法格式
3、缩进和代码块
4、空语句 pass
(三)循环语句
1、while 循环
2、for 循环
3、continue
4、break
总结
(一)顺序语句
默认情况下, Python 的代码执行顺序是按照从上到下的顺序, 依次执行的.

- 执行结果一定为 "111 222 333", 而不会出现 "321" 或者 "132" 等. 这种按照顺序执行的代码, 我们称为 顺序语句.
 
这个顺序是很关键的. 编程是一件明确无歧义的事情. 安排好任务的顺序, 计算机才能够正确的进行 执行.
就好像人生的顺序, 是上学, 工作, 结婚, 生子. 一旦这里的顺序乱了, 就很麻烦.
但是如果仅有条件语句的话是远远不够的,对于一些复杂的情况时得不到处理的。因此,又出现了许多其他的语句。
(二)条件语句
1、什么是条件语句
条件语句能够表达 "如果 ... 否则 ..." 这样的语义. 这构成了计算机中基础的 逻辑判定.
条件语句 也叫做 分支语句, 表示了接下来的逻辑可能有几种走向.
一个典型的例子:
如果丘处机没有路过牛家村,
- 1. 那么金兵不会死在郭, 杨两家手上
 - 2. 郭, 杨两家就不会流亡北方
 - 3. 郭夫人就不会去到大漠, 完颜洪烈就不会遇到包惜弱
 - 4. 郭靖就不会和江南七怪救了铁木真
 - 5. 蒙古就不会统一
 - 6. 蒙古铁骑就不会西征
 - 7. 欧洲就不会出现火药, 也就不会出现文艺复兴, 大航海.
 - 8. 大炮就不会从欧洲传到日本, 日本得不到统一
 - 9. 完颜洪烈就不会全力战, 金国内乱
 - 10. 宋朝不会灭亡, 并诞生出资本主义. 中国成为最发达的国家.
 
- 例如,以我作为学生的程序猿为例:
 
如果 我认真敲代码
- 我就很容易找到工作
 否则
- 我就容易毕业就失业
 
其中 "我认真敲代码" 称为 条件.
- 如果条件成立(条件为真), 则会出现 "我就很容易找到工作" 这个情况;
 - 如果条件不成立(条件为假), 则会出现 "我就容易毕业就失业".
 
💨 当然, 同样的逻辑, 还可以反着表达
如果 我选择躺平摆烂
- 我就容易毕业就失业
 否则
- 我就很容易找到工作
 
- 虽然结构变了, 但是整体表达的语义是等价的.
 
💨: 亲爱的小伙伴们, 你们是选择认真敲代码, 还是躺平摆烂呢?
2、语法格式
在Python中,条件语句用来根据给定的条件判断来执行不同的代码块。Python提供了if、elif和else关键字来构建条件语句,下面对其进行详解:
(1) if: if语句用于检查一个条件是否为真,如果条件为真,则执行if代码块中的内容。if语句的基本语法如下:
if expression:
 do_something1
 do_something2
next_something 
- 如果 expression 值为 True, 则执行 do_something1, do_something2, next_something
 - 如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2
 
(2)if-else: if-else语句用于在条件为True时执行一个代码块,而在条件为False时执行另一个代码块。它的基本语法如下:
if expression:
 do_something1
else:
 do_something2
 
- 如果 expression 值为 True, 则执行 do_something1
 - 如果 expression 值为 False, 则执行 do_something2
 
(3)if-elif-else: if-elif-else语句用于在多个条件之间做出选择。它可以包含多个elif子句来检查额外的条件,并且最后可以有一个可选的else子句来覆盖所有未满足的条件。它的基本语法如下:
if expression1:
 do_something1
elif expression2:
 do_something2
else:
 do_something3 
- 如果 expression1 值为 True, 则执行 do_something1
 - 如果 expression1 值为 False, 并且 expression2 为 True 则执行 do_something2
 - 如果 expression1 值为 False, 并且 expression2 为 False 则执行 do_something3
 
【注意事项】
1️⃣ 在Python中,条件表达式的结果可以是任何可以被解释为布尔值的类型,例如布尔值True或False、整数、浮点数、字符串、列表、元组等,只要它们在条件判断时被解释为True或False即可。
2️⃣ Python中的条件语句写法, 和很多编程语言不太一样.
- if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾.
 - if / else 命中条件后要执行的 "语句块", 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
 - 对于多条件分支, 不是写作 else if, 而是 elif (合体了).
 
💨示例: 输入 1 表示愿意认真学习, 输入 2 表示躺平摆烂.
choice = input("输入 1 表示认真学习, 输入 2 表示躺平摆烂: ")
if choice == "1":
    print("你会找到好工作!")
elif choice == "2":
    print("你可能毕业就失业了!")
else:
    print("你的输入有误!") 
【分析】
3、缩进和代码块
在Python中,缩进是非常重要的,它用于表示代码块的层次结构。Python使用缩进来确定语句的组织方式和执行顺序,而不是使用大括号或关键字来表示代码块的开始和结束。
代码块是一组相关的语句,例如在条件语句中,一个代码块包含了在特定条件下需要执行的一组语句。
以下是关于Python条件语句中缩进和代码块的一些重要注意事项:
1️⃣ 缩进量:通常情况下,每个缩进级别由四个空格组成。不同的编辑器设置可能会有所不同,但在Python中必须保持一致。
格式如下:
if condition:
statement1 # 属于 if 代码块,缩进一级
statement2 # 属于 if 代码块,缩进一级
statement3 # 不属于 if 代码块,与 if 同级
代码1:
a = input("请输入一个整数: ")
if a == "1":
    print("hello")
    print("world")
 
- 输出:
 

代码2:
a = input("请输入一个整数: ")
if a == "1":
    print("hello")
print("world")
 
- 输出:
 

注意上述代码的区别
- 在代码1 中, print("world") 有一级缩进, 这个语句属于 if 内的代码块, 意味着条件成立, 才执行, 条件 不成立, 则不执行.
 - 在代码2 中, print("world") 没有缩进, 这个语句是 if 外部的代码, 不属于 if 内部的代码块. 意味着条件 无论是否成立, 都会执行.
 
基于缩进的方式表示代码块, 带来的好处就是强制要求程序猿要写明确的缩进, 来明确代码之间的相对关 系. 如果缩进书写的不对, 则直接报错
像 C++ / Java 这些语言, 即使完全不写缩进, 语法也不会报错. 代码可读性就比较差.
同时, 带来的坏处就是, 如果缩进层次比较多, 就容易分不清楚某个语句属于哪个层级
if a == 1:
    if b == 2:
        if c == 3:
            if d == 4:
                if e == 5:
                    if f == 6:
                        if g == 7:
                   print("hello")
                    print("1")
     print("2")
 
因此, 就有了 "写 Python 需要自备游标卡尺" 这个梗

2️⃣ 代码块:代码块是一组具有相同缩进级别的语句。在条件语句中,if、elif、else后面的冒号(:)标志着一个代码块的开始。
格式如下:
if condition1:
- statement1 # 属于 if 代码块
 - statement2 # 属于 if 代码块
 elif condition2:
- statement3 # 属于 elif 代码块
 - statement4 # 属于 elif 代码块
 else:
- statement5 # 属于 else 代码块
 - statement6 # 属于 else 代码块
 
代码:
a = input("请输入一个整数: ")
if a == "1":
    print("aaaa")
    print("bbbb")
if a == "2":
    print("cccc")
    print("dddd")
else:
    print("eeee") 
3️⃣ 嵌套代码块:在一个代码块内部,可以有更深层次的代码块。只需在内部的代码块中增加额外的缩进即可。
格式如下:
if condition1:
statement1 # 属于外部 if 代码块
if condition2:
statement2 # 属于内部 if 代码块
else:
statement3 # 属于内部 else 代码块
else:
statement4 # 属于外部 else 代码块
代码:
a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")
if a == "1":
    if b == "2":
        print("hello")
    print("world")
print("python")
 
【分析】
在这个代码中:
- print("hello") 具有两级缩进, 属于 if b == "2" 条件成立的代码块.
 - print("world") 具有一级缩进, 属于 if a == "1" 条件成立的代码块.
 - print("python") 没有缩进, 无论上述两个条件是否成立, 该语句都会执行.
 
输出:
总结起来,Python中的缩进和代码块用于指示条件语句中的层次结构和执行顺序。缩进量决定了代码块之间的关系,而代码块是根据条件语句的各个部分进行分组的。通过正确的缩进和代码块组织,可以使代码更清晰、易读和易于维护。
练习
- (1) 输入一个整数, 判定是否是奇数
 
a = int(input("请输入一个整数: "))
if a % 2 == 0:
 print("偶数")
else:
    print("奇数") 
输出展示:

 
- (2) 输入一个整数, 判定是正数还是负数
 
a = int(input("请输入一个整数: "))
if a > 0:
    print("正数")
elif a < 0:
    print("负数")
else:
    print("为 0") 
 
- (3) 判定年份是否是闰年
 
year = int(input("请输入年份: "))
if (year % 100 != 0 and year % 4 == 0) or year % 400:
    print("闰年")
else:
    print("平年") 
4、空语句 pass
 在Python中,pass是一个空语句,可以用于占位或作为一个占位符。它不执行任何操作,只是简单地跳过当前的代码块,不会产生任何影响。
pass的主要作用是在未完整实现代码时提供一个占位符。例如,当你正在编写一个函数或一个类,但还没有完成它们的主体部分时,可以使用pass语句来暂时跳过这些部分,使代码能够正常运行,而不会引发语法错误。
💨 代码示例: 输入一个数字, 如果数字为 1, 则打印 hello
a = int(input("请输入一个整数:"))
if a == 1:
    print("hello") 
上述代码也可以等价写成
a = int(input("请输入一个整数:"))
if a != 1:
 pass
else:
    print("hello")
 
如果代码写作:
a = int(input("请输入一个整数:"))
if a != 1:
else:
print("hello")
输出显示

- 程序是不符合 Python 语法的, 会直接报错.
 
【小结】
总结起来,pass是Python中的一个空语句,它不进行任何操作,仅用于占位或作为一个占位符。通过使用pass语句,可以在未完整实现代码的情况下,使程序能够正常运行,并且保持代码的完整性。一旦具体实现完成,可以将pass语句替换为实际的代码逻辑。 
(三)循环语句
有些操作是需要反复执行的. 这种就需要使用循环.
1、while 循环
在Python中,while 循环用于反复执行一段代码块,直到给定条件不再满足为止。它的基本语法如下:
while 条件:
循环体
- 这里的【条件】是一个布尔表达式,当条件为真时,循环会一直执行代码块;
 - 每次循环开始前,都会检查条件是否满足。如果条件为假,则退出循环,继续执行后续的代码。
 
💨 代码示例: 打印 1-10 的整数
num = 1
while num <= 10:
    print(num)
    num += 1 
【分析】
- 在这个例子中,首先定义了一个初始值为1的计数器num;
 - 然后,
while循环会检查num是否小于等于10。只要条件满足,循环会执行打印num的值,并将num增加1。这个过程会一直重复直到num不再小于10为止。 
💨 代码示例: 计算 1-100 的和
num = 1
sum = 0
while num<=100:
    sum+=num
    num+=1
print(sum) 
输出显示:

💨 代码示例: 计算 5 的阶乘
res = 1
n = 1
while n <= 5:
    res *= n
    n += 1
print(res) 
输出显示:

💨 代码示例: 求 1! + 2! + 3! + 4! + 5!
num = 1
sum = 0
while num <= 5:
    factorResult = 1
    i = 1
    while i <= num:
        factorResult *= i
        i += 1
    sum += factorResult
    num += 1
print(sum)
 
输出显示:

- 这个程序用到了两重循环. 也就是在循环语句中也可以套循环.
 
需要注意以下几点:
- 循环的代码块必须缩进,通常使用四个空格来表示。缩进量决定了代码块的范围。
 - 如果循环体内的代码没有改变条件的状态,或者条件一开始就不满足,那么循环将成为无限循环。在这种情况下,可以使用
break语句来提前终止循环。 
【小结】
while循环在Python中用于重复执行一段代码块,直到给定条件不再满足。通过检查条件并控制条件的改变,可以灵活地运用while循环来解决各种问题。
2、for 循环
在Python中,for循环用于遍历序列(如列表、元组、字符串等)或其他可迭代对象中的每个元素,并执行相应的代码块。它的基本语法如下:
for 循环变量 in 可迭代对象:
循环体
注意:
- python 的 for 和其他语言不同, 没有 "初始化语句", "循环条件判定语句", "循环变量更新语句", 而是 更加简单
 - 所谓的 "可迭代对象", 指的是 "内部包含多个元素, 能一个一个把元素取出来的特殊变量"
 
下面是一个简单的示例,展示了for循环的用法:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
 
【分析】
- 在这个例子中,定义了一个包含三个字符串元素的列表
fruits; for循环会依次遍历fruits中的每个元素,并将当前元素的值赋给变量fruit;- 然后,循环体内的代码会执行,打印出当前的水果名称。这个过程会依次重复,直到遍历完整个列表。
 
输出显示:

💨 代码示例: 求 求 1 - 100 的和
sum = 0
for i in range(1, 101):
    sum += i
print(sum) 
输出显示:

需要注意以下几点:
- 循环的代码块必须缩进,通常使用四个空格来表示。缩进量决定了代码块的范围。
 - 可以通过
range()函数生成一个序列作为迭代对象,例如range(5)会生成从0到4的整数序列。 - 可以使用
break语句提前终止循环,或使用continue语句跳过当前循环迭代。 
除了基本的遍历每个元素外,还可以结合其他控制流语句、条件判断、内置函数等实现更复杂的循环逻辑。
【小结】
for循环在Python中用于遍历可迭代对象中的每个元素,并执行相应的代码块。通过定义变量来表示当前元素的值,可以方便地处理和操作序列或其他可迭代对象。
3、continue
在Python中,continue是一个控制流语句,用于跳过当前循环迭代中的剩余代码,并进入下一次循环迭代。当程序执行到continue语句时,会立即跳过当前迭代的剩余代码,然后继续执行下一次迭代。
continue的使用场景通常与条件判断结合起来,用于在满足特定条件时跳过当前迭代。当条件满足时,continue语句会让程序直接跳到循环的下一个迭代,而不执行当前迭代剩余的代码块。
下面是一个示例,展示了continue的使用方法:
for i in range(1, 6):
    if i == 3:
        continue
    print(i)
 
输出显示:

【分析】
- 在这个例子中,使用
for循环遍历了整数序列range(1, 6),从1到5。在每次迭代中,如果i的值等于3,那么continue语句会被执行,跳过当前迭代的剩余代码; - 因此,当
i等于3时,不会执行print(i)语句,直接进入下一次迭代。这样就实现了跳过输出3的效果。 
需要注意以下几点:
continue语句通常与条件判断结合使用,用于在满足特定条件时跳过当前迭代。continue语句只会影响到当前所在循环的迭代,不会终止循环。如果需要提前终止循环,可以使用break语句。- 在嵌套循环中,
continue语句只会跳过当前内层循环的迭代,而不会跳出外层循环。 
【小结】
continue是Python中的一个控制流语句,用于跳过当前循环迭代中的剩余代码,并进入下一次迭代。通过与条件判断结合使用,可以灵活地控制循环的执行逻辑。
4、break
在Python中,break是一个控制流语句,用于提前终止循环。当程序执行到break语句时,会立即跳出当前所在的循环,不再执行循环的剩余代码,并继续执行循环之后的代码。
break通常与条件判断结合使用,用于在满足特定条件时提前结束循环。当条件满足时,break语句会立即跳出循环,无论循环是否已经执行完毕。
下面是一个示例,展示了break的使用方法:
for i in range(1, 6):
    if i == 3:
        break
    print(i)
 
输出展示:

【分析】
- 在这个例子中,使用
for循环遍历了整数序列range(1, 6),从1到5。在每次迭代中,如果i的值等于3,那么break语句会被执行,提前终止循环; - 因此,当
i等于3时,不会执行print(i)语句,直接跳出循环。 
💨 代码示例: 输入若干个数字, 求平均值. 使用 "分号" 作为结尾
sum = 0
count = 0
while True:
    num = input("请输入数字:")
    if num == ';':
        break
    num = float(num)
    sum += num
    count += 1
print(sum / count) 
输出显示:

需要注意以下几点:
break语句通常与条件判断结合使用,用于在满足特定条件时提前终止循环。break语句会立即跳出当前所在的循环,并继续执行循环之后的代码。- 在嵌套循环中,
break语句只会跳出当前内层循环,而不会跳出外层循环。 
【小结】
break是Python中的一个控制流语句,用于提前终止循环。通过与条件判断结合使用,可以在满足特定条件时跳出循环,提高程序的执行效率。
总结
到此,关于本期的内容便全部讲解完毕了!感谢大家的观看与支持!!!




















