• 基础题(四)


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


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

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

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


    字符串

    words = 'today is a wonderfulday'
    print(words.strip('today'))#如果strip方法指定一个值的话,那么会去掉这两个值
    print(words.count('a'))#统计字符串出现的次数
    print(words.index('is'))#找下标
    print(words.index('z'))#找下标如果元素不找不到的话,会报错
    print(words.find('z'))#找下标,如果元素找不到的话,返回-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())#将字符串变成小写

    列表

    sample_list = ['a',1,('a','b')]  #创建列表
    sample_list = ['a','b',0,1,3]   #  Python 列表操作
    value_start = sample_list[0]  #得到列表中的某一个值
    end_value = sample_list[-1]  #得到列表中的某一个值
    del sample_list[0]  #删除列表的第一个值
    sample_list[0:0] = ['sample value']  #在列表中插入一个值
    list_length = len(sample_list)  #得到列表的长度
    for element in sample_list:  #列表遍历
        print(element)

    元祖

    #元组也是一个list,他和list的区别是元组的元素无法修改
    tuple1 = (2,3,4,5,6,4,7)
    print(type(tuple1))
    print(tuple1[:7])
    print(tuple1[:5:-1])
    for i in range(6):
        print(tuple1[i])
    for i in tuple1:
        print(i)

    字典

    dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
    每一个元素是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()   #克隆,即另一个拷贝。

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


    lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

    lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。

    lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示:

    add = lambda x, y : x+y
    print(add(1,2))  # 结果为3

    那么到底要如何使用lambda表达式呢?

    1、应用在函数式编程中

    Python提供了很多函数式编程的特性,如:map、reduce、filter、sorted等这些函数都支持函数作为参数,lambda函数就可以应用在函数式编程中。如下:

    # 需求:将列表中的元素按照绝对值大小进行升序排列
    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]

    只不过这种方式的代码看起来不够Pythonic

    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

    只不过这种方式显得有点啰嗦。

    那么是不是任何情况下lambda函数都要比常规函数更清晰明了呢?

    肯定不是。

    Python之禅中有这么一句话:Explicit is better than implicit(明了胜于晦涩),就是说那种方式更清晰就用哪一种方式,不要盲目的都使用lambda表达式。

    21、pass的作用?

      1、空语句 do nothing

    if true:
        pass #do nothing
    else:
        pass #do something

      2、保证格式完整

    def iplaypython():
        pass

      3、保证语义完整

    while True:
        pass
  • 相关阅读:
    Http错误代码
    Android View自动生成插件
    【Android】设备标识
    【Android】键盘的展开和收起
    【Android】Activity生命周期(亲测)
    【Android】IntentService & HandlerThread源码解析
    【Android】与服务器实现JSON数据通信
    【Web】Eclipse + Maven + Struts搭建服务器
    【Android】Kill Service
    【Android】Handler、Looper源码分析
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/9169070.html
Copyright © 2020-2023  润新知