条件语句能够表达 “如果 … 否则 …” 这样的语义. 这构成了计算机中基础的逻辑判定
条件语句也叫做分支语句,表示了接下来的逻辑可能有几种走向
如果,我认真敲代码,我就很容易找到工作;
条件语句,就是根据一个具体条件的成立与否,来决定接下来的逻辑走向
Python
中使用 if
else
关键字表示条件语句
(1)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 expression:
do_something1
else:
do_something2
expression
值为 True
, 则执行 do_something1
expression
值为 False
, 则执行 do_something2
(3)if - 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
注意: 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('输入错误')
if
、elif
和 else
后面都有:
在 Python
中使用缩进表示代码块. 不同级别的缩进, 程序的执行效果是不同的
a = input('输入第一个整数:')
b = input('输入第一个整数:')
if a == '1':
if b == '2':
print('aaa')
print('bbb')
print('ccc')
#运行结果
输入第一个整数:1
输入第一个整数:2
aaa
bbb
ccc
aaa
,因为打印 aaa
的语句有两级缩进,相当于是 if b == '2'
条件内部的代码块bbb
,因为打印 bbb
的语句只有一级缩进,相当于是 if a== '1'
条件内部的代码块ccc
,因为打印 ccc
的语句,没有缩进,相当于和两个 if
都无关当前有多级嵌套的时候,当前的雨具属于哪个代码块,完全取决于缩进的级别
pass
表示空语句, 并不会对程序的执行有任何影响, 只是占个位置, 保持 Python
语法格式符合要求.
a = int(input("请输入一个整数:"))
if a != 1:
pass
else:
print("hello")
Python
对于语法格式,尤其是缩进和代码块要求较高,所以如果什么都不写,是不符合语法要求的,所以必须得写一个 pass
空语句来占位a = int(input('输入一个整数'))
if a % 2 == 1:
print(f'{a} 是一个奇数')
else:
print(f'{a} 不是一个奇数')
C++/Java
是不太行的,因为在那边 -19 % 2 == -1
,和 1
是不相等的。但在 Python
中,-19 % 2 == 1
a = int(input('输入一个整数'))
if a > 0:
print(f'{a} 是正数')
elif a < 0:
print(f'{a} 是负数')
else:
print(f'{a} 是 0')
每隔 4 年润一次;如果是世纪闰年,得看能否被 400 整除
year = int(input('输入一个年份'))
if year % 100 == 0:
# 世纪闰年的判定
if year % 400 == 0:
print('闰年')
else:
print('平年')
else:
# 普通闰年的判定
if year % 4 == 0:
print('闰年')
else:
print('平年')
基本语法格式:
while 条件:
循环体
基本语法格式:
for 循环变量 in 可迭代对象:
循环体
注意:
python
的 for
和其他语言不同, 没有 “初始化语句”, “循环条件判定语句”, “循环变量更新语句”, 而是更加简单while
循环:
num = 1
while num <= 10:
print(num)
num += 1
包含:
for
循环:
for i in range(1, 11):
print(i)
range
是一个内建函数,起到的效果就是得到一个“可迭代对象”,这个可迭代对象中就包含了一系列的整数range(beg, end)
==> [beg, end)
,前闭后开区间range
还提供了一个参数“步长”,默认的步长是 1
例如:打印 2,4,6,8,10
for i in range(2, 12, 2)
print(i)
while
循环:
sum = 0
num = 0
while num <= 100:
sum = num + sum
num +=1
print(sum)
while
循环:
result = 1
n = 1
while n <= 5:
result *= n
n += 1
print(result)
while
循环:
num = 1
sum = 0
while num <= 5:
# 先计算出 num! 是多少,往 sum 上进行累加
factorResult = 1
i = 1
while i <= num:
factorResult *= i
i += 1
sum += factorResult
print(sum)
continue
:立即结束当前这次循环,进入下一次循环
break
:立即结束整个循环
代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了一只虫.
for i in range(1, 6):
if i == 3:
continue
print(f'吃完第{i}个包子')
# 运行结果
吃完第1个包子
吃完第2个包子
吃完第4个包子
吃完第5个包子
代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了半只虫.(没胃口了)
for i in range(1, 6):
if i == 3:
break
print(f'吃完第{i}个包子')
# 运行结果
吃完第1个包子
吃完第2个包子
theSum = 0
count = 0
while True:
num = input('请输入一个数字:(分号表示输入结束)')
if num == ';':
break
num = float(num)
theSum += num
count +=1
print(f'平均值为{theSum/count}')
# 运行结果
请输入一个数字:(分号表示输入结束)11
请输入一个数字:(分号表示输入结束)22
请输入一个数字:(分号表示输入结束)33
请输入一个数字:(分号表示输入结束);
平均值为22.0
while True
不一定是死循环,关键是要看循环里有没有 break
theSum
表示加和的结果;count
表示有几个数字num
的时候就将 num
的类型转换为 float
,不然你最后想结束循环,输入 ;
的时候会报错;
直接输入到一个数字后面,不然也会报错