1 选择结构
2 循环结构
3 函数
def ipv4_to_int(ipv4):
ipv4 = [int(x) for x in ipv4.split(".")]
ipv4_int = (ipv4[0]<<24) + (ipv4[1]<<16) + (ipv4[2]<< 8) + ipv4[3]
return ipv4_int
def int_to_ipv4(ip_int):
ipv4 = []
for x in (24, 16, 8, 0):
#print(ip_int)
ipv4.append(str(ip_int >> x & 0xFF))
return ".".join(ipv4)
start_ip = "10.1.1.253"
for x in range(0,4):
ip_address = ipv4_to_int(start_ip) + x * 4
print(ip_address)
ip_address = int_to_ipv4(ip_address)
print(ip_address)
#输出
167838205
10.1.1.253
167838209
10.1.2.1
167838213
10.1.2.5
167838217
10.1.2.9
根据输出int数字可以实现IP地址的转换
4 对象
对象需要有属性和方法,所以需要累,就和C++差不多吧
#继承
class Router(object):
def __init__(self, params = {}):
self.hostname = params.get("hostname", None)
self.mgmt_ip = params.get("mgmt_ip", None)
def connect(self):
print("connect to %s, ip is %s" %(self.hostname, self.mgmt_ip))
class Ciscoi(Router):
def __init__(self, params = {}):
super().__init__(params)
self.vender = params.get("vender")
def goto_enable(self):
print("goto enable mode")
device_info = {"hostname":"R1", "mgmt_ip":"10.1.1.1", "vendor":"Ciscoi"}
device = Ciscoi(device_info)
print(device.vender)
device.connect()
device.goto_enable()
#输出
None #这里显示空是因为在变量定义时候就没有设置可赋予值
connect to R1, ip is 10.1.1.1
goto enable mode
5 模块
任何python程序文件都可一作为一个模块导入其他python文件中
模块是比累和函数更大一些的功能组合,可以由一个或多个文件构成
模块是一段已经写好的完成部分特定功能的程序
那tensorflow之类的也是吧
不用重复造轮子
python熟悉模块使用
python3 module.py 1.1.1.1 1.2.2.2
这个只是想说明,后面可以加填充内容,在可以的情况下。