python-开发基础进阶

python开发基础进阶

1.程序的组成

从两个方面分类:
  程序 = 数据 +(汇编)指令
  程序 = 数据结构 + 算法

    算法:编写程序的逻辑,解决问题的流程

[tess.cpp]
a=hello     #数据:a hello 这里为非数值型数据

      #数据结构:字符串

if(a is hello): # 一个算法由n个指令组成(计算机底层硬件的操作:if is print )
print ‘ok’

[test.o]
01010101 01010101 01010101
01010101 01010101 01010101
01010101 01010101 01010101

 

2.语言

发展史

机器语言(01010101),打字机打动,纸条一个洞打不打代表是否是1(最原始的字典),hello world(96个位置,1就打洞)
汇编(move 1,寄存器(硬件),add 寄存器1 寄存器2) a = 1 ,b=1+2
C(第一门高级语言(符合人类逻辑,且不需要懂很多硬件知识))
c++ java python(1.更符合人类逻辑和事物特征:面向对象出现2.需要动更少的硬件知识。)

区别:

  静态/编译型:
    先编译(直接翻译完成一个机器码文件,但是没有真正的执行),再执行(交给CPU去执行):活干完了一半
    bianyi tess.cpp -> 多了个test.o
    zhixing test.cpp
    先转为机器码(c++)或者中间代码(Java jvm-java字节码)

  动态/解释性:
    边运行,边翻译,边执行(两部为一步:缺点是效率低)
    .py .pyc(如果先编译成.pyc .pyo)执行也可以更快,*但是它的底层是解释因此很慢

    要研究数据结构+算法,最好选择静态/编编译型语言,因为动态/解释性语言坑很多(本身问题很多)

3.变量与内存

变量作用:标记并存储数据, 增强可读性。能被后面的代码调用,数据复用。

python :按引用传递(和别的语言的概念不同):底层是C(指针即地址(内存条的位置))
a=1
b=2
b=a
c=1
d=1

一夫(数据)多妻(变量),一个变量只能对一条数据,但是一条数据却可以被很多变量所对应。

id()查看地址 

is,is not 比较数据的值、地址
== 比较数据的值

字面量(不同语言的字面量的类型不同):在Python中,对字面常量(数字、字符串、布尔、字节)对象进行缓存,
多个变量赋相同值,其实是同一个值

4.True 和 False

bool() 判断真假
False: 0和False
其余为真

if True (如果真,则执行)

if(bool(False) is False):
print 6

while True(如果真,则循环)

5.流程控制

if 带条件的->过滤

while 带条件的->循环

for 有限次数的->循环

6.数据结构

  数据结构:数据的存储形式(计算机存储,组织数据的方式)

  基本数据类型:
    数字、字符串:连续存储
    列表

  是否可变:数字、字符串的数据不可变(内存空间是否可伸缩list dict)
    如果重新赋值,会申请另一块内存(如果不是字面量)

  查看python源码:

  其它数据类型:
    文件
    数据库

  []研究数据结构?不同的数据,需要不同的数据结构去存储,造成的增删改查的性能不一样

  *遍历

7.每种类型的方法:

  增删改查(及展开)

4.基本数据类型
(1)(bool类型 数字int 字符串str(常用) 列表[](常用) 元祖() 字典(常用) 集合(没用))
(2)嵌套赋值:列表、元祖、字典
(3)支持遍历、索引、切片:字符串、列表、元祖:for、var[3]、var[2:]、in和not in
(4)字典:key,value。key类型:int,str。for k,v in d.items(Dict)
(5)遍历:for k,v in enumerate(List|tuple):
(6)划分:
1.是否是序列(索引是整数),支持索引、切片(字符串、列表、元祖
2.是否可变:按所占内存大小、内存地址是否可变区分。(不可变:数字、字符串)
(7)操作序列:
len() 求序列的长度
+ 连接两个序列 (常用与字符串拼接)
in 判断是否存在序列
(8)字符串格式化:% %s %d, format(推荐,就可以换序) pythonic
(9)类型转换
数字、字符串、列表、元祖
查看数据类型:type(var)
str(int) # 数字转字符串
int(str) # 字符串转数字
list(str)# 字符串转列表
”.join(list) # 列表转字符串
tuple(list) # 列表转元组
list(tuple) # 元组转列表

5.基本数据类型常用方法
格式type.methond()

(1)字符串
format # 格式化
replace # 替换
join # 拼接
strip # 去除字符串两边空格
str.split(‘char’) # 分割字符串
startswith # 以…开头
endswith
find # 查找
encode # 编码

(2)列表|元组
count # 数量
copy # 复制 等效于==
append # 追加
extend # + 拼接
insert # 插入
pop remove # 删除
list[index] = value # 改
reverse
sort
clear

(3)字典
items
get(‘key’) # 等效于dict[‘key’]
keys
values
setdefault # == 赋值
update(d1) # 增加
pop popitem # 删除
clear
copy

队列 :是一种数据结构(存储方式)
List|tuple : 元素连续分布
编码

6.文件操作
数据库:分类,比excel强大的地方就是:分表

  

8.查看python源码

  1.查看部分源码(不能查看实现,常用关键字的说明文档)
    pycharm:输入关键字/import 关键字,按住ctrl键+鼠标点击关键字

    __ 私有方法,不公开(约定不能用,但是可以用)
    公有方法

  2.查看全部源码
    去官网下载源码(C语言的源码)

    要安装?就要编译

  3.自学/进阶直接看(最清楚的)

  4.通过语言的源码、高端开源项目源码去进阶

 

posted @ 2018-07-10 12:17  Qiuma  阅读(294)  评论(0编辑  收藏  举报
TOP ↑