热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python条件与循环语句详解

本文详细介绍了Python中的条件语句和循环结构。主要内容包括:1.分支语句(if...elif...else);2.循环语句(for,while及嵌套循环);3.控制循环的语句(break,continue,else)。通过具体示例,帮助读者更好地理解和应用这些语句。

本文将深入探讨 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 输入错误,请重新输入")

推荐阅读
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
author-avatar
張小媫_602
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有