python竞赛试题及答案_[试题]Python⼤赛部分答案不定项选择:
1.执⾏x = [4,3][2>1]后, 请问 x 值为多少()
A.1
B.2
C.3
D.4
2.print('\\t\')输出结果为()
A. \\
B. \\\
C. \\\\\
D. \\\t\\
3.定义域⼀个列表classmates = ['张三', '李四', '王五','赵六'],执⾏classmates[-1]后得到的结果是()
A.张三
B.赵六
C.SyntaxError
D.UnicodeError
4.定义⼀个字典 d = {'Michael': 95, 'Jack': 75, 'Tracy': 85},执⾏ d['Jack'] = 90 后再执⾏ d['Jack'] = 88,字典中Jack的值为()
A.75
B.90
C.88
D.90,88
5.这个函数的作⽤是什么?函数类型是什么?()
def fact(n):
if n==1:
return 1
廖雪峰python
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)
9__new__和__init__的区别,说法正确的是?()
C.只有在__new__返回⼀个CLS的实例时,后⾯的__init__才能被调⽤
D.当创建⼀个新实例时调⽤__new,初始化⼀个实例时⽤__init
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 中万物皆为对象,函数也不例外,函数作为对象可以赋值给⼀个变量、可以作为元素添加到集合对象中、可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第⼀类对象所特有的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。