设为首页 收藏本站
查看: 703|回复: 0

[经验分享] python也就这点事

[复制链接]

尚未签到

发表于 2017-4-27 10:20:54 | 显示全部楼层 |阅读模式
  1.解释性&编译性,面相对象,简单,高级语言,无需考虑诸如内存一类的底层
可扩展以及可潜入性,免费开源,可移植性--各个系统。丰富的库。“胶水语言”
  
2.python源代码以py为扩展名,由python程序解释,不需要编译
  
3.python XXX.py不管他有没有执行权限都会执行
chmod +x XXX.py赋权限,  执行:./XXX.py(必须写上文件的路径#!/usr/python)
  
4.字节代码:
Python源文件经过编译后生产的扩展名为“pyc”的文件
编译方法:import py_compile
    py_compile.compile("1.py")
  
5.除:17/6=2  取模:17%6=5  幂运算:3**2=9
  
6.type(1230)--><type 'int'>
  
7.a="abcde"  a[1:4]打印:bcd  [:-1]从后面往前面数
  
8.列表、元组和字符串都是序列
序列的两个主要特点是索引操作符和切片操作符
-索引操作符让我们可以从序列中抓取一个特定的项目
-切片操作符让我们能获取序列的一个切片。即一部分序列
  
9、a="b"  a*5 -->bbbbb  重复序列元素
  
10.in:判断元素是否在序列中
  
11.max(返回最大值) min()
  
12.比较两个序列的值是否相同cmp(str1,str2)
  
13.id()是可以看内存的存储地址
  元祖(),列表[],字典{}:
14.创建元祖
zoo=('wolf','pig','dog')  zoo[1]  zoo[1:2]元祖的值不可变
连续定义变量:a,b,c=1,2,3
>>> zoo[0:2]
('wolf', 'pig')
>>> type(zoo)
<type 'tuple'>
  
15.list["a","b",10]   这个是可变得list[0]='aa' 就变成aa了
通过列表增加值list.append("值")  list.remove("值") 
  
16.help(list.append)   del(list[1])
  
17.函数zip()的使用

>>> t1=('1','2','3')
>>> t2=('a','b')
>>> zip(t1,t2)
[('1', 'a'), ('2', 'b')]

  18.定义一个字典:

dic={0:1,1:1,'c':'abc'}

  dic[0]  dic[1] dic['c']或者直接0  1  ‘c’也可以获得value
19.更新和删除字典表数据

>>> dic['tec']='technology'
>>> dic
{1: 1, 'c': 'abc', 'tec': 'technology', 2: 2}
  删除:

del(dic['tec'])
dic.clear() 删除字典所有元素
del dic 删除整个字典
dic.pop(1) 删除并且返回键为1的元素
>>>dic.get('a','errot')  如果取不到返回自定义的信息
>>>'errot'
dic.keys()
dic.values()
  20.
  if--else中
逻辑值包含了两个值:
True:表示非空的量,所有非零数
False:表示0,None,空的量
  21.x=int(raw_input("please input x:"))  为键盘输入
  22.
  range(i,j,[步进值])
range(100)会为你创建0-99的列表
  23.累加器:

#/usr/python
num=0
for x in range(1,101):
num+=x
print num
  24.遍历字典

#/usr/python
d={1:111,2:222,3:333,4:444}
for x in d:
print d[x]
for k,v in d.items():
print k
print v
print d.items()
  25.while循环

#/usr/python
while True:
print "hello"
x=raw_input("please input something ,q for quit")
if x=="q":
break
  26.函数中定义一个全局变量:global x
  27.冗余参数

>>> def f(x,y):
...     print x,y
...
>>> t=("name","age")
>>> t
('name', 'age')
>>> f(*t)
name age

  28.

>>> def f(name="name",age=0):
...     print "name:%s"%name
...     print "age%s"%age
...
>>> f(name="yu",age=24)
name:yu
age24
>>> tt={'age':25,'name':'yu'}
>>> f(**tt)
name:yu
age25
  29.常用函数
  abs()  max()  min() divmod()商和余 pow()  round()
callable()测试某一个对象是否可以被调用,通常是函数
type()
isinstance(t,tuple)

>>> t
('name', 'age')
>>> type(t)
<type 'tuple'>
>>> isinstance(t,tuple)
True
cmp("hello","hello")返回0
cmp("h","hello")返回-1
cmp("aaaaaa","a")返回1
range()
  30.类型转换函数:
int() float() double() str() ist() tuple() hex() oct() chr() ord()
  31.字符串处理函数:
  str.capitalize()首字母大写
str.replace()
str.split()
  32.序列处理函数:
  filter(...)

>>> def f(x):
...     if(x>5):
...             return True
...
>>> l=range(10)
>>> filter(f,l)
[6, 7, 8, 9]

  map函数

map(...)
>>> a=[1,2,3]
>>> b=[3,4,5]
>>> map(None,a,b)
[(1, 3), (2, 4), (3, 5)]
>>> def test(x,y):
...     return x*y
...
>>> map(test,a,b)
[3, 8, 15]
  reduce()

>>> a
[1, 2, 3]
>>> reduce(test,a)
6
#1+2+3=6
  33.pyton引入自己的test.py文件:
 import test
 x=test.add(1,2)  #这是调用test.py中的add方法
  34.包:
创建包的步骤:
1.建立一个名字为包名字的文件夹
2.在该文件夹下创建一个__init__.py文件(什么都不用写)
3.根据需要在该文件下存放脚本文件、已编译扩展及子包
import pack.m1,pack.m2,pack.m3
x=pack.m1.add(1,2)  #调用pack包下面m1类中的add方法
  
35.python的正则

>>> import re
>>> str="abc"
>>> str=r"abc"
>>>str1="aaaaaaaaaaaabcbbbbbbbbbbbabc"
>>> re.findall(str,str1) #表示针对str1中符合str规则的字符串
['abc', 'abc']

>>> str=r"a[bc]a"  #可以匹配aba aca的字符串
>>> str=r"a[^bc]a"  #可以匹配没有aba aca的字符串
>>> str=r"hello$"  #匹配以hello结尾的字符串
>>>str=r"[0-9]"a
  36.例子:python爬虫

#!/usr/bin/python
import re
import urllib
def getHtml(url):
page=urllib.urlopen(url)
html=page.read()
return html   #返回整个html代码
def getImg(html):
reg=r'src="(.*?\.jpg)"width'  #正则匹配jpg url
imgre=re.compile(reg)
imglist=re.findall(imgre,html)  #对正则进行一次编译,速度更快
x=0
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg'%x)  #urllib提供的,下载该图片地址的图片
x+=1
html=getHtml("............")  #函数调用
print getImg(html)
 
  37.所谓浅拷贝就是对引用的拷贝(只拷贝父对象)import copy   copy()
深拷贝就是对对象的资源拷贝 import copy   deepcopy()
  
38.文件读取:

>>> fo =open('/home/hadoop/ip.txt','mode') #mode参数很重要有读(‘r’默认)写(‘w’'r+')
>>> fo
<open file '/home/hadoop/ip.txt', mode 'r' at 0xb7735b20>
>>> fo.read()
'2,tom2,192.168.0.12,CN\n3,tom3,192.168.0.13,CN\n4,tom4,192.168.0.14,UK\n5,tom5,192.168.0.15,UK\n6,tom6,192.168.0.16,US\n7,tom7,192.168.0.17,US\n'
>>> fo.write(".....")
>>> for i in open('/home/hadoop/ip.txt'):
...     print i
...
2,tom2,192.168.0.12,CN
3,tom3,192.168.0.13,CN
4,tom4,192.168.0.14,UK
>>> fo =file('/home/hadoop/ip.txt')
>>> fo.readlines()
['2,tom2,192.168.0.12,CN\n', '3,tom3,192.168.0.13,CN\n', '4,tom4,192.168.0.14,UK\n', '5,tom5,192.168.0.15,UK\n', '6,tom6,192.168.0.16,US\n', '7,tom7,192.168.0.17,US\n']
>>> fo.readline()
''
>>> fo.close()

  39.文件内容替换实例:

>>>fp1=file("a.t","r")
>>>fp2=file("a2.t","r")
>>>for s in f1.readlines():
>>>fp2.write(s.replace("hello","world"))
>>>fp1.close()
>>>fp2.close()
  40.操作目录:

import os
os.mkdir(path,[mode])
rmdir(path)
makedirs(path)   os.makedirs('a/b/c')
remocesdirs(path)
listdir(path)
getcwd()
chdir(path)
  41.目录遍历:

#!/home/hadoop/app
import os
def dirList(path):
filelist=os.listdir(path)
fpath=os.getcwd()
allfile=[]
for filename in filelist:
allfile.append(fpath+'/'+filename)
return allfile
allfile=dirList('/home/hadoop/app/hadoop')
print allfile
  42.异常处理:

#!/home/hadoop/app
#coding:utf8
try:
open('bac.txt')
except IOError,msg:
print "有异常请处理"  #这里可以写一些业务代码  处理异常
pass
finally:
....

以raise的形似抛出异常:
>>>if  'a'>5:
raise TypeError("Error:'a' must be integer")

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-369850-1-1.html 上篇帖子: python高级函数map/reduce 下篇帖子: 分享一点python 编码设置的知识
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表