• Python刷题-2


    1、下面哪个是Python中的不变的数据结构? tuple
    A、set
    B、list
    C、tuple
    D、dict
    
    
    #可变数据类型:列表list[ ]、字典dict{ }
    #数据发生改变,但内存地址不变
    
    #不可变数据类型:整型int、字符串str' '、元组tuple()
    #当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会改变;
    
    2、以下程序输出为:  11 22 (33, 44, 55, 66, 77, 88, 99)
    
    def test(a,b,*args):
        print(a)
        print(b)
        print(args)
    test(11,22,33,44,55,66,77,88,99)
    
    # 11给a, 22给b,剩下的包装成元组给了不定长参数 *args
    # python参数传递里的不定长参数:加了*的参数以元组方式传入,加了**的参数会以字典方式传入
    
    4、下列哪个语句在Python中是非法的?
    
    A、  x = y = z = 1
    B、  x = (y = z + 1)
    C、  x, y = y, x
    D、  x  +=  y
    
    # y = z + 1 的结果没有返回值,就无法赋值到 x
    
    5、下面代码运行后,a、b、c、d四个变量的值,描述错误的是?  ( 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、  a ==  [1,2, 3, 4, ['a', 'b', 'c'], 5]
    B、  b ==  [1,2, 3, 4, ['a', 'b', 'c'], 5]
    C、  c ==  [1,2, 3, 4, ['a', 'b', 'c']]
    D、  d ==  [1,2, 3, 4, ['a', 'b', ‘c’]]
    
    
    import copy
    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']] 
    
    6、以下程序输出为:
    正在装饰 
    正在验证权限
    def w1():
       print('正在装饰')
       def inner():
            print('正在验证权限')
       return inner() 
    
    w1()
    
    # 因为return inner()后面有括号所以会执行函数,如果改为
    def w1():
        print("正在装饰")
        def inner():
            print("正在验证权限")
        return inner
    w1()
    # 最后一行的括号去掉,那么结果就是“正在装饰”
    
    如果外层函数返回的是一个函数名的话,运行结果应该是:正在装饰
    如果外层函数返回的是函数调用的话,运行结果是:正在装饰 正在验证权限
    
    7、假设可以不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:(B)
    import math
    def sieve(size):
        sieve= [True] * size
        sieve[0] = False
        sieve[1] = False
        for i in range(2, int(math.sqrt(size)) + 1):
            k= i * 2
            while k < size:
               sieve[k] = False
               k += i
        return sum(1 for x in sieve if x)
    print(sieve(10000000000))
    
    A、455052510
    B、455052511
    C、455052512
    D、455052513
    这是一个求质数个数的题不说了,简单做一个递归的优化,每次都用质数筛
    
    #这个地方以100举例
    import math
    def sieve(size):
        sieve= [True] * size
        sieve[0] = False
        sieve[1] = False    # 这100个数除了0和1其余默认为True
        for i in range(2, int(math.sqrt(size)) + 1):    # 从2开始一直到10
            k= i * 2
            while k < size: 
               sieve[k] = False
               k += i       #  4为首项,公差为2的数为False;6为首项公差为3的数,以此类推,直到20为首项公差为10的数
        # 对sieve中每个元素进行遍历,如果x为真,则计算器加1
        return sum(1 for x in sieve if x)         # 统计True的个数
    print(sieve(100))
    
    8、what gets printed? Assuming python version 2.x( A  )
    print type(1/2)
    
    A、 <type 'int'>
    B、 <type 'number'>
    C、 <type 'float'>
    D、<type 'double'>
    E、<type 'tuple'>
    
    # Python2 中除法默认向下取整,因此 1/2 = 0,为整型。
    # 而 Python3 中的除法为正常除法,会保留小数位,因此 1/2 = 0.5,为浮点型。
    
    9、从运行层面上来看,从四个选项选出不同的一个。python
    JAVA
    Python
    objectC
    C#
    
    Python  只有它是动态语言
    动态语言的定义:动态编程语言   是   高级程序设计语言   的一个类别,在计算机科学领域已被广泛应用。它是一类   在 运行时可以改变其结构的语言   :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的   ECMAScript   (   JavaScript   )便是一个动态语言,除此之外如   PHP   、   Ruby   、   Python   等也都属于动态语言,而   C   、   C++   等语言则不属于动态语言
    
    10、关于return说法正确的是( B D  )
    
    A、python函数中必须有return
    B、return可以返回多个值
    C、return没有返回值时,函数自动返回Null
    D、执行到return时,程序将停止函数内return后面的语句
    
    # return会跳出函数(遇到它,函数就结束)
    # break会跳出当前循环
    # continue 跳出当前循环并执行下一次
    
    # C. return没有返回值时,函数自动返回None,Python没有Null
    
  • 相关阅读:
    Leetcode 589. N-ary Tree Preorder Traversal
    Leetcode 912. Sort an Array
    Leetcode 1020. Number of Enclaves
    Leetcode 496. Next Greater Element I
    Leetcode 1019. Next Greater Node In Linked List
    Leetcode 503. Next Greater Element II
    Leetcode 1018. Binary Prefix Divisible By 5
    龟兔赛跑算法详解
    Leetcode 142. Linked List Cycle II
    Leetcode 141. Linked List Cycle
  • 原文地址:https://www.cnblogs.com/IT-cute/p/13679442.html
Copyright © 2020-2023  润新知