本篇记录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