zoukankan      html  css  js  c++  java
  • 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('
    ')
    
    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].

    1. 执行内部函数 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]. 再往上推

    1. s[1],s[4]] = s[4],s[1],再往上推

    2. s[0],s[5] = s[5],s[0] 。即全部func结果结束。即交换了各个位置的元素。第一个变成最后一个、第二个变成倒数第二个、第三个变成倒数第三个。原来 的 a = [10,6,23,-90,0,3]

    交换后的 a = [3,0,-90,23,6,10]

    1. 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 列表排序默认升序
    
  • 相关阅读:
    LeetCode OJ-- Spiral Matrix II
    LeetCode OJ-- Reverse Integer
    LeetCode OJ-- Spiral Matrix
    LeetCode OJ-- Trapping Rain Water*
    LeetCode OJ--Triangle **
    LeetCode OJ-- Sqrt(x) *
    LeetCode OJ-- Simplify Path **
    lol人物模型提取(一)
    3ds Max学习日记(九)
    YaoLingJump开发者日志(八)V1.1版本完成
  • 原文地址:https://www.cnblogs.com/IT-cute/p/13752945.html
Copyright © 2011-2022 走看看