Python 简明手册

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_40313634/article/details/92848766

数据馆员的 Python 简明手册

1. hello world

#!/usr/bin/env python
#-*- coding:utf-8 -*-
  
__author__ = 'zuoy'
  
__doc__ = '在屏幕上打印信息: hello world!'
  
def main():
    '''
    入参:无
    功能:在屏幕上打印信息: hello world!
    '''
    print('hello world!')
  
if __name__ == '__main__':
    main()

2. 数据类型

string

  • 字符串分割
  s.split(str, num)  # 默认按照空白符分割所有;str: 分割符, num: 分割成几份
  • 大小写转化
  s.upper()
  s.lower()
  • 字符串拼接
'a' + 'b' == 'ab'
2 * 'a' == 'aa'
'_'.join(['one', 'book']) == 'one_book'
  • 字符、编码转换
ord(c)
chr(97)
  • strip() # 删除行首行尾的空白字符
  • s.find(’.’) # 从左向右查找
  • s.refind(’.’) # 从右向左查找

list

  • 遍历list
  for num in l:
  • 求长度
  len(l)
  • 删除list、list元素(与字典删除操作同方法)
  l.pop(index)
  l.remove(x)
  • 添加元素
  l.append(x)  # 末尾添加
  l.insert(index)  # 指定下标处添加元素
  • 查找元素
  l.index(x)  # 有x,返回x的下标;没有,报异常
  • 切片:list、str等
  nl = l[start_index : end_index+1 : step]
  • 列表生成式
  nl = [m + n for m in 'ABC' for n in 'XYZ']
  • 排序
  l.sort(k=f)  # 返回值是:None
  nl = sorted(l, key=abs, reverse=True)  # 按照绝对值排序,反序;key=str.lower 忽略大小写排序
  • 压缩
  l3 = zip(l1, l2)
  for x, y in l3:
  • 高阶函数
  map(f, l  # [f(l[0]), f(l[1]), ...]
  reduce(f, []1,2,3)  # = f((1,2), 3)  # from functools import reduce
  filter(is_odd, l)  # 返回迭代器:如果is_odd(l[i])为真,则在迭代器里保留该元素

字典

  • 遍历字典
  for k in d:
  for v in d.values()
  for k, v in d.items()
  • 删除dict、dict元素(与list删除操作同方法)
  d.remove(k)
  del d[k]
  del d
  • 判断 key 是否存在
  if k in d:
  if d.get(k, None) != None:  # key 不存在时返回None(设置的值)
  • list 转字典
d.fromkeys(s, t)

set

字典的key集合,不重
  • 添加、删除元素
  d.add(k)
  d.remove(k)
  • 求和(去重的)
  d1 + d2
  d1 | d2 # d1 & d2 # 求交集(共同元素)

枚举类型

  from enum import Enum
  Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
  print(Month.Feb) == Month.Feb
  
  from enum import Enum, unique
  
  @unique  # 检查有无重复值
  class Weekday(Enum):
      Sun = 0 # Sun的value被设定为0
      Mon = 1
      Tue = 2
  
  Weekday.Mon == Weekday.Mon
  Weekday.Tue.value == 2

逻辑运算符

  • and\or\not
  x and y # x\y 均为真,返回y的值;否则,返回False
  x or y  # x 为真,返回x; 否则,返回y
  not x  # 返回True或False

常用方法

  • 判断元素类型
  isinstance(x, int)  # 子类和父类是同一种元素
  type(x) == int  # 子类和父类不是同一种元素
  • 范围
  range(s, e, step)  # [s, e)
  • 文件读取
  with open(file, encoding='utf-8', 'r') as f:
      f.read()  # 读取整个文件的内容
      f.readlines()  # 读取整个文件所有行的内容, 返回list
      f.readline()  # 读取一行内容
      f.read(n)  # 读取n 字节的内容
pickle.dump(strs, outfile)  # 序列化,二进制数据处理
strrs = pickle.load(infile)
  • os 模块
  os.path.abspath('.')  # 查看当前路径的绝对路径
  os.path.join('/Users', 'testdir')  # 路径拼接
  os.mkdir('/Users')  # 创建路径
  os.rmdir('/Users')  # 删除文件夹
  os.path.splitext('/path/to/file.txt')  # (’/path/to/file’, ‘.txt’)
  os.path.split('/Users/michael/testdir/file.txt')  # (’/Users/michael/testdir’, ‘file.txt’)
  os.rename('test.txt', 'test.py')
  os.remove('test.py')  # 删除文件
  os.listdir('.')  # 列出当前路径下的所有文件
  os.path.isdir(x)  # 路径存在
  os.path.isfile(x)  # 文件存在

注意

除法

  10 / 3 == 3 # 结果是浮点数
  //  # 结果向下取整
  10 // 3 == 3
  -10 / 3 == -4

取整

int(8.6) == 8
round(8.64) == 9
round(8.5) == 8
round(9.5) == 10  # .5 取最接近的偶数

参考

linux安装python

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码神路漫漫

Go 中 slice 的 In 功能实现探索

之前在知乎看到一个问题:为什么 Golang 没有像 Python 中 in 一样的功能?于是,搜了下这个问题,发现还是有不少人有这样的疑问。

12020
来自专栏分享/效率/工具/软件

锁汇总

个人博客:https://suveng.github.io/blog/​​​​​​​

8050
来自专栏分享/效率/工具/软件

shell入门系列(8)for

title: shell入门系列(8)for date: 2019-01-16 10:00:00 +0800 update: 2019-01-16 10:0...

7630
来自专栏分享/效率/工具/软件

shell入门系列(9)grep

[外链图片转存失败(img-Us3HVPA2-1563242272153)(http://ww1.sinaimg.cn/large/006jIRTegy1fzd...

9420
来自专栏苦逼的码农

如何给女朋友解释为什么12306会用户信息泄露

挂断电话后,我赶紧登录12306改掉了我的密码,还好我各个网站的密码不一样,这样就能很好的避免被撞库了。

10910
来自专栏分享/效率/工具/软件

多线程方向的锁

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

8020
来自专栏CODING DevOps

最快的 Hexo 博客搭建方法

使用 Cloud Studio ,就不需要再折腾 Hexo 环境,不需要再解决不同平台上的各种冲突,直接在 Cloud Studio 里面即可进行 Hexo 的...

11130
来自专栏州的先生

爬到数据不会解密可还行?

随着网络上爬虫的横行和猖獗,各大网站为了最大限度地限制自家数据被采集,纷纷加入了各种反爬手段,比如:

7720
来自专栏CODING DevOps

CODING 企业版携手企业微信共同助力企业开发管理流程

CODING 企业版自即日起添加与企业微信账号的关联功能。通过与企业微信的绑定,项目管理者可以一键邀请企业微信好友,直接进行项目和代码的管理与操作。方便受邀者立...

11240
来自专栏用户1175783的专栏

# flutter之channel详解

channel是无状态通信,一次send/reply后调用就结束了,类似http的无状态通信

14630

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励