python循环

embedded/2025/2/8 15:01:38/

while和for的区别

while 和 for 的区别,while是不定循环循环次数不固定。for的循环次数通常是固定的

python">continue    跳出本次循环,直接执行下一次循环
break       退出循环,执行循环外的代码
exit()      退出python程序,可以指定返回值

while循环

python">i = 1
while i <= 3:print(i, "开始打印1~3")i += 1结果:
1 开始打印1~3
2 开始打印1~3
3 开始打印1~3

猜随机数字

python">import random
num = random.randint(1, 100)
while True:choise = int(input("please input number: "))if choise == num:print("猜对了!", num)breakelif choise > num:print("bigger")else:print("smaller")

登录功能:(输入 q 可以退出所有循环

python">username = 'wzy'
password = '123'
input_count = 0
while True:inp_name=input('请输入您的账号:')inp_pwd=input('请输入您的密码:')input_count += 1if input_count >= 3:print('账号密码错误次数过多!')breakif inp_name == username and inp_pwd == password:print('登录成功')while True:cmd=input("输入命令>: ")if cmd == 'q':breakprint('命令{x}正在运行'.format(x=cmd))break   # 立刻终止本层循环else:print('账号名或密码错误')

也可以使用 for i in range(3) 实现

⚠️不要在 continue 后加同级代码,后面的代码永远不会执行

python">username = 'wzy'
password = '123'
input_count = 0
tag = True
while tag:inp_name=input('请输入您的账号:')inp_pwd=input('请输入您的密码:')input_count += 1if input_count >= 3:print('账号密码错误次数过多!')breakif inp_name == username and inp_pwd == password:print('登录成功')while tag:cmd=input("输入命令>: ")if cmd == 'q':tag = Falsebreakelse:print('命令{x}正在运行'.format(x=cmd))else:print('账号名或密码错误')
python">i = 0
while i < 10:i += 1if i == 5:continue # 跳过当 i 等于 5 时的剩余部分
print(i)结果为:10

while + else

  • while + else 的主要使用场景是处理 循环是否正常结束 的逻辑

  • else块只有在while循环 没有被 break 语句中断 并正常结束时才会执行

python">items = [1, 3, 5, 7, 9]
target = 4index = 0
while index < len(items):if items[index] == target:print(f"Found {target} at index {index}")breakindex += 1
else:print(f"{target} not found in the list")

while嵌套

  • 如果多个while循环嵌套,内层的break并不能打破循环

for循环

python">for i in range(1,3):print("wzy打印出: ", i)结果:
wzy打印出:  1
wzy打印出:  2

range还可以指定步长为奇书偶数:例如 range(1, 7, 2) range(2, 8, 2)

1.判读是否为质数:

python">num = int(input('Please input a number: '))
for i in range(2, num):if num % i == 0:print(num, '不是质数')break
else:print(num, '是质数')

continue语句

continue作用:跳过 continue 后面的语句

for + continue 案例:

python">for i in range(6):if i == 4:continueprint(i)
0
1
2
3
5

循环嵌套

python">for a in range(3):print('外层循环-----》', a)for b in range(5):print('内层循环', b)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.使用循环嵌套打印三角形

python">*
**
***
****# 特点如下:
列数和行数直接相关,当前是多少行,就打印多少列for i in range(4):  # 外层循环控制行数,一共4行for j in range(i + 1):  # 内层循环控制每行打印*的个数,个数与行数对应print('*', end='')print()   # 换行输出

打印乘法表

  • 外层循环:外层循环控制的是乘法表的行数,表示乘数的第一个数字(例如从 1 到 9)
  • 内层循环:内层循环控制的是乘法表的列数,表示乘数的第二个数字(同样是从 1 到 9)
python">for i in range(1, 10):  # 外层循环,控制行数for j in range(1, i + 1):  # 内层循环,控制每行列数print(f"{i}*{j}={i*j}", end=' ')  # 打印乘法表达式print()  # 每行输出后换行

输出结果如下:外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

python">for line in range(1, 10):for i in range(1, line+1):print('{}*{}={}'.format(line, i, line*i), end=' ')print()1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

对应的shell脚本为:

for line in {1..9}
do# 内层循环控制每行的乘法计算(1 到 line)for i in $(seq 1 $line)do# 打印当前乘法结果,不换行echo -n "$i*$line=$((i*line)) "done# 每行结束后换行echo
done

打印金字塔

打印一个有5行的金字塔

python"># 定义行数
n = 5
for i in range(1, n+1):# 控制每一行的空格数量,空格数量 = 当前行 - 1print(' ' * (n - i), end=' ')   # 打印完空格后不换行,为了把空格和*写在同一行# 打印*,*数量为当前行号乘2减1print('*' * (2 * i -1))
     *************************

3种商品的选择

洗发水15元/瓶,香皂2元/个,牙刷5元/个,100购买这些商品,要尽可能把钱花完。列出所有组合 输出示例:洗发水: 0 瓶, 香皂: 2 个, 牙刷: 9 个, 价格 XX 元。

15x+2y+5z=100;x y z代表购买个数

  • 首先要确定变量范围,即每种商品最多可以购买多少个

    • 洗发水:最多买 100÷15=6 瓶,即x的范围是 0~6

    • 香皂:最多买 100÷2=50,即y的范围是0~50

    • 牙刷:最多买100÷10,即z的范围是0-10

python"># 单价使用abc表示,数量使用xyz表示
a = 15
b = 10
c = 2
total = 100
for x in range(100 // a+1):for y in range(100 // b+1):for z in range(100 // c+1):if x * a + y * b + z * c == 100:print(f'洗发水:{x}瓶,牙刷:{y}个,香皂:{z}个')'''
洗发水:0瓶,香皂:0个,牙刷:50个
洗发水:0瓶,香皂:1个,牙刷:45个
洗发水:0瓶,香皂:2个,牙刷:40个
洗发水:0瓶,香皂:3个,牙刷:35个
洗发水:0瓶,香皂:4个,牙刷:30个
洗发水:0瓶,香皂:5个,牙刷:25个
洗发水:0瓶,香皂:6个,牙刷:20个
洗发水:0瓶,香皂:7个,牙刷:15个
洗发水:0瓶,香皂:8个,牙刷:10个
洗发水:0瓶,香皂:9个,牙刷:5个
洗发水:0瓶,香皂:10个,牙刷:0个
洗发水:2瓶,香皂:0个,牙刷:35个
洗发水:2瓶,香皂:1个,牙刷:30个
洗发水:2瓶,香皂:2个,牙刷:25个
洗发水:2瓶,香皂:3个,牙刷:20个
洗发水:2瓶,香皂:4个,牙刷:15个
洗发水:2瓶,香皂:5个,牙刷:10个
洗发水:2瓶,香皂:6个,牙刷:5个
洗发水:2瓶,香皂:7个,牙刷:0个
洗发水:4瓶,香皂:0个,牙刷:20个
洗发水:4瓶,香皂:1个,牙刷:15个
洗发水:4瓶,香皂:2个,牙刷:10个
洗发水:4瓶,香皂:3个,牙刷:5个
洗发水:4瓶,香皂:4个,牙刷:0个
洗发水:6瓶,香皂:0个,牙刷:5个
洗发水:6瓶,香皂:1个,牙刷:0个
'''
8个,牙刷:10个
洗发水:0瓶,香皂:9个,牙刷:5个
洗发水:0瓶,香皂:10个,牙刷:0个
洗发水:2瓶,香皂:0个,牙刷:35个
洗发水:2瓶,香皂:1个,牙刷:30个
洗发水:2瓶,香皂:2个,牙刷:25个
洗发水:2瓶,香皂:3个,牙刷:20个
洗发水:2瓶,香皂:4个,牙刷:15个
洗发水:2瓶,香皂:5个,牙刷:10个
洗发水:2瓶,香皂:6个,牙刷:5个
洗发水:2瓶,香皂:7个,牙刷:0个
洗发水:4瓶,香皂:0个,牙刷:20个
洗发水:4瓶,香皂:1个,牙刷:15个
洗发水:4瓶,香皂:2个,牙刷:10个
洗发水:4瓶,香皂:3个,牙刷:5个
洗发水:4瓶,香皂:4个,牙刷:0个
洗发水:6瓶,香皂:0个,牙刷:5个
洗发水:6瓶,香皂:1个,牙刷:0'''

http://www.ppmy.cn/embedded/160562.html

相关文章

DeepSeek与人工智能的结合:探索搜索技术的未来

云边有个稻草人-CSDN博客 目录 引言 一、DeepSeek的技术背景 1.1 传统搜索引擎的局限性 1.2 深度学习在搜索中的优势 二、DeepSeek与人工智能的结合 2.1 自然语言处理&#xff08;NLP&#xff09; 示例代码&#xff1a;基于BERT的语义搜索 2.2 多模态搜索 示例代码&…

【高级架构师】计算机网络基础:第二章 计算机网络体系结构(上)

文章目录 第二章 计算机网络体系结构2.1 常用的计算机网络体系结构2.1.1 OSI体系结构2.1.2 具有五层协议的体系结构 2.2 物理层2.2.1 物理层的基本概念2.2.2 传输媒体 2.3 数据链路层2.3.1 数据链路层概述2.3.2 封装成帧2.3.3 透明传输2.3.4 差错校验2.3.4 以太网2.3.5 以太网的…

Java面试评语及录用建议_面试录用评语.doc

面试录用评语 面试录用评语 面试评语 张三&#xff1a;语言表达简洁&#xff0c;富有条理&#xff0c;善于聆听&#xff0c;能从别人的观点中提炼总结出新的见解&#xff0c;但缺乏主动性和积极性&#xff0c; 李四&#xff1a;语言表达通顺&#xff0c;但不够简练&#xf…

深度学习 Pytorch 逻辑回归建模实验

接下来进行逻辑回归的建模实验&#xff0c;首先需要导入相关库和自定义的模块。 # 随机模块 import random# 绘图模块 import matplotlib as mpl import matplotlib.pyplot as plt# numpy import numpy as np# pytorch import torch from torch import nn,optim import torch.…

使用 OpenGL ES 加载图片并写入纹理单元

使用 OpenGL ES 加载图片并写入纹理单元:完整实现与解析 在 OpenGL ES 中,纹理是渲染图形的重要组成部分。纹理可以为 3D 模型或 2D 图形提供丰富的细节和视觉效果。在 iOS 开发中,我们通常需要将图片加载到 OpenGL ES 的纹理单元中,以便在渲染时使用。本文将通过一个完整…

智能化转型2.0:从“工具应用”到“价值重构”

过去几年&#xff0c;“智能化”从一个模糊的概念逐渐成为企业发展的核心议题。2024年&#xff0c;随着生成式AI、大模型、智能体等技术的爆发式落地&#xff0c;中国企业正式迈入智能化转型的2.0时代。这一阶段的核心特征是从单一场景的“工具应用”转向全链条的“价值重构”&…

【服务器知识】如何在linux系统上搭建一个nfs

文章目录 NFS网络系统搭建**1. 准备工作****2. 服务器端配置****(1) 安装 NFS 服务****(2) 创建共享目录****(3) 配置共享规则****(4) 生效配置并启动服务****(5) 防火墙配置** **3. 客户端配置****(1) 安装 NFS 客户端工具****(2) 创建本地挂载点****(3) 挂载 NFS 共享目录***…

全栈开发:使用.NET Core WebAPI构建前后端分离的核心技巧(二)

目录 配置系统集成 分层项目使用 筛选器的使用 中间件的使用 配置系统集成 在.net core WebAPI前后端分离开发中&#xff0c;配置系统的设计和集成是至关重要的一部分&#xff0c;尤其是在管理不同环境下的配置数据时&#xff0c;配置系统需要能够灵活、可扩展&#xff0c…