print('\n'.join(['a', 'b', 'c']))
join会把换行符当成普通连接字符进行连接,通过换行连接,因此
a b c
for i in range(5):
if i == 2:
pass
print(i)
pass是空语句,是为了保持程序结构的完整性,不做任何事情,一般用做占位语句
因此程序打印的数字为 0,1,2,3,4,注意range(5) 生成的列表是从0开始到4,不包含5。
def outer(fn):
print('outer')
def inner():
print('inner')
return fn
return inner
@outer
def fun():
print('fun')
装饰器的一个关键特性是,它在被装饰函数定义后被立即执行,因此运行装饰函数outer,输出结果为outer,内部函数inner没有调用,不会输出任何结果,被装饰函数同样也不会运行,
写法如: fun = outer(fun)
因此会执行print ('outer')输出一个outer
return inner没有(),所以不会输出inner
如果调用它
if __name__ == '__main__':
fun()
输出结果将是
outer
inner
如果将return inner加上()再调用它
if __name__ == '__main__':
fun()
dicts = {}
dicts[([1, 2])] = 'abc'
print(dicts)
字典的键要求可哈希,而list不可哈希,题目中()不能直接将list转成元祖,要使用tuple来转。
当代码变为
dicts = {}
dicts[tuple([1, 2])] = 'abc'
print(dicts)