本文将深入探讨 Python 编程语言中的条件和循环语句,帮助读者理解并掌握其使用方法。
一、分支语句 (if...elif...else)
分支语句用于根据条件执行不同的代码块。常见的形式为 if...elif...else 语句。
示例:通过 ping 命令判断操作系统类型
import os
ip = input("请输入一个 IP 地址:")
res = os.popen(f"ping {ip}").read()
start = res.find("TTL")
if start != -1:
ttl = int(res[start + 4:start + res.find("\n", start)])
if 64 print(f"{ip} 是 Windows 系统")
elif ttl <= 64:
print(f"{ip} 是 Linux 系统")
else:
print(f"{ip} 的操作系统未知")
else:
print("ICMP 协议被防火墙拦截或目标不可达!")
二、循环语句 (for, while 和嵌套循环)
循环语句用于重复执行某段代码。Python 提供了 for 和 while 两种基本循环方式,以及嵌套循环。
示例 1:字幕滚动效果
import time
zimu = input("请输入一段话:")
i = 0
while True:
print(zimu[i:] + zimu[:i], end='', flush=True)
time.sleep(1)
print('\r', end='', flush=True)
i = (i + 1) % len(zimu)
示例 2:获取本机所有网卡及 IP 地址
import os
print("*" * 60)
inf = os.popen("ipconfig /all").read()
nics = inf.split("适配器")[1:]
print("%-40s%s" % ("网卡名称", "IP地址"))
for nic in nics:
lines = nic.split("\n")
name = lines[0].strip()[:-1]
ip_line = [line for line in lines if "IPv4" in line]
addr = ip_line[0].split(":")[1].strip().rstrip("(首选)") if ip_line else "网络未连接"
print("%-40s%s" % (name, addr))
三、控制循环语句 (break, continue, else)
控制循环语句可以改变循环的正常流程。break 用于立即退出循环,continue 用于跳过当前循环体中的剩余语句并继续下一次循环,else 在循环正常结束时执行。
示例 1:判断输入的分数是否需要补考
print("*" * 30)
for i in range(3):
score = float(input("请输入分数:"))
if score <60:
print("需要补考")
break
else:
print("全部通过")
示例 2:打印 0 到 20 之间的偶数
print("*" * 30)
for i in range(21):
if i % 2 != 0:
continue
print(i)
示例 3:验证 IP 地址合法性
print("-" * 30)
while True:
ip = input("请输入一个 IP 地址:")
parts = ip.split(".")
if len(parts) == 4 and all(part.isdigit() and 0 <= int(part) <= 255 for part in parts):
print(f"输入正确,你输入的 IP 是: {ip}")
break
else:
print("IP 输入错误,请重新输入")