首页 > 编程语言 >Python学习(五)——配套《PyTorch深度学习实战》

Python学习(五)——配套《PyTorch深度学习实战》

时间:2025-01-05 18:33:45浏览次数:1  
标签:函数 Python list 学习 PyTorch 循环 参数 print

1. Python的流程控制

tips:我使用的Python3.9版本,if、else是要加:的
Python的流程控制主要通过条件语句和循环语句来实现,它们允许程序根据特定的条件执行不同的代码块。以下是Python中常用的流程控制结构:

条件语句(if-elif-else)

条件语句允许程序根据条件的真假来选择执行不同的代码块。

x = 10
if x > 5:
    print("x 大于 5")
elif x == 5:
    print("x 等于 5")
else:
    print("x 小于 5")

循环语句

循环语句允许重复执行一段代码,直到满足某个条件。

for循环

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

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

while循环

while循环会持续执行,直到指定的条件变为假。

count = 1
while count <= 5:
    print(count)
    count += 1

循环控制语句

在循环中,有时需要提前退出循环或跳过当前迭代。

break

break语句用于立即终止循环。

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

continue

continue语句用于跳过当前迭代的剩余代码,并继续下一次迭代。

for i in range(1, 10):
    if i % 2 == 0:
        continue
    print(i)

条件表达式(三元运算符)

Python 3.9+ 引入了条件表达式,也称为三元运算符,它允许在一行内完成条件判断和赋值。

result = "positive" if x > 0 else "non-positive"

异常处理

异常处理允许程序在遇到错误时采取特定的处理措施,而不是直接崩溃。

try:
    # 尝试执行的代码
    result = 10 / 0
except ZeroDivisionError:
    # 当发生除以零的错误时执行的代码
    print("除数不能为零")
finally:
    # 无论是否发生异常都会执行的代码
    print("这是 finally 块")

这些流程控制结构是Python编程的基础,它们使得程序能够根据不同的条件和情况灵活地执行代码。


2. Python中调用参数时对默认参数的重新定义

在Python中,函数可以定义带有默认值的参数,这被称为默认参数。当你调用一个函数时,你可以对这些默认参数进行重新定义,以改变函数的行为。以下是如何定义和调用带有默认参数的函数,以及如何重新定义这些参数的示例:

定义带有默认参数的函数

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

在这个例子中,greet函数有两个参数:namemessagemessage参数有一个默认值"Hello"

调用函数时不重新定义默认参数

greet("Alice")  # 输出: Hello, Alice!

在这个调用中,我们没有提供message参数,所以它使用默认值"Hello"

调用函数时重新定义默认参数

greet("Bob", "Good morning")  # 输出: Good morning, Bob!

在这个调用中,我们提供了一个新的message"Good morning",这将覆盖函数定义中的默认值。

注意事项

  1. 参数顺序:在调用函数时,你可以按顺序提供参数,也可以通过参数名来指定参数值。如果使用参数名,可以不按顺序提供参数。

  2. 只覆盖特定默认参数:你可以只覆盖某些默认参数,而其他参数仍然使用默认值。

def introduce(name, prefix="Mr.", suffix="Esq."):
    print(f"{prefix} {name} {suffix}")

introduce("John", suffix="PhD")  # 输出: Mr. John PhD
  1. 不可变默认参数:默认参数是不可变的,这意味着如果你使用可变类型(如列表或字典)作为默认参数,可能会遇到意外的行为。例如,如果你在函数内部修改了这个默认参数,这个修改将会影响到后续的函数调用。
def append_to_list(element, my_list=[]):
    my_list.append(element)
    return my_list

print(append_to_list(1))  # 输出: [1]
print(append_to_list(2))  # 输出: [1, 2],这可能会让你意外,因为列表被修改了

为了避免这个问题,可以提供一个不可变值作为默认参数,并在函数内部创建一个新的可变对象。

def append_to_list(element, my_list=None):
    if my_list is None:
        my_list = []
    my_list.append(element)
    return my_list

通过这种方式,每次调用函数时都会创建一个新的列表,从而避免了意外的副作用。


3. 这个*是什么意思

gg
在Python中,* 用于函数定义中的参数,表示可变参数(Variable arguments)。具体来说,*ys 表示函数可以接受任意数量的额外参数,这些参数会被打包成一个元组(tuple)。

在你提供的函数定义中:

def add(x, *ys):
    print(x, ys)
  • x 是一个固定参数,调用函数时必须提供这个参数。
  • *ys 是一个可变参数,它允许你传递任意数量的额外参数给函数。这些参数在函数内部以元组的形式存在。

例如,你可以这样调用这个函数:

add(1, 2, 3, 4)

这将输出:

1 (2, 3, 4)

在这里,1x 的值,而 2, 3, 4 被打包在元组 (2, 3, 4) 中,作为 ys 的值。

这种可变参数的设计使得函数更加灵活,能够处理不同数量的输入参数。在函数内部,你可以通过遍历 ys 元组来访问这些额外的参数。例如,如果你想将 xys 中的所有元素相加,可以这样做:

def add(x, *ys):
    total = x
    for y in ys:
        total += y
    print(total)

add(1, 2, 3, 4)  # 输出 10

这样,无论传入多少个额外的参数,函数都能正确地将它们与 x 相加。


4. 图中的用法

ff
在Python中,while True: 是一个无限循环的语法结构,它会让循环体内的代码一直执行,直到遇到break语句或者程序被外部因素中断。这个结构常用于需要持续运行直到满足特定条件的情况。

以下是while True:循环的基本用法:

while True:
    # 循环体内的代码
    # ...
    if some_condition:
        break  # 当满足某个条件时退出循环

在这个循环中,some_condition 是一个需要定义的条件,当这个条件被满足时,break语句会执行,从而退出循环。如果没有break语句,循环将无限进行下去。

如果你需要从图片中提取文本,你可以使用光学字符识别(OCR)技术。Python中有一个流行的OCR库叫做pytesseract,它可以与Tesseract OCR引擎一起使用来提取图片中的文本。以下是一个使用pytesseract提取图片文本的基本示例:

from PIL import Image
import pytesseract

# 确保你已经安装了Tesseract OCR并且设置了路径
# pytesseract.pytesseract.tesseract_cmd = r'路径到你的Tesseract可执行文件'

# 打开图片文件
image = Image.open('path_to_your_image.png')

# 使用pytesseract提取文本
text = pytesseract.image_to_string(image)

print(text)

请注意,使用pytesseract之前,你需要在系统中安装Tesseract OCR引擎,并且可能需要根据你的系统配置设置tesseract_cmd的路径。此外,PIL(Python Imaging Library)或者它的分支Pillow也需要被安装来处理图片文件。

标签:函数,Python,list,学习,PyTorch,循环,参数,print
From: https://www.cnblogs.com/jzzg/p/18653710

相关文章

  • 基于Python+flask的豆瓣音乐聚类分析可视化
    一、项目概述项目名称:豆瓣音乐聚类分析可视化项目简介:该项目基于Flask框架开发,用于提供音乐数据分析与可视化功能,涉及用户管理、音乐数据爬取、聚类分析及其可视化展示。系统包含用户和管理员角色,提供丰富的页面功能。主要功能:用户登录与注册音乐数据展示与搜索管理......
  • 基于Python+flask的电影数据可视化分析
    项目概述该项目基于Python的Flask框架开发,用于电影数据的分析与可视化,主要功能包括用户管理、数据采集与分析、可视化展示。运行环境开发语言:Python3.8+主要依赖库:Flask(Web框架)PyMySQL(数据库连接)BeautifulSoup(HTML解析)Jieba/NLTK/SnowNLP(自然语言处理)W......
  • 如何学好PaddlePaddle深度学习
    PaddlePaddle、Tensoflow、PyTorch三个框架里最熟的是PaddlePaddle,在上面花的时间也最多,回顾来看,其实也投入了不少冗余的时间。写这篇文章希望能帮助到正在学习PaddlePaddle的同学们。1.学习AI最冗余的时间其实在数学,8年前开始学习机器学习的时候从李航的《统计学习方法》和......
  • 【学习心得】比较Paddle、Tensorflow和Pytorch
    PaddlePaddle学的时间最长,买了官方的书,官方的在线学习看了两遍。前后大概一年的跨度,看完第一遍后大半年又看了一遍。12月末的时候去参加了百度在上海张江科学大会堂的一个大会。看完第二遍PaddlePaddle决定把Tensorflow也了解下,遇到了蜥蜴书,真心觉得不错的书,前后花了两个月时间......
  • 2024-2025-1 20241311 《计算机基础与程序设计》第十五周学习总结
    学期2024-2025-1学号20241311《计算机基础与程序设计》第十五周学习总结作业信息这个作业属于哪个课程<班级的链接>2024-2025-1-计算机基础与程序设计这个作业要求在哪里<作业要求的链接>2024-2025-1计算机基础与程序设计第十五周作业)这个作业的目标<写上具......
  • 【零基础到精通】AI大模型技术基础学习路线:掌握必备能力,轻松成为大模型专家!
    “**大模型技术的基础学习,是未来在大模型领域能否站稳脚跟的关键**”随着大模型技术的发展,越来越多的人开始进入大模型领域,但大模型作为一门技术,因此它的本质上是一个工具,因此这也让学习大模型有了不同的学习方向。从工具的角度来看,学习一个工具主要有两个方向,一个是使......
  • 【深度学习系统】Lecture 4 - Automatic Differentiation
    1.Generalintroductiontodifferentdifferentiationmethods在深入介绍自动微分方法之前,我们先来认识一件事情:为什么我们要提出不同的微分方法呢?这就不得不提到微分在机器学习中所发挥作用的板块——计算当前需要优化的损失函数......
  • 2024-2025-1 20241416《计算机基础与程序设计》第四周学习总结
    这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第四周作业这个作业的目标 学习门电路,组合电路,逻辑电路,冯诺依曼结构,CPU,内存,IO管理,嵌入式系统,并行结构,物理安全作业正文 https://www.cnblogs.com/rockytyh/p/1865347......
  • 2024-2025-1 20241421《计算机基础与程序设计》第四周学习总结
    2024-2025-120241421《计算机基础与程序设计》第四周学习总结作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(2024-2025-1计算机基础与程序设计第四周作业)这个作业的目标 门电路、组合电路、逻辑电路、......
  • Python数据结构与算法分析 第3版PDF、EPUB免费下载
    适读人群:1.希望学习数据结构和算法的Python用户;2.计算机专业的学生和老师。只有洞彻数据结构与算法,才能真正精通Python!热门计算机科学教材,华盛顿大学、北京大学等多家高校采用,让你在代码编写的战场上所向披靡!电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版......