help(str)---返回所有类型(重要)
type('hello')---返回type目标的类型
isinstance('hello', str)----判断是否为字符串类型
dir(str)-----返回该类型的所有方法
模块导入: 包括函数,类,变量的独立python文件
import m
from m import plus----导入m模块的plus方法
例一:
import os import *
>>> uname()[-1]-------1表示该列表的最后一项
例二:
import os
>>> os.uname()[-1]-------------需加上os前缀
导入私有模块
1.把模块所在目录添加到path当中
sys.path.append(path)
from m import plus2
plus2();//导入私有模块中中的plus2方法
python数据类型可任意改变
变量必须赋值才能出现在表达式右边
python一切皆对象
Boolean
Integer --自动转换为Long
Folat=56.4
String="222"
List=[12,34,2]
Tuple=(1,2,3)//不能动态增加大小 元祖
Dict={'Bob': 18 , 'ss': 16}//无序 字典 可以append
Set= set([1,2,3,4])//无序
空对象None 。空字符串'' 。 空元组() 。空列表[]。 空字典{}----判断为false
打印带双引号
>>> print ('I love "zhuxiao" ')
I love "zhuxiao"
>>> print("I love \"zhuxiao\" ")
I love "zhuxiao"
三个单引号成对括起来,可以把字符串弄成多行
>>> str1 = '''I love zhu
... "xxxx"
... '''
>>> str1
'I love zhu\n"xxxx"\n'
split()//默认是以空格 回车 换行符 分割成list集合
>>> str1 = '''I love zhu
... "xxxx"
... '''
>>> str1
'I love zhu\n"xxxx"\n'
>>> list1 = str1.split()
>>> list1
['I', 'love', 'zhu', '"xxxx"']
append方法//增加元素
字典的使用
>>> dict = {'zhu':18 , 'xiao':21}
>>> dict.get('zhu')
18
>>> dict.get('zhu2')
>>> dict.get('zhu2',31)
31
>>> dict.get('zhu',31)
18
>>> dict['zhu']=111
>>> dict.get('zhu')
111
>>> dict.keys()
dict_keys(['xiao', 'zhu'])
>>> dict.values()
dict_values([21, 111])
>>> dict2 = dict.copy()
>>> dict2
{'xiao': 21, 'zhu': 111}
>>> del dict//删除dict字典
>>> dict2.popitem()//弹出dict2第一项
('xiao', 21)
>>> dict2
{'zhu': 111}
>>> 'zhu' in dict2//判断zhu健是否存在dict2字典中
True
python表达式
= 赋值
== 比较是否一样
>,< 大于小于
>=,<=
python表达式组合
可以用使用and或者or进行表达式组合(逻辑运算)
and 逻辑与(串联)
or 逻辑或
not 逻辑非
python逻辑分支
if 条件判断语句:
......
else:
.....
if 条件判断语句:
.....
elif 条件判断语句:
.....
else:
......
python中,除了False和None(本身也是对象)外,都被认为是True
python中不存在switch语句
python中不存在三目运算符
练习:
sex = 'male'
age = 18
if sex == 'male':
if age < 18:
print ('hellogirl')
else:
print ('hello lady')
else:
print ('boom')
python循环分支:
for 变量 in 列表:
.....
使用变量
//元祖是一种特殊的列表
>>> for value in [1,2,3,4]:
... print (value)
...
1
2
3
4
>>> for name,age in {('z',12),('x',21)}://元祖 弱化List
... print (name,age)
...
x 21
z 12
循环控制语句:
continue
break
else
for v in yuanzu(21,3):
if v>22:
print ('continue')
continue
else:
print ('break no Forelse')
break
else://和for同一级的else 在没有break和exception 结束循环执行
print('no contain break/exception')
同样while也支持 continue break else
range(5)方法 返回0-4的对象
python函数的定义个调用
#函数定义
def 函数名():
函数体
#函数调用
函数名()
python变长参数
会自动自动转换为元祖或字典
def函数名(*args)://元祖
函数体
函数名(v2,v2,v3)
def函数名(**args)://字典
函数体..
函数名(k1=v1, k2 = v2)
python参数默认值
当不指定参数时使用默认参数,当然指定参数优先
def zhu(a,b='hello'):
函数体..
python的函数返回值
return obj
return ---None
python面向对象基础--类
python中一切都是对象,类和对象是面向对象的基础
#定义一个Monk类 self相当于java的this _init_是初始化方法
class Monk:
def _init_(self, name, age):
self.name = name
self.age = age
#实例化
ZHUMONK = Monk('zx',21)
#查看类型
type(ZHUMONK)
python标准输入输出
print("aa")方法:输出数据到标准输出
raw_input():从标准输入读取数据
file类
f = file('url', 'r')---r(只读),w(只写),
a(追加),b(二进制),r++,a++(更新)
f.read()
f.close()
f = open('url', 'r')
多种读取方式
f.read()//读取所有数据
f.readline()//读取一行
f.readlines()//内容保存在List中
写文件
f = file('url' ,'a')
f.writer('aaaa')//aa写到源文件的尾部
f.flush()//刷新内存
f.close()
help(file)
python socket
应用层(HTTP)
传输层(TCP):
TCP SOCKET(校验)
UDP SOCKET (不校验)
UNIX SOCKET(机器内部)
网络层(IP)
链路层(MAC帧)
物理层(网线)
客户端首发数据
import socket
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)//初始化socket
c.connect(('192.172.1.1', 80))
c.send('hello')//发送数据
c.recv(1024)//接收数据
服务端Socket监听连接
import socket
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)//初始化socket
s.bind(('127.0.0.1', 80))
s.listen(1)
while True:
cs, ca = s.accept()#创建socket和客户端通信
print (cs.recv(1024))//大于1024端口
cs.sendall('message')
cs.close()
python HTTP库
import httplib
http = httplib.HTTPConnection('ip', 80)
http.request('GET', 'url')
print (http.getresponse().read())
http.close()
简单的urllib库 实现HTTP FTP
import urllib2
opener = urllib2.build_opener()
f = opener.open('http://www.baidu.com')
f.read()
f.close(0