python第十二课——for in循环
1.for...in循环: 有两个使用场景: 场景一:for in和range对象配合使用 range对象的引入讲解 格式:range([start,end,step]): 特点:索引满足含头不含尾的特点-->闭开区间 以上三个参数:start、end、step的含义和str切片一样理解 惰性序列对象: 将多个数据存入到容器对象中,直接通过print()函数打印其变量名,看到的数据内部信息不明确;
案例一:
r=range(1,11)
#r=range(11) # range对象可以理解为惰性序列对象(直接打印变量名看不清里面具体内容)
print(r,type(r),len(r))
range对象配合for in循环使用: 遍历的思想:
遍历:经过、经历、从头到尾走一遍
for i in r:
print(i,end=' ') print() for i in range(0,10,2):
print(i,end=' ') print()
range为惰性序列对象,那么我们可以将其转换为非惰性序列对象!! 例如:
将range(1,6)对象转换为list对象
代码如下:
lt = list(range(1,6))
print(lt,type(lt),len(lt)) #遍历lt对象
for j in lt:
print(j)
场景二:for in和容器对象(str、list、tuple、set、dict)配合使用
方式一:通过键找到值
for k in dic: print(k + '-->' + str(dic.get(k)))
方式二:直接先得到一个dict_items对象(此对象中有key和value并且存入到一个元祖中保存,对象每个元素都是元祖)
its = dic.items() print(its,type(its),len(its)) for k,v in dic.items(): print(k,v)
总结:for in循环也可以和break&continue,以及else语句一起配合使用 案例二:
演示for in 和容器对象(str,list,tuple,set,dict)配合使用
lt=['aa','bb','cc','dd']
案例体会:
for...in循环中没有使用索引的思想,而while循环中一般会用到索引去访问容器中的元素内容
#遍历lt对象,打印内容到控制台
for i in lt:
print(i)
i+='r'
print(lt)
print() lt1=['aa','bb','cc','dd']
i=0
while i<len(lt1):
# print(lt[i])
lt1[i] += 'r'
i+=1
print(lt1)
print() str1='abcdefg1234567'
for i in str1:
print(i,end=' ')
print()
使用for in或者while循环遍历dic对象,打印键值对的内容
dic={'name':'abc','age':25,'sex':'男'}
#方式一:通过键找到值
for k in dic:
print(k+'--->'+str(dic.get(k)))
方式二:直接先得到一个dict_items对象
(此对象中有key和value并且存入到一个元祖中保存,
对象每个元素都是元祖)
its=dic.items()
print(its,type(its),len(its)) for k,v in dic.items():
print(k,v)
案例三:
演示for in循环配合break&continue和else语句配合使用
需求:遍历1~100的偶数,打印个数和总和-->使用for in实现
count=0
sum1=0
for i in range(1,101):
if i%2 ==1:
continue
count+=1
sum1+=i
# print(i)
# print('偶数的个数为:%d' %count)
# print('偶数的总和为:%d' %sum1) for i in range(1,11):
if i==4:
# break
continue
print(i)
else:
print('如果没有碰到牛逼的break,我就会被执行...')
python第十二课——for in循环的更多相关文章
- python六十二课——高阶函数之filter
高阶函数之:filter函数:过滤数据的,最终返回一个惰性序列对象(filter对象,迭代器对象)解释:filter的意思:在计算机领域中我们都称为过滤器格式:filter(fn,lsd):参数和ma ...
- python第二十二课——list函数
演示list类型中常用的一些函数: 1.append(obj):将obj元素追加到列表的末尾 lt=['路费','佐罗','山治','乔巴','乌索普','纳米桑'] #append(): lt.ap ...
- Kali Linux Web 渗透测试— 第十二课-websploit
Kali Linux Web 渗透测试— 第十二课-websploit 文/玄魂 目录 Kali Linux Web 渗透测试— 第十二课-websploit..................... ...
- NeHe OpenGL教程 第四十二课:多重视口
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第三十二课:拾取游戏
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第二十二课:凹凸映射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第十二课:显示列表
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Linux Shell系列教程之(十二)Shell until循环
本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Lin ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
随机推荐
- [日常] 编写HTTP接口文档
一.什么是接口文档?在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护.二.为什么要写接口 ...
- Messenger与AIDL的异同
Messenger与AIDL的异同 最近做项目需要使用进程间通信,大家知道应用层的进程间通信无非Broadcast,Activity,Service,Content Provider四大组件.Broa ...
- JVM垃圾回收器之G1(Garbage First)--new
相比CMS收集器有两个显著的改进: (1). G1收集器是基于“标记-整理”算法实现的收集器,不会产生空间碎片 (2). 它可以精确地控制停顿,能让使用者明确指定在一个长度为M毫秒的时间片段内,消耗在 ...
- MangoDB的C#驱动库(.net framewokr 4.0)
编写运维工具,需要联接MangoDB 基于我陈旧的技术栈,就用c#开发了 驱动库下载地址记录到至此,需要的可以下载 注意,此驱动是老版本的,只支持.net framewokr 4.0 看了半天,觉得够 ...
- 小tip: CSS后代选择器可能的错误认识——张鑫旭
一.关于类选择器的一个问题 假设有下面一个面试题,CSS代码如下: .red { color: red; } .green { color: green; } HTML如下: <div clas ...
- [转]Shared——探究react-native通信机制
原文:https://www.cnblogs.com/android-blogs/p/5623481.html 探究react-native通信机制 通信方式 我们所说的[通信],指的是RN中Java ...
- springboot中使用自定义的properties属性
在application.properties中添加属性ai.name=明ai.age=22ai.sex=男定义配置类如下,前缀(prefix)可自定义修改,本文为 ai.@Configuration ...
- [WEB面试题] web前端面试题HTML+CSS第一弹,个人整理部分面试题汇总
以下内容仅供参考,网络整理而来 1.XHTML和HTML是什么有什么不同的区别 HTML是一种基本的WEB网页设计语言 XHTML可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTM ...
- Laravel 支付宝支付异步通知
支付宝支付通知有前端通知(GET)和服务器异步通知(POST) 在配置支付宝支付时,需要注意的问题就是支付宝的回调操作: 1.在laravel中应该将支付宝通知路径组织csrf验证,否则会导致419错 ...
- 自己编写jQuery插件 之 无缝滚动
一. 效果图 二. Html骨架结构 <div class="box"> <ul> <li>1</li> <li>2&l ...