Python学习笔记[牛客专项练习]

下面哪个是Python中的不变的数据结构?

正确答案: C

set
list
tuple
dict

  • 可变:list, dict,set
  • 不可变:string int float tuple boolen
    帮助记忆的方法:不可变的看作是个体, 可变是一个容器

关于Python内存管理,下列说法错误的是

正确答案: B

变量不必事先声明
变量无须先创建和赋值而直接使用
变量无须指定类型
可以使用del释放资源

python中变量可以不事先声明、不指定类型,会自动根据赋值语句来决定类型
同时,使用前必须赋值,在赋值的同时变量也就创建了

Python调用( )函数可实现对文件内容的读取

正确答案: A

read()
readline()
readlines()
readclose()

read()读整个文件
readline()读一行
readlines()读所有行到list

下列Python语句正确的是

正确答案: D

min = x if x < y = y
max = x > y ? x : y
if (x > y) print x
while True : pass

A:三元运算符的使用

a if condition else b
min = x if x < y else y

B: python中无此用法
C:缺少冒号

if (x > y) : print x

关于Python中的复数,下列说法错误的是()

正确答案: C

表示复数的语法是real + image j
实部和虚部都是浮点数
虚部必须后缀j,且必须小写
方法conjugate返回复数的共轭复数

虚部的后缀可以是’j’也可以是’J’

下面代码运行后,a、b、c、d四个变量的值

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 = [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’]]

b=a,只是换了一个名字,a怎么变b就怎么变,
c是浅复制,只复制了a的部分值,仍然共用某些值,所以在对a的子对象进行操作时会改变c
d是深复制,完全复制了a的所有值,已经完全与a无关,对a的任何操作都不会影响d

What gets printed?

kvps = {
    '1' : 1, '2' : 2 }
theCopy = kvps.copy()
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
print sum

正确答案:6
浅拷贝,kvps[‘1’] = 5改变父对象的值,theCopy父对象不会变

下列表达式的值为True的是

正确答案: C

5+4j > 2-3j #不支持复数比较大小
3>2>2
(3,2)< (‘a’,‘b’)
’abc’ > ‘xyz’

C: tuple 的比较是从两者的第一个元素的 ASCII 码开始,直至两个元素不相等为止,若前面元素都相等,则元素个数多的 tuple 较大。
D: 字符串的比较与 tuple 类似,也是从第一个字符开始比较 ASCII 码,直到两个字符不相等为止。
字母与数字的ASCII 码大小范围是 “a-z” > “A-Z” > “0-9”,D选项中 ‘a’ < ‘x’

已知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!

Python中函数是对象,描述正确的是?

正确答案: A B C D

函数可以赋值给一个变量
函数可以作为元素添加到集合对象中
函数可以作为参数值传递给其它函数
函数可以当做函数的返回值

在 Python 中万物皆为对象,函数也不例外

有如下函数定义,执行结果正确的是?

def dec(f):
    n = 3
    def wrapper(*args,**kw):
        return f(*args,**kw) * n
    return wrapper
 
@dec
def foo(n):
    return n * 2    

正确答案: A

foo(2) == 12
foo(3) == 12
foo(2) == 6
foo(3) == 6

Ref

在这里插入图片描述

在Python2中,下列哪种函式参数定义不合法?

正确答案: C

def myfunc(*args):
def myfunc(arg1=1):
def myfunc(*args, a=1):
def myfunc(a=1, **args):

答案解析
当args与位置参数和默认参数混用的情况下:(注意三者的顺序)

  • 示例一、(三者顺序是:位置参数、默认参数、*args)
def foo(x,y=1,*args):
     pass
foo (1,2,3,4,5) // 其中的x为1,y=1的值被2替换,3,4,5都给args,即args=(3,4,5)
  • 示例二、(三者顺序是:位置参数、*args、默认参数)
def foo(x,*args,y=1):
    
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值