python的查漏小知识(1)

虽然用python已经有很长一段时间了,但是从没有系统的学习过,因而知识不成体系。在写代码过程中,不考虑代码的整洁与简单性,导致我写出的程序跑起来很慢,看起来就是菜鸡写的。于是下定决心不定时更新python查漏小知识。

文章目录

  • 1. 使用\行连接符
  • 2. 对象
  • 3. python命名规范
  • 4. 系列数据赋值
  • 5. 字符串中的一些常用函数
    • 5.1 split()和join()
    • 5.2 a.startswith()和a.endswith()
    • 5.3 format()
  • 6. 列表
    • 6.1 推导式创建序列
    • 6.2 常用的函数
    • 6.3 二维列表
  • 7. 元组
    • 7.1 zip()
  • 8. 字典
    • 8.1 字典的读取
    • 8.2 遍历字典
    • 8.3 update()
  • 9. 集合
  • 10. 控制语句
    • 10.1 注意事项
    • 10.2 循环代码优化

1. 使用\行连接符

python的查漏小知识(1)_第1张图片
常见转义字符:\t(横向制表符) \n(换行)。

2. 对象

对象的本质是:一个内存块,拥有特定的值。每个对象由id、type、value组成。

  1. id 对应于对象在计算机内存中的地址,用id(obj)可以返回对象obj的id;
  2. type 表示对象存储的数据类型,比如int、str、list等,使用type(obj)可以返回对象的类型;
  3. value 表示对象所存储的数据值,使用print(obj)可以打印出值。
    python的查漏小知识(1)_第2张图片

3. python命名规范

python的查漏小知识(1)_第3张图片

4. 系列数据赋值

  1. 同时给多个变量赋值为空list。左右两边的个数必须保持一致。
a, b = [], []
print(a)     
 >>>   [] 
  1. 链式赋值,下面两种方式都可。
a, b = 123, 123
a = b = 123
print(a)
>>>   123

5. 字符串中的一些常用函数

5.1 split()和join()

我一般用split()分割字符串较多,但是join()用的比较少。

a = ['www', 'zhihu', 'com']
print('.'.join(a))   # 用点号进行拼接,可以换成其它的符号。
>>>   www.zhihu.com

这样就方便很多,我一般用字符串拼接,如果在这个例子中用字符串拼接(字符串相加),还要在list中取到每个值,就麻烦多了。
python的查漏小知识(1)_第4张图片

5.2 a.startswith()和a.endswith()

a = 'link.txt'
a.startswith('li')    #  >>>  True
a.endswith('txt')     #  >>>  True

e.g. 在一个文件夹中有很多文件,可以用这个函数来判断是不是自己想要读取的文件。

5.3 format()

print('name: {}, age: {}'.format('xiaoxi', 18))  
>>> name: xiaoxi, age: 18

format()前面都是字符串,要填空的地方用{}。
例子:
python的查漏小知识(1)_第5张图片

6. 列表

6.1 推导式创建序列

推导式是典型的python风格。
python的查漏小知识(1)_第6张图片

一条命令,但我经常会添加逗号导致报错。
python的查漏小知识(1)_第7张图片
字典的推导式:
python的查漏小知识(1)_第8张图片

6.2 常用的函数

有很多常用的函数,比如len()、sorted()、max()、sum()、append()等等,这种需要用到哪个就看工具书吧。

6.3 二维列表

一般用一维比较多,二维列表用于存储表格数据。np.array()构成数组
python的查漏小知识(1)_第9张图片

7. 元组

元组我用到的很少,值得注意的点有:

  1. 创建可以用()/tuple();
  2. 元组中元素不能修改;
  3. 元组中元素的访问和列表一样。

7.1 zip()

有时候想要将多个列表进行合并,但是又不想把它们放在一个list里,可以用zip()函数。
python的查漏小知识(1)_第10张图片
元组可以作为dict的key,但list不行,因为dict中key是唯一的不可变的,但list是可变对象。下面例子用zip()函数形成dict很方便。
python的查漏小知识(1)_第11张图片
zip()进行打包。

name = ('xi', 'ming')
age = (18, 19)
jobs = ('student', 'coder')
# print(zip(name, age, jobs))         # 结果:
# print(dict(zip(name, age, jobs)))   # 结果: ValueError: dictionary update sequence element #0 has length 3; 2 is required
for name, age, jobs in zip(name, age, jobs):
    print(name, age, jobs)      # xi 18 student
    break
# 如果改为list呢
name = ['xi', 'ming']
age = [18, 19]
jobs = ['student', 'coder']
for name, age, jobs in zip(name, age, jobs):
    print(name, age, jobs)      # xi 18 student
    break

8. 字典

8.1 字典的读取

我一般通过键来获得它对应的值,但这种方法的弊端在于如果你用的键不存在就会报错。而用dict.get()的好处在于,如果键不存在时,会返回None,因此,推荐使用get()获取dict的“值”。

a = {
     'name': 'xiaoxi', 'age': 18}
a.get('name')
>>> xiaoxi

8.2 遍历字典

a.items()、a.keys() / for key in dict: 遍历所有的key值、a.values()
我经常忘记后面有没有s,不管是读键值对、键还是值都是有的哈。

8.3 update()

将新字典b全部添加到旧字典a中,如果key重复,新的会覆盖旧的。
python的查漏小知识(1)_第12张图片

9. 集合

集合是无序可变、元素不重复的数据结构。
创建用{}/set()、添加元素用add()、基于元素不重复这个特点,可以给列表去重。

10. 控制语句

if-else/ if-elif-else判断语句、for、while等循环语句。

10.1 注意事项

  1. while条件为真时开始循环;
  2. break和continue。

break语句用于while和for循环,用来结束整个循环。当有嵌套循环时,break语句只能跳出最近一层的循环。

continue语句用于结束本次循环,继续下一次。多个循环嵌套时,continue也是应用于最近的一层循环。

10.2 循环代码优化

  1. 尽量减少循环内部不必要的计算;
  2. 嵌套循环中,金量减少内层循环的计算,尽可能向外提;
  3. 局部变量查询较快,尽量使用局部变量;
  4. 连接多个字符串,用join()而不用’+‘。

你可能感兴趣的:(Tips,python,pycharm)