pythonfor循环中range与len区别

目录
  • range(x)
  • range(start,stop)
  • range(start,stop,step)
  • len()
  • len不支持 int 或者float
  • range(len())
  • 用range常见错误

range(x)

range(9) 代表着0、1、2、3、4、5、6、7、8 这九个顺序数字的集合。
也就是 range(9) => range(0,9) => [0,1,2,3,4,5,6,7,8]

我们尝试用 for 打印 range(9):

此外,range还有另外两种用法,形如切片:

range(start,stop) 以及 range(start,stop,step)

range(start,stop)

range(start,stop) 等同于数组 [start,start+1,start+2,…,stop]

for i in range(3,8):
print(i)

range(start,stop,step)

range(start,stop,step) 等同于数组 [start,start+step,start+step*2,…, stop]

for i in range(3,8,2):
    print(i)

len()

len全称为length,意为长度。
len(x),x可以为字符串str,也可以为数组array,但是不能为 int整型或者float浮点型。

len字符串以及数组:

print("len('hello world')=",len("hello world!"))
print("len([0,1,2,3,4,5,6,7,8,9])=",len([0,1,2,3,4,5,6,7,8,9]))

len不支持 int 或者float

print("len(12)=",len(12))
print("len(3.1415)=",len(3.1415))

range(len())

在python循环中常常会见到range(len()),这种组合从里到外分析可以很清晰的理解:

依次打印出数组a中内容:

a=[2,2,1,2,3,1]
for i in range(len(a)):
print(a[i])

但是其实我们可以不用range(len())组合,也可以按照要求打印出:

a=[2,2,1,2,3,1]
for i in a:
    print(i)

用range常见错误

TypeError: 'list' object cannot be interpreted as an integer

翻译过来,其意思是 数组list 不能解释为整数,就是说 range(x) 的 x 必须是整数,而此时是list,非法。

错误范例:

a=[2,2,1,2,3,1]
for i in range(a):
    print(i)

解决办法:

加上len,尝试用range(len(x))
len(x)将获取x的长度,len(x)的值为整数值,为x中内容或者x的长度的值。

到此这篇关于pythonfor循环中range与len区别的文章就介绍到这了,更多相关python for循环 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用For循环遍历Python字典的三种方法实例

    目录 前言 方法 1:使用 For 循环 + 索引进行迭代 方法 2:使用 .keys( ) + 索引进行迭代 方法 3:使用 .items( ) 进行迭代 进阶:遍历嵌套字典 总结 前言 在Python中,如何使用“for”循环遍历字典? 今天我们将会演示三种方法,并学会遍历嵌套字典. 在实战前,我们需要先创建一个模拟数据的字典. dict_1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First','Address':'Beijing'} 方法 1:使用

  • python中list*n生成多维数组与for循环生成多维数组的区别说明

    目录 list*n生成多维数组与for循环生成多维数组的区别 1.从一个问题说起 2.正确的方式 如何动态生成多维数组 下面代码生成一个一个3×3×2的三维数组 list*n生成多维数组与for循环生成多维数组的区别 本文主要介绍生成二维数组的方法,同时解释使用list * n 方式所存在的问题. 1.从一个问题说起 先看一段代码: list0 = [1,2,3] list1 = [list0] * 3 print('list1 is :',list1) list1[0][0] = 999 pr

  • Python实现for循环倒序遍历列表

    目录 for倒序遍历列表 for循环(正序/倒序) 1.正序 2.倒序 for倒序遍历列表 数字列表,range方法构建列表: for value in range(5, -1, -1):     print(value) # 倒序输出5,4,3,2,1,0 文本列表,通过索引值遍历列表: lists = ['全部', '广州国交润万交通信息有限公司', '广东路路通有限公司','杭州海康威视数字技术股份有限公司', '广东利通科技投资有限公司', '武汉微创光电股份有限公司'] lens =

  • python for循环如何实现控制步长

    目录 for循环如何控制步长 for range(i,j,k)的一点补充(步长) for循环如何控制步长 for i in range(开始/左边界, 结束/右边界, 步长):     print i 例如 for i in range(1, 10, 2):     print i 等价于 for (i=1;i<=10;i+=2) 1 3 5 7 9 [Finished in 0.4s] for range(i,j,k)的一点补充(步长) 从0开始,到17566662,步长1000000 for

  • python向量化与for循环耗时对比分析

    目录 向量化与for循环耗时对比 向量化数据的相比于for循环的优势 向量化与for循环耗时对比 深度学习中,可采用向量化替代for循环,优化耗时问题 对比例程如下,参考Andrew NG的课程笔记 import time import numpy as np a = np.random.rand(1000000) b = np.random.rand(1000000) tic = time.time() c = np.dot(a,b) toc = time.time() print(c) pr

  • python倒序for循环实例

    目录 python倒序for循环 python笔记for循环倒序 方法一 方法二 python倒序for循环 直接上代码: #从10到0进行遍历循环,括号里最后一个-1是步长,实现倒序:前两个参数是起始和终止值,也是前闭后开. for i in range(10,-1,-1):      print(i) 输出: 109876543210 python笔记for循环倒序 方法一 # 从10递减循环到-1,注意不包括-1,第三个参数是步长(左闭右开) for i in range(10,-1,-1

  • Python中for循环可迭代对象迭代器及生成器源码学习

    目录 问题: 1. 迭代 1.1 可迭代对象Iterable 1.2 迭代器Iterator 1.3 for循环 1.3.1 iter()方法和next()方法 1.3.2 iter()和__iter__() 1.3.3 next()和__next__() 1.3.4 自定义类实现__iter__()和__next__() 1.3.5 探究for循环 2 生成器 2.1 获取生成器 2.2 next(生成器) 2.3 生成器和迭代器 2.4 生成器解析式 问题: 之前在学习list和dict相关

  • pythonfor循环中range与len区别

    目录 range(x) range(start,stop) range(start,stop,step) len() len不支持 int 或者float range(len()) 用range常见错误 range(x) range(9) 代表着0.1.2.3.4.5.6.7.8 这九个顺序数字的集合.也就是 range(9) => range(0,9) => [0,1,2,3,4,5,6,7,8] 我们尝试用 for 打印 range(9): 此外,range还有另外两种用法,形如切片: r

  • es6 for循环中let和var区别详解

    let和var区别: for(var i=0;i<5;i++){ setTimeout(()=>{ console.log(i);//5个5 },100) } console.log(i);//5 console.log('=============') for(let j=0;j<5;j++){ setTimeout(()=>{ console.log(j);//0,1,2,3,4 },100) } console.log(j);//报错 j is not defined 为什么

  • JS for循环中i++ 和 ++i的区别介绍

    平时都是这样写的for循环, for(var i = 0; i < 20 ; i++){ .... } 但我看有的人这样写 for (var i = 0; i < 20 ; ++i) { .... } 这样会对for循环有什么影响? 1.在for里好像没啥区别... 但是用在赋值的时候, 就有区别了... var a = 1; var b = a++; var c = 1; var d = ++c; console.log(b,d); // 1, 2 a++ 是先应用a, 然后再自加 ++a

  • python-for x in range的用法(注意要点、细节)

    for x in ...循环 就是把每个元素代入变量x,然后执行缩进块的语句. range()函数,可以生成一个整数序列,再通过list()函数可以转换为list. 比如我们想计算1-10的整数之和, 可以用一个sum变量做累加: sum = 0 for x in [1,2,3,4,5,6,7,8,9,10]: sum = sum + x print(sum) sum = 0 for x in range(11): sum = sum + x print(sum) 以上两种表示方法,结果相同.简

  • Python循环中else,break和continue的用法实例详解

    本文实例讲述了Python循环中else,break和continue的用法.分享给大家供大家参考,具体如下: 在看Python的文档的时候看到了for和while语句和C语言中有一个最大的区别-可以有一个可选的else语句.这个语句的执行触发机制让我不大明白,通过代码测试才了解了什么情况下触发else语句."凡存在,皆合理",Python的设计者肯定是有他的目的,现在咱们来探究一番. 以for语句为例,开发环境Python3.4. Python循环中的else作用 循环中else的存

  • Golang的循环中break和continue语句的用法讲解

    Go语言break语句 在Go编程语言中的break语句有以下两种用法: break语句用于在循环立即终止,程序控制继续下一个循环语句后面语句. 它可用于终止在switch语句的情况(case). 如果你正在使用嵌套循环(即,一个循环在另一个循环中),break语句将停止最内层循环的执行,并开始执行的下一行代码的程序段之后. 语法 在Go break语句的语法如下: break; 流程图: 例子: 复制代码 代码如下: package main import "fmt" func ma

  • 解决循环中setTimeout执行顺序的问题

    期望:开始输出一个0,然后每隔一秒依次输出1,2,3,4. for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i); } 结果:输出5. 原因:setTimeout 使函数延迟1s执行,而for循环执行完成还不到0.1秒,到执行函数的时候,其实 i 已经变成5了,因此console.log(i)输出5. 解决方法一:使用let块作用域. for (let i = 0; i < 5; i

  • Python for循环与range函数的使用详解

    for 循环 For - in 语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),即它会遍历序列中的每一个项目 注意: 1.else 部分是可选的.当循环中包含它时,它循环中包含它时,它总会在 for 循环结束后开始执行,除非程序遇到了 break 语句. 2.for - in 能在任何队列中工作.有的是通过内置 range 函数生成一串数字列表,也可以是包含任何类型对象的队列. Eg.数字列表 for i in range(1,5): print(i) else: p

  • vue 取出v-for循环中的index值实例

    一开始接触到vue的for循环就觉得贼好用,重复性的东西再也不用ctrl C+ctrl V了好吗.不仅代码可复用了,而且提高了代码可读性.减轻了工作量,更重要的是写代码都有成就感了. 贴出个小小例子: template <ul v-for="(item,index) in pcState"> <li>{{item.name}}</li> <li>{{item.state}}</li> <li>{{item.ip}}

  • 解决在for循环中remove list报错越界的问题

    最近在搞一个购物车的功能,里面有一个批量删除的操作,采用的是ExpandableListView以及BaseExpandableListAdapter.视乎跟本篇无关紧要,主要是为了记录一个java基础.迭代器iterator的使用 一.错误代码(主要就是购物车的批量删除) /** * 删除选中的 */ public void delSelect() { int groupSize; if (mGropBeens != null) { groupSize = mGropBeens.size();

随机推荐