Python刷题-7
1、下面哪个是Python中的不变的数据结构? (C)
A、set
B、list
C、tuple
D、dict
2、下列代码输出为: 6
str1 = "Hello,Python";
str2 = "Python";
print(str1.index(str2));
index()方法语法:
str.index(str, beg=0, end=len(string))
参数
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
从Hello开始数到p截止,从下标0开始数
str2指向字符串Python的起始位置,即P所在的位置。
str1.index(str2)即返回str1中str2指向的P位置的下标。
str1是一个字符串,下标从0开始数起,数到P就是6,注意逗号在字符串内也占一个位置。
详解:str1.index(str2)找到str2的起始字符,对应str1中哪个位置,从0开始数,这就是索引
3、以下哪个代码是正确的读取一个文件? (C)
A、f = open("test.txt", "read")
B、f = open("r","test.txt")
C、f = open("test.txt", "r")
D、f = open("read","test.txt")
Python中,打开文件语法为:
text = oepn(filePath, 操作方式,编码方式)
常见操作方式
'r':读
'w':写
'a':追加
常见编码方式
utf-8
gbk
4、下列哪种类型是Python的映射类型?(D)
A、str
B、list
C、tuple
D、dict
映射是一种关联式的容器类型,它存储了对象与对象之间的映射关系,字典是python里唯一的映射类型,它存储了键值对的关联,是由键到键值的映射关系。
5、如下程序的运行结果为:
def func(s,i,j):
if i<j:
func(s,i+1,j-1)
s[i],s[j] =s[j],s[i]
def main():
a = [10,6,23,-90,0,3]
func(a,0,len(a)-1)
for i in range(6):
print(a[i])
print('\n')
main()
答案:这是一道递归的题目
3
0
-90
23
6
10
1.首先,调用main() 函数内,已经定义了一个列表 a ,传入到func函数内,第一次传入的参数中 i,j 分别代表列表的首位、末尾值。即
i = 0 ,j = 5 此时满足 i<j ,则此时调用 满足的条件 ,又调用func ,此时传入的参数为 a、1,4 。这时需要执行函数,而不能往下执行,即暂不可执行第一次的 交换元素 s[0],s[5] = s[5],s[0].
- 执行内部函数 func(a,1,4) 则也满足 1<4 此时还需要再调用 func(a,2,3) .暂不执行 s[1],s[4]] = s[4],s[1].
3.再执行内部函数 func(a,2,3) ,还是满足2<3 此时还需要再调用 func(a,3,2) .暂不执行 s[2],s[3]] = s[3],s[2].
4.再执行内部函数func(a,3,2),此时不满足 3<2 . 即不执行任何内容。此时内部循环函数全部结束。再往上推。
5.上一步内部函数执行完后,则执行交换s[2],s[3]] = s[3],s[2]. 再往上推
-
s[1],s[4]] = s[4],s[1],再往上推
-
s[0],s[5] = s[5],s[0] 。即全部func结果结束。即交换了各个位置的元素。第一个变成最后一个、第二个变成倒数第二个、第三个变成倒数第三个。原来 的 a = [10,6,23,-90,0,3]
交换后的 a = [3,0,-90,23,6,10]
- for循环依次打印出a列表元素 ,每次打出一个都进行换行操作。
6、下面程序运行结果为:
for i in range(5):
i+=1
print("-------")
if i==3:
continue
print(i)
-------
1
-------
2
-------
-------
4
-------
5
考察 continue 跳出本句的循环,但循环仍在继续。故 i = 3 时不进行打印
7、下列代码输出为:TRUE
str = "Hello,Python"
suffix = "Python"
print (str.endswith(suffix,2))
str.endswith(suffix,2) 中的2是指:从字符串"Hello,Python" 中的位置2,也就是第一个‘l’开始检索,判断是否以suffix结尾,故本题输出 True 。
8、下列关于python socket操作叙述正确的是( CD )
A、使用recvfrom()接收TCP数据
B、使用getsockname()获取连接套接字的远程地址
C、使用connect()初始化TCP服务器连接
D、服务端使用listen()开始TCP监听
使用recvfrom()接收TCP数据(错误) socket.recv是tcp协议,recvfrom是udp传输 返回值是(data,address)
其中data是包含接收数据的字符串,address是 发送数据 的套接字地址。
使用getsockname()获取连接套接字的远程地址(错误) 返回套接字自己的地址
通常是一个元组(ipaddr,port)
使用connect()初始化TCP服务器连接 连接到address处的套接字。
一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
服务端使用listen()开始TCP监听
9、下列程序打印结果为: [1, 2, 3, 4, 5, 5, 7]
nl = [1,2,5,3,5]
nl.append(4)
nl.insert(0,7)
nl.sort()
print nl
append()方法是指在列表末尾增加一个数据项。
extend()方法是指在列表末尾增加一个数据集合。
insert()方法是指在某个特定位置前面增加一个数据项。
nl=[1,2,5,3,5];nl.append(4)得nl=[1,2,5,3,5,4];
nl.insert(0,7)得nl=[7,1,2,5,3,5,4];
nl.sort()输出[1,2,3,4,5,5,7] # sort 列表排序默认升序