这是Coursera上南京大学的python课程 听说有用就先学习一下 估计会费点时间不过没有关系 我有的是时间
c/c++集成封装 支持继承 重载 派生 多继承
GUI开发 Web开发 游戏 数据分析 人工智能bulabula一堆
程序的风格非常重要
缩进问题 这是最重要的
模块(module) --- 我感觉是python最强大的地方
-
模块:一个py文件就是一个模块
-
包:一个有层次的文件目录结构
定义了一个有模块和子包组成的Python应用程序执行环境
import A.B.C (包A的子包B中的模块C
) -
库:是一组具有相关功能的模块的集合
Python强大标准库、第三方库、以及自定义模块
dir(builtins) - 内建变量和函数
help(内建函数) - 帮助信息
非内建函数如何使用
import 模块名
import 模块名1,模块名2
from 模块名1 import 模块内部函数
语法
range(start,end,step=1)
生成一个真实的列表
range(3,11,2)
[3,5,7,9]
range(5)
[0,1,2,3,4]
-
循环
while j<10:
...
for item in items:
...
[i+1 for i in range(10) if i%2==0] (好神奇好强大有木有)
[x*2 for x in range(2,11,4)] //[4, 12, 20]
# 1-100素数
from math import sqrt
def isprime(x):
if x==1:
return False
k = int(sqrt(x))
for j in range(2,k+1):
if x%j == 1:
return False
return True
for i in range(2,101):
if isprime(i):
print(i)
参数
函数里的参数里面有点学问 我第一次用的时候表示很惊讶(没怎么见过世面
)
def(x,y=True) ---- 默认参数 默认参数写后面
传递函数
lambda: 匿名函数 很神奇
2018-07-17
变量作用域
函数 - 局部
程序代码主体部分 - 全局
例如一下例子就跟js 完全不是一个概念
def f(x):
#global a 标注 a 是全局变量
print(a)
a = 5
print(a + x)
a=3
f(8)
print(a) // 5
local variable 'a' referenced before assignment
报错
本地数据获取
- 打开文件 - open(url,mode='r') 返回一个文件对象
- 读取文件 - read(size) 返回字符串
- 写文件 - write(str)
-
关闭文件
open('rD:\fuck.txt','w',0) 注意参数 用缓存会好一点
读写文件模式.png
获取数据
urllib
urllib2 函数库
这里安利下我之前写过的爬虫 爬取简书推荐作者信息
data - 序列
索引
0 - (N-1) / -1 - -N
- str='hello world'
- list=[1,2,3,4,5]
- tuple=('a','b')
- dict = {}
'a'<'b'
对象身份比较
is
is not
布尔
not
and
or
序列类型运算符
x in s
x not in s
list() srt() tuple() -------- 这三个方法比较常用工厂函数就是能产生类实例的内建函数
len() sorted() sum() zip() min/max() revers
2018-07-18 21:10
- 今天写了一天小程序 而且一直到现在 准备回家了 腰椎受不了了
列表(可变) - list
for i,j in enumerate(week):
print i+1,j
划重点
列表操作的内建函数
append()
count()
extend()
index()
insert()
pop()
remove()
reverse()
sort(reverse=Ture) - 倒序排序
**列表解析**
[x for in range(10)] - [1,2,3,4,5,6,7,8,9]
[x**2 for x in range(10)] 平方
[x*2 for x in range(1,9) if x<=10] [2, 4, 6, 8, 10, 12, 14, 16]
[(x,y) for x in range(1,10) for y in range(1,10)] x y 1-9 全排列
[表达式(x) 循环(for) 条件(if)]
元组
元组跟列表类似 不同点就是元组元素不可变
元组作为函数的形式参数
def func(arg1,*arg2):
print(arg1)
print(arg2)
func('a','b','c','d')
a
('b', 'c', 'd')
//元组作为函数的常见返回类型
def func():
return 1,2
(1,2)
*arg2 -- 执行的元组作为参数
返回对象的个数 >1 返回tuple 1 返回 obj
字典
映射类型 {}
key - value 键值对 --- 类似js的对象或者也可以理解成json
dict([] / ()) 都会转成 dict
adict = {}.fromkeys(('a','b','c'),2)
print(adict) {'a': 2, 'b': 2, 'c': 2}
key:必须是可哈希的 根据哈希做value的存储地址 所以也是不可变的 也就是说 不能是[]
sorted(adict) ['a', 'b', 'c']
n = ['a', 'b', 'c']
s = [1,2,3]
dict(zip(n,s))
{'a': 1, 'b': 2, 'c': 3}
眼高手低不情愿的练了两个字典的练习
dict(zip(alist,blist)) => {key:value}
2018/7/19 23:23
打卡 这会儿才回 我是有多爱学习 每天一点点不急 回家回家
2018/7/21 14:53
今天生日~~~ 但是我还是来了公司继续学习 没看完心里难受
字典的基本操作
a = {'a':1,'b':2,'c':3}
a['a'] = 10
print(a) {'a': 10, 'b': 2, 'c': 3}
'd' in a //Flase
del a //删除字典
for key in a.keys():
print(key,a[key])
#a 1
#b 2
#c 3
template='''
a's number is %(a)s
b's number is %(b)s
c's number is %(c)s
'''
print(template % a)
a's number is 1
b's number is 2
c's number is 3
a.keys()
a.values()
返回的都是列表
a.get('d') ====> None
a = {'a':1,'b':2,'c':3}
b = {'a':3,'w':2,'e':3}
a.update(b)
print(a)
{'a': 3, 'b': 2, 'c': 3, 'w': 2, 'e': 3}
字典的内建函数
字典可以用作函数的形参
可变长的关键字参数
def func(a1,*b1,**c1):
print(a1)
print(b1)
print(c1)
a
('b', 'c', 'd')
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
集合
无序不重复元素组合
可变或不可变
a = ['a','b','c','c']
print(set(a))
print(set('hello,world')) 返回一个列表 且把重复的删除了
集合的比较
in / not in
集合的关系运算
&交集
| 并集
- 差集
^ 二者不同元素
以上就是python的数据结构
第三方有各种更高效的操作数据结构的库 例如:SciPy NumPy Pandas(数据操作与分析) 等等
都是各种矩阵(所以线性代数得学好
)
数组
列表保存的是指针 浪费内存
ndarray - Numpy的基本数据结构 节省cpu
ndarray创建和输出2018/7/21 17:33 小伙伴叫我去打球 天河外场 我打球还可以哦(傲娇的说是路人王水平 哈哈哈)~ 可约 篮球诱惑比女孩子还要大(太直男) 晚上回去看书 补回来
Numpy pandas 的字典之间 key values 是独立的
dataframe 与 series
数据
- 收集
- 整理
- 描述
-
分析
yahoo股票
- NLTK 自然语言工具包 (
各种语料库网络和聊天文本
)
www.gutenberg.org 免费电子书
数据备份
网友评论