虚拟环境,可以不将包安装在系统的解释器下
help(函数)可以显示函数的开头字符串
csv 逗号分割值,c是逗号
tsv tab分割值
\t是四个
虚拟环境,可以不将包安装在系统的解释器下
help(函数)可以显示函数的开头字符串
csv 逗号分割值,c是逗号
tsv tab分割值
\t是四个
函数定义装饰器可以应用在类或者函数,但
LEGB
local
enlosure
global
buil-in
start_new_thread(
compile编译成字节码的形式
字节文件顺序标记
因为ascii码里面,unicode的代码点和ansii编码是一致的,因此用ascII编码是,依然显示原字母
文件读写的时候的编码方式
编码在内存是不存在,只发生在输出到外部时
多个文件存到一个文件,用pickle,比较麻烦,一般一个变量存一个文件,或者利用字典便来存储到一个文件
shelve就可以解决这个问题,他会创建
list吧字符串每一个都转换了,eval可以将转换成表达式
weekend时从0开始的需要加1
iosweekend时从1 开始的
f‘数值:{变量名}’python的特质
有四舍五入
百分数时f换成%
测试驱动开发,就是先开发测试,在开发程序
没讲继承
可以多继承
python不是强类型, 是动态类型
python的继承顺序要看下视频学习一下
属于同一类型的不同实例,对同一个消息做出不同的相应能力
类间的关系,组合
类名一般首字母大写,帕斯克命名法,多个单词每个单词首字母都要大写
类定义
实例化
self相当于对象,而不是类
封装、集成、多态是class的特点,提高代码的重用性,减小代码的冗余
详设计对象->分析对象关系->生成程序
做面向对象的思路
1、分析对象
找到对象的特征、行为;总结对象间的关系,聚合表示对象聚集另一个对象;复合,对象是不可分割的。依赖关系,继承关系等 uml关系类图可以了解一下。
2、类定义对象代码模板(蓝图)
class来定义类
3、实例化(内存对象)
脚本=模块
一个包下面
当程序已经导入了一个模块,这个模块就生成了字节码,此时修改原模块内容的话,导入的成程序并不会改变。
importlib.reload(模块名)
只能导入模块,通过from import不行
函数:
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
定义方法:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
调用函数:
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。
变量的作用范围:
参数调用:
整数相当于复制了一个x副本传进去,改变的时它的副本,而不是本身。
可迭代对象支持遍历循环。
list不可以调用__next()__,和next,在使用for语句的时候,采用了一个额外的步骤,而file就不用这个额外的操作。
视图对象view也是可迭代对象
import this 时py哲学
range()返回的对象是一个可迭代对象,可以通过通过lis把他转换成列表类型。注意他不是迭代器,可以通过iter函数来判断
list嵌套较多时如果实现了nex
zip将两个集合合成一个返回一个迭代器
模块=脚本
【】 ,None或0都是结束循环
input在sublime可能无效
格式化字符串的占位符
range返回生成器,不包括最后一个,可以设置步长 ,生成器临时生成某个对象,占用空间不大
缩进时总是4个空格或者一个tab键,太长了可以截断,可以加\也可以不加
动态强类型语言
赋值语句
扩展序列,解包赋值
join只能连接字符串信息
变量比字符多的话,直接复制也不行
字符也有一些会缓存器来公用,但不确定范围。