博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
易错题
阅读量:5151 次
发布时间:2019-06-13

本文共 972 字,大约阅读时间需要 3 分钟。

def num():    return [lambda x:i*x for i in range(4)]i = 5print([m(2) for m in num()])

 

3.1 下面代码的输出结果将是什么?(2018-3-30-lxy)
1. list = ['a', 'b', 'c', 'd', 'e']
2. print list[10:]
下面的代码将输出[],不会产生IndexError错误。就像所期望的那样,尝试用超出成员的个数的index
来获取某个列表的成员。
例如,尝试获取 list[10]和之后的成员,会导致 IndexError。
然而,尝试获取列表的切片,开始的 index 超过了成员个数不会产生 IndexError,而是仅仅返回一
个空列表。这成为特别让人恶心的疑难杂症,因为运行的时候没有错误产生,导致 bug 很难被追踪到。
 
3.7 下面这段代码的输出结果是什么?请解释?(2018-4-16-lxy)
def extendlist(val, list=[]):    list.append(val)    return listlist1 = extendlist(10)list2 = extendlist(123, [])list3 = extendlist('a')print("list1 = %s" %list1)print("list2 = %s" %list2)print("list3 = %s" %list3)
输出结果:
list1 = [10, 'a']list2 = [123]list3 = [10, 'a']
新的默认列表只在函数被定义的那一刻创建一次。当 extendList 被没有指定特定参数 list 调用时,这组 list 的值
随后将被使用。这是因为带有默认参数的表达式在函数被定义的时候被计算,不是在调用的时候被计算。
 
下列代码的输出结果是?
 
def num():    return [lambda x:i*x for i in range(4)]i = 5print([m(2) for m in num()])

 输出

[6,6,6,6]

 

转载于:https://www.cnblogs.com/ryxiong-blog/p/11354959.html

你可能感兴趣的文章
Bat文件注册组件
查看>>
Autoit 3 常用的语句
查看>>
正则表达式的有用资源介绍
查看>>
最小堆实现优先队列:Python实现
查看>>
配置OpenCV+VS2013环境
查看>>
第二次作业--------STEAM
查看>>
Leetcode Populating Next Right Pointers in Each Node II
查看>>
Android数据库GreenDao配置版本问题
查看>>
Lua学习笔记之开始
查看>>
poj 1797 Heavy Transportation
查看>>
canvas计算高度(自定义高度)
查看>>
在Visual Studio 2010中使用gtest
查看>>
0115 创建类并调用
查看>>
pc/app 项目/功能设计
查看>>
IIS并发连接数和数据库连接池
查看>>
c#操作IIS之IISHelper
查看>>
VIJOS P1540 月亮之眼
查看>>
Job流程:提交MR-Job过程
查看>>
成功也不需要太长的时间
查看>>
【6.29】数组和方法
查看>>