# coding=utf-8
#bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
print bin(10) #0b1010
#iter() 函数用来生成迭代器。
#知识引申:注意区分可迭代对象和迭代器
#迭代器定义:迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
#可迭代对象定义:可以直接作用于 for 循环的对象统称为可迭代对象: Iterable
#可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
#关联:生成器都是 Iterator 对象,但 list 、 dict 、 str 虽然是 Iterable ,却不是 Iterator 。
#把 list 、 dict 、 str 等 Iterable 变成 Iterator 可以使用 iter() 函数
#总结:凡是可作用于 for 循环的对象都是 Iterable 类型;
#凡是可作用于 next() 函数的对象都是 Iterator 类型
#集合数据类型如 list 、 dict 、 str 等是 Iterable 但不是 Iterator ,不过可以通过 iter() 函数获得一个 Iterator 对象
#参考文献:https://www.cnblogs.com/python-road/p/10504474.html
lst = [1, 2, 3]
for i in iter(lst):
print(i)
for i in lst:
print(i)
# tuple() 函数将列表转换为元组
print tuple([1,2,3,4]) #(1, 2, 3, 4)
print tuple({1:2,3:4}) #针对字典 会返回字典的key组成的tuple, (1, 3)
print tuple((1,2,3,4)) #元组会返回元组自身 (1, 2, 3, 4)
#bool 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False;bool 是 int 的子类。
print bool() #False
print bool(0) #False
print bool(1) #True
print bool(2) #True
print issubclass(bool, int) # bool 是 int 子类 True
#filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
#math 类库常用函数参照于另一篇文章
import math
def is_sqr(x):
return math.sqrt(x) % 1 == 0
newlist = filter(is_sqr, range(1, 101))
print(newlist) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# len() 方法返回对象(字符、列表、元组等)长度或项目个数。
str = "runoob"
print len(str) # 字符串长度 6
l = [1,2,3,4,5]
print len(l) # 列表元素个数 5
#range() 函数可创建一个整数列表。
range(10) # 从 0 开始到 10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1, 11) # 从 1 开始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range(0, 30, 5) # 步长为 5 [0, 5, 10, 15, 20, 25]
range(0, 10, 3) # 步长为 3 [0, 3, 6, 9]
range(0, -10, -1) # 负数 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
range(0) #[]
range(1, 0) #[]