ITPub博客

首页 > 应用开发 > Python > 人工智能之编程基础 Python 入门:第四章 条件循环与异常

人工智能之编程基础 Python 入门:第四章 条件循环与异常

原创 Python 作者:咚咚王者 时间:2025-11-01 08:06:32 0 删除 编辑

 

人工智能之编程基础 Python 入门

第四章 条件循环与异常

前言

本章节紧接上一章内容继续学习python的基本语法结构,主要学习条件语句、循环语句以及错误异常的处理方式。

条件语句

Python 中的条件语句用于根据不同的条件执行不同的代码块。主要的条件语句是  if、 elif(else if 的缩写)和  else。

基本语法



if 条件
1:

     # 条件1为真时执行的代码
    语句块 1
elif 条件 2:
     # 条件1为假,且条件2为真时执行的代码
    语句块 2
else:
     # 所有前面的条件都为假时执行的代码
    语句块 3

关键点:

  1. 1. **冒号 ( :)**: 每个  if,  elif,  else 语句后面必须跟一个冒号。
  2. 2. 缩进: 冒号后面的代码块必须缩进(通常使用 4 个空格)。Python 通过缩进来判断哪些代码属于哪个条件分支。
  3. 3. ** elif 和  else 是可选的**: 你可以只有  if,也可以有  if-else 或  if-elif-else 链。
  4. 4. 条件求值: 条件表达式的结果会被转换为布尔值 ( True 或  False)。

示例

1. 简单的  if 语句


age = 
18

if age >=  18:
     print( "你已成年,可以投票!")
print( "程序结束。")  # 这行代码总是会执行

输出:


你已成年,可以投票!

程序结束。

2.  if-else 语句


age = 
16

if age >=  18:
     print( "你已成年,可以投票!")
else:
     print( "你还未成年,需要等待。")
print( "程序结束。")

输出:


你还未成年,需要等待。

程序结束。

3.  if-elif-else 语句 (处理多个条件)


score = 
85

if score >=  90:
    grade =  'A'
elif score >=  80:  # 注意:因为score<90才会到这里,所以这里只需检查>=80
    grade =  'B'
elif score >=  70:
    grade =  'C'
elif score >=  60:
    grade =  'D'
else:
    grade =  'F'
print( f"你的成绩等级是:  {grade}")

输出:

你的成绩等级是: B

4. 嵌套的  if 语句


age = 
20

has_license =  True

if age >=  18:
     if has_license:
         print( "你可以合法驾驶。")
     else:
         print( "你年龄够了,但需要先考驾照。")
else:
     print( "你还太小,不能驾驶。")

输出:

你可以合法驾驶。

真值测试 (Truthiness)

在 Python 中,很多值在条件语句中会被自动转换为布尔值:

  • •  被认为是  False 的值 (falsy):
    • •  False
    • •  None
    • • 数值零: 0,  0.0
    • • 空序列: "",  [],  (),  {}
    • • 空集合: set()
  • •  其他所有值都被认为是  True (truthy):
    • •  True
    • • 非零数值
    • • 非空字符串、列表、元组、字典等

示例:


my_list = [
1, 
2, 
3]

if my_list:  # 检查列表是否非空,比 len(my_list) > 0 更Pythonic
     print( "列表不为空,包含元素:", my_list)
else:
     print( "列表为空。")

name =  ""
if name:  # 检查字符串是否非空
     print( f"你好,  {name}!")
else:
     print( "名字不能为空。")

输出:


列表不为空,包含元素: [1, 2, 3]

名字不能为空。

循环语句

Python 中的循环语句用于重复执行一段代码,直到满足某个条件为止。主要有两种类型的循环: for 循环和  while 循环。

1.  for 循环

for 循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象。

基本语法



for 变量 
in 序列:

     # 循环体
    语句块

示例



# 遍历列表

fruits = [ "苹果",  "香蕉",  "橙子"]
for fruit  in fruits:
     print(fruit)

输出:


苹果

香蕉
橙子


# 遍历字符串

word =  "Python"
for letter  in word:
     print(letter)

输出:


P

y
t
h
o
n


# 使用 range() 函数

for i  in  range( 5):  # range(5) 生成 0, 1, 2, 3, 4
     print(i)

输出:


0

1
2
3
4


# range(start, stop, step)

for i  in  range( 1,  10,  2):  # 从1开始,到10结束(不包含10),步长为2
     print(i)

输出:


1

3
5
7
9

2.  while 循环

while 循环在条件为  True 时重复执行代码块。

基本语法



while 条件:

     # 循环体
    语句块
     # 更新条件,避免无限循环

示例



# 计数器循环

count =  0
while count <  5:
     print(count)
    count +=  1  # 重要:更新条件变量,否则会无限循环

输出:


0

1
2
3
4


# 用户输入循环

user_input =  ""
while user_input.lower() !=  "退出":
    user_input =  input( "请输入命令(输入'退出'结束): ")
     print( f"你输入了:  {user_input}")

3. 循环控制语句

  • •  break: 立即退出循环。
  • •  continue: 跳过当前迭代,继续下一次迭代。

示例



# 使用 break

for i  in  range( 10):
     if i ==  5:
         break
     print(i)

输出:


0

1
2
3
4


# 使用 continue

for i  in  range( 5):
     if i ==  2:
         continue
     print(i)

输出:


0

1
3
4

4.  else 子句

for 和  while 循环都可以有一个可选的  else 子句。当循环正常结束(没有被  break 中断)时, else 子句会执行。

示例



# for-else

for i  in  range( 3):
     print(i)
else:
     print( "循环正常结束")

输出:


0

1
2
循环正常结束


# for-else with break

for i  in  range( 5):
     if i ==  3:
         break
     print(i)
else:
     print( "循环正常结束")  # 这行不会执行,因为循环被break了

print( "循环结束")

输出:


0

1
2
循环结束

5. 嵌套循环

循环内部可以包含另一个循环。

示例



# 打印乘法表

for i  in  range( 1,  4):
     for j  in  range( 1,  4):
         print( f" {i} *  {j} =  {i * j}", end= "  ")
     print()  # 换行

输出:


1 * 1 = 1  1 * 2 = 2  1 * 3 = 3  

2 * 1 = 2  2 * 2 = 4  2 * 3 = 6  
3 * 1 = 3  3 * 2 = 6  3 * 3 = 9

6. 实用技巧

遍历时获取索引


fruits = [
"苹果", 
"香蕉", 
"橙子"]

for index, fruit  in  enumerate(fruits):
     print( f"索引  {index}:  {fruit}")

输出:


索引 0: 苹果

索引 1: 香蕉
索引 2: 橙子

同时遍历多个序列


names = [
"Alice", 
"Bob", 
"Charlie"]

ages = [ 25,  30,  35]
for name, age  in  zip(names, ages):
     print( f" {name} 今年  {age} 岁")

输出:


Alice 今年 25 岁

Bob 今年 30 岁
Charlie 今年 35 岁

错误与异常

在 Python 编程中,错误主要分为两类: 语法错误(Syntax Errors) 和 **异常(Exceptions)**。理解它们的区别和处理方法对于编写健壮的程序至关重要。

1. 语法错误 (Syntax Errors)

语法错误发生在 Python 解释器解析代码时,发现代码不符合 Python 的语法规则。这类错误会在程序运行前就被检测出来,导致程序无法启动。

常见的语法错误示例:



# 1. 缺少冒号

if x >  5
     print( "x is greater than 5")

# 2. 括号不匹配
print( "Hello World"

# 3. 缩进错误
if x >  5:
print( "x is greater than 5")  # 缺少缩进

# 4. 引号不匹配
message =  "Hello World'

语法错误的特点:

  • • 发生在程序运行之前
  • • Python 解释器会指出错误的行号和类型
  • • 必须修正后程序才能运行

2. 异常 (Exceptions)

异常是在程序运行过程中发生的错误,此时代码的语法是正确的,但在执行时遇到了问题(如除零、访问不存在的文件等)。

常见的异常类型:

异常类型 描述 示例
ZeroDivisionError 除以零 10 / 0
NameError 变量名未定义 print(undefined_variable)
TypeError 操作或函数应用于不适当类型的对象 "hello" + 5
ValueError 操作或函数接收到类型正确但值不合适的参数 int("hello")
IndexError 序列中没有此索引 my_list[10](列表长度不足)
KeyError 字典中没有此键 my_dict["missing_key"]
FileNotFoundError 文件未找到 open("nonexistent.txt")

异常示例:



# ZeroDivisionError

print( 10 /  0)   # ZeroDivisionError: division by zero

# ValueError
int( "hello")    # ValueError: invalid literal for int() with base 10: 'hello'

# IndexError
my_list = [ 1,  2,  3]
print(my_list[ 5])   # IndexError: list index out of range

3. 异常处理

Python 提供了  try-except 语句来处理异常,让程序在遇到错误时不会崩溃,而是执行预设的错误处理代码。

基本语法:



try:

     # 可能出现异常的代码
    可能出错的代码
except ExceptionType:
     # 处理特定异常的代码
    错误处理代码
except AnotherExceptionType:
     # 处理另一种异常
    错误处理代码
else:
     # 没有异常时执行的代码(可选)
    无异常时的代码
finally:
     # 无论是否有异常都会执行的代码(可选)
    最终清理代码

示例:



# 基本异常处理

try:
    x =  int( input( "请输入一个数字: "))
    result =  10 / x
     print( f"结果是:  {result}")
except ValueError:
     print( "输入的不是有效数字!")
except ZeroDivisionError:
     print( "不能除以零!")
except Exception  as e:
     print( f"发生了未预期的错误:  {e}")
else:
     print( "计算成功完成!")
finally:
     print( "程序执行完毕。")


# 捕获所有异常

try:
     # 一些可能出错的代码
    file =  open( "nonexistent.txt",  "r")
except:
     print( "发生了某种错误!")


# 捕获异常对象

try:
    numbers = [ 1,  2,  3]
     print(numbers[ 10])
except IndexError  as e:
     print( f"索引错误:  {e}")

4. 抛出异常

可以使用  raise 语句手动抛出异常。



def 
validate_age(
age):

     if age <  0:
         raise ValueError( "年龄不能为负数")
     if age >  150:
         raise ValueError( "年龄不能超过150")
     return  True

try:
    validate_age(- 5)
except ValueError  as e:
     print( f"验证失败:  {e}")

5. 自定义异常

可以创建自定义异常类来处理特定的错误情况。



class 
CustomError(
Exception):

     """自定义异常类"""
     pass

class  AgeError( Exception):
     """年龄相关的异常"""
     def  __init__( self, message):
         self.message = message
         super().__init__( self.message)

try:
     raise AgeError( "年龄不在有效范围内")
except AgeError  as e:
     print( f"自定义异常:  {e.message}")

6. 最佳实践

  1. 1. 具体化异常处理:尽量捕获具体的异常类型,而不是使用通用的  except。
  2. 2. 避免空的 except 块:至少要记录错误或采取适当的措施。
  3. 3. 使用 finally 进行清理:在  finally 块中进行资源清理工作。
  4. 4. 不要忽略异常:即使不处理,也要记录下来。


# 好的做法

try:
    file =  open( "data.txt",  "r")
    content = file.read()
except FileNotFoundError:
     print( "文件未找到")
except PermissionError:
     print( "没有权限访问文件")
finally:
     if  'file'  in  locals()  and  not file.closed:
        file.close()

总结

本文主要对python的条件循环以及错误语法的叙述与实践,下一章节会学习python的基本数据结构,以及基本数据结构的用法,它们之间的相互转换,和迭代生成。

资料关注

相关资料全部免费获取:
欢迎关注公众号:咚咚王

艺术二维码.png

《Python编程:从入门到实践》
《利用Python进行数据分析》
《算法导论中文第三版》
《概率论与数理统计(第四版) (盛骤) 》
《程序员的数学》
《线性代数应该这样学第3版》
《微积分和数学分析引论》
《(西瓜书)周志华-机器学习》
《TensorFlow机器学习实战指南》
《Sklearn与TensorFlow机器学习实用指南》
《模式识别(第四版)》
《深度学习 deep learning》伊恩·古德费洛著 花书
《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》
《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen) 》
《自然语言处理综论 第2版》
《Natural-Language-Processing-with-PyTorch》
《计算机视觉-算法与应用(中文版)》
《Learning OpenCV 4》
《AIGC:智能创作时代》杜雨+&+张孜铭
《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》
《从零构建大语言模型(中文版)》
《实战AI大模型》
《AI 3.0》

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70048224/viewspace-3099429/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
深耕人工智能领域,做你的随身笔记。

注册时间:2025-10-26

  • 博文量
    47
  • 访问量
    46030