python判断与循环
判断语句
1. if 语句的基本结构
if xxx条件成立,就执行if里面的语句
语法:
if 判断条件:
判断条件成立, 执行的代码1
判断条件成立,执行的代码2
if外面的语句
1> if 语句条件后面需要一个冒号
2> 冒号之后需要回车缩进
3> 在 if 缩进中的代码 可以称为 if 语句的代码块
4> if 语句的代码块中的代码, 要么执行,要么都不执行
5> 在 if 语句缩进外的代码, 和 if 的判断没有关系
例子:
1. 定义⼀个整数变量记录输⼊的年龄
2. 判断是否满 18 岁 (>=)
3. 如果满 18 岁,允许进⽹吧嗨⽪
代码
# 1. 定义⼀个整数变量记录输⼊的年龄 input -->str
age = int(input('请输⼊年龄:')) #
# 2. 判断是否满 18 岁 (>=)
if age >= 18:# 3. 如果满 18 岁,允许进⽹吧嗨⽪print('哥满 18 岁了, 可以进⼊⽹吧 为所欲为...')print('这⾏代码 和 if 判断⽆关') # 1 会 2 不会
2. if else 结构
相当于补充 if 的其他情况, if else 如果... 否则...
语法
if 判断条件:
判断条件成立, 执行的代码
else:
判断条件不成立, 执行的代码
1> else 后面也要有冒号
2> 存在冒号, 就需要回车和缩进
3> 处于 else 缩进中的代码, 就能称之为 else 语句的代码块
4> else 必须搭配 if 使用, 不能单独使用, 且和 if 对齐
5> if 和 else 之间不能有定格书写的东西
例子
1. 获取⽤户输⼊的⽤户名信息
2. 如果⽤户名信息是 admin, 就在控制台输出 "欢迎admin登录"
3. 如果⽤户名信息不是 admin, 就在控制台输出"⽤户名错误!"
代码
# 1. 获取⽤户输⼊的⽤户名信息 input
name = input('请输⼊⽤户名:')
# 2. 如果⽤户名信息是 admin, 就在控制台输出 "欢迎admin登录"
if name == 'admin':print('欢迎admin登录')
else:# 3. 如果⽤户名信息不是 admin, 就在控制台输出"⽤户名错误!"print('⽤户名错误!')
3. if 和逻辑运算符结合
逻辑运算符 and or not 在 if 里面连接多个条件
例子
1. 获取⽤户输⼊的⽤户名
2. 判断⽤户名是 admin 时, 在控制台输出: 欢迎 admin 登录!
3. ⽤户名是 test 时, 在控制台输出: 欢迎 test 登录!
4. 如果是其他信息, 在控制台输出: 查⽆此⼈!
代码
# 1. 获取⽤户输⼊的⽤户名
username = input("请输入用户名:")
# 2. 判断⽤户名是 admin ,在控制台输出: 欢迎 admin 登录!
# 3. ⽤户名是 test 时, 在控制台输出: 欢迎 test 登录!
if username == "admin" or username == "test":print("欢迎 {} 登录".format(username))# 4. 如果是其他信息, 在控制台输出: 查⽆此⼈!
else:print("查无此人")
4. if elif else 结构
多并列条件的判断,世界不是非黑即白的,还分了很多种情况 if elif else 如果... 如果... 否则,
语法
if 判断条件1:
判断条件1成立, 执行的代码
elif 判断条件2:
判断条件2成立,执行的代码
elif 判断条件3:
判断条件3成立, 执行的代码
else:
上面情况都不成立, 执行的代码
1> elif 后面也需要冒号,回车和缩进
2> if elif else 的代码结构, 满足其中一个的条件, 其他的条件就不会再判断
例子
1. 定义 score 变量记录考试分数
2. 如果分数是 ⼤于等于 90分 显示 优
3. 如果分数是 ⼤于等于 80分 并且 ⼩于 90分 显示 良
4. 如果分数是 ⼤于等于 70分 并且 ⼩于 80分 显示 中
5. 如果分数是 ⼤于等于 60分 并且 ⼩于 70分 显示 差
6. 其它分数显示 不及格
代码
# 1. 定义 score 变量记录考试分数
score = int(input('请输⼊分数'))
# 2. 如果分数是 ⼤于等于 90分 显示 优
if score >= 90:print('优')
# 3. 如果分数是 ⼤于等于 80分 并且 ⼩于 90分 显示 良
elif (score >= 80) and score < 90:print('良')
# 4. 如果分数是 ⼤于等于 70分 并且 ⼩于 80分 显示 中
elif (score >= 70) and score < 80:print('中')
# 5. 如果分数是 ⼤于等于 60分 并且 ⼩于 70分 显示 差
elif (score >= 60) and score < 70:print('差')
# 6. 其它分数显示 不及格
else:print('不及格')
5. if 嵌套
在⼀个if(elif else) 语句中 嵌套另⼀个 if(elif else )语句. 判断条件存在递进关系才会使⽤. 即 只有第⼀个条件成⽴,才会判断第⼆个条件
语法
if 判断条件1:
判断条件1成立, 执行的代码
if 判断条件2:
判断条件2成立, 执行的代码
else:
判断条件2不成立, 执行的代码
else:
判断条件1不成立, 执行的代码
例子
取款机取钱的过程, 假定 你的密码是: 123456, 账户余额为 1000
1. 提示⽤户输⼊密码
2. 判断密码是否正确
3. 密码正确后,提示输⼊取款的⾦额,
4. 判断取款的⾦额和余额的关系
代码:
# 取款机取钱的过程, 假定 你的密码是: 123456, 账户余额为 1000
# 1. 提示⽤户输⼊密码
pwd = input('请输⼊密码:')
# 2. 判断密码是否正确
if pwd == '123456':print('密码输⼊正确')# 3. 密码正确后,提示输⼊取款的⾦额,money = int(input('请输⼊取款的⾦额:'))# 4. 判断取款的⾦额和余额的关系if money > 1000:print('余额不⾜')else:print('取款中,请稍后....')print('请收好你的钱....')
else:print('密码输⼊错误,请重试')
补充: 随机数的产生
random.randint(n,m) 随机产生[n,m]之间的随机整数
练习: 剪刀石头布
import random# 1. 控制台出拳(⽯头1/剪⼑2/布3)
player = int(input('请出拳 ⽯头1/剪⼑2/布3:'))
# 2. 电脑出拳 computer = 电脑的结果
computer = random.randint(1, 3)
# 3. 判断胜负
# 3.1 玩家胜利
# 3.1.1 玩家出⽯头, 电脑出剪⼑ # 3.1.2 玩家出剪⼑, 电脑出 布 # 3.1.3 玩家出布, 电脑出 ⽯头
if (player == 1 and computer == 2) or (player == 2and computer == 3) or (player == 3 and computer == 1):print('玩家胜利')
# 3.2 平局 玩家和电脑出的内容⼀样,
elif player == computer:print('平局')
# 3.3 电脑胜利
else:print('电脑胜利')
循环
1. while 循环
让指定的代码重复的执行
语法
1. 循环的初始条件(计数器)
# 2. 循环的终止条件:
判断条件成立的代码
判断条件成立的代码
判断条件成立的代码
# 计数器+1
1> 处于 while 缩进的代码, 为 while 的循环体
2> 执行顺序 1 2 3 2 3 2 3 2(条件不成立, 结束)
例子: 计算1-~00的和
i = 1
sum = 0
while i <= 100:sum += ii += 1
print("和为: ", sum)
死循环和无限循环
看上去俩者没区别, 都是代码一直执行不能停止
死循环: 由于 写代码的人的疏忽, 不小心写的. bug
无限循环: 是写代码的人 故意这么设计的
无限循环中一般会存在一个 if 判断语句, 当这个判断语句的条件成立, 执行 break 语句, 来终止循环
continue: 跳过本次循环
break: 跳出这一层的循环
语法
while True:
xxxx
xxxx
if xxxx:
break
xxxx
例子: 循环版本的剪刀石头布
import randomwhile True:# 1. 控制台出拳(⽯头1/剪⼑2/布3)player = int(input('请出拳 ⽯头1/剪⼑2/布3:'))# 2. 电脑出拳 computer = 电脑的结果computer = random.randint(1, 3)# 3. 判断胜负# 3.1 玩家胜利# 3.1.1 玩家出⽯头, 电脑出剪⼑ # 3.1.2 玩家出剪⼑, 电脑出 布 # 3.1.3 玩家出布, 电脑出 ⽯头if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):print('玩家胜利')# 3.2 平局 玩家和电脑出的内容⼀样,elif player == computer:print('平局')# 3.3 电脑胜利else:print('电脑胜利')
2. for 循环
做指定次数的循环, 并且可以从容器(字符串/列表/元组/字典)中将数据逐个取出的过程
for 循环遍历字符串
for 变量 in 字符串:
重复执行的代码
1> 字符串中存在多少个字符, 代码就会执行多少次
2> 每次循环都会从字符串中取出一个字符保存在前面的变量中
for 指定次数的循环
for 变量 in range(n): # 循环的次数
重复执行的代码
1> range(n) 可以生成[0,n)的整数序列,不包含n