[试题]Python大赛部分答案

不定项选择:

1.执行x = [4,3][2>1]后, 请问 x 值为多少()
A.1 B.2 C.3 D.4html

2.print('\\t\')输出结果为()
A. \ \ B. \\ \ C. \\\ \\ D. \\\t\\编程

3.定义域一个列表classmates = ['张三', '李四', '王五','赵六'],执行classmates[-1]后获得的结果是()
A.张三 B.赵六 C.SyntaxError D.UnicodeErrorapp

4.定义一个字典 d = {'Michael': 95, 'Jack': 75, 'Tracy': 85},执行 d['Jack'] = 90 后再执行 d['Jack'] = 88,字典中Jack的值为()
A.75 B.90 C.88 D.90,88async

5.这个函数的做用是什么?函数类型是什么?()函数

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

A.求阶乘 B.开方 C.递归 D.迭代测试

6.定义域一个列表L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'],取前3个元素,应该怎么作?
A.[L[0], L[1], L[2]] B.[L[0], L[1], L[2],L[4]] C.L[0:3] D.L[:3]网站

7.与Python断言语句有关的是()
A.yield B.@ C.async D.assert命令行

8.下列代码执行结果是?()
[i**i for i in xrange(3)]
A.[1, 1, 4]
B.[0, 1, 4]
C.[1, 2, 3]
D.(1, 1, 4)code

9__new__和__init__的区别,说法正确的是?()
A.__new__是一个静态方法,而__init__是一个实例方法
B.__new__方法会返回一个建立的实例,而__init__什么都不返回
C.只有在__new__返回一个CLS的实例时,后面的__init__才能被调用
D.当建立一个新实例时调用__new__,初始化一个实例时用__init__htm

10.Python中函数是对象,描述正确的是? ()
A.函数能够赋值给一个变量
B.函数能够做为元素添加到集合对象中
C.函数能够做为参数值传递给其它函数
D.函数能够当作函数的返回值

编程题:

1.生成list计算 [1x1, 2x2, 3x3, ..., 10x10]

答案:
方法一:普通方法
>>> L = []
>>> for x in range(1, 11):
...    L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

方法二:列表生成器
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.打印出全部的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
 自己。例如:153是一个“水仙花数”,由于153=1的三次方+5的三次方+3的三次方。
思路:利用for循环控制100-999个数,每一个数分解出个位,十位,百位。

答案:

for n in range(100,1001):
    i = n / 100
    j = n / 10 % 10
    k = n % 10
    if i * 100 + j * 10 + k == i + j ** 2 + k ** 3:
        print "%-5d" % n

不定项选择题答案:

1.C

知识点:Python if 和 for 的多种写法

<1>常规

if a>b:

    c = a

else:

    c = b

<2>表达式

c = a if a>b else b

<3>二维列表

c = [b,a][a>b]

2.A

知识点:转义字符

转义字符\能够转义不少字符,好比\n表示换行,\t表示制表符,字符\自己也要转义,因此\\表示的字符就是\,能够在Python的交互式命令行用print()打印字符串

3.B

知识点:列表

Python内置的一种数据类型是列表:list。list是一种有序的集合,能够随时添加和删除其中的元素
若是要取最后一个元素,除了计算索引位置外,还能够用-1作索引,直接获取最后一个元素

4.C

知识点:字典

Python内置了字典:dict的支持,dict全称dictionary,在其余语言中也称为map,使用键-值(key-value)存储,具备极快的查找速度
因为一个key只能对应一个value,因此,屡次对一个key放入value,后面的值会把前面的值冲掉

5.AC

知识点:递归函数

在函数内部,能够调用其余函数。若是一个函数在内部调用自身自己,这个函数就是递归函数

6.ACD

知识点:切片

Python提供了切片(Slice)操做符
L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素
L[:3] 表示果第一个索引是0,还能够省略

7.D

知识点:断言

assert断言语句用来声明某个条件是真的,其做用是测试一个条件(condition)是否成立,若是不成立,则抛出异常。

断言跟异常的区别:

断言是用来检查非法状况而不是错误状况的,用来帮开发者快速定位问题的位置。
异常处理用于对程序发生异常状况的处理,加强程序的健壮性和容错性。

对一个函数而言,通常状况下,断言用于检查函数输入的合法性,要求输入知足必定的条件才能继续执行;
在函数执行过程当中出现的异常状况使用异常来捕获。

8.A

知识点:

(1)这是一个列表生成式,即对于生成器 xrange(3) 中的每一个值(分别是0,1,2),赋值给变量 i,而后执行 i**i 的操做。

列表生成式 - 廖雪峰的官方网站
List Comprehension

(2)xrange() 与 range() 的用法彻底相同,区别是 xrange() 的返回值是生成器,而 range() 的返回值是列表。

Python xrange() 函数
Python range() 函数

(3)Python 中的 ** 运算表明幂运算,但有个特殊状况,官方文档中把 0**0 的值定义为 1。

Numeric Types — int, float, long, complex

9.ABCD

知识点:面向对象

__init__是当实例对象建立完成后被调用的,而后设置对象属性的一些初始值。
__new__是在实例建立以前被调用的,由于它的任务就是建立实例而后返回该实例,是个静态方法。

即,__ new__在__init__以前被调用,__ new__的返回值(实例)将传递给__init__方法的第一个参数,而后__init__给这个实例设置一些参数。

10.ABCD

知识点:函数

在 Python 中万物皆为对象,函数也不例外,函数做为对象能够赋值给一个变量、能够做为元素添加到集合对象中、可做为参数值传递给其它函数,还能够当作函数的返回值,这些特性就是第一类对象所特有的。
参考https://www.cnblogs.com/smallmars/p/6936871.html
相关文章
相关标签/搜索