python 编程刷题_Python刷题-1

1、下列代码运行结果是?

a = map(lambda x: x**3, [1, 2, 3])

list(a)

[1, 8, 27]

2、Which numbers are printed?()

for i in range(2):

print i

for i in range(4,6):

print i

0, 1, 4, 5 答:range,左闭右开,range(2)输出的是0,1,range(4,6)表示在4和6之间左闭右开,是4,5

range()函数的语法如下:

range(start, end[, step])

参数说明:

start: 计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0, 5);

end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 等于 [0, 1, 2, 3, 4],没有5;

step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

详情请参考:

http://www.runoob.com/python/python-func-range.html

因此上述代码实际将输出:

0

1

4

5

3、for i in range(2):

print i

for i in range(4,6):

print I

打印的结果是()

0, 1, 4, 5

4、下列哪种不是Python元组的定义方式?

(1)

(1, )

(1, 2)

(1, 2, (3, 4))

Python 中的 tuple 结构为 “不可变序列”,用小括号表示。为了区别数学中表示优先级的小括号,当 tuple 中只含一个元素时,需要在元素后加上逗号。

>>> print(type((1,)))

>>> print(type((1)))

5、What gets printed?()

print r"\nwoow"

the text like exactly like this: \nwoow 前导标识符 r 不会被输出,只起标记作用,r代表不被转义

Python 中字符串的前导 r 代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。

最典型的例子,如要输出字符串 \n,由于反斜杠的转义,因此一般的输出语句为:

print "\\n"

这里的 \\ 将被转义为 \ 。而采用原始字符串输出时,则不会对字符串进行转义:

print r"\n"

因此本题答案为 C,输出 \nwoow 。注意前导标识符 r 不会被输出,只起标记作用。

6、以下声明错误的是:D

A、dic = {}

B、dic = {100:200}

C、dic = {(1,2,3):'test'}

D、dic = {[1,2,3]:'test'}

字典的键值必须是不可变类型,如数字,字符串,元组,而列表是可变类型。

可变(mutable)对象类型 :list、dict、set、bytearray、user-defined classes (unless specifically made immutable)

不可变(immutable)对象类型: int、float、decimal、complex、bool、str、tuple、range、frozenset、bytes

7、对于以下代码,描述正确的是:

list = ['1', '2', '3', '4', '5']

print list[10:]

A、导致 IndexError

B、输出['1', '2', '3', '4', '5']

C、编译错误

D、输出[]

切片操作不会引起下标越界异常

索引会报错,如list[10], list index out of range,而切片不会,只会给空列表如list[10:11]结果是空列表

8、下列程序运行结果为:

a=[1, 2, 3, 4, 5]

sums = sum(map(lambda x: x + 3, a[1::3]))

print(sums)

13

a=[1, 2, 3, 4, 5]

sums = sum(map(lambda x: x + 3, a[1::3]))

'''a[1::3]意思是切片取值a[1]=2,: 代表取值到列表结尾,3为步长 ,取值结果为[2,5]lambda 匿名函数 返回x+3,则为[5,8],再求合13'''

print(sums)

a[1::3]的意思是,从下标1开始步长为3的元素,在这道题里也就是2、5;

两个冒号中间的数字代表从开始到小于该下标,留空则直到结尾,比如a[0:4:1]则是从下标0开始到下标4之间步长为1的元素。

这是Python里面的切片步长写法,它的原始形式应该是这样的:[start: end : step]

表示“从开始索引位置的那个值计算,经过多少步长到结束索引位置”,有时候end会被省略。

所以这里就表示从索引为1的(a=[1, 2, 3, 4, 5])数字,就是这里的2(因为索引都是从0开始计算)开始计算 三步,下一个就是5。

9、有如下类定义,下列描述错误的是? D

class A(object):

pass

class B(A):

pass

b = B()

A、isinstance(b, A) == True

B、isinstance(b, object) == True

C、issubclass(B, A) == True

D、issubclass(b, B) == True

abc isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True. issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.

新式类:class 类(object基类)

继承类:class 子类(父类1[,父类2,父类3])#在继承元组中列了一个以上的类,那么它就被称作"多重继承"

class A(object):#新式类,相当于A继承object基类

pass

class B(A):#B类继承A类

pass

b = B()#实例化

10、已知print_func.py的代码如下:

print('Hello World!')

print('__name__ value: ', __name__)

def main():

print('This message is from main function')

if __name__ == '__main__':

main()

print_module.py的代码如下:

import print_func

print("Done!")

运行print_module.py程序,结果是:

Hello World!

__name__ value: print_func

Done!

如果是直接执行print_func文件,则__name__的值为__main__;

如果是以导入模块的形式执行print_func文件,则__name__的值为该文件名print_func。

__name__的目的就是如果是以导入模块的形式执行文件,不会执行if __name__ == '__main__'下面的语句。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值