zoukankan      html  css  js  c++  java
  • python每日一练

    【2021-03-18】

    python的list基本操作(遍历、取下标)

    获取list中指定元素的下标:  list.index(value)

    >>> a

    [1, 3, 5, 9]

    >>> a.index(9)

    3

    练习题,给定list,从里面获取到和为target的2个元素,并返回其下标

    程序1:

    def get_idx(nums, target):
    
        for n in nums:
            if ((target - n) in nums):
                return nums.index(n), nums.index(target - n)
    
    if __name__ == "__main__":
        
        nums = [1, 3, 7, 9, 12, 15]
        target = 16
        print(get_idx(nums, target))
    

      

    执行结果   (0, 5)

    程序2

    def get_idx2(nums, target):
    
        for i in range(0, (len(nums) - 1)):
            for j in range((i+1), len(nums)):
                if (nums[i] + nums[j] == target):
                    return i,j
    
    if __name__ == "__main__":
    
          nums = [1, 3, 7, 9, 12, 15]
          target = 16
         
          print(get_idx2(nums, target))
    

      

    这里用到了list的遍历2种方法:

    for n in nums:   很显然这种方法更方便

    for i in range(0, len(nums)):

    以及用到了获取list中指定元素的下标nums.index(target)这个方法

    list的其他基本操作

    list1.extend(list2)   list在尾部追加另一个list2

    list.append(n)       list在尾部追加元素n

    list.insert(idx, n)   在idx的下标处插入元素n

    list.count(n)         在list中统计n出现的次数

    list*2                  list合并2次

    list+list               相加和相乘,都是合并的效果

    list.sort()             列表元素进行排序,reverse=True升序,reverse=False降序

    del list[0]            删除list中下标为0的元素

    list.pop(idx)         返回list中下标为idx的元素,并在list中删掉它

    list.remove(value)  在list中删除值为value的元素

    >>> a
    [1, 3, 5, 9]
    >>> b
    [2, 6, 8]
    >>> a.extend(b)     追加多个元素
    >>> a
    [1, 3, 5, 9, 2, 6, 8]
    
    
    
    >>> a.append(100)   在尾部追加元素
    >>> a
    [1, 3, 5, 9, 2, 6, 8, 100]
    
    
    >>> a.insert(0, -100)   在头部追加元素
    >>> a
    [-100, 1, 3, 5, 9, 2, 6, 8, 100]
    
    
    >>> b
    ['hi']
    >>> b=b*2   list相乘,得到合并的结果
    >>> b
    ['hi', 'hi']
    
    >>> a
    [-100, 1, 3, 5, 9, 2, 6, 8, 100]
    >>> b
    ['hi', 'hi']
    
    >>> a+b    list相加,得到合并的结果
    [-100, 1, 3, 5, 9, 2, 6, 8, 100, 'hi', 'hi']

    >>> a
    [-100, 1, 3, 5, 9, 2, 6, 8, 100]
    >>> a.sort()     list元素进行排序,默认是升序
    >>> a
    [-100, 1, 2, 3, 5, 6, 8, 9, 100]
    >>> a.sort(reverse=True)      反转=True表示降序
    >>> a
    [100, 9, 8, 6, 5, 3, 2, 1, -100]
    >>> a.sort(reverse=False)
    >>> a
    [-100, 1, 2, 3, 5, 6, 8, 9, 100]
    
    >>> a
    [1, 2, 3, 5, 6, 8, 9, 100]
    >>> a.pop(0)          返回下标为0的元素,并在list中删掉它
    1
    >>> a
    [2, 3, 5, 6, 8, 9, 100]
    
    >>> a
    [3, 5, 6, 8, 9, 100]
    >>> a.remove(3)    删掉value=3的元素
    >>> a
    [5, 6, 8, 9, 100]
    

      

      

      

    Q:python2和python3版本有什么差异?

    Q:python里面的__init__.py有什么作用?缺少了会怎么样?

    Q:*args, *kwargs有什么区别?

     通过一个例子来看看吧~

    def print_param(*args):
    
        print(args,  type(args))
    
    
    def print_param2(**kwargs):
    
        print(kwargs, type(kwargs))
    
    
    
    if __name__ == "__main__":
    
        print_param(3, 4, 5)
    
        print_param2(a=3, b=4, c=5)

    运行结果:

    (3, 4, 5) <class 'tuple'>
    {'a': 3, 'b': 4, 'c': 5} <class 'dict'>

    可见type(args)是元组,是传入的所有参数放在元组中 (3, 4, 5) 

    而type(kwargs)是字典,把传入的参数以k-v形式放在字典中  {'a': 3, 'b': 4, 'c': 5}

    所以一句话总结,前者是参数组成的元组,后者是参数组成的字典。

      

    [2021-03-26] 

    str.isdigit()方法

    str对象的方法,返回值True/False

    使用方法:

    >>> a
    '123'
    >>> b
    '123b'
    >>> 
    >>> a.isdigit()
    True
    >>> b.isdigit()
    False
    

      

    python的异常: raise 

    raise: 主动抛出异常

    异常用法一:try/except

        try:
            if b <= 0:
                raise ValueError("b <= 0")
        except Exception as e:
            print("{0} 引发异常".format(e))
            raise
    

      

    异常用法二: try/except/else

        try:
            if b <= 0:
                raise ValueError("b <= 0")
        except Exception as e:
            print("{0} 引发异常".format(e))
            raise
        else: #如果没有异常就执行else
            print(a//b) 

    异常用法三:try/except/finally

        try:
            if b <= 0:
                raise ValueError("b <= 0")
        except Exception as e:
            print("{0} 引发异常".format(e))
            raise
        else:
            print(a//b)
        finally:   #无论有没有异常,都执行finally
            print("end")
    

      

    大道至简
  • 相关阅读:
    (转)Python中的__init__和__new__
    PEP8
    python lstrip()函数
    python中的生成器跟迭代器
    callback
    关于0.0.0.0这个ip的疑问
    Python import中相对路径的问题
    python读取excel
    git本地管理多个密钥/账户
    词法分析之有确定、不确定自动机及其生成器
  • 原文地址:https://www.cnblogs.com/liurong07/p/14554467.html
Copyright © 2011-2022 走看看