【学习 python day3】

学习目标:

掌握if判断语句的用法
掌握while循环的用法
掌握for循环的用法


学习内容:

一、流程控制

###1. 基本用法

1.1判断的基本结构
# 如果 .... 否则 ...  if ...  else ...
 if 判断条件:
判断条件成立,执行的代码
else:
判断条件不成立,执行的代码
# 1, else 是关键字,后边需要冒号
# 2, 存在冒号,需要换行加缩进
# 3, 处于 else 缩进中的代码,称为是 else 语句的代码块
# 4, else 需要和 if 对齐
# 5, else 需要结合 if 使用,不能单独使用
  • 需求
1. 输入用户年龄
2. 判断是否满 18 岁 (>=)
 3. 如果满 18 岁,允许进网吧嗨皮
4. 如果未满 18 岁,提示回家写作业
  • 代码
age = int(input("请输入年龄:"))
 if age >= 18:
 print("允许进网吧嗨皮")
 # shift + tab
 else:
 print("回家写作业")
1.2 if 和 逻辑运算符结合
and  并且
or 或者  
not 取反```
  • and
1. 获取用户输入的用户名和密码 
2. 判断用户名是 admin 并且密码是 123456 时, 在控制台输出: 登录成功! 
3. 否则在控制台输出: 登录信息错误!
"""
需求:
1. 获取用户输入的用户名和密码
2. 判断用户名是 admin 并且密码是 123456 时, 在控制台输出: 登录成功!
 3. 否则在控制台输出: 登录信息错误!
 """
username = input("请输入用户名:")
password = input("请输入密码:")
 if username == "admin" and password == "123456":
 print("登录成功")
 else:
 print("登录信息错误")
 # 设计测试用例
"""
 case01: 登录成功(用户名和密码正确)
case02: 登录失败、提示:登录信息错误(用户名为空)
case03: 登录失败、提示:登录信息错误(用户名未注册)
case04: 登录失败、提示:登录信息错误(密码为空)
case05: 登录失败、提示:登录信息错误(密码与账号不匹配)
"""
  • or
1. 定义两个整数变量python_score、c_score,使用 input 获取成绩 编写代码判断成绩
2. 要求只要有一门成绩 >= 60 分就输出合格
python_score = int(input("请输入python分数:"))
 c_score = int(input("请输入c分数:"))
 if python_score >= 60 or c_score >= 60:
 print("合格")
 else:
 print("不合格")
  • not
1. 定义一个浮点数变量high,使用 input 获取身高信息
2. 要求身高低于1.2米,提示免票;否则,提示请购买儿童票。
"""
 1. 定义一个浮点数变量high,使用 input 获取身高信息
2. 要求身高低于1.2米,提示免票;否则,提示请购买儿童票。
"""
 high = float(input("请输入身高信息:"))
 # 方式一:
# if high <= 1.2:
 #     
print("免票")
 # else:
 #     
print("请买票")
 # 方式二:
if not high > 1.2:
 print("免票")
 else:
print("买票")
1.3 if elif else 结构

适用于 多个判断条件的情况下,并且这些判断条件存在一定的关联.

  • 语法
if 判断条件1:
判断条件1 成立,执行的代码
elif 判断条件2:
判断条件1不成立,判断条件2 成立,执行的代码
elif:
 ...
 pass
 else:
以上条件都不成立,执行的代码
# 1, elif 是关键字,后边需要一个判断条件,判断条件后边需要跟冒号
# 2, 存在冒号,需要换行缩进
# 3, 处于 elif 缩进中的代码,称为 elif 代码块
# 4, if 和多个 elif 之间,只要有一个条件成立,后续的条件都不再执行
# 5, 一个 if  elif  else 之间,不能有其他的和if 对齐的代码
  • 需求
1. 定义 score 变量记录考试分数
2. 如果分数是 大于等于 90分 显示 优
3. 如果分数是 大于等于 80分 并且 小于 90分 显示 良
4. 如果分数是 大于等于 70分 并且 小于 80分 显示 中
5. 如果分数是 大于等于 60分 并且 小于 70分 显示 差
6. 其它分数显示 不及格
  • 代码
score = int(input("请输入分数:"))
 if score >= 90:
 print("优")
 # elif score >= 80 and score < 90:
 elif 80 <= score < 90:
 print("良")
 elif 70 <= score < 80:
 print("中")
 elif 60 <= score < 70:
 print("差")
 else:
 print("不及格")
 score = int(input("请输入分数:"))
 if score >= 90:
 print("优")
 elif score >= 80 and score < 90:
 print("良")
 elif score >= 70 and score < 80:
 print("中")
 elif score >= 60 and score < 70:
 print("差")
 else:
 print("不及格")
  • 优化版本
score = int(input("请输入分数:"))
 if score >= 90:
 print("优")
 # elif score >= 80 and score < 90:
 elif score >= 80:
 print("良")
 elif score >= 70:
 print("中")
 elif score >= 60:
 print("差")
 else:
 print("不及格")
1.4 if 嵌套

if 嵌套,是指在一个if(elif, else) 语句中 书写另一个 if 语句
判断条件存在递进关系(只有第一个条件满足,才会判断第二个条件)的时候,再去使用

  • 语法
if 判断条件1:
判断条件1成立,执行的代码
if 判断条件2:
判断条件2成立,执行的代码
else:
判断条件2不成立,执行的代码
else:
判断条件1不成立,执行的代码
  • 需求
需求:
定义布尔型变量 has_ticket 表示是否有车票
定义整型变量 knife_length 表示刀的长度,单位:厘米
首先检查是否有车票,如果有,才允许进行安检
安检时,需要检查刀的长度,判断是否超过 20 厘米
如果超过 20 厘米,提示刀的长度,不允许上车
如果不超过 20 厘米,安检通过
如果没有车票,不允许进门
  • 代码
has_ticket = False
 knife_length = int(input("请输入刀的长度:"))
 if has_ticket is True:
 print("请进站进行安检")
 if knife_length <= 20:
 print("安检通过")
 else:
 print("安检不通过")
 else:
 print("不允许进门")
  • 优化
has_ticket = bool(input("请输入是否有票:"))
 # bool(x) : 将x转换为布尔型数据#           
注意:有数据就位真,转换之后结果为True;没数据(不输入)时,转换之后结果为
Fasle
 print(has_ticket, type(has_ticket))
 if has_ticket:
 knife_length = int(input("请输入刀的长度:"))
 print(knife_length, type(knife_length))
 if knife_length <= 20:
 print("安检通过")
 else:
 print("安检不通过")
 else:
 print("请买票")

2、循环

在满足条件的情况下,让指定的代码重复执行

2.1 while 循环

while 是 Python 中的关键字,作用是用来实现循环的

2.1.1 指定次数的循环
  • 语法
# 1. 先定义循环的初始条件(定义变量,记录循环的次数)
 # 2. 使用 while 来书写循环的条件
while 判断条件:  # 只要判断条件为 True,循环就一直执行
# 3. 判断条件成立,重复执行的代码(可以多行)
 # 4. 修改计数器(循环次数发生改变)
 # 如果某行代码只需要执行一次,放在循环的外边即可
  • 案例
i = 1
 while i <= 10:
 print("媳妇儿,我错了")
 # i = i + 1
 i += 1
2.1.2 死循环
  • 死循环

死循环: 由于写代码的人不小心造成的错误,导致程序代码无法结束,一直运行. 是 bug。

  • 无限循环
无限循环: 根据需求,让程序代码一直运行, 一般在满足某个条件后终止。
使用场景: 在书写循环的时候,不知道一共要循环多少次,一般会在循环体(while 的代码缩进中)添加一个 
if 判断, 当 if 判断条件成立,使用关键字 break 终止循环
break  和 continue 关键字只能用在循环中
while True:
重复执行的代码
重复执行的代码
if xxx:
 break  # 代码执行遇到 break, 所在的循环会结束

2.2 for 循环

2.2.1 for 循环 做指定次数的循环
# 用法一 指定次数的循环
for i in range(100):  # i [0, 100) range(n) 生成 [0, n) 整数的序列
print('媳妇,我错了', i)
 # range(n) 会生成 [0, n) 之间的整数序列,不包含 n
 # 每次循环会从序列中取出一个数字给变量, 最大值 n-1
for i in range(100):  # range(100)  生成 [0, 100) 之间的整数数列 ,每次循环,从数列中取出
一个数字给 i
print('媳妇, 我错了', i)
2.2.2 for 遍历
遍历: 从容器中将数据逐个(一个一个)取出
容器: 字符串,列表,元组和字典
for 变量 in 容器:
重复执行的代码
# 1. 循环的次数由容器中数据的个数决定
# 2. 每次循环从容器中取出一个数据保存到变量中
# 3. 容器中 数据取完, 遍历结束(即循环结束)
 # 用法二 遍历 容器
# 容器: str 列表 元组 字典
# 遍历  将容器中的数据逐个取出
for i in 'study':
 print(i)

二、综合练习

1、用户登录

需求:
# 1. 获取用户输入的用户名信息
# 2. 如果用户名信息是 admin, 就在控制台输出 "欢迎admin登录"
 # 3. 如果用户名信息不是 admin, 就在控制台输出"用户名错误!"
a = input("请输入用户名")
 if a == "admin":
 print("欢迎admin登录")
 else:
 print("用户名错误!")

2、分数判定

# 1. 提示用户输入考试成绩
# 2. 如果成绩大于等于60分, 就在控制台输出合格
# 3. 如果成绩小于60分, 就在控制台输出成绩不合格
score = int(input("请输入成绩:"))
 if score >= 60:
 print("合格")
 else:
 print("不合格")

3、退休判定

需求:提示用户输入年龄,如果年龄超过65岁,输出:“可以退休了”, 否则,输出:“小伙子,加油干!”

 age = int(input("请输入年龄:"))
 if age > 65:
 print("可以退休了")
 else:
 print("小伙子,加油干!")

4、年龄段判断

需求:提示用户输入年龄,按照如下标准书写程序,判断用户处于哪个年龄阶段,并提示:您的年龄是xx: 青
少年/青年/中年/老年。
年龄段划分标准:0-17岁为青少年;18-35岁为青年;36-59为中年,60-99岁为老年。

age = int(input("请输入年龄:"))
 if 60 <= age <= 99:
 print(f"您的年龄是{age}: 老年")
 elif 36 <= age <=59:
 print(f"您的年龄是{age}: 中年")
 elif 18 <= age <= 35:
 print(f"您的年龄是{age}: 青年")
 else:
 print(f"您的年龄是{age}: 青少年")
i = 0
 while i < 4:
 age = int(input("请输入年龄:"))
 if 60 <= age <= 99:
 print(f"您的年龄是{age}: 老年")
 elif 36 <= age <= 59:
 print(f"您的年龄是{age}: 中年")
 elif 18 <= age <= 35:
 print(f"您的年龄是{age}: 青年")
 else:
 print(f"您的年龄是{age}: 青少年")
 i += 1

5、循环

需求:分别使用 for 循环和 while 循环 打印 10 遍, 我要好好学习。

i = 0
 while i < 10:
 print("我要好好学习")
 i += 1 
for i in range(10):
print("我要好好学习")
for i in range(10):  # range(10) 产生0~10之间的数字、注意10是取不到
print(f"我第{i}次说:我要好好学习")

6、判断闰年

需求:
闰年判断程序(闰年是能被4整除,但不能被100整除的;或者能被400整除的年份)
(year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
输入一个有效的年份,判断是不是闰年 year
如果是闰年,则打印“xxxx年是闰年”;否则打印“xxxx年不是闰年”
如输入"2018",将打印“2018年不是闰年”

 # 代码格式化:ctrl + alt + L
 # i = 0
 # while i < 3:
 #     
year = int(input("请输入年份:"))
 #     
#         
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
print("闰年")

7、累加求和

需求:使用循环完成 0 - 100 之间数字的求和运算.

 # 0 + 1 + 2 + 3 + ... + 100
 sum = 0
 for i in range(101):
    sum = sum + i
 print(sum)
# 定义计数器
i = 0
# 初始化
sum = 0
# 定义循环
while i < 101:
   # 要重复执行的代码
   sum += i
   # 修改计数器值
   i += 1
print(sum)

8、奇数求和

需求:对1~100中的奇数求和
说明:1 + 3 + 5 + 7 + 9 + …
关键:x % 2 != 0

sum = 0
 for i in range(101):
 if i % 2 != 0:  # 奇数:对2取余不为0
 sum = sum + i
 print(sum)

9、偶数求和

需求:对1~100中的偶数求和
说明:0 + 2 + 4 + 8 + 10 + …

 sum = 0
 i = 0
 while i < 101:
 # 偶数:对2取余为0
 if i % 2 == 0:
 sum = sum + i
 # 修改计数器值
i += 1
 print(sum)

10、过7游戏

需求:
设计"过7 游戏” 程序,即在 0- 99 之间的数字中,如果数字 包含 7 或者是 7 的倍数,则输出"过…",
否则输出 具体的数字.
如: 7 14 17 71 都输出过
if ‘7’ in 字符串:
提示: 1. 使用循环获取 0-99 之间所有的数字,
2, 判断数字是否包含 7 或者是 7 的倍数

for i in range(100):
 if (i % 7 == 0) or ("7" in str(i)):  # str(x) : 将x转换为字符串
print("过")
 else:
 print(i)

11、简易计算器

需求:设计简易计算器,可以进行基本的加减乘除运算, 参考如下
请输出第一个数字:
请输入第二个数字:
请输入要进行的操作(+ - * /):
计算的结果为:
举例如下:
请输出第一个数字: 10
请输入第二个数字: 20
请输入要进行的操作(+ - * /): +
计算的结果为: 10 + 20 = 30

# 请输出第一个数字:
 num1 = int(input("请输入第一个数字:"))
 # 请输入第二个数字:
 num2 = int(input("请输入第二个数字:"))
 # 请输入要进行的操作(+ - * /):
 a = input("请输入要进行的操作(+ - * /):")
 # 计算的结果为:
 if a == '+':
    print(f"{num1} + {num2} = {num1 + num2}")
 if a == '-':
    print(f"{num1} - {num2} = {num1 - num2}")
 if a == '*':
    print(f"{num1} * {num2} = {num1 * num2}")
 if a == '/':
    print(f"{num1} / {num2} = {num1 / num2}")

今日总结
掌握if判断语句的用法
掌握while循环的用法
掌握for循环的用法


学习时间:

上午 9 点-上午 11 点
下午 3 点-下午 6 点


今日总结

掌握if判断语句的用法
掌握while循环的用法
掌握for循环的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值