【学习笔记】炼数成金 Dataguru python2.x 2012

此教程 06Python正则表达式、08爬虫 部分讲解不错,值得回顾学习

01.解释型脚本语言初探
解释性脚本语言最重要的特性:动态类型

Python结构化编程,函数式编程,面向对象编程

关系数据库的 3范式NF
笛卡尔操作join
很多对象与类如果既不是包含也不是继承关系,统称叫做关联关系。面向对象的包含关系主要由两种表现方式:组合、聚合,这两种方式的区别就是构成子对象的生命周期不同。
面向对象主要分为3个阶段:OOA,OOD,OOP
传统编译型语言如C++,Java都是强类型语言,要求变量在定义时就明确定义变量类型,整个生命周期都是该类型。但对于动态类型语言呢,在运行时才决定他的类型,在执行过程中可以改变数据类型,在开发过程中无疑带来很大灵活性,
Python本身是弱类型语言,只有在运行时才决定是什么类型。

Python内置列表,元组,字典几种数据结构增强了很多特性。本身也是胶水语言,可以灵活地与其他语言进行组合,实现整体功能,比如对速度要求很高的算法部分,使用C++实现。Python写东西就是快。

常见编程语言比较
编译型:C C++ Java .net object-c
解释型:Python MATLAB Erlang lua Perl shell HTML JavaScript

笛卡尔方法论:拆分、排序、处理、归并

建议C C++是必须的语言,因为它对计算机内存会时刻保持很清晰的概念。

程序员的陋习:
自我,封闭,惯性,沟通障碍,一叶障目,工作量的估计乐观,拒绝变化,拒绝重构

02.Python开发环境
Python运行环境的安装和配置;Setuptools,wingIDE, 两个非常重要的module(os,sys)
Setuptools工具对Python来说,类似于yum之于Redhat,apt-get之于ubuntu

某些版本win平台下安装Python后,在cmd并不能启动Python交互式环境,需要手动将Python添加到环境变量PATH,Python辅助工具建议安装Setuptools, pip
下载与Python版本对应的Setuptools,直接运行自动找到Python路径/sitepackages,同时安装easy install的script(该script也要添加到path环境变量),这样就可以cmd中使用easy install命令了
如easy install django,easy install numpy 就可以安装了(当然这种安装方式必须联网),安装第三方库还可以其他方式,如下载lib离线压缩包,执行setup.py的方式,执行命令python setup.py build/install

linux下Python环境安装部署
存在一种情况,Linux上自带的Python版本与我们开发需要的不一致,就像java -version一样,Linux下可以存在多个Python/jdk版本,只要在.bashprofile文件配置好指定版本的路径调用就好。把对应版本解压,将bin目录添加到命令搜索路径path下,安装到/usr/local/下(行业规定)
注意在Linux下不要覆盖系统自带Python版本,因为很多系统工具可能依赖该版本环境。因此一定要安装指向路径./configure –prefix=/usr/local/pythonnew,然后进行make编译过程,然后makeinstall安装。
那么如何在环境变量中使用指定版本的Python呢?可以在环境变量文件即bashprofile中设置,或者使用软连接ls方式添加到/bin/目录,就像win中的快捷方式。
ln -s /usr/local/pythonnew/bin/python /bin/pythonnew ln -s 真实文件路径 软连接路径

用mget工具获取Linux平台的setuptools工具包,到官网上找到对应版本下载链接,右键另存为的获取下载链接downURL,mget downURL即可下载。
然后同样方式安装setuptools,easy_install django安装第三方lib。
这样就完成了在Linux上安装配置新指定版本Python 并配置setuptools,easy_install的过程。

wingIDE安装
wingIDE可以灵活设置作为main入口的.py文件,还支持分步断点调试Debug Probe,还可以将Debug Probe窗口作为IDLE一样的交互式工具,随时查看变量,对象信息。
wingIDE中F1,F2键可以方便的切换下方,右侧区域窗口。

5)自醒的便利
type(),str(),dir(),help()

查看变量类型用type
对于sys package,要查看有哪些构成函数成员,用dir(sys),是一种概览展示。
对于想要详细查看该module或function的用法说明,用help(sys),help(sys.func)
str(sys) ; type(sys)

python中非常重要的两个module:os,sys
import os
dir(os)

import(sys)
dir(sys)

03.python使用基础
单引号’strings’ 双引号”strings” 三引号”’strings”’ or “”“strings”“”
三引号可以用作:定义字符串;定义块注释
当字符串内部含有特殊字符\t,\n等,会被自动转义处理,print(‘abcd\nsdfj\tkl’),如果不希望内置特殊字符被转义,有两种方法:
1.手动在每个特殊字符前添加转义字符\,但如果str是未知,或者很多特殊字符,将很难处理;
2.声明字符时用a=r’abcd\nsdfj\tkl’,特殊字符将不被转义

a=r’abcd\nsdfj\tkl’
a
‘abcd\nsdfj\tkl’
print(a)
abcd\nsdfj\tkl

插入自定义分隔符的处理非常简单:利用str自带的join

”.join(b)
‘abcd\nsdfjkl’
‘-‘.join(b)
‘a-b-c-d-\n-s-d-f-j-k-l’
‘_’.join(b)
‘a_b_c_d_\n_s_d_f_j_k_l’
‘-._’.join(b)
‘a-.b-._c-._d-.\n-._s-._d-._f-._j-._k-._l’

eval()方法,将数值型,可计算的字符串,转换为计算型表达式:

a=’1+1*2*5-3’
a
‘1+1*2*5-3’
eval(a)
8
eval(‘“1”+”1”’)
‘11’
type(eval(‘“1”+”2”’))

conn,address=sock.accept()

rlists=[sock]
wlists=[]
msg_que={}
timeout=20

print(connect by client,address)

while rlists:
rs,ws,es=select.select(rlists,wlists,rlists,timeout)
if not (rs or ws or es)
print(‘timeout’)
break
for s in rs:
if s in sock:
conn.addr=s.accept()
print(connect by client,address)
conn.setblocking(False)
rlists.append(s)
msg_que[s]=Queue.Queue()
else:
data=sock.recv(1024)
if data:
print(data)
msg_queue[s].put(data)
if s not in wlists:
wlists.append(s)
else:
if s in wlists:
wlists.remove(s)
rlists.remove(s)
s.close()
del msg_queue[s]
for s in ws:
try:
msg=msg_queue[s].get_nowait[]
except Queue.Empty:
print(ms_empty)
wlists.remove(s)
else:
s.send(msg)
for s in es:
print(‘except’,s.getpeername())
if s in rlists:
rlists.remove(s)
if s in wlists:
wlists.remove(s)
s.close()
del msg_queue[s]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值