仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 406|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 来讲讲:一个剧本讲述python说话的基本标准,合适初学者

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:05:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小知识:Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
比来学python的人比拟多,明天讲一下python的基本:python剧本的标准、缩进、编写功效函数时留意事项等,这些都是本身编程过程当中的心得领会。
1、python剧本的标准:
每一个剧本都有本身的标准,以下的标准不是强迫的,然则标准一下,可使你的剧本标准、易懂、便利应用。


#!/usr/bin/envpython
#-*-coding:utf-8-*-
这个写在开首,界说剧本编码。如今多半都是UTF8格局,所以写剧本尽可能用这个编码,碰到中文可以做编码处置,字符串编码处置重要就是encode和decode


importos,urllib,MySQLdb,time,platform
导入须要的模块。


main():
pass
界说函数


if__name__=="__main__":
main()
这个就是说剧本从这里往下履行,假如是其他的剧本挪用这个剧本,这个剧本不至于履行其他的部门
提醒:以上是全部剧本中的标准,人人在写剧本的时刻尽可能这么做。


2、python的缩进
python的对缩进请求很严厉,缩进纰谬,就会报语法毛病;python中缩进就是一个tab键或是4个空格,4个空格比拟费事,直接一个tab键简略,所以没有特殊的需求,缩进普通用tab键。缩进相似于分层,统一缩进就是雷同的条理。见以下实例:
ifa==0:
printa
else:
printb


3、每个功效对应一个函数
这一点我以为最主要,每个功效就写一个函数,如许你的剧本清楚易懂,剧本其他复用这个功效也便利,剧本也不冗余。不建议不要一个函数外面有很多多少功效,使函数模块化。
4、体系敕令的援用
援用体系敕令的时刻,特殊是linux敕令,必定要写敕令的全路径,好比:
os.popen("/sbin/ifconfigeth0").read()
这个你直接
os.popen("ifconfigeth0").read()
如许也是没有成绩的,最少是你手动履行剧本时,这个是会履行的,然则剧本做cron的时刻,就不会履行了。所以这个要特殊留意。


5、异常处置
try:
pass
exceptException,e:
printe
个中e就是毛病毛病信息。try的异常处置这么写就足够用了,还有其他的办法,不经常使用。


以下是一个获得当地ip地址,从数据库查询ip的用处,去衔接一个URL,断定这个URL能否可以用,并写日记。重要讲了讲python操作数据库的经常使用用法。
[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]5

[size=1em]6

[size=1em]7

[size=1em]8

[size=1em]9

[size=1em]10

[size=1em]11

[size=1em]12

[size=1em]13

[size=1em]14

[size=1em]15

[size=1em]16

[size=1em]17

[size=1em]18

[size=1em]19

[size=1em]20

[size=1em]21

[size=1em]22

[size=1em]23

[size=1em]24

[size=1em]25

[size=1em]26

[size=1em]27

[size=1em]28

[size=1em]29

[size=1em]30

[size=1em]31

[size=1em]32

[size=1em]33

[size=1em]34

[size=1em]35

[size=1em]36

[size=1em]37

[size=1em]38

[size=1em]39

[size=1em]40

[size=1em]41

[size=1em]42

[size=1em]43

[size=1em]44

[size=1em]45

[size=1em]46

[size=1em]47

[size=1em]48

[size=1em]49

[size=1em]50

[size=1em]51

[size=1em]52

[size=1em]53

[size=1em]54

[size=1em]55

[size=1em]56

[size=1em]57

[size=1em]58

[size=1em]59

[size=1em][size=1em]#!/usr/bin/envpython
[size=1em]#-*-coding:utf-8-*-
[size=1em]importos,urllib,MySQLdb,time,platform
[size=1em]deflog_w(text):
[size=1em]logfile="/tmp/websocket.log"
[size=1em]ifos.path.isfile(logfile):
[size=1em]if(os.path.getsize(logfile)/1024/1024)>100:
[size=1em]os.remove(logfile)
[size=1em]now=time.strftime("%Y-%m-%d%H:%M:%S")
[size=1em]tt=str(now)+"        "+str(text)+"
"
[size=1em]f=open(logfile,a+)
[size=1em]f.write(tt)
[size=1em]f.close()
[size=1em]defget_idcname(ip):
[size=1em]try:
[size=1em]conn=MySQLdb.connect(host=192.168.8.43,port=3306,user=read_app,passwd=123456,charset=utf8,connect_timeout=20)
[size=1em]cursor=conn.cursor()#查询出的成果是元组情势,元组和列表根本一样
[size=1em]#cursor=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)#查询成果是字典情势
[size=1em]sql="selecthost,userfrommysql.userwherehost=%s"%ip#python中履行sql语句一次只能是一个sql语句,一次只履行一条,假如用分号离开写多条的话是会报错的,假如是多条sql语句可以多写几个sql和cursor.execute()来离开履行
[size=1em]cursor.execute(sql)#履行sql语句
[size=1em]#cursor.executemany("""insertintodist_sniffer.sniffer_order_dayvalues(%s,%s,%s,%s,%s,%s,%s,%s,%s)""",values)#履行组合拔出数据库的时刻可以用这个,每一个%s代表一个数据库字段,values是一个元组或是一个列表
[size=1em]alldata=cursor.fetchall()#吸收sql履行成果,假如是写操作的,这个就不消了
[size=1em]#conn.commit()假如是写操作,须要这个去提交
[size=1em]cursor.close()
[size=1em]conn.close()#封闭数据库回话
[size=1em]returnalldata[0][0].encode(UTF8)#假如是写操作的话就没有前往值了。
[size=1em]exceptException,e:
[size=1em]return0
[size=1em]defget_ip():
[size=1em]os=platform.system()
[size=1em]ifos=="Linux":
[size=1em]ip=os.popen("/sbin/ifconfigeth0|grepinetaddr").read().strip().split(":")[1].split()[0]
[size=1em]elifos=="Windows":
[size=1em]importwmi
[size=1em]c=wmi.WMI()
[size=1em]network=c.Win32_NetworkAdapterConfiguration(IPEnabled=1)
[size=1em]forinterfaceinnetwork:
[size=1em]ifinterface.DefaultIPGateway:
[size=1em]ip=interface.IPAddress[0]
[size=1em]returnip
[size=1em]#printinterface.IPAddress[0],interface.MACAddress,interface.IPSubnet[0],interface.DefaultIPGateway[0],interface.DNSServerSearchOrder[0],interface.DNSServerSearchOrder[1]
[size=1em]#获得出网的ip地址、MAC地址、子网掩码、默许网关、DNS
[size=1em]defweb_status():
[size=1em]ip=get_ip()
[size=1em]idc_name=get_idcname(ip)
[size=1em]url="http://www.text.com/index.php?idc_ip=%s&idc_name=%s"%(ip,idc_name)
[size=1em]get=urllib.urlopen(url)
[size=1em]ifget.getcode()==200:
[size=1em]aa=int(get.read().strip())
[size=1em]ifaa==1:
[size=1em]text="WebservicereturnOK"
[size=1em]else:
[size=1em]text="WebservicereturnError"
[size=1em]else:
[size=1em]text="ConectwebserviceError"
[size=1em]printtext
[size=1em]log_w(text)
[size=1em]if__name__=="__main__":
[size=1em]web_status()



一开端就要养成一个好习气,如许对今后python编程是非常无益的。本身的深切领会。
小知识:CentOS完全免费,不存在REDHATAS4需要序列号的问题。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-16 23:46:00 | 只看该作者

来讲讲:一个剧本讲述python说话的基本标准,合适初学者

得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
只想知道 该用户已被删除
板凳
发表于 2015-1-25 10:32:06 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-2 22:00:57 | 只看该作者
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
小女巫 该用户已被删除
5#
发表于 2015-2-8 12:24:08 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
简单生活 该用户已被删除
6#
发表于 2015-2-25 15:34:03 | 只看该作者
为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?
小魔女 该用户已被删除
7#
发表于 2015-3-8 00:55:05 | 只看该作者
未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。
莫相离 该用户已被删除
8#
发表于 2015-3-15 22:51:59 | 只看该作者
得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
再见西城 该用户已被删除
9#
发表于 2015-3-22 18:10:34 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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