Python基础语法小题目

2019-07-26  本文已影响0人  Eline_569f

01_7.26 Python小课堂来啦~

Tips:

部分题目没有特别说明,默认使用python3环境即可。有特别说明的,建议py2和py3都试下。

4.关于Python中的复数,下列说法错误的是()

A.表是复数的语法是real + image j

B.实部和虚部都是浮点数

C.虚部必须后缀j,且必须小写

D.方法conjugate返回复数的共轭复数

5.以下不能创建一个字典的语句是()

A.dict1 = {}

B.dict1 = {}

C.dict3 = {[1,2,3]: “uestc”}

D.dict4 = {(1,2,3): “uestc”}

6.python my.py v1 v2 命令运行脚本,通过 from sys import argv如何获得v2的参数值? 

A.argv[0]

B.argv[1]

C.argv[2]

D.argv[3]

7.下面代码运行结果? 

a = 1

try:

    a += 1

except:

    a += 1

else:

    a += 1

finally:

    a += 1

print(a)

打印结果:4

8.下列代码运行结果是? 

a = 'a'

print(a > 'b' or 'c')

打印结果:c

9.What gets printed by the code snippet below?()

import math

print math.floor(5.5)

py2打印结果:5.0

py3打印结果:5

10.What gets printed?()

nums = set([1,1,2,3,3,3,4,5])

print(len(nums))

打印结果:5

11.下面代码运行后,a、b、c、d四个变量的值,打印结果分别是? 

import copy

a = [1, 2, 3, 4, ['a', 'b']] 

b = a 

c = copy.copy(a) 

d = copy.deepcopy(a) 

a.append(5) 

a[4].append('c') 

分析如下:

a = [1, 2, 3, 4, ['a', 'b']] 

b = a     # 引用,除非直接给a重新赋值,否则a变则b变,b变则a变

c = copy.copy(a)   # 浅复制,只会拷贝父对象,不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象改变,c不会变

d = copy.deepcopy(a) #深拷贝,完全拷贝,完全独立于原对象,a变也不变

a.append(5) # 改变父对象

a[4].append('c')  #改变父对象中的 ['a', 'b']子对象

打印结果:

a=[1, 2, 3, 4, ['a', 'b','c'],5] 

b=[1, 2, 3, 4, ['a', 'b','c'],5]

c=[1, 2, 3, 4, ['a', 'b','c']]

d=[1, 2, 3, 4, ['a', 'b']] 

12.解释型语言的特性有什么?

如,非独立,效率低。

Python不是一门纯粹的解释型语言,例如Cpython中间编译生成pyc文件,然后再运行pyc,也是有编译型语言特点的,其实所有语言本身并无编译解释之分,只是取决支持它的执行环境是解释器,还是编译器。

参考这两篇理解:

https://www.cnblogs.com/ziyide/p/9095430.html

https://www.jianshu.com/p/c1ce70ccdb74

13.下列对协程的理解错误的是?

A.一个线程可以运行多个协程

B.协程的调度由所在程序自身控制

C.Linux中线程的调度由操作系统控制

D.Linux中协程的调度由操作系统控制

14.有如下函数定义,执行结果正确的是?

def dec(f):

    n = 3

    def wrapper(*args,**kw):

        return f(*args,**kw) * n

    return wrapper

@dec

def foo(n):

    return n * 2

A.foo(2) == 12

B.foo(3) == 12

C.foo(2) == 6

D.foo(3) ==6

解释:

装饰器本身是一个函数,是在不改变待装饰函数代码情况下,增加额外功能,其返回值是已装饰的函数对象。

装饰器的作用是把原函数foo()(待装饰函数)赋值给dec()(装饰器),再把返回值--wrapper()(已装饰函数)重新赋值给foo();

def wrapper(2):

    return foo(2)*3

函数执行结果为:foo(2) = wrapper(2) = foo(2)*3 = 2*2*3 = 12

15.What gets printed?()

print(r"\nwoow")

A.new line then the string: woow

B.the text exactly like this: r"\nwoow"

C.the text like exactly like this: \nwoow

D.the letter r and then newline then the text: woow

E.the letter r then the text like this: nwoow

16.若 a = range(100),以下哪些操作是合法的?

A.a[-3]

B.a[2:13]

C.a[::3]

D.a[2-3]    #仔细看索引

17.__new__和__init__的区别,说法正确的是? 

A.__new__是一个静态方法,而__init__是一个实例方法

B.__new__方法会返回一个创建的实例,而__init__什么都不返回

C.只有在__new__返回一个cls的实例时,后面的__init__才能被调用

D.当创建一个新实例时调用__new__,初始化一个实例时用__init__

18.下列代码执行结果是?

[i**i for i in xrange(3)]

A.[1, 1, 4]

B.[0, 1, 4]

C.[1, 2, 3]

D.(1, 1, 4)

持续更新中...

上一篇下一篇

猜你喜欢

热点阅读