for与while的两大循环的不同用法

2023-11-04

for …in 循环

整数、浮点数无法进行循环.

a = 100
b = 0.01

for i in a :
    print(i)

for i in 0.11:
    print(i)
   
    for i in a :
TypeError: 'int' object is not iterable

如果想要进行循环,则需要进行转化为字符串格式

a = 100
b = 0.01

for i in str(a) :
    print(i)

for i in str(0.11):
    print(i)

1
0
0
0
.
1
1

列表,字典,字符串可以进行循环

for i in [1,2,3,4,5]:  
   print(i)
1
2
3
4
5
------------------------------------------------
dict = {'日本':'东京','英国':'伦敦','法国':'巴黎'}

for i in dict:
    print(i)
日本
英国
法国
-------------------------------------------------
dict = {'日本':'东京','英国':'伦敦','法国':'巴黎'}

for i in dict:
    print(dict[i])
东京
伦敦
巴黎

range()函数的几个用法:

生成序列

举个例子:

for i in range(13,17):
    print(i)
13
14
15
16

使用range(a,b) 函数,可以生成了一个【取头不取尾】的整数序列。

重复n次你想重复你的语句

举个例子:重要的事情说三遍

for i in range(3):
    print('我很棒')
我很棒
我很棒
我很棒

不过,常用的一般为这种情况

for n in range(1,11):
    print('书桓走的第'+str(n)+'天,想他')

书桓走的第1天,想他
书桓走的第2天,想他
书桓走的第3天,想他
书桓走的第4天,想他
书桓走的第5天,想他
书桓走的第6天,想他
书桓走的第7天,想他
书桓走的第8天,想他
书桓走的第9天,想他
书桓走的第10天,想他

注意:这里的range(0,11)和range(11)效果是一样的。根据需要选择就好。

range(a,b,c)

这里的意思是以 a为起始,b为终,c为步长
举个例子:

for i in range(1,101,5):
    print(i/5)

0.2
1.2
2.2
3.2
4.2
5.2
6.2
7.2
8.2
9.2
10.2
11.2
12.2
13.2
14.2
15.2
16.2
17.2
18.2
19.2

while循环

又可以称为满足条件的循环重复,常用的有以下几种类型:

第一种:类似与上列的

a = 0
while a < 5:
    a = a + 1
    print('我爱你的第'+str(a)+'天')
我爱你的第1天
我爱你的第2天
我爱你的第3天
我爱你的第4天
我爱你的第5

第二种:同样是类似于上列的打印一串连续的数列

a = 0
while a < 5:
    a = a + 1
    print(a)
1
2
3
4
5

第三种:不达目的,誓不罢休

man = ''  # 注:这个''代表空字符串
while man != '有':
    
   man= input('有没有愿意为小龙女死的男人?没有的话就不能出古墓。\n')
print('小龙女可以出古墓门下山啦~')

有没有愿意为小龙女死的男人?没有的话就不能出古墓。
么有
有没有愿意为小龙女死的男人?没有的话就不能出古墓。
没
有没有愿意为小龙女死的男人?没有的话就不能出古墓。
有
小龙女可以出古墓门下山啦~
password = ''  # 变量password用来保存输入的密码

while password !='123':
    password=input('请输入密码?')
print('欢迎欢迎!')

请输入密码?125
请输入密码?135
请输入密码?
请输入密码?
请输入密码?123
欢迎欢迎!

第四种:同上进行算术运算

a=0
while a < 101:
    
    print(a*5)
    a=a+1
0
5
10
15
20
25
...
480
485
490
495
500

两大循环的练习

与.append()的综合使用练习

小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。
由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。
每次换座位的时候,第一位变第三位,后面两位都往前一位。

students=['沙琪玛','西红柿','茄子']
for i in range(3):
    
    students1=students[0]
    students=students[1:]
    students.append(students1)
    print(students)
    

    # 获取第一个座位的学生 student1
     # 让 student1 暂时离开,后面的学生座位都进一位。
   # 将 student1 安排到最后一个座位
print('------------------------------------')    
students=['沙琪玛','西红柿','茄子']
a=0
while a<3:
    a=a+1
    students1=students[0]
    students=students[1:]
    students.append(students1)
    print(students)

['西红柿', '茄子', '沙琪玛']
['茄子', '沙琪玛', '西红柿']
['沙琪玛', '西红柿', '茄子']
------------------------------------
['西红柿', '茄子', '沙琪玛']
['茄子', '沙琪玛', '西红柿']
['沙琪玛', '西红柿', '茄子']

此外,还有另一种pop()函数可以实现该功能

 # 运用pop()函数,同时完成提取和删除。
  # 将移除的student1安排到最后一个座位。
students = ['小明','小红','小刚']
for i in range(3):
    students1=students.pop(0)
    students.append(students1)
    print(students)
['小红', '小刚', '小明']
['小刚', '小明', '小红']
['小明', '小红', '小刚']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

for与while的两大循环的不同用法 的相关文章

随机推荐

  • 利用ChatGPT协助编写单元测试

    ChatGPT自从2022年推出以来受到很多人的喜欢 此篇博客重点介绍如何修改Prompt来自动生成较理想的单元测试 如下图所示的一段代码 该class中有一个public方法toLocale 其余都是private方法 toLocale
  • 编写代码的几个tip

    使用的大多是MVC的模式 那么视图就只管视图 逻辑就只管逻辑 一个自定义的cell 上面放了一个button button的点击事件用一个delegate在viewcontroller中来实现 比如先要变化cell的样式 那么代理方法中 不
  • 攻防世界WEB入门

    1 view source X老师让小宁同学查看一个网页的源代码 但小宁同学发现鼠标右键好像不管用了 WP 按F12即可在elements中看到flag 2 robots X老师上课讲了Robots协议 小宁同学却上课打了瞌睡 赶紧来教教小
  • ​LeetCode刷题实战214:最短回文串

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 最短回文串 我们先来看题面 h
  • UE4 UMG中使用富文本

    UE4 UMG中使用富文本 一 新建DateTable 二 添加字体样式 注意 第一个RowName必须为Default 字体样式必须赋值 否则会乱码 我们将Default的字体改为白色 Red字体改为红色 字号改小 三 使用 拖一个富文本
  • serverTimezone设置

    在安装完mysql第一次使用IDEA进行数据库连接发现 You must configure either the server or JDBC driver via the serverTimezone configuration pro
  • uview2.0封装网络请求(微信小程序最新登录方式)

    一 网络请求和相应拦截器 此vm参数为页面的实例 可以通过它引用vuex中的变量 module exports vm gt 初始化请求配置 uni u http setConfig config gt config baseURL http
  • 计算机二级C语言三天能过吗,学工干货丨如何三天通过计算机二级

    原标题 学工干货丨如何三天通过计算机二级 不可能的 想都不要想 三天怎么可能过 不信你问考完了的 他们马上就可以 进行计算机二级考试成绩查询啦 计算机二级是什么 计算机二级怎么考 迷惘 彷徨 别怕 今天学工菌来助攻 考生在考后50个工作日
  • 博客园自定义主题代码

    发一下好看的 要开通js权限 皮肤用simple memory 最好禁用模板 侧边栏
  • 基于小脑模型神经网络的轨迹跟踪研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 1 在对人类神经学的研究中 得知它由一些神
  • class加载过程

    loading class文件 从硬盘 加载到 内存 linking 1 verification 校验 检查满不满足class文件的格式 2 preparation 将 静态变量 赋默认值 默认值是0 3 resolution 将 常量池
  • Code Embedding研究系列11-ContraFlow

    Path Sensitive Code Embedding via Contrastive Learning for Software Vulnerability Detection 一 引言 1 1 现有方法及其局限 1 2 作者的解决方
  • 24模型微调(finetune)

    一 Transfer Learning Model Finetune 1 1 Transfer Learning Transfer Learning 机器学习分支 研究源域 source domain 的知识如何应用到目标域 targetd
  • <图像处理> Canny边缘检测

    Canny边缘检测 边缘检测评判标准 低错误率 在图像中精确地检测出尽可能多的边缘 并尽量减少漏检和误检 高定位精度 检测出的边缘点应该精确地定位于边缘的中心 边缘唯一性 图像中的每条边缘只被标记一次 同时避免由于噪声干扰产生虚假边缘 Ca
  • doesn‘t belong to any package and ProcessUnpackaged is set to ‘no‘

    数据库日志 开发反馈数据库连接异常 查看数据库日志发现像是服务器把数据库进程kill掉了 2021 04 09 18 48 23 578 CST 78992 606fca0d 13490 80 2021 04 09 11 29 17 CST
  • TypeScript详解

    目录 一 梦开始的地方 1 什么是TypeScript 2 TS开发环境搭建 3 Hello world 二 变量类型 1 原始类型 2 数组类型 3 联合类型 4 自定义类型 类型别名 5 函数类型 6 对象类型 7 接口 8 元组 9
  • smbclient递归目录下载文件

    连接到某个smb服务的share后 依次执行以下命令 recurse ON 开启递归 开启后会以目录递归方式运行mget和mput命令 prompt OFF 关闭交互 开启后 下载文件时不再要求输入y n确认 megt 批量获取文件 是一个
  • Android 经典笔记之一:setOnKeyListener方法事件执行两次

    Android 经典总结案例一 目录介绍 1 完美解决onActivityResult提前执行调用的一系列问题 1 1 出现的问题 1 2 解决方案 1 3 相关原理说明 1 4 知识拓展 2 EditText调用软键盘搜索的setOnKe
  • 电路基础学习笔记1:电路简介

    电路 1 概述 电路是由用电设备或元器件 负载 与 供电设备 电源 通过导线连接而构成的提供给电荷流动的通路 1 1 电流 电流是单位时间内通过某一横截面 A 的总电荷 导体内自由电子的定向移动形成了电流 电流的单位是库伦每秒 也称为安培A
  • for与while的两大循环的不同用法

    for in 循环 整数 浮点数无法进行循环 a 100 b 0 01 for i in a print i for i in 0 11 print i for i in a TypeError int object is not iter