python复习之易错或难解题集合(列出对应知识点)(详解答案)(结合程序不同运行结果说明)

复习python时,遇到的一些易错题,网上没有详细的解释,总结一下,若有错误和改进意见,欢迎评论交流!

      1. 语句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])执行结果为______。

正确答案: False

            sorted() 函数对所有可迭代的对象进行排序操作,sorted(iterable, reverse=False) 即进行降序排列,返回的是降序排列后的原类型对象;reversed 函数返回一个反转的迭代器,即任意的可迭代类型,需用list()函数转换为列表对象

print(sorted([1, 2, 3], reverse=True) == list(reversed([1, 2, 3])))

输出为:
在这里插入图片描述


      2. sorted([111, 2, 33], key=lambda x: len(str(x)))的执行结果为______。

正确答案: [2,33,111]

            sorted函数原型:sorted(iterable, key=None, reverse=False) ,key = 元素用来进行比较的参数;
            lambda x: len(str(x)) 是python中的匿名函数,x是参数,返回值是len(str(x)),即元素转换为字符串后的长度
            函数总体的意义为:以元素转换为字符串后的长度来以小到大的升序输出


      3. 表达式 3 and not 5 的值为______。

正确答案: False

            not 5 返回 False,所以返回 False

not 0                 // True
not -0                // True
not 0.0               // True
not 0+0j              // True
not False             // True
not0外任意数字(包括负数)    // False

      4. 已知列表 x = [1, 2],那么表达式 list(enumerate(x)) 的值为______。

正确答案: [(0,1),(1,2)]

            enumerate() 函数将一个可遍历的数据对象(如列表、元组或字符串),组合为一个索引序列:元素下标和数据,原型为:enumerate(sequence, [start=0]),默认从0开始。一般用在 for 循环当中,下题中可见
            输出中的(0,1)为下标为0,数据为1,(1,2)为下标为1,数据为2


      5. 表达式 [index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])] 的值为______。

正确答案: [2, 4]

            [ … for … in … if …] 为列表推导式的语法形式,题中的语句等价为:

result = []
for index, value in enumerate([3, 5, 7, 3, 7]):
    if value == max([3, 5, 7, 3, 7]):
        result.append(index)
print(result)

输出为:
在这里插入图片描述


      6. 以下程序的输出结果是(提示:ord(’ a ')==97):

lista = [1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']
print(lista[2] + lista[5])

正确答案: TypeError

            python中类型不同,不能相加拼接
            不同类型进行比较,如果其中一个是数字( int /float /long /complex 等),则数字型<其它非数字型;如果两个都是非数字型,则:
                   tuple () > str > list [ ] > dict {} > number
            python 3.X 不支持str和数字类型进行比较,会报异常
在这里插入图片描述


      7. 执行下列Python语句后输出显示的结果是( )。

 s = ”GOOD MORNING”
 print s[3:-4]

正确答案: D MOR

            [ start : end : step ] 是切片的语法形式,start 和 end 是开始和结束的元素下标,前取后不取,即 end 下标位置的元素不取。负数则从后向前数,从-1开始

G O O D   M O R N I N G
0 1 2 3        -4-3-2-1

      8. 执行下面操作后,y的值是( )。

g= map(str, range(10))
g.__next__()
g.__next__()
x = 1 in g
y = '4' in g 

正确答案: False

            解释在:g= map(str, range(10)) g.next() g.next() x = 1 in g y = ‘4‘ in g …python易错题详解


这里是平平无奇的77,妄想优秀 ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ … 0%,若想转载请注明原链接,欢迎下次再来!!

  • 21
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值