下列关于python socket操作叙述正确的是_Python学习笔记[牛客专项练习]

本文介绍了Python中的数据结构、内存管理和文件操作相关知识。包括不可变数据结构、变量的声明与类型、文件读取方法、Python语句的正确用法、复数表示以及内存管理中的深浅拷贝概念。此外,还涉及函数作为对象、装饰器的使用及Python的网络套接字操作基础。
摘要由CSDN通过智能技术生成

下面哪个是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

下列表达式的值为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

5bb46bbd3ea4ce9947f49209c46b2e9c.png

假设可以不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:()

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))

正确答案: B

455052510

455052511

455052512

455052513

100亿以内的质数个数:455052511

以上程序要求用户输入二进制数字0/1并显示之,请改正程序

bit = input("Enter a binary digit:")

if bit = 0 or 1:

print "your input is" ,bit

else

print "your input is invalid"

正确写法:

bit = input("Enter a binary digit:")

if int(bit) == 0 or int(bit) == 1:

print ("your input is ", bit)

else:

print ("your input is invalid")

range(2) :0,1

range(4, 6):4,5

左边包含,右边不包含

What gets printed?()

nums = set([1, 1, 2, 3, 3, 4])

print(len(nums))

正确答案:4

set 类型的特性是会移除集合中重复的元素

在python中,使用open方法打开文件,语法如下:

open(文件名,访问模式)

如果以二进制格式打开一个文件用于追加,则访问模式为:

正确答案: C

rb

wb

ab

a

“r”,“w”,“a”,“rb”,“wb”,“ab”:指定对文件打开方式即文件内容操作方式,即只读,可写,追加,二进制读,二进制写,二进制追加

有一段python的编码程序如下:

urllib.quote(line.decode("gbk").encode("utf-16"))

请问经过该编码的字符串的解码顺序是( )

正确答案: D

gbk utf16 url解码

gbk url解码 utf16

url解码 gbk utf16

url解码 utf16 gbk

编码过程:

line -> 解码 gbk -> 编码 utf-16 -> 编码 url

解码过程(与编码过程相反):

解码 url -> utf-16 -> gbk

以上函数输出结果为()

import numpy as np

a = np.repeat(np.arange(5).reshape([1,-1]),10,axis = 0)+10.0

b = np.random.randint(5, size= a.shape)

c = np.argmin(a*b, axis=1)

b = np.zeros(a.shape)

b[np.arange(b.shape[0]), c] = 1

print (b)

正确答案:

一个 shape = (10,5) 的 one-hot 矩阵

下列关于python socket操作叙述正确的是( )

正确答案: C D

使用recvfrom()接收TCP数据

使用getsockname()获取连接套接字的远程地址

使用connect()初始化TCP服务器连接

服务端使用listen()开始TCP监听

Ref:python socket

Python 提供了两个级别访问的网络服务:

低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统 Socket 接口的全部方法。

高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

A:s.recvfrom() 接收 UDP 数据,与 recv() 类似,但返回值是(data,address)。其中 data 是包含接收数据的字符串,address 是发送数据的套接字地址。

B:s.getsockname() 返回套接字自己的地址。通常是一个元组(ipaddr,port)

C:s.connect() 主动初始化TCP服务器连接,。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。

D:s.listen() 开始 TCP 监听。backlog 指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为 1,大部分应用程序设为 5 就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值