顺序语句
顺序语句其实就是按照顺序执行代码,举个例子
print("1") print("2") print("3")
这段代码就是从上到下开始执行,所以就是顺序语句
条件语句
什么是条件语句
条件语句就是能表达出如果…那么 这样的语句,从而使计算机有了逻辑判定
条件语句也叫分支语句,表达出逻辑的几种走向,举个生活中的例子:
如果早上不吃早餐的话
那么就不会迟到
就不会被罚站
就不会被老师关怀
或者
如果 我认真学习
那么就有可能找到一个好工作
否则
我只能喝西北风
这里的我认真学习是条件,满足这个条件就可以执行对应的找到一个好工作
如果没有满足我认真学习这个条件,就执行对应的喝西北风
语法格式
和C语言一样python使用的是if 和 else表示条件语句
if
if 条件 do 语句1 do 语句2 next_语句 如果条件为真(True),则执行语句1和语句2以及next语句 如果条件为假(False),则只执行next语句
if-else
if 条件 do 语句1 else do 语句2
如果条件为真(True),则执行do语句1
如果条件为假(False),则执行do语句2
if-elif-else
if 条件1 do 语句1 elif 条件2 do 语句2 else do 语句3
如果条件1为真(True),则执行do语句1
如果条件1为假(False)并且条件2也是假(False),则执行do语句3
注意:
if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾.(C语言是用括号将条件括起来)
if / else 命中条件后要执行的 “语句块”, 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }(C语言是用{}将执行语句括起来)
对于多条件分支, 不是写作 else if, 而是 elif (合体了).(C语言是用的else if)
缩进和代码块
代码块 指的是一组放在一起执行的代码
在 Python 中使用缩进表示代码块. 不同级别的缩进, 程序的执行效果是不同的
在CSDN中也有代码块
例题
# 代码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 内部的代码块. 意味着条件无论是否成立, 都会执行.
另外, 代码块内部还可以嵌套代码块
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”) 没有缩进, 无论上述两个条件是否成立, 该语句都会执行
所以判断代码块的缩进就看用了几次Tab键
基于缩进的方式表示代码块, 带来的好处就是强制要求程序猿要写明确的缩进 来明确代码之间的相对关系. 如果缩进书写的不对, 则直接报错
另外这里和C语言其实也有一部分相同,C语言if嵌套在VS中代码的展示和python的缩进展示样子类似
python中缩进层次太多也会变得非常不好
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")
空语句 pass
代码示例: 输入一个数字, 如果数字为 1, 则打印 hello
a = int(input("请输入一个整数:")) if a == 1: print("hello") 这个代码也等价于 a = int(input("请输入一个整数:")) if a != 1: pass else: print("hello")
其中 pass 表示 空语句, 并不会对程序的执行有任何影响, 只是占个位置, 保持 Python 语法格式符合要求
这里我感觉就和C语言的 ; 作用类似
循环语句
while循环
基本语法格式 while 条件: 循环体
条件为真, 则执行循环体代码.
条件为假, 则结束循环.
代码示例
一 :打印 1-10 的整数
num = 1 while num <= 10: print(num) num += 1
二:计算 1-100 的和
sum = 0 num = 1 while num <= 100: sum += num num += 1 print(sum)
三: 计算 5 的阶乘
result = 1 n = 1 while n <= 5: result *= n n += 1 print(result)
四:求 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)
这个程序用到了两重循环.
也就是在循环语句中也可以套循环
for循环
基本语法格式 for 循环变量 in 可迭代对象: 循环体
注意:
python 的 for 和其他语言不同, 没有 “初始化语句”, “循环条件判定语句”
初始化语句类似于C语言的(int i=0), 循环条件判断语句类似于(i<=10)
所谓的 “可迭代对象”, 指的是 “内部包含多个元素, 能一个一个把元素取出来的特殊变量”
代码示例
一:打印 1-10
for i in range(1,11) print(i)
代码解析:range函数可以生成一个可迭代的对象,其范围是[1,11)就是[1,10]
(这里我不明白为什么11就是开区间,而1是闭区间,反正就这样记吧)
二:打印 2, 4, 6, 8, 10
for i in range(2, 12, 2): print(i)
通过 range 的第三个参数, 可以指定迭代时候的 “步长”. 也就是一次让循环变量加几
其实简单的来说就是把他当成一个等差数列,公差为2
三:打印 10-1
for i in range(10, 0, -1): print(i)
公差其实也可以为负数
四:求 1 - 100 的和
sum = 0 for i in range(1, 101): sum += i print(sum)
这里的i就是range中循环的次数,sum用来储存每次循环的i,通过相加求出总和
continue循环
continue 表示结束这次循环, 进入下次循环
代码示例
模拟吃包子. 吃第 3 个包子的时候吃出了一只虫
for i in range(1, 6): if i == 3: print(f"WC有虫子") continue print(f"吃完第 {i} 个包子")
break循环
break 表示结束整个循环
代码示例
输入若干个数字, 求平均值. 使用 “分号” 作为结尾
sum = 0 count = 0 while True: num = input("请输入数字:") if num == ';': break num = float(num) sum += num count += 1 print(sum / count)