Python刷题-2

简介: 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参数传递里的不定长参数:加了*的参数以元组方式传入,加了**的参数会以字典方式传入
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
目录
相关文章
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
67 6
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 26. 树的子结构
这篇文章提供了解决LeetCode上"剑指Offer 26. 树的子结构"问题的Python代码实现和解析,判断一棵树B是否是另一棵树A的子结构。
61 4
|
5月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
136 2
|
3月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
31 3
|
3月前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
26 0
|
3月前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
25 0
|
3月前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
20 0
|
5月前
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
81 7
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
Leetcode题目"剑指 Offer 22. 链表中倒数第k个节点"的Python解决方案,使用双指针法找到并返回链表中倒数第k个节点。
62 5
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 30. 包含min函数的栈
本文提供了实现一个包含min函数的栈的Python代码,确保min、push和pop操作的时间复杂度为O(1)。
37 4