python学习笔记

综述

应用场景:
首选是网络应用,包括网站、后台服务等等;其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便使用。

优缺点:
优点:“优雅”、“明确”、“简单”、“内置电池( batteries included)”(各种库),所以开发速度快。
缺点:运行慢,源码公开。

要点

!/usr/bin/env python3 #为了在linux上运行
# -*- coding: utf-8 -*- #编码声明

数据类型

  • 整数 1 0xff00 etc.
  • 浮点数 3.14 3e-5
  • 字符串 "abc" 'abc' r'a\b\vc\\cc\\' # 非转义
  • 布尔值 True False,可进行and or not运算
  • 空值 None
  • 常量 PI=3.1415926 #默认大写,其实也是变量
  • 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转为UTF-8编码.在最新的Python 3版本中,字符串是以Unicode编码的
  • Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

    1
    2
    3
    4
    5
    6
    7
    8
    >>>ord('A')  
    65
    >>>chr(65)
    'A'
    >>>chr(25991)
    '文'
    >>>'\u4e2d\u6587' # 16进制的str
    '中文'
  • 以Unicode表示的str通过encode()方法可以编码为指定的bytes.如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法

    1
    2
    3
    4
    5
    6
    7
    8
    >>> 'ABC'.encode('ascii')
    b'ABC'
    >>> '中文'.encode('utf-8')
    b'\xe4\xb8\xad\xe6\x96\x87'
    >>> b'ABC'.decode('ascii')
    'ABC'
    >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
    '中文'
  • 格式化输出

    1
    2
    3
    4
    >>> '%2d-%02d' % (3, 1)
    ' 3-01'
    >>> '%.2f' % 3.1415926
    '3.14'
  • 列表 classmates = ['Michael', 'Bob', 'Tracy'].可以下标访问。方法主要有.append('Lucy');.pop();.pop(i)classmates.insert(1, 'Jack')里面数据类型可以不同

  • tuple 不可更改的列表classmates = ('Michael', 'Bob', 'Tracy')
  • dic d = {'Michael': 95, 'Bob': 75, 'Tracy': 85};方法: d.get('Thomas', -1) ;d.pop('Bob')
  • set s = set([1, 1, 2, 2, 3, 3]);s.add(4);s.remove(4);两个set可以做数学意义上的交集、并集等操作

函数

函数主要注意默认参数,可变参数,关键字参数,命名关键字参数。
*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。以及调用函数时如何传入可变参数和关键字参数的语法:可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3));关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。使用*args**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数。

Buy Me A Coffee!