zoukankan      html  css  js  c++  java
  • python3-开发面试题(python)6.24基础篇(3)

    1、用一行代码实现数值交换:
    
 a = 1
    
 b = 2

    a,b=b,a

    2、Python3和Python2中 int 和 long的区别?

    long整数类型被Python3废弃,统一使用int

    3、xrange和range的区别?

    xrange函数被Python3废弃,统一使用range,Python3中range的机制也进行修改并提高了大数据集生成效率

    range和xrange都是在循环中使用,输出结果一样

    range 返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)

    xrange则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少,因而性能非常好

    4、文件操作时:xreadlines和readlines的区别?

    二者使用时相同,但返回类型不同,xreadlines返回的是一个生成器,readlines返回的是list

    5、列举布尔值为False的常见值?

    None,0,空(空字符串,空列表,空字典等)

    6、字符串、列表、元组、字典每个常用的5个方法?

    #字符串操作
    words = 'today manyqian is handsome'
    print(words.strip('today'))#如果strip方法指定一个值的话,那么会去掉这两个值
    print(words.count('a'))#统计字符串出现的次数
    print(words.index('is'))#找下标
    print(words.index('z'))#找下标如果元素不找不到的话,会报错
    print(words.find('a'))#找下标,如果元素找不到的话,返回-1
    print(words.replace('day','DAY'))#字符串替换
    print(words.isdigit())#判断字符串是否为纯数字
    print(words.islower())#判断字符串是否为小写字母
    print(words.isupper())#判断字符串是否为大写字母
    print(words.startswith('http'))#判断是否以某个字符串开头
    print(words.endswith('.jpg'))#判断是否以某个字符串结尾
    print(words.upper())#将字符串变成大写
    print(words.lower())#将字符串变成小写
    #列表操作  l=[1,2,3,4,5,6]
    1、按照索引存取值(正向存取+反向存取):即可存也可以取
    l[0]=1
    l[-1]=6
    2、切片
    l[0:2]   #[1,2] 顾头不顾尾
    l[0:4:2]    #[2,4] 是步长
    3、长度 
    len(l)
    4、成员运算in和not in 
    1 in l    #Ture
    0 not in l #False
    5、追加
    l.append(7)   #末尾追加
    6、删除
    del l[0]   #查看数据已经删除所选数据
    7、循环
    for i in range(6):
        print(l[i])
    for i in l:
        print(i)      
    #元组的常用操作,和列表相似 ,元组不可变,值是无法改变
    l=(1,2,3,4,5,6)
    1、按索引取值(正向取+反向取):只能取  
    l[0]    #1
    2、切片(顾头不顾尾,步长)
    l[0:2]    #(1,2)
    3、长度
    len(l)    #6
    4、成员运算in和not in 
    1 in l    # Ture
    1 not in l #False
    5、循环
    for i in l:
        print(i)
    # 字典
    D ={'a':'1','b':'2','c':'3'}
    每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
    键是唯一的,字典只认最后一个赋的键值。
    
    dictionary的方法
    D.get(key, 0)       #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
    D.has_key(key)      #有该键返回TRUE,否则FALSE
    D.keys()            #返回字典键的列表
    D.values()
    D.items()
    
    D.update(dict2)     #增加合并字典
    D.popitem()         #得到一个pair,并从字典中删除它。已空则抛异常
    D.clear()           #清空字典,同del dict
    D.copy()            #拷贝字典
    D.cmp(dict1,dict2)  #比较字典,(优先级为元素个数、键大小、键值大小)
                        #第一个大返回1,小返回-1,一样返回0
                
    dictionary的复制
    dict1 = dict        #别名
    dict2=dict.copy()   #克隆,即另一个拷贝。

    7、lambda表达式格式以及应用场景?

    1、应用在函数式编程中

    # 需求:将列表中的元素按照绝对值大小进行升序排列
    list1 = [3,5,-4,-1,0,-2,-6]
    print(sorted(list1, key=lambda x: abs(x)))  #[0, -1, -2, 3, -4, 5, -6]

    当然,也可以如下:

    list1 = [3,5,-4,-1,0,-2,-6]
    def get_abs(x):
        return abs(x)
    print(sorted(list1,key=get_abs))  # [0, -1, -2, 3, -4, 5, -6]

    2、应用在闭包中

    def get_y(a,b):
         return lambda x:a*x+b
    y1 = get_y(1,1)
    print(y1(1)) # 结果为2
    
    #常规函数实现闭包
    
    def get_y(a,b):
        def func(x):
            return a*x+b
        return func
    y1 = get_y(1,1)
    print(y1(1)) # 结果为2

    Python之禅  Explicit is better than implicit(明了胜与晦涩),不能盲目用匿名函数

    8、pass的作用?

    1、空语句

    2、保证格式完整

    3、保证语语义完整

    9、*args和**kwargs作用

    *args:可以理解为只有一列的表格,长度不固定

    **kwargs:可以理解为字典,长度也不固定

    1、函数调用里的*args和**kwargs:

      (1)*args:元组或列表‘出现’

           (2)分割参数

    2、函数定义时传的*args/**kwargs

      (1)接收参数

    10、is和==的区别

    is同一性运算符  比较判断的是对象间的唯一身份标识,id是否相同

    ==比较操作符  比较判断两个对象的value(值)是否相等

  • 相关阅读:
    2.操作系统基础
    6.Linux基础3
    DRAM 内存介绍(一)
    131127新的一天
    Java中的super关键字何时使用
    JAVA的引用类型变量(C/C++中叫指针)
    System.out.println()的含义
    Java面试题
    HTML基础知识
    子域名查找
  • 原文地址:https://www.cnblogs.com/ManyQian/p/9220655.html
Copyright © 2011-2022 走看看