'''range (左闭,右开)'''
ret_range1 = range(10) # [0-9]
ret_range2 = range(1, 11) # [1-10]
ret_range3 = range(0, 30, 5) # [0,5,10,15,20,25]
ret_range4 = range(1, 11, 5) # [1, 6]
ret_range5 = range(0) # []
ret_range6 = range(1, 0) # []
'''set 返回一个正常的集合, 可以增删改'''
ret_set = set(range(10))
ret_set.add(10)
print(ret_set, len(ret_set))
'''frozenset 返回一个冻结的集合, 不可以增删改'''
ret = frozenset(range(10))
ret.add(10) # 报错 'frozenset' object has no attribute 'add'
print(ret, len(ret))
'''
compile 执行一个字符串,编译它
exec 执行它编译出来的对象
'''
str1 = "for i in range(0,10): print(i)"
ret1 = compile(str1, '', 'exec')
print(ret1) # <code object <module> at 0x000002E27FBC8AE0, file "", line 1>
exec(ret1) # 打印 0到9, 每个数字一行
str2 = "ret = 3 *4 + 5 \r\nprint(ret)"
ret2 = compile(str2, '', 'exec')
print(ret2) # <code object <module> at 0x000002E27FBC84B0, file "", line 1>
exec(ret2) # 17