181113-Python基础笔记

文章目录
  1. 1. is 与 ==
  2. 2. 数字类型转换
  3. 3. 数字的操作方法
  4. 4. 随机方法
  5. 5. 字符串操作
  6. 6. 字符串内键函数
  7. 7. list
  8. 8. Tuple
  9. 9. dict
  10. 10. set
  • II. 其他
    1. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    2. 2. 声明
    3. 3. 扫描关注
  • 本篇记录python基础内容学习笔记

    1. is 与 ==

    • is: 用于判断两个对象是否引用同一个内存地址
    • ==: 判断两个对象的值是否相等

    2. 数字类型转换

    • int(x)
    • float(x)
    • complex(x) 复数, 实数部分为 x,虚数部分为 0。
    • complex(x,y)

    3. 数字的操作方法

    • abs(x) 绝对值
    • ceil(x) 向上取整
    • exp(x) 返回e的x次幂
    • floor(x) 下取整
    • log(x)
    • max(x…)
    • min(x…)
    • round(x) 四舍五入
    • pow(x, y)
    • sqrt(x)

    4. 随机方法

    • random() 随机生成 [0,1)
    • shuffle(lst) 随机排序
    • uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。

    5. 字符串操作

      • 字符串连接
      • 字符串重复输出
    • [] 通过索引获取字符串中的字符
    • [:] 截取字符串中的一部分
    • in 成员运算符,如果字符串中包含给定的字符返回True
    • not in 成员运算符,如果字符串中不包含给定的字符返回True
    • r/R 原始字符串
    • % 格式字符串

    6. 字符串内键函数

    • capitalize() 字符串的第一个字符串转换为大写
    • center(width, fillchar)
    • count(str, beg=0, end=len(string)) 返回str在string中出现的次数
    • bytes.decode(encoding=”utf-8”, errors=”strict”)
      • Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
    • encode(encoding=’UTF-8’,errors=’strict’)
      • 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
    • endswith(suffix, beg=0, end=len(string))
      • 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
    • expandtabs(tabsize=8)
      • 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
    • find(str, beg=0 end=len(string))
      • 跟find()方法一样,只不过如果str不在字符串中会报一个异常.
    • isalnum()
      • 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
    • isalpha()
      • 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
    • isdigit()
      • 如果字符串只包含数字则返回 True 否则返回 False..
    • islower()
      • 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
    • isnumeric()
      • 如果字符串中只包含数字字符,则返回 True,否则返回 False
    • isspace()
      • 如果字符串中只包含空白,则返回 True,否则返回 False.
    • istitle()
      • 如果字符串是标题化的(见 title())则返回 True,否则返回 False
    • isupper()
    • join(seq)
      • 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
    • len(String) 返回字符串长度
    • ljust(width[, fillchar])
      • 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

    7. list

    列表,允许出现重复的数据

    1
    2
    3
    s = [1, 2]
    # 根据元组内容来定义一个数组
    s = list((1,2))

    添加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> list=[1,2]
    # 在末尾追加
    >>> list.append(3)
    >>> list
    [1, 2, 3]

    # 在指定索引处添加
    >>> list.insert(2, 'a')
    >>> list
    [1, 2, 'a', 3]

    # 两个列表合成一个
    >>> list + ['x', 'y']
    [1, 2, 'a', 3, 'x', 'y']

    删除

    两个常见的删除方式, del list[index] 或者 list.pop(index);区别在于前面是删除内存,后面是从数组中返回并删除这个元素

    1
    2
    3
    4
    5
    6
    7
    8
    >>> list
    [1, 2, 'a', 3]
    # 删除指定位置的值,不传入参数时,删除最后一个
    >>> list.pop(1)
    2
    >>> del list[1]
    >>> list
    [1, 3]

    更新

    可以简单看成是数组的更新方式 list[index]=xxx,需要额外注意下数组越界的问题

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> list
    [1, 3]
    ## 直接赋值更新
    >>> list[0] = 'asd'
    >>> list
    ['asd', 3]

    ## 更新时,注意数组越界的问题
    >>> list[2] = 'da'
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    IndexError: list assignment index out of range

    长度

    获取数组长度,主要利用len(xx)

    1
    2
    3
    4
    >>> list
    ['asd', 3]
    >>> len(list)
    2

    判断

    查找列表中某个元素的下标 list.index(xx), 判断列表中是否存在 x in list

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> list
    ['asd', 3, 'asd']
    >>> list.index('asd')
    0
    >>> list.index(3)
    1
    >>> list
    ['asd', 3, 'asd']
    >>> 3 in list
    True
    >>> '3' in list
    False

    清空

    清空列表中所有的元素list.remove(),和删除列表del list是两码事,如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> list.clear()
    >>> list
    []
    >>> list.append(1)
    >>> list
    [1]
    >>> del list
    >>> list
    <class 'list'>

    空列表定义

    1
    >>> list=[]

    遍历

    除了常见的直接for循环遍历之外,如果希望在遍历数组的同时,也知道数组的下标,可以借助enumerate来遍历,更加方便

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    >>> for x in list:
    ... print(x)
    ...
    1
    112
    132


    ## 遍历时,获取下标和内容
    >>> for index,val in enumerate(list):
    ... print(index, val)
    ...
    0 1
    1 112
    2 132

    8. Tuple

    元组,和list的最主要区别是元组不能修改,不能修改,不能修改

    定义

    一般的定义如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> t = ('a', 'b', ['A', 'B'])
    >>> t[2][0]
    'A'
    >>> t[2][1]
    'B'
    >>> t[1]
    'b'
    >>> t
    ('a', 'b', ['A', 'B'])

    比较特殊一点的是空元组和至于一个元素的元组,定义时,如下, 当定义一个元素的元组时,里面要加一个逗号,否则是直接赋值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> t=()
    >>> t
    ()
    >>> t=(1,)
    >>> t
    (1,)
    >>> t=(1)
    >>> t
    1

    9. dict

    字典,kv结构

    定义

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 空字典
    >>> d={}
    >>> d
    {}

    # 一个普通的字典定义, kv结构
    >>> d = {'a': 123, 'b': 23, 'cd': 12}
    >>> d
    {'a': 123, 'b': 23, 'cd': 12}

    获取

    常见的根据key获取对应的value,有两种方式,如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> d
    {'a': 123, 'b': 23, 'cd': 12}
    ## get方式获取,当key不存在时,返回None
    >>> d.get('a')
    123
    >>> d.get('aa')

    ## 通过下标方式获取,当key不存在时,抛出异常
    >>> d['a']
    123
    >>> d['aaa']
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'aaa'

    更新or新增

    直接采用赋值的方式进行更新或添加,key存在时,表示更新;不存在时,表示添加

    1
    2
    3
    4
    5
    6
    7
    8
    >>> d
    {'a': 'newA', 'b': 23, 'cd': 12}
    # 更新
    >>> d['a']='ddd'
    # 新增
    >>> d['d'] = 'add'
    >>> d
    {'a': 'ddd', 'b': 23, 'cd': 12, 'd': 'add'}

    删除

    可以使用pop弹出字典中的结果,也可以使用del进行删除

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> d
    {'a': 'ddd', 'b': 23, 'cd': 12, 'd': 'add'}
    >>> d.pop('a')
    'ddd'
    >>> d
    {'b': 23, 'cd': 12, 'd': 'add'}
    >>> d.pop('e')
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'e'

    需要注意,在执行删除时,如果key不存在,会抛异常

    判断存在

    判断字典是否包含某个key,属于比较常见的需求了,而可以通过 in 关键字来实现

    1
    2
    3
    4
    >>> d
    {'b': 23, 'cd': 12, 'd': 'add'}
    >>> 'b' in d
    True

    遍历

    字典的遍历与其他的几个不太一样,因为是kv结构的,如果我希望在遍历的过程中,可以同时获取key,value可以怎么办?

    • 利用字典的 items() 方法
    1
    2
    3
    4
    5
    6
    7
    8
    >>> d 
    {'b': 23, 'cd': 12, 'd': 'add'}
    >>> for k,v in d.items():
    ... print(k, v)
    ...
    b 23
    cd 12
    d add

    同样,如果只是想遍历字典的value,可以如下操作

    1
    2
    3
    4
    5
    6
    7
    8
    >>> d
    {'b': 23, 'cd': 12, 'd': 'add'}
    >>> for v in d.values():
    ... print(v)
    ...
    23
    12
    add

    10. set

    集合,与list的最大区别就是不允许出现重复的数据

    定义

    两种定义方式,一个是直接用大括号,一个是借助set方法

    1
    2
    3
    4
    5
    6
    >>> s = set([1,2,3])
    >>> s
    {1, 2, 3}
    >>> s={1,2,3}
    >>> s
    {1, 2, 3}

    需要注意的是,当定义一个空集合时,只能使用 s=set(),因为 {} 表示的是空字典

    新增

    add方法来新增一个元素,当添加一个已经存在的元素时,不会有任何影响

    1
    2
    3
    >>> s.add('a')
    >>> s
    {1, 2, 3, 'a'}

    删除

    remove方法

    1
    2
    3
    4
    5
    >>> s
    {1, 2, 3, 'a'}
    >>> s.remove('a')
    >>> s
    {1, 2, 3}

    集合操作

    集合与集合之间,可以使用数学中的集合运算(交集,并集等)

    II. 其他

    1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

    一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

    2. 声明

    尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

    3. 扫描关注

    一灰灰blog

    QrCode

    知识星球

    goals

    评论

    Your browser is out-of-date!

    Update your browser to view this website correctly. Update my browser now

    ×