指令 沙子

东西结构

  • 列表(list)

  • 元组 (tuple)

  • 字典 (dictionary)

  • 集合

  • 空值 None

类型转换

将 字符串 x 转换为一个整数 int(x [,base])
将 字符串 x 转换到一个浮点数 float(x)
创建一个复数 complex(real [,imag])
将对象 x 转换为字符串 str(x)
将对象 x 转换为表达式字符串 repr(x)
用来计算在字符串中的有效 Python 表达式,并返回一个对象 eval(str)
将序列 s 转换为一个元组 tuple(s)
将序列 s 转换为一个列表 list(s)
将一个整数转换为一个字符 chr(x)
将一个整数转换为 Unicode 字符 unichr(x)
将一个字符转换为它的整数值 ord(x)
将一个整数转换为一个十六进制字符串 hex(x)
将一个整数转换为一个八进制字符串 oct(x)

自定义类型

定义类
1
2
3
4
5
6
7
  class ClassName:
      # 构造函数
      def __init__(self,...):
          return
      # 析构函数
      def __del__(self,...):
          return

实例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
  class wa:
   def __init__(self, items={}):
    '''items'''
       if type(item)!=type({}):
           raise TypeError("类型错误")
          self.items=items
       return
      def	deposit(self,	amount):
       self.balance	=	self.balance	+	amount
       return	self.balance
      def	withdraw(self,	amount):
       if	amount	>	self.balance:
        return	'Insufficient	funds'
专有方法
init 构造函数,在生成对象时调用
del 析构函数,释放对象时使用
repr 打印,转换
setitem 按照索引赋值
getitem 按照索引获取值
len 获得长度
call 函数调用
add 加运算
sub 减运算
mul 乘运算
div 除运算
mod 求余运算
pow 乘方
type(obj) 来获取对象的相应类型;
isinstance(obj, type) 判断对象是否为指定的 type 类型的实例;
hasattr(obj, attr) 判断对象是否具有指定属性/方法;
getattr(obj, attr[, default]) 获取属性/方法的值, 要是没有对应的属性则返回 default 值(前提是设置了 default),否则会抛出 AttributeError 异常;
setattr(obj, attr, value) 设定该属性/方法的值,类似于 obj.attr=value;
dir(obj) 可以获取相应对象的所有属性和方法名的列表:不带参数,显示环境下的变量,引入的模块数组
类的继承

类是面向对象中的技术,为了东西和方法方便扩展

1
2
3
4
  # 单继承
  class ClassName(BaseClassName):
   # 多继承
   class ClassName(Base1,Base2,Base3):
类的私有属性与私有方法
  • 私有属性 __private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs 类的方法

  • 私有方法 __private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 self.__private_methods

东西功能

定义函数

1
2
3
4
  def functionname( parameters ):
      "函数_文档字符串"
      function_suite
      return [expression]

不定长参数函数

就是函数的参数长度不定

1
2
3
4
5
6
7
  def print_user_info( name ,  age  , sex = '男' , * hobby):
      # 打印用户信息
      print('爱好:{}'.format(hobby))
      return;

  # 调用 print_user_info 函数
  print_user_info( '两点水' ,18 , '女', '打篮球','打羽毛球','跑步')

关键字参数 ( 给参数命名)

1
2
3
4
5
6
7
  def print_user_info( name ,  age  , sex = '男' ):
      # 打印用户信息
      print('性别:{}'.format(sex))
      return;

  # 调用 print_user_info 函数
  print_user_info( name = '两点水' ,age = 18 , sex = '女')

匿名函数 lambda (不要重复使用的函数,就不给名字了)

1
  lambda [arg1 [,arg2,.....argn]]:expression
1
2
3
4
  # -*- coding: UTF-8 -*-

  sum = lambda num1 , num2 : num1 + num2;
  print( sum( 1 , 2 ) )

入口函数

1
  if __name__ == '__main__':

控制流程

分支 ( if 或 if not )

1
2
  if cond:
     语句...

重复多做几次

1
2
  for var in collection:
          语句...

模块

模块是为了合理组织东西,便于重用

一个文件就是一个模块了,文件名表示模块名

使用模块

1
2
  from person_start import Person
  from pymodule import name

包和模块是一样的目的,就是包是由模块组成的,模块是包的一部分。

1
  import 目录名.模块名

测试

预防性编程的一种方式

1
2
3
4
  try:
   "nihao".index('bao')
  except Exception:
   print "some error"

帮助

  • help() 函数或类的详细说明

  • dir() 函数或类的简单说明

环境管理

因为 Python 最大的问题是各版本不兼容,所以还要要管理版本问题。

pipenv

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
  # 创建 Python 2/3 版本的项目
  $ pipenv --two/--three

  # 安装项目依赖,会在当前目录下生成 .venv 目录,包含 python 解释器
  $ pipenv install
  $ pipenv install --dev

  # 弹出 Virtual Env 对应的脚本环境
  $ pipenv shell

  # 执行文件
  $ pipenv run python

  # 定位项目路径
  $ pipenv --where

  # 定位虚拟环境路径
  $ pipenv --venv

  # 定位 Python 解释器路径
  $ pipenv --py

faq

中文编码

python2 默认是认不得中文等世界语的,只认得英文, python3 改掉了,这点注意看下版本。

1
2
  # 在python2 中识别中文需要加上下面一句说明。
  #-*-coding:utf-8-*-