python 2_三大流程控制语句 if语句 while循环 while死循环 for循环 跳出循环语句

本文深入探讨了Python中的流程控制,包括if-else、三元运算符、if-elif-else语句,以及循环结构如while和for的用法,还通过实例演示了用户登录验证、循环遍历和防暴力破解。同时介绍了如何在实际项目中运用这些控制结构,如彩虹棒棒糖的渐变颜色绘制。
摘要由CSDN通过智能技术生成

1. 三大流程控制语句

在这里插入图片描述

2. 分支流程控制语句

2.1 第一类分支语句:标准的 if 语句

# if 语句
name = input("输入name:")
if name == "westos":
    print("True")

在这里插入图片描述

2.2 第一类分支语句:if-else 语句

# 需求:当年龄小于18时,输出 “未成年” ;反之,输出 “成年”

age = int(input("年龄:"))
if age < 18:
    print("未成年")
else:
    print("成年")

在这里插入图片描述

2.3 第三类分支语句:三元运算符的 if 语句

# 三元运算符: age > 18 ? "成年" : "未成年"
age = int(input("年龄:"))
print("未成年" if age < 18 else "未成年")

在这里插入图片描述

2.4 第四类分支语句:if-elif-else 语句

"""
需求: 分数score
    1). 90 <= score <= 100, grade=A
    2). 80 <= score < 90, grade=B
    3). score <80, grade=C
"""
score = int(input("score:"))
if 90 <= score <= 100:
    print("等级是A")
elif 80 <= score < 90:
    print("等级是B")
elif 0 <= score < 80:
    print("等级是C")
else:
    print("输入错误")

2.5 练习:用户登陆程序

"""
需求:
    1. 用户输入用户名和密码
    2. 判断用户名和密码是否正确 (用户名 = admin 密码 = westos)
    3. 如果正确,输出 "用户admin登陆成功"
    4. 如果不正确,输出 "用户admin登陆失败"
"""
name = input("输入用户名:")
password = input("输入密码:")
if name == "admin" and password == "westos":
    print(f"用户{name}登陆成功")
else:
    print(f"用户{name}登陆失败")

在这里插入图片描述

2.6 错误点汇总

  1. 数据类型的转换
# 需求:当年龄小于18时,输出 “未成年” ;反之,输出 “成年”

age = input("年龄:")
if age < 18:
    print("未成年")
else:
    print("成年")

出现报错如下:
在这里插入图片描述错误原因:
age得到的值是字符串类型,需要设定input输入的值从字符串类型转换为整数类型int

  1. 代码的缩进
    在这里插入图片描述在这里插入图片描述

3. 循环流程控制语句

3.1 第一类循环语句:while循环语句

while循环的原理:while循环的suite_to_repeat子句会一直循环执行,直到expression值为布尔假
在这里插入图片描述

# 需求:输出数字 0 ~ 100
count = 0
while count <= 100:
    print(count)
    count += 1

3.2 第二类循环语句:while死循环

在这里插入图片描述

"""
需求:用户登陆系统
    1. 要求死循环
    2. 要求记录用户登陆的次数
    3. 用户登陆成功后,退出程序 exit()
"""
count = 1
while True:
    print(f"第{count}次登陆")
    count += 1
    name = input("输入用户名:")
    password = input("输入密码:")
    if name == "admin" and password == "westos":
        print(f"用户{name}登陆成功")
        exit()
    else:
        print(f"用户{name}登陆失败")

在这里插入图片描述

3.3 练习:输出数字 0~100之间的偶数

方法一:

# 输出 0~100 之间的偶数
count = 0
while count <= 100:
    print(count)
    count += 2

方法二:

count = 0
while count <= 100:
    if count % 2 == 0:
        print(count)
    count += 1

3.4 第三类循环语句: for循环

3.4.1 for循环语法结构一:range内建函数

range 语法:

	range(start, end, step=1) 
	返回一个包含所有k的列表, start <= k < end, k每次递增 step

在这里插入图片描述

# 需求:for循环实现输出 0~100之间的数字
for num in range(0,101):
    print(num)

3.4.2 for循环语法结构二:序列类型for循环

for item in "westos":
    print(item)

3.5 pycharm的补充知识

  1. python的交互式环境
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  2. 命令行界面
    在这里插入图片描述

3.6 for循环输出 0~100 之间的偶数

# 需求:for循环实现输出 0~100之间的偶数
for num in range(0, 101, 2):
    print(num)

3.7 for循环输出 0~100 之间的奇数

注意点:

range( 1, 100, 2) 表示,从1开始遍历,直到100-1结束;其中步长为2
[ 1, 3, 5, ...... ]
# 需求:for循环输出 0~100 之间的奇数
for num in range(1, 100, 2):
    print(num)
#    num += 2 				这句没用

3.8 跳出循环语句 break 和 continue 语句

在这里插入图片描述在这里插入图片描述

3.8.1 break 语句

  • break语句用来终止循环语句,即循环条件没False条件 或者 序列还没有被完全递归完, 也会停止执行循环语句

在这里插入图片描述

3.8.2 continue 语句

  • 跳过当前循环的剩余语句, 然后继续进行下一轮循环

在这里插入图片描述

练习:九九乘法表(循环嵌套)

思路:

- 		i			j
- 		1			1
- 		2			1, 2
- 		3			1, 2,3
- 		4			1, 2,3,4
- 		...			...
- 		9			1, 2,3,4,... , 9
- 这是一个嵌套循环,i 作为外部循环,j 作为内部循环
- 要求 print 输出 不换行,使用 end=' '

在这里插入图片描述

# 需求:九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{i}*{j}={i*j}", end=' ')    # end=' ' 表示 print输出 不换行
    print()

在这里插入图片描述

练习:防黑客暴力破解的用户登陆系统

在这里插入图片描述

# 需求:要求登陆的次数是在设定之内
try_count = 1
while try_count <= 3:
    print(f"第{try_count}次登陆系统")
    try_count += 1
    name = input("用户名:")
    password = input("密码:")
    if name == "root" and password == "westos":
        print(f"用户{name}登陆成功")
        exit()
    else:
        print(f"用户{name}登陆失败")
else:
    print("尝试次数超过3次,登陆失败")

练习+拓展:彩虹棒棒糖

在这里插入图片描述在这里插入图片描述在这里插入图片描述

import turtle

"""
R:red, G:green, B:blue
RGB颜色表示法:
    red: (255,0,0)
    green: ()
    blue: ()
"""
# 1. 生成渐变色的列表
# 从红色到黄色
colors1 = [(255, g, 0) for g in range(0, 256)]
# 从黄色到绿色
colors2 = [(r, 255, 0) for r in range(255, -1, -1)]
# 从绿色到青色
colors3 = [(0, 255, b) for b in range(0, 256)]
# 从青到蓝
colors4 = [(0, g, 255) for g in range(255, -1, -1)]
# 从蓝到紫
colors5 = [(r, 0, 255) for r in range(0, 256)]
# 从紫到红
colors6 = [(255, 0, g) for g in range(255, -1, -1)]
# colors = colors1 + colors2 + colors3 + colors4 + colors5 + colors6
colors = colors1 + colors2 + colors3 + colors4 + colors5 + colors6
n = len(colors)

# 2. 基于turtle生成彩虹糖(可根据自己的喜好调整彩虹棒棒糖的颜色)
# 画笔的大小: 20px
turtle.pensize(20)
# 画图的速度,0代表最快速度
turtle.speed(0)
# 设置turtle指定颜色的模式, 255代表rgb模式
turtle.colormode(255)
# 循环1000次不断画圆,画圆的同时不断调整圆的半径
for i in range(1000):
    # 如果颜色超出给定的范围,和总颜色个数取余,从头开始获取颜色。
    #color = (255, 0, 0) 红色
    color = colors[ i % n ]
    turtle.color(color)
    turtle.circle(i // 3, 5)
# 彩虹色棒棒糖绘制完成
turtle.done()

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值