ppython 语句学习3

>>> for i in range(len(hello)):
print hello[i]


w
o
r
l
d
1、len(hello)得到hello引用的字符串的长度,为5
2、range(len(hello)),就是range(5),也就是[0,1,2,3,4],对应着"world"每个字母索引,也可以称之为偏移量。
3、for i in range(len(hello)),就相当于for i in[0,1,2,3,4],让i依次等于list中的各个值。当i=0时,打印hello[0],也就是第一个字符。然后顺序循环下去,直到最后一个i=4为止。




>>> d = dict([("website", "www.itdiffer.com"), ("lang", "python"),("author", "laoqi")])
>>> d
{'website': 'www.itdiffer.com', 'lang': 'python', 'author': 'laoqi'}
>>> for k in d
     print k


输出结果是:


website
lang
author


注意到,上面的循环,其实是读取了字典的key。在字典中,有一个方法,dict.keys,得到的是字典key列表。


除了可以单独获得key或者value的循环之外,还可以这么做:
>>> for k,v in d.iteritems():
print k + "-->" + v



website-->www.itdiffer.com
lang-->python
author-->laoqi




>>> for i in 321:
print i





Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    for i in 321:
TypeError: 'int' object is not iterable
报错信息中告诉我们,'int'对象不是可迭代的。言外之意是什么?那就是for循环所应用的对象,应该是可迭代的。那么,怎么判断一个对象是不是可迭代的呢?


>>> import collections
引入collections这个标准库。要判断数字321是不是可迭代的,可以这么做:
>>> isinstance(321, collections.Iterable)
False
返回了False,说明321这个整数类型的对象,是不可迭代的。


>>> isinstance([1,2,3], collections.Iterable)
True
从返回结果,我们知道,列表[1,2,3]是可迭代的。




字符串、列表、字典、元组都是可迭代的。


range(start,stop[,step])


range()函数的以下几点:
1、这个函数可以创建一个数字元素组成的列表。
2、这函数最常用于for循环
3、函数的参数必须是整数,默认从0开始。返回值是类似[start,start+step,start+2*step,...]的列表。
4、step默认值是1。如果不写,就是按照此值。
5、如果step是正数,返回list的最最好的值不包含stop值,即start+istep这个值小于stop:如果step是负数,start+istep的值大于stop。
6、step不能等于零,如果等于零,就报错。


range(start,stop[,step])
1、star: 开始数值,默认为0,也就是如果不写这项,就是认为start=0
2、stop:结束的数值,必须要写的。
3、step:变化的步长,默认是1,也就是不写,就是认为步长为1.坚决不能为0.


>>> range(9)   #从0开始,步长为1,增加1,直到小于9的那个数
[0, 1, 2, 3, 4, 5, 6, 7, 8]  #stop=9,别的都没有写,含义就是range(0,9,1)
>>> range(0,9)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> range(1,9,1)
[1, 2, 3, 4, 5, 6, 7, 8]
>>> range(1,9)
[1, 2, 3, 4, 5, 6, 7, 8]
>>> range(0,9,2)
[0, 2, 4, 6, 8]




找出100以内的能够被3整除的正整数。
>>> range(0,100,3)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值