一、if 语句
1. 什么时候使用if语句
如果某一段代码需要在满足条件的时候才执行就使用if语法
2. 怎么使用if语句
-
if单分支结构
语法:
if 条件语句:
代码块(if语句里面的代码)
其他代码(if外面的代码)
说明:
1.if - 关键字;固定写法
2.条件语句 - 任何由结构的表达式(具体的数据、出了赋值语句以外的运算表达式、函数调用表达式)
3.: - 固定写法
4.代码块 - 和if保持一个缩进的一条或者多条语句;需要在满足条件才会执行的代码
执行过程:
判断条件语句是否为True(如果不是布尔就看条件语句的结果的布尔值是否True),为Ture就执行if里面的代码块,否则不执行
条件语句可以是除了赋值语句以外的任何表达式:
if 100:
pass
# 报错 SyntaxError: invalid syntax
# if num = 100:
# pass
代码块和执行过程:
if 100:
print('-----')
print('+++++')
print('*****')
练习:根据输入的数据值打印偶数
num = int(input('请输入:'))
if num % 2 == 0:
print(num,'是偶数')
else:
print(num, '是奇数')
-
if双分支结构 - 满足条件执行某个操作,不满足执行另外一个操作
语法:
if 条件语句:
代码块1(满足条件要执行的代码)
else :
代码块(条件不满足的时候要执行的代码)
执行过程:
判断条件语句是否为True(如果不是布尔就转换成布尔),如果为True就执行代码块1,否则执行代码块2
练习:根据年龄的值打印 成年或者未成年
age = 80
if age >= 18:
print('成年')
else:
print('未成年')
练习:判断一个三位数是否为完数(各位数的立方和刚好等于这个数的本身)
num = 250
if (num % 10) ** 3 + (num // 100) ** 3 + (num % 100 // 10) ** 3 == num :
print(num,'是水仙花数')
else:
print(num,'不是水仙花数')
-
if多分支结构 - 根据不同的条件执行不同的操作
语法:
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elif 条件语句3:
代码块3
...
else:
代码块n:
执行过程:
先判断条件语句1是否为True,如果为True就执行代码1,然后整个if语句结构直接结束
否则就判断条件语句2是为True,如果为True就执行代码2,然后整个if语句结构直接结束;
...
如果前面所有的条件语句都不成立,就直接else后面的代码
练习:根据每个月的收入情况判断这个月的伙食
income = 50500
if income <= 1000:
print('吃锥子吧')
elif 1000 < income <= 2000:
print('吃馒头吧')
elif 2000 < income <= 4000 :
print('吃泡面吧')
elif 4000 < income <= 6000:
print('吃米饭')
else:
print('大鱼大肉')
3. python中的三目运算符
1)c中的三目运算 - ?:
表达式1?表达式2:表达式3 - 判断表达式1的值是否为真,如果是整个运算的结果就是表达式2,否则就是表达式3
int age = 18;
int result = age >= 18?"成年":"未成年";
2)python中的三目运算符 - 是通过if-else来实现的
表达式2 if 表达式1 else 表达式3 - 先判断表达式1的值是否为True,如果是整个语句的结果是表达式2的值,否则就是表达式3 的值
age = 51
result = '成年' if age >=18 else '未成年'
print(result) #成年
score = 69
result = '及格' if score >= 60 else '不及格'
print(result) #及格
4. if嵌套 - 在一个if语句中嵌套其他的if语句
判断一个数是否是偶数,如果是打印'偶数', 否则打印'奇数';然后再判断这个数是否能4整除,如果能打印 4的倍数
num = 4
if not (num % 2 ):
print(num,'是偶数')
if num % 4 == 0:
print(num,'是4的倍数')
else:
print(num,'是奇数')
二、for 循环
语法:
for 变量 in 序列:
循环体
说明:
for - 关键字;固有写法
变量 - 可以是已经定义过的变量,也可以是没有定义过的变量(常用)
in - 关键字;固定写法
序列 - python中容器型数据类型的数据,例如:字符串、列表、元组、集合、字典、迭代器、range等
: - 固定写法
循环体 - 和for保持一个缩进或者多条语句;需要重复执行的代码
执行过程:
让变量在序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体
(for循环的循环次数和序列中的与拿书的个数一样)
range函数
range(N) - 产生一个0~N-1的数字序列(N是正整数)
range(M, N) - 产生一个M~N-1的数字序列(M,N都是整数;N>M)
range(M, N, step) - 从M开始每次增加step产生下一个数据,到N前为止
练习: print('!!!!!')执行一百次
for x in range(100):
print('!!!!!')
for y in range(10, 100):
print('!!!!!')
for z in range(-10, 10):
print('!!!!')
for z in range(1,13,2):
print(z)
for j in range(10,1,-2):
print(j)
练习:计算1+2+...+100的和
s = 0
for a in range(1,101):
s += a
print(s)
练习:统计100~300中能被3整除但是不能被4整除的数的个数
num = 0 # num用来保存最后的个数
for i in range(100,301):
if not (i % 3) and i % 4 :
# 满足条件的时候加1
num += 1
print(num)
三、while 循环
语法:
while 条件语句:
循环体
说明:
while - 关键字;固定写法
条件语句 - 和if后面的条件语句要求一样,只要不是赋值语句就可以
: - 固有写法
循环体 - 和while保持一个缩进的一条或者多条语句;需要重复执行的代码
执行过程:
先判断条件语句是否为True,为True就执行循环体,执行完循环体再判断条件语句是否为True
为True又执行循环体,一次类推,如果判断条件语句的结果是False,循环结束
num = 0
while num <= 4:
print('======')
num +=1
死循环:
while True:
input('请输入:')
练习1:不断从控制台输入数字,直到输入的数字为0就停止。
num = float(input('请输入:'))
if num != 0:
while num != 0:
num = float(input('请输入:'))
if num == 0:
print('输入的为0')
else:
print('输入的为0')
练习2:猜随机数
import random
r_num = random.randint(0,100)
while True:
num = int(input('请输入:'))
if num == r_num:
print('正确')
break
else:
print('再来一次')
四、break、countinue、else
1. coutinue
continue是循环体中的关键字,只能在循环中使用
当执行循环体的时候,如果遇到了continue,当次循环结束,直接进入下次循环的判断
for _ in range(5):
print('====')
# continue
print('++++')
for i in range(5):
print('5555')
continue
print('23232')
2. break
break是循环体中的关键字,只能在循环中使用
当执行循环体的时候如果遇到break,整个循环直接结束
for _ in range(5):
print('====')
break
print('----')
python中while正确打开方式
while True:
需要重复执行的操作
if 循环结束的条件:
break
while True:
value = input('请输入:')
if value == '0':
break
3. else
python中的for和while的完整结构是:for-else结构和while-else结构
-
for-else结构
for 变量 in 序列:
循环体
else:
代码块 -
while-else结构
while 条件结构:
循环体
else:
代码块
else后面的代码在循环执行过程中如果遇到break不会执行,反之就会执行
for _ in range(5):
print('-----')
else:
print('eeeee')
for _ in range(5):
print('+++++')
break
else:
print('eeeee')