小白的python(2)

今天的学习内容是一些基础的Python脚本概念,我们将把代码写入到一个脚本里面,函数,类和sys模块。嗯…和上节课比,又有新的开始。

Python脚本框架**

下面是一个开始写Python脚本的基础例子,开始部分,告诉系统需要使用那一个解释器"#!/usr/bin/env python",然后我们通过"def main():"声明一个main函数,最后2行代码有mian()的先执行。你可以定义在你的脚本里面定义其它函数,这样使得你的代码更容易的理解和修改维护:

#!/usr/bin/python
import ,

def myFunction():

def main():
myFunction()

if name==“main”:
main()
函数**

一种常见的写法是把每个功能函数分开写,执行一些操作之后然后返回结果。下面的这个伪代码演示的例子就能够很清晰的解释这个概念:
声明:
def MyFunction:
…do work…
return output

调用:
def main():
output = MyFunction(input)
类**

Python类开始使用的时候会有点困难,因为它是教你以何种方式设计你的代码,如果你掌握类的概念那么你就可以把数据和定义按照类的逻辑分组,这样类就拥有了属性和与之想关联的方法。当你定义一个类之后,你可以创建一个新的类,然后继承之前创建的类的属性和与之相关联的方法,这编程就叫做面向对象编程。

如果你感到迷惑,那么我建议你先不要去学习类,实际上,你并不需要类。但它可以让你的代码减少冗余。下面我们将定义个新的类"Domain"使用"class"关键字,当你实例化Domain类型对象的时候,它的类型有多种方式去定义:

import os
class Domain:
… def init(self, domain, port, protocol):
#通过两个内部变量存储变量
… self.domain=domain
… self.port=port
… self.protocol=protocol
#构造一个url的方法
… def URL(self):
… if self.protocol == ‘https’:
… URL = ‘https://’+self.domain+’:’+self.port+’/’
… if self.protocol == ‘http’:
… URL = ‘http://’+self.domain+’:’+self.port+’/’
… return URL

调用os.system中主机命令lookup去解析域名

… def lookup(self):
… os.system("host "+self.domain)

domain=Domain(‘google.com’, ‘443’, ‘https’)

dir(domain)
[‘URL’, ‘doc’, ‘init’, ‘module’, ‘ip’, ‘lookup’, ‘port’, ‘protocol’]

domain.URL()
https://8.8.8.8:443/

domain.ip
‘8.8.8.8’

domain.port
‘443’

domain.protocol
‘https’

domain.lookup()
google.com has address 74.125.228.233
google.com has address 74.125.228.227
google.com has address 74.125.228.232

正如你所看到的,当你实例化一个Domian类之后你可以运行类中的方法。再次说声,这个概念最初的时候很容易混乱,尤其是当你刚刚Python和编程的时候。尝试一下去实现一个新的类在你的Python脚本里面,我发现这是掌握这个概念最好的途径。

使用sys处理命令行输入值**

最好我们来介绍一下sys模块,sys模块的常见函数列表:

sys.argv: 实现从程序外部向程序传递参数。

sys.exit([arg]): 程序中间的退出,arg=0为正常退出。

sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。

sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )

sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.

sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

sys.platform: 获取当前系统平台。

sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

https://www.cnblogs.com/Archie-s/p/6860301.html
下面是一个简单的例子:
在这里插入图片描述
执行后:
~$ python sys.py 8.8.8.8 53
[+] The script name is: sys.py
[+] The IP is: 8.8.8.8 and the port is: 53
上面的只是一个例子,大家可以继续去研究其它Python模块,因为它们能够放你用最简单的方式解决你遇到的问题。(每一次作业都告诉我们:多看博客多学习多知道!!!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值