网络工程师的Python之路-网络运维自动化实战【1.9】

本文介绍了网络工程师如何使用Python进行网络运维自动化,重点讲述了通过字符串方法和逻辑运算符做判断,以及利用成员运算符简化判断。同时,讲解了while循环语句的用法,包括如何避免无限循环。内容包括用户输入验证、循环结构和程序控制流程的优化。
摘要由CSDN通过智能技术生成
3.1.2 通过字符串方法+逻辑运算符做判断

        当使用 input()函数让用户输入内容时,你无法保证用户输入的内容合乎规范。比如你给用户 6 个选项,每个选项分别对应一个动态路由协议的名称(选项 1: RIP;选项 2:IGRP;选项 3: EIGRP;选项 4: OSPF;选项 5: ISIS;选项 6: BGP),提示用户输入路由协议的选项号码来查询该路由协议的类型,然后让 Python 根据用户输入的选项号码告诉用户该路由协议属于链路状态路由协议、距离矢量路由协议,还是路径适量路由协议。
        这里你无法保证用户输入的肯定是整数,即使用户输入的是整数,也无法保证输入的是 1~ 6 的数字。因为 input()函数的返回值是字符串,所以可以首先使用字符串的 isdigit()函数来判断用户输入的内容是否为整数,这是判断条件之一。然后通过 int()将该字符串数字转换成整数,继续判断该整数是否介于 1 和 6 之间(包含 1 和 6),这是判断条件之二。

        再将这两个判断条件通过逻辑运算符 and 来判断它俩是否同时成立。如果成立,则返回相
应的答案;如果不成立,则提示用户输入的内容不符合规范并终止程序。代码如下。

[root@CentOS-Python ~]# cat lab.py
# coding=utf-8
print ('''请根据对应的号码选择一个路由协议:
1. RIP
2. IGRP
3. EIGRP
4. OSPF
5. ISIS
6. BGP ''')
option = input('请输入你的选项(数字 1-6): ')
if option.isdigit() and 1 <= int(option) <= 6:
if option == '1' or option == '2' or option == '3':
print ('该路由协议属于距离矢量路由协议。 ')
elif option == '4' or option == '5':
print ('该路由协议属于链路状态路由协议。 ')
else:
print ('该路由协议属于路径矢量路由协议。 ')
else:
print ('选项无效,程序终止。 ')

这里我们用到了嵌套 if 语句。在某一个条件成立(判定为 True)后,如果还需要检查其他子条件,就可以用嵌套 if 语句来完成。在嵌套 if 语句中,一组 if、 elif 和 else 可以构造在另一组 if、 elif 和 else 中,不过需要注意缩进。
运行代码,测试效果如下。


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值