1、python安装

  1. brew install python3

python是典型的动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。

2、数据类型

2.1字符串

字符串转义

在字符串中通过 '' 来转义文本,

  1. print('I\'m, ok')
  2. 输出:I'm, ok

也可以通过 r 来指定不转义文本内容

  1. print(r"I\'m, ok")
  2. 输出:I\'m, ok

字符串切片

字符串格式化

和c中一样,用%来表示占位符

  1. print('I\'m, %s, 成绩升上%.1f%%' % ('费凯鑫', 100))

常见的占位符有

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

另一种是format

  1. # 用传入的参数依次替换字符串内的占位符{0}、{1}……,
  2. 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
  3. # {1:.1f} 表示传入的第二个参数进行格式化保留一位小数

2.2 布尔值

在python中布尔值是区分大小写的。如 TrueFalse

2.3 空值

None表示

2.4 整数

用 / 表示整数的除法,但是结果值为浮点数 eg: 9/3 为 3.0

用// 也表示整数的除法,结果保留整数(向下取整) eg: 10//3 为 3

2.5 浮点数

2.6 列表

  1. arr = [1,2,3]

常用方法

  • append 在列表最后添加元素
  • insert 在指定索引位置添加元素
  • pop 删除指定元素

全局的方法 range()可以生成指定范围的有序整数

全局的方法 input()可以指定用户输入

2.7 元组(不可变的数组)

  1. arr = (1,2,3);

注意:当tuple只有一个元素的时候必须在后面追加逗号**(1,) ,** 否则就定义成为整数类型的1了。

2.8 dict和set(对象)

dict数据结构常用方法

  • get 判断对象中是否存在某个键
  • pop删除对象中的某个键

    2.9 bytes类型

    在创建post请求时,数据在网络中传输都是以byte类型进行传递的,所以有必要总结下字符怎么转换成bytes类型

  1. #通过构造函数创建空 bytes
  2. b1 = bytes()
  3. #通过空字符串创建空 bytes
  4. b2 = b''
  5. #通过b前缀将字符串转换成 bytes
  6. b3 = b'http://c.biancheng.net/python/'
  7. print("b3: ", b3)
  8. print(b3[3])
  9. print(b3[7:22])
  10. #为 bytes() 方法指定字符集
  11. b4 = bytes('C语言中文网8岁了', encoding='UTF-8')
  12. print("b4: ", b4)
  13. #通过 encode() 方法将字符串转换成 bytes
  14. b5 = "C语言中文网8岁了".encode('UTF-8')
  15. print("b5: ", b5)

3、条件判断 和循环、with、异常处理

  1. # 条件判断
  2. if <条件判断1>:
  3. <执行1>
  4. elif <条件判断2>:
  5. <执行2>
  6. elif <条件判断3>:
  7. <执行3>
  8. else:
  9. <执行4>
  10. # for...in循环
  11. sum = 0
  12. for x in range(101):
  13. sum = sum + x
  14. print(sum)
  15. # while 循环
  16. sum = 0
  17. n = 99
  18. while n > 0:
  19. sum = sum + n
  20. n = n - 2
  21. print(sum)
  22. # 在while循环中也可以用break和continue 语句

3.1 with语句

with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源

首先看下比较冗长的写法

  1. try:
  2. f = open('xxx')
  3. except:
  4. print('fail to open')
  5. exit(-1)
  6. try:
  7. do something
  8. except:
  9. do something
  10. finally:
  11. f.close()

在看with语句的写法

  1. with open("1.txt") as file:
  2. data = file.read()

3.2 assert — 断言

  1. assert ('linux' in sys.platform), "代码只能运行在linux环境中"

3.3 raise语句

  1. try:
  2. import urllib.request
  3. except ImportError:
  4. raise ImportError('You should use Python 3.x')

4、函数

4.1 python3中的内置 函数

image-20191113141056934.png

4.2 定义函数

  1. def my_abs(x):
  2. if x >= 0:
  3. return x
  4. else:
  5. return -x

4.3 函数的参数(可变参数,默认参数,关键字参数,命名关键字参数)

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

  1. # 默认参数
  2. def my_abs(x=2):
  3. if x >= 0:
  4. return x
  5. else:
  6. return -x
  7. # 可变参数
  8. def calc(*numbers):
  9. sum = 0
  10. for n in numbers:
  11. sum = sum + n * n
  12. return sum
  13. # 关键字参数 ---- 接收一个dict
  14. def person(name, age, **kw):
  15. print('name:', name, 'age:', age, 'other:', kw)
  16. person('Adam', 45, gender='M', job='Engineer')
  17. # 命名关键字参数
  18. def Person(name, age, *, city, job):
  19. print(name, age, city, job)

5、类

5.1 定义类

  1. class Man(object):
  2. def __init__(self, name, sex):
  3. # 定义实例属性name
  4. self.name = name
  5. # 定义私有属性 __sex
  6. self.__sex = sex
  7. def hello(self):
  8. print("Hello:" + self.name + "!")

5.2 获取对象信息

  • type()
  1. type("str")
  2. # <class 'str'>
  • isinstance()
  • dir()
  • hasattr() getattr() setattr()

6、python模块

6.1 标准文件开头

  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. ' a test module '
  4. __author__ = 'xiaose'

6.2 导入第三方模块

  1. import numpy as np
  2. from numpy import *

在一个模块中可以使用 all = [“a”, “b”]来控制from numpy import * 导入的内容

7、如何引入python的外部库

7.1 anaconda的安装

7.2 网页版的jupyter

这里可以使用jupyter的镜像使用,采用docker的技术方案

  1. docker pull jupyter/datascience-notebook
  2. docker -d -p 8080:8888 jupyter/datascience-notebook
  3. docker logs $(docker ps -q)
  4. # 此时查看控制台打印出来的tocken值在网页中localhost:8080/ 输入tocken和新密码
  5. docker stop $(docker ps -q)