python-3.x - 检查用户输入的 ipv4 格式是否正确
问题描述
我第一次来这里,有一个问题请教:
我想检查用户在输入 ipv4 时是否输入如果不是 ipv4 用户应该收到 3 次错误然后退出。我的示例代码如下:
# Hosts and Commands
for attempt in range(3):
host = input("Enter IPs separated by SPACE: ")
cmd = input("Enter Command(s) seperated by ',' : ")
if(len(host) != 0) and (len(cmd) != 0):
break
print("Fields Cannot be Blank, try again...")
else:
Screen().input("Sorry...Execution Terminated, Press [ENTER] to Exit")
return
解决方案
def validateIP(s):
if not s: return False
try:
parts = [int(p) for p in s.split('.')]
except:
return False
if len(parts) != 4: return False
for part in parts:
if not(0 <= part <= 255):
return False
return True
max_attempts = 3
for remaining in range(max_attempts-1, -1, -1):
ip = input("Enter an IPv4 address: ")
if validateIP(ip.strip()): break
print("That is an invalid IPv4 address. You have", remaining, "attempts left")
推荐阅读
- asp.net-mvc - 如何在 ASP.NET Core MVC 中正确制作排名/排行榜页面
- php - 在 PHP 函数中包装 PHP 和 HTML 以创建简码
- java - 在 application.yml 中为单个属性添加多个持续时间项
- java - 如何在 Spring Kafka Producer 上配置 min.insync.replicas 参数?
- android - 使用改造 2 将图像从 android 应用程序插入数据库
- bioinformatics - Snakemake:如何使用动态创建的文件名处理动态创建的文件?
- c++ - 带有原始值向量的内存泄漏
- python - Getting the user profile pictures with pyTelegramBotAPI (JSON)
- java - Firebase - 显示到 ListView
- aws-lambda - AWS 从弹性缓存指标中获取丢失对象的列表