Python刷题-1

本文将探讨Python编程中的实战题目,通过解析和解答,帮助读者加深对Python语言的理解。涵盖基础语法、数据结构、函数应用等多个方面,旨在提升编程技能。
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,1range(4,6)表示在46之间左闭右开,是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
for i in range(2):
    print i
for i in range(4,6):
 print I
 
打印的结果是()
0, 1, 4, 5


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

(1)
(1, )
(1, 2)
(1, 2, (3, 4))

Python 中的 tuple 结构为 “不可变序列”,用小括号表示。为了区别数学中表示优先级的小括号,当 tuple 中只含一个元素时,需要在元素后加上逗号。
>>> print(type((1,)))
<class 'tuple'>
>>> print(type((1)))
<class 'int'>
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 不会被输出,只起标记作用。
以下声明错误的是:D

A、dic = {}
B、dic = {100:200}
C、dic = {(1,2,3):'test'}
D、dic = {[1,2,3]:'test'}

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

可变(mutable)对象类型 :listdictsetbytearray、user-defined classes (unless specifically made immutable)
不可变(immutable)对象类型: intfloat、decimal、complexboolstrtuplerangefrozensetbytes
对于以下代码,描述正确的是:
list = ['1', '2', '3', '4', '5']
print list[10:]

A、导致 IndexError
B、输出['1', '2', '3', '4', '5']
C、编译错误
D、输出[]

切片操作不会引起下标越界异常
索引会报错,如list10, list index out of range,而切片不会,只会给空列表如list[1011]结果是空列表
下列程序运行结果为:
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的元素,在这道题里也就是25;
两个冒号中间的数字代表从开始到小于该下标,留空则直到结尾,比如a[0:4:1]则是从下标0开始到下标4之间步长为1的元素。

这是Python里面的切片步长写法,它的原始形式应该是这样的:[start: end : step] 
表示“从开始索引位置的那个值计算,经过多少步长到结束索引位置”,有时候end会被省略。
所以这里就表示从索引为1的(a=[1, 2, 3, 4, 5])数字,就是这里的2(因为索引都是从0开始计算)开始计算 三步,下一个就是5
有如下类定义,下列描述错误的是?  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 isinstanceobject,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True. issubclassclass,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.

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

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

b = B()#实例化

已知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__'下面的语句。      

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少云清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值