zoukankan      html  css  js  c++  java
  • 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,)))
    <class 'tuple'>
    >>> print(type((1)))
    <class 'int'>
    
    5、What gets printed?()
    print r"
    woow"
    
    the text like exactly like this: 
    woow                前导标识符 r 不会被输出,只起标记作用,r代表不被转义
    
        
    
    Python 中字符串的前导 r 代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。
    
    最典型的例子,如要输出字符串 
    ,由于反斜杠的转义,因此一般的输出语句为:
    
    print "\n"
    这里的 \ 将被转义为  。而采用原始字符串输出时,则不会对字符串进行转义:
    print r"
    "
    因此本题答案为 C,输出 
    woow 。注意前导标识符 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__'下面的语句。      
    
    
  • 相关阅读:
    sublimetext3安装配置
    .Net Core 商城微服务项目系列(八):购物车
    .Net Core 商城微服务项目系列(七):使用消息队列(RabbitMQ)实现服务异步通信
    eShopOnContainers学习系列(三):RabbitMQ消息总线实践
    Docker系列(五):.Net Core实现k8s健康探测机制
    Docker系列(四):容器之间的网络通信
    Docker系列(三):将.Net Core Api部署到Kubernetes (K8s)中
    Docker系列(二):通过Docker安装使用 Kubernetes (K8s)
    生产环境项目问题记录系列(一):一次循环数据库拖垮服务器问题
    .Net Core 商城微服务项目系列(六):搭建自己的Nuget包服务器
  • 原文地址:https://www.cnblogs.com/IT-cute/p/13607707.html
Copyright © 2011-2022 走看看