当前位置:首页>python>一学一实践:python基础练习,通往AIOps

一学一实践:python基础练习,通往AIOps

  • 2026-09-02 19:42:22
一学一实践:python基础练习,通往AIOps
学习环境:windows11和python3.14,搭配wmware,搭配Cisco路由器虚拟机,Liunx虚拟机和python3.11,TraeIDE。
20年资深网工,CCIE 1937X SECURITY。

1.创建一个Python脚本,打印一台网络设备的基本信息

定义以下变量,并使用print打印出设备信息卡片:

hostname = "C8Kv1"

ip = "192.168.1.1"

vendor = "Cisco"

model = "C8000v"

os_version = "IOS-XE 17.3.4"

打印效果如下:

========== 设备信息 ==========

设备名称: C8Kv1

管理地址: 192.168.1.1

厂商: Cisco

型号: C8000v

系统版本: IOS-XE 17.3.4

==============================

提示: 使用字符串拼接(+)将变量和文字连接在一起即可。

脚本方案1:

hostname = "C8Kv1"

ip = "192.168.1.1"

vendor = "Cisco"

model = "C8000v"

os_version = "IOS-XE 17.3.4"

output = ("========== 设备信息 ==========\n设备名称: " + hostname + "\n管理地址: " + ip + 

"\n厂商:     "+ vendor + "\n型号:     " + model + "\n系统版本: " + os_version + 

"\n" + "==============================\n")

print(output)

方案2:

device= {
    'name': 'C8Kv1',
    'ip': '192.168.1.1',
    'vendor': 'Cisco',
    'model': 'C8000v',
    'os_version': 'IOS-XE 17.3.4'
}
# 使用多行字符串格式化输出,确保与要求完全一致
output=f"========== 设备信息 ==========\n 设备名称: {device['name']}\n 管理地址: {device['ip']}\n 厂商:     {device['vendor']}\n 型号:     {device['model']}\n 系统版本: {device['os_version']}\n =============================="
# 打印输出
print(output)
方案2的办法通过了设定字符和调用字符的逻辑,更方便定义好的内容被调用,增加扩展性
方案3:
# 定义设备信息变量(你可以根据实际情况修改这些值)hostname ="SW1"
ip ="192.168.1.1"
vendor ="H3C"
model ="S5560"os_version ="7.1.070"
# 使用 f-string 拼接字符串并实现换行
output =(f"========== 设备信息 ==========\n"
f"设备名称: {hostname}\n"
f"管理地址: {ip}\n"
f"厂商: {vendor}\n"
f"型号: {model}\n"
f"系统版本: {os_version}\n"
f"==========================================\n")
# 打印输出,查看换行效果
print(output)
 方案3看起来代码会更整齐,更具有逻辑性,也是用的调用关系,可读性强,我更喜欢。

2.创建一个随机产生IP地址的代码

导入random模块,随机产生网络IPv4地址。

import random

ip = ""

ip += str(random.randint(1, 255)) 

for i in range(3):

ip += "." + str(random.randint(0, 255))

print(ip)

3.打印一张简单的IP地址规划表

假设你负责一个小型网络,有3台设备,请定义变量并打印如下格式的IP规划表:

========== IP地址规划表 ==========

设备名称管理地址角色

-----------------------------------------

CoreSwitch 10.1.1.1          核心交换机

Firewall 10.1.1.2          防火墙

WLC 10.1.1.3          无线控制器

=========================================

提示: 可以直接用多个print语句,也可以尝试用 \t (Tab) 来对齐。

脚本:

device_list = [

{"hostname": "CoreSwitch", "mgmt_ip":"10.1.1.1", "role": "核心交换机"},

{"hostname": "FireWall", "mgmt_ip":"10.1.1.2", "role": "防火墙"},

{"hostname": "WLC", "mgmt_ip":"10.1.1.3", "role": "无线控制器"}

]

print("=" * 17 + " IP地址规划列表 " + "=" * 17)

print("设备名称" + "\t" + "管理地址" + "\t" + "角色")

print("-" * 50)

for device in device_list:

print(f'{device["hostname"]:15}\t{device["mgmt_ip"]:15}\t{device["role"]:15}')

print("=" * 50)

最新文章

随机文章