当前位置: 首页 > article >正文

Pytorch深度学习教程_1_Python基础快速掌握

欢迎来到PyTorch深度学习教程系列!在本系列中,我们将从零开始学习如何使用PyTorch进行深度学习开发。本篇是系列的第一篇,我们将快速掌握Python编程基础,为后续的深度学习学习打下坚实的基础。

对于深度学习环境配置及pytorch的下载安装可以用我写的博客:

2025最新深度学习pytorch完整配置:conda/jupyter/vscode-CSDN博客

在后面的实践中会使用jupyter或者vscode,大家可以提前用这篇教程配置好!


快速掌握,核心在于快:把这些都运行一遍基本上是对python有了非常全面的认识了。

目录

1.数据类型

数字(Numbers)

字符串 (str)

布尔值 (bool)

2.数据结构:组织你的数据

列表 (Lists)

 元组 (Tuples)

字典 (Dictionaries)

集合 (Sets)

选择合适的数据结构

3.操作数据结构

访问元素

修改元素

添加和删除元素

迭代元素

4.控制流

条件语句

循环

break 和 continue 语句

常见问题和最佳实践

5.函数

定义函数

参数和实参

返回值

作用域和全局变量

递归函数

匿名函数(Lambda 函数)

6.面向对象编程

理解对象和类

关键 OOP 概念

创建对象

继承

多态

OOP 的好处

挑战和最佳实践

7.结语


1.数据类型

可以把数据类型看作Python程序的构建块。它们定义了你可以存储和操作的信息类型。理解这些基本数据类型对于有效的数据处理至关重要。

数字(Numbers)

整数 (int)‌:没有小数点的整数,例如 -2, 0, 5。
浮点数 (float)‌:有小数点的数字,例如 3.14, -2.5。
复数 (complex)‌:具有实部和虚部的数字,例如 2+3j。

x = 10  # 整数 (int)
y = 3.14  # 浮点数 (float)
z = 2 + 3j  # 复数 (complex)

字符串 (str)

字符串是字符的序列,用单引号或双引号括起来。

name = "Alice"  # 定义一个字符串
greeting = 'Hello, world!'  # 另一个字符串示例

布尔值 (bool)

布尔值表示真或假,只有两个值:True 和 False。

is_adult = True  # 布尔值 True
is_raining = False  # 布尔值 False

2.数据结构:组织你的数据

数据结构是存储数据集合的容器。Python提供了几种内置的数据结构。

列表 (Lists)

列表是有序的项目集合,可变(可以更改)。

fruits = ["apple", "banana", "cherry"]  # 定义一个列表

 元组 (Tuples)

元组是有序的项目集合,不可变(不能更改)。

colors = ("red", "green", "blue")  # 定义一个元组

字典 (Dictionaries)

字典是无序的键值对集合。

person = {"name": "Alice", "age": 30, "city": "New York"}  # 定义一个字典

集合 (Sets)

集合是无序的唯一元素集合。

numbers = {2, 3, 5, 7}  # 定义一个集合

选择合适的数据结构

选择数据结构取决于具体任务。

  • 列表:当你需要存储可以修改有序项目集合时使用。
  • 元组:当你需要存储不能修改有序项目集合时使用。
  • 字典:当你需要存储键值对以便高效查找时使用。
  • 集合:当你需要存储唯一元素并执行集合操作时使用。

3.操作数据结构

Python提供了多种方法和操作来处理数据结构。

访问元素

  • 列表和元组:使用索引访问元素。
  • 字典:使用键访问值。
print(fruits[0])  # 输出 "apple"
print(person["name"])  # 输出 "Alice"

修改元素

  • 列表和字典:可以修改元素。
fruits[1] = "orange"  # 修改列表中的元素
person["age"] = 31  # 修改字典中的值

添加和删除元素

  • 列表:使用 append()insert() 添加元素,使用 remove()pop() 删除元素。
  • 集合:使用 add() 添加元素,使用 remove() 或 discard() 删除元素。
  • 字典:使用新的键值对添加元素,使用 pop() 删除元素。
fruits.append("grape")  # 在列表末尾添加元素
numbers.add(11)  # 在集合中添加元素
del person["city"]  # 从字典中删除键值对

迭代元素

使用循环遍历数据结构中的元素。

for fruit in fruits:
    print(fruit)  # 遍历列表并打印每个元素

for key, value in person.items():
    print(key, ":", value)  # 遍历字典并打印键值对

4.控制流

条件语句

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

  • if 语句:如果条件为真,执行代码块。

age = 25
if age >= 18:
    print("你已经成年了。")
  • if-else 语句:如果条件为真,执行一段代码;否则,执行另一段代码。
age = 17
if age >= 18:
    print("你已经成年了。")
else:
    print("你还是未成年人。")
  • elif 语句:用于检查多个条件。
score = 85
if score >= 90:
    print("优秀!")
elif score >= 80:
    print("很好!")
else:
    print("需要改进。")

循环

循环允许程序重复执行某段代码。

  • for 循环:遍历序列(如列表、元组、字符串等)。

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
  • while 循环:只要条件为真,就重复执行代码块。
count = 0
while count < 5:
    print(count)
    count += 1

break 和 continue 语句

  • break:终止循环。
  • continue:跳过当前迭代,继续下一次迭代。
numbers = [1, 2, 3, 4, 5]
for number in numbers:
    if number == 3:
        break
    print(number)

常见问题和最佳实践

缩进:Python 使用缩进来定义代码块,通常使用 4 个空格。
无限循环:使用 while 循环时,确保条件最终会变为假。
清晰性:使用有意义的变量名和注释,提高代码可读性。
嵌套循环:避免过多嵌套,保持代码可维护性。

 

5.函数

函数是程序中的小程序,用于封装特定任务,使代码更有序、可重用且易于理解。

定义函数

使用 def 关键字定义函数,后跟函数名、括号内的参数和冒号。函数体需要缩进。

def greet(name):
    """向某人问好。"""
    print("你好,", name, "!")

参数和实参

  • 参数:函数定义中定义的变量。
  • 实参:调用函数时传递的值。
def add(x, y):
    """加法函数。"""
    return x + y

result = add(3, 4)  # 调用函数并传递实参
print(result)  # 输出:7

返回值

函数可以使用 return 语句返回值。

def square(number):
    """返回一个数的平方。"""
    return number * number

squared_value = square(5)
print(squared_value)  # 输出:25

作用域和全局变量

  • 局部变量:在函数内定义的变量。
  • 全局变量:在函数外定义的变量。
global_variable = 10

def my_function():
    local_variable = 5
    print(global_variable)  # 访问全局变量
    # print(local_variable)  # 在作用域外访问局部变量会引发错误

my_function()

递归函数

函数可以调用自身,形成递归函数。

def factorial(n):
    """计算非负整数的阶乘。"""
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

匿名函数(Lambda 函数)

使用 lambda 关键字定义匿名函数。

double = lambda x: x * 2
result = double(5)
print(result)  # 输出:10

通过掌握函数,你可以编写更清晰、高效且易于维护的 Python 代码。

6.面向对象编程

面向对象编程(OOP)是一种编程范式,围绕“对象”的概念旋转。它是一种强大的方法,用于建模现实世界中的实体及其交互。

理解对象和类

  • 对象:类的实例,表示现实世界的实体,具有属性(数据)和行为(方法)。
  • :创建对象的蓝图,定义其属性和方法。
class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

    def bark(self):
        print(f"{self.name} 汪汪叫!")

关键 OOP 概念

  • 封装:将数据(属性)和操作数据的方法捆绑在一个单元(对象)中。
  • 继承:创建新类(子类)继承现有类(父类)的属性和方法。
  • 多态:不同类型的对象可以像同一类型一样被对待。
  • 抽象:关注重要特征,隐藏实现细节。

创建对象

要创建对象,你需要实例化一个类。

my_dog = Dog("Buddy", "Golden Retriever")
my_dog.bark()  # 输出:Buddy 汪汪叫!

继承

class Mammal:
    def __init__(self, name):
        self.name = name

    def breathe(self):
        print(f"{self.name} 正在呼吸。")

class Cat(Mammal):
    def purr(self):
        print(f"{self.name} 在咕噜咕噜叫。")

class Dog(Mammal):
    def bark(self):
        print(f"{self.name} 正在汪汪叫。")

多态

def make_sound(animal):
    animal.make_sound()

cat = Cat("Whiskers")
dog = Dog("Buddy")

make_sound(cat)  # 输出:Whiskers 在咕噜咕噜叫。
make_sound(dog)  # 输出:Buddy 正在汪汪叫。

OOP 的好处

  • 代码复用性:继承促进代码复用。
  • 模块化:对象是自包含单元,使代码更易于管理。
  • 封装:保护数据免受意外修改。
  • 多态:使代码更灵活和可扩展。

挑战和最佳实践

  • 过度工程化:避免创建不必要的类。
  • 代码可读性:编写清晰简洁的代码,使用有意义的名称。
  • 测试:彻底测试你的面向对象代码。

通过理解和应用 OOP 原则,你可以创建更复杂且易于维护的 Python 程序。

7.结语

这样很快的就把python的整个框架学完了,当然,这个只供入门,熟能生巧是很重要的!

下次我们会深入一点,当然,你想直接开始深度学习,这很快了! 


http://www.kler.cn/a/546085.html

相关文章:

  • Python用PyMC3马尔可夫链蒙特卡罗MCMC对疾病症状数据贝叶斯推断
  • wps配置deepseek
  • Texas Moves to Regulate AI 德克萨斯州着手规范人工智能
  • 用户管理中心--注册登录功能的设计
  • 【弹性计算】弹性计算的技术架构
  • 单调队列与栈
  • 分享一些处理复杂HTML结构的经验
  • 闭源大语言模型的怎么增强:提示工程 检索增强生成 智能体
  • 如何在 ONLYOFFICE 编辑器中使用 DeepSeek
  • python class详解
  • 51单片机09 DS1302时钟
  • HTN77A0F:拥有强制脉宽调制的0.7A同步降压降压变换器资料参数
  • 2025最新深度学习pytorch完整配置:conda/jupyter/vscode
  • 解决DeepSeek服务器繁忙问题
  • Sentinel 持久化配置
  • 『大模型笔记』怎样让Ollama启动的大模型常驻内存(显存)?
  • MySQL-SQL
  • 记录阿里云CDN配置
  • 在1panel中安装 crmeb pro 的简单说明
  • Linux线程概念与线程操作