安装pythone3

最新系统的 mac 自带 python3,所以不用安装

前置知识

一切皆对象(object)

对象有自己的从属数据类型

Python的标准数据类型:

  • 数字 Number
  • 字符 String
  • 列表 List
  • 字典 Dictionary
  • 元组 Tuple
  • 集合 Set

对象有属性(attribute)和方法(mathod)/函数(function)

属性是描述事物的 方法是物体所具备的功能

数据类型丨数字Number

整数(integer)
小数(浮点数 floating point number)
基本运算:
加:1+1=2
减:2-1=1
乘:34=12
除:8/2=4.0
除(不带小数点):8//2=4
乘方:2**3=8
求余:5%2=1
运算顺序:1+2
3**2=19

变量丨variable_name=value

变量名 等于 值
小红 = ‘隔壁班的女孩’
age = ‘18’
变量只有赋值后才能使用

数字类型丨字符串

要点

‘字符串要用引号包裹’
单双引号都可以,前后一致就行
需要用单引号时,用反斜杠转译引号字符:‘I/‘m Tom’,输出的结果就是 I’m Tom

连接字符串:

  1. a = 'hello '
  2. b = 'world'
  3. a + b
  4. #输出的结果将是 ’hello world‘

格式化字符串:

  1. a = 'hello '
  2. f'{a}world'
  3. #输出的结果将是 ’hello world‘

字符串方法(mathod)

如:upper(将字符串大写)
这些方法不用记,要用的时候再去查

  1. a = 'hello'
  2. print(name.upper())

索引(index)

定位一个物体的位置,从 0 开始数

  1. a = 'hello'
  2. a[2]
  3. #这里输出的将是’l‘
  4. a[-1]
  5. #倒数第一个物体,这里是‘o’
  6. a[1:4]
  7. #第1 到第 3个物体,注意:不包括第4个物体

数据类型丨list 以及修改list中元素的方法

  1. #输出 a 列表中的第一个元素,也就是 1
  2. a = [ 1,2,3,4,5 ]
  3. a[0]
  4. a[:4]#第 4 位以前的元素
  5. a[2:]#第 2 位以后的所有元素
  6. #修改list元素的方法
  7. a[0] = 9 # 替换元素,将 list 种的第一个元素替换成 9
  8. a.append(100) #插入元素,在 list 最后面添加新元素:100
  9. a.insert(3,300) #指定位置插入元素,在第 3 位元素后面添加一个新元素:300
  10. a.pop() #删除元素,删除 list 中的最后一个元素
  11. a.pop(3) #删除指定位置的元素,删除第四位的元素
  12. len(a) #得出 list 的元素的数量
  13. ...

函数function是什么?

带名字的代码块

  • 可以完成特定任务
  • 便于重复使用

格式:

  1. def function_name(): #定义一个函数
  2. do sth here
  3. function_name() #执行这个函数
  4. #例子:
  5. def smile():
  6. return 'hhh'
  7. print(smile())打印函数的结果:hhh
  8. #带参数的函数
  9. def hello(name,age):
  10. print('hellp' + name + 'you are' + age )
  11. hello('guozhan','18')

数据类型丨字典dictionary

代码格式
每一项都由逗号隔开,每项包括一个 key(键),一个冒号,一个 value(值),这就是一组键值对(key value pair)。

  1. height = {'张三':180,'李四':170,'王五':175,}
  2. #访问字典中的 value
  3. height['张三'] #这里输出结果为 180
  4. #添加键值对,
  5. height[‘孙六’] = 190
  6. #修改一个值
  7. height['张三'] = 174
  8. #删除一个键值对
  9. del height['张三']

函数丨if.else 条件判断

  1. if ture : #如果条件是 ture 就执行下面的内容
  2. do sth
  3. #if else 语句
  4. age = 9
  5. if age >= 18:
  6. print('ok')
  7. else:
  8. print('sorry')

比较操作符

  • a = 1 #赋值
  • a > 2 #false
  • a < 2 #ture
  • a == 2 #false
  • a >= 2 #false
  • a <= 2 #ture
  • a != 2 #ture

for 循环函数丨一直执行,除非用break 打断

  1. apple = ['1','2','3','4'] #建立一个叫做 apple 的列表,列表里面包括 1、2、3、4 这四个字符,
  2. for example in apple[0:3]: #创建了一个叫做 example 的 for 循环函数,循环刚刚创建的那个叫做 apple 的列表中的第 0 位到第 3 位的字符,并打印(在编辑器中显示)循环的结果
  3. if example = 2
  4. print(just a 2‘)
  5. break

range 函数丨生成某个范围的数字

range(1,11)
代码含义:
从 1 到 10的数字(注意:结果中不包含 11)

while 循环函数丨当某某条件满足(是 ture )的时候就执行某某动作

  1. #当 a 小于 4 时候,打印字符:”小于 4“,然后将 a 的值+1,然后继续循环:打印字符:”小于 4“,直到 a 不小于 4 时,循环结束。
  2. a = 1
  3. while a<4:
  4. print(’小于 4‘)
  5. a = a+1

代码含义

decoration 装饰器丨对现有的函数进行增强

代码示例

  1. #创建了一个函数 zhihu ,创建了一个函数 wrapper。
  2. def zhihu(func):
  3. def wrapper():
  4. print('谢邀')
  5. func() #func()将会被替换为装饰器说用到的元素
  6. print('以上')
  7. return wrapper
  8. #这里是一个语法糖写法,它的完全体写法是:answer1 = zhihu(answer1)
  9. @zhihu
  10. def answer1():
  11. print('我不清楚')
  12. def answer2():
  13. print('我不知道')

class 类丨类似不同物体的原型、草图、属性

  1. class Phone():#函数首字母要大写
  2. def __init__(self):#__init__ 初始化函数的属性的意思;self 这个类本身的意思
  3. self.name = 'iphone'#定义自己的名字
  4. self.color = 'black'#定义自己的颜色
  5. #,定义自己的功能,也就是为类创建了一个叫 call 的函数,函数运行结果是输出‘喂喂喂’
  6. def call(self):
  7. return '喂喂喂'
  8. iPhone7 = phone()
  9. # 这里为 iPhone7 赋值名为 phone 的类,iPhone7就是根据phone这个类实例化出的一个具体实例
  10. #口语化解释就是:iPhone7 是一个含有名字和颜色属性和打电话功能的手机
  11. print(iPhone7.color) #输出结果为:刚刚被实例化的 iphone7 中的 color 属性,
  12. print(iPhone7.call()) #输出刚刚被实例化的 iphone 中的 call 的函数,也可以写作:print(Phone.call(iPhone7))

我们在初始化类时,不为类中的属性定义一个具体的值,就可以在实例化类时再自己来定义每个属性的值

如下:

  1. class Phone():#函数首字母要大写
  2. def __init__(self,name,color):#__init__ 初始化函数的属性的意思;self 本函数的意思
  3. self.name = 'name'#定义函数的属性,不为类中的属性定义一个具体的值
  4. self.color = 'color'
  5. def call(self):#为类创建了一个叫call 的函数,函数运行结果是输出‘喂喂喂’
  6. return '喂喂喂'
  7. Xiaomi = phone('xiaomi','red')
  8. # 这里为 Xiaomi 赋值名为 phone 的类,Xiaomi就是根据phone这个类实例化出的一个具体实例
  9. #口语化解释就是:Xiaomi 是一个含有名字和颜色属性和打电话功能的手机
  10. print(Xiaomi.color) #输出结果为:刚刚被实例化的 Xiaomi 中的 color 属性,也就是 red

属性分为class attribute (类属性)和instance attribute(实例属性)

也上文中的就是 Phone 属性和 iPhone7 属性

类的属性,同时属于类和实例,两者都可以使用,
实例的属性,只属于实例,类不可以使用,

module 模块丨从另一个 py 文件引入已经建立好的方法

文件 1:创建需要被引入的方法,这里加入文件名字叫做 print_sth

  1. def color():
  2. print('red')
  3. def num():
  4. print(123)

文件 2:这个文件去引入文件 1 里面的方法

  1. import print_sth #引入叫 print_sth 的文件里面的全部方法
  2. print_sth.color()
  3. print_sth.num()

如果想引入全部的方法:

  1. from print_sth import * #从 print_sth 文件引入全部的方法
  2. print_sth.color()
  3. print_sth.num()

如果只想引入部分方法:

  1. from print_sth import color as yanse #从 print_sth 文件引入叫做 color 的方法,并改名为yanse
  2. color()#