一 if语句
1.1 什么时候使用if语句
如果某一段代码需要在满足条件的时候才执行就是用if语句
1.2 怎么使用if语句
1. 2.1 if单分支结构 — 满足条件执行某个操作,不满足不执行
语法:
if 条件语句:
代码块(if里面的代码)
其他代码(if外面的代码)
说明:
- if — 关键字;固定写法
- 条件语句 - 任何有结果的表达式(具体的数据、除了赋值语句以外的运算表达式、函数调用表达式)
- : - 固定写法
- 代码块 - 和if保持一个缩进的一条或者多条语句;需要在满足条件才会执行的代码。
- 执行过程 - 判断条件语句是否为True(如果不是布尔就看条件语句的结果的布尔值是否为True),为True就执行if里面的代码快,否则不执行。
- 注意:条件语句可以是除了赋值语句以外的任何表达式
if 100:
pass
if 'abc':
pass
if 10 > 5:
pass
报错:
'''
if num = 10:
pass
'''
- 代码块和执行过程
print('====分割线===')
if 1:
print('===')
print('---')
print('***')
练习:根据输入的数据打印偶数
num = float(input('请输入:'))
if num % 2 == 0:
print(num)
else:
print('此数为奇数。')
或者:
if not num % 2:
print('偶数')
if num % 2:
print('奇数')
判断字符串是否为空
str1 = ''
if str1:
print('不是空串')
1.2.2 if双分支结构 - 满足条件执行某个条件,不满足执行另外一个操作
语法:
if 条件语句:
代码块1(满足条件要执行的代码)
else:
代码块2(条件不满足的时候要执行的代码)
执行过程:
判断条件语句是否为True(如果不是布尔就转换成布尔),如果为True就执行代码块1,否则执行代码块2.
练习1:根据年龄的值打印成年或者未成年。
age = int(input('请输入年龄:'))
if age >= 18:
print('成年')
else:
print('未成年')
练习2:判断一个三位数是否为水仙花数(各位数的立方和刚好等于这个数本身)
num = int(input(‘请输入一个三位数:’))
if 100 <= num < 1000:
a = num // 100
b = num % 100 // 10
c = num % 100 % 10
if num == a ** 3 + b ** 3 + c ** 3:
print('次数为水仙花数')
else:
print('次数不是水仙花数')
else:
print('你输的啥?')
1.2.3 if多分支结构 - 根据不同的条件执行不同的操作
语法:
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elif 条件语句3:
代码块3
...
else:
代码块N
其他代码
执行过程:
先判断条件语句1是否为True,为True就执行代码块1,然后if语句结构直接结束;否则就判断条件语句2是否为True,如果为True就执行代码块2,然后整个if语句结构直接结束;否则就判段条件语句3是否为True,以此类推…。如果前面所有语句不成立,就直接else后面的代码块。
练习:根据每个月的收入情况判断这个月的伙食
income = int(input('请输入你的工资:'))
if 500 < income <= 1000:
print('吃土吧')
elif 1000 < income <= 3000:
print('省吃简雍还能过')
elif 3000 < income <= 5000:
print('泡面在等你')
elif 5000 < income <= 10000:
print('吃面或米饭')
elif 10000 < income:
print('好嗨哦,感觉人生已经达到了巅峰!')
else:
print('你来城市里干嘛?')
1.3.python中的三目运算符
- C中的三目运算符 - ?;
表达式1?表达式2:表达式3 - 判断表达式1的值是否为真,如果是真,整个运算的结果就是表达式2的值,否则就是表达式3的值。
例如:
int age = 18;
int result = age >=18?"成年":"未成年";
- python中的三目运算符 - 通过if-else来实现c中 ?:的功能。
表达式2 if 表达式1 else 表达式3 - 判断表达式1的值是否为True,如果是True,整个语句的结果就是表达式2的值,否则就是表达式3的值。
例如:
age = 18
result = '成年' if age >= 18 else '未成年'
print(result)
score = 69
result = '及格' if score >= 60 else '不及格'
print(result)
1.4 if嵌套 - 在一个if语句中嵌套其他的if语句
例如:
判断一个数是否是偶数,如果是打印’偶数’,否则打印’奇数’,;然后再判断这个数是否能被4整除。
num = int(input('请输入一个数:'))
if not num % 2:
print('偶数')
if not num % 4:
print('能被4整除')
else:
print('不能被4整除')
else:
print('奇数')
二.for循环
语法:
for 变量 in 序列:
循环体
- 说明:
- for - 关键字;固定写法
- 变量 - 可以是已经定义过的变量,也可以是没有定义过的变量(常用)
- in - 关键字;固定写法
- 序列 - python中容器型数据类型得数据,例如:字符串、列表、元组、集合、字典、迭代器、生成器、range等
- : - 固定写法
- 循环体 - 和for保持一个缩进的一条语句或者多条语句;需要重复执行的代码
- 执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环。(for循环的循环次数和序列中元素的个数一样)
for i in 'abc':
print('==')
print(i)
执行过程:
i = 'a';print('a')
i = 'b';print('a')
i = 'c';print('a')
2.1 range函数 - 产生数据序列
用法1:
range(N) - 产生一个 0~N-1 的数字序列(N是正整数)
例如:
for i in range(4):
print('i:', i)
练习:print("!!!")执行100次
for i in range(100):
print('!!!', i)
用法2:
range(M,N) - 产生一个 M~N-1 的数字序列;(M,N都是整数;N>M)
for j in range(10, 100):
print('j:', j)
for z in range(-100, -10):
print('z:', z)
用法3:
range(M,N,step) - 从M开始每次增加step产生下一个数字,到N前为止。
注意:当step为负数时,M > N
for i in range(1, 10, 2):
print('i:', i)
for j in range(10, 1, -1):
print('j:', j)
练习1:计算1+2+3+…+100的和。
s = 0
for i in range(1, 101):
s += i
print('i:', i)
print('s:', s)
练习2:统计100~300中能被3整除但不能被4整除的个数。
s = 0
for i in range(100, 301):
if i % 3 == 0 and i % 4 != 0:
s += 1
print('满足条件的数:', i)
print('s:', s)
三 while循环
语法:
while 条件语句:
循环体
说明:
1)while - 关键字;固定写法
2)条件语句 - 任何又结果的表达式,只要不是赋值语句就可以,和if的条件语句一样
3): - 固定写法
4)循环体 - 和while保持一个缩进的一条或者多条语句;需要重复执行的代码
执行过程:
先判断条件语句是否为True,为True就执行循环体,执行完循环体再判断条件语句是否为True,
为True,又执行循环体,以此类推,如果判断条件语句的结果为False,循环结束。
num = 0
while num <= 4:
print('sh!')
num += 1
练习1:不断从控制台输入数字,直到输入的数字为0就停止。
方法一:
num = int(input('请输入:'))
while num != 0:
num = int(input('请输入num:'))
print('num:', num)
方法二:
while True:
value = input('请输入:')
if value == '0':
break
练习2:猜数字游戏
import random
r_num = random.randint(0, 100)
print('r_num:', r_num)
while True:
num = int(input('请输入新的num:'))
if num != r_num:
print(num, '不对!', sep=':')
else:
print('bingo')
break
四 python中的三个关键字
4.1continue
continue是循环体中的关键字,只能在循环体中使用。
当执行循环体的时候,如果遇到continue,当次循环结束,直接进入下次循环的判断.
例如:
for _ in range(5):
print('==')
continue
print('--')
4.2 break
break是循环体中的关键字,只能在循环体中使用。
当执行循环提的的时候如果遇到break,整个循环直接结束。
例如:
for _ in range(5):
print('==')
break
print('--')
4.2.1 python中while正确打开方式
while True:
需要重复执行的操作
if 循环结束的条件:
break
4.2.2 python中的for和while的完整结构是:for-else结构和while-else结构。
- for-else结构
for 变量 in 序列:
循环体
else:
代码块
- while-else结构
while 条件语句:
循环体
else:
代码块
注意:
else后面的代码在循环的过程中如果遇到了break就不会执行,反之就会执行。
例如:
for _ in range(5):
print('==')
break
print('--')
else:
print('else中的')
num = 1
while num < 5:
print('sdas')
num += 1
if num == 3:
break
else:
print('while-else结构')