【🧐小白极速入门必备,6000字+】Python基础内容整理

75 阅读9分钟

开始发车

一、变量和数据类型

  1. 变量赋值
# 整数
x = 10

# 浮点数
y = 3.14

# 字符串
name = "jiang"

# 布尔值
is_true = True
  1. 数据类型

    • 整数(int)
    • 浮点数(float)
    • 字符串(str)
    • 布尔值(bool)
    • 列表(list)
    • 元组(tuple)
    • 字典(dict)
    • 集合(set)

二、条件语句

  1. if 语句
if x > 5:
    print("x is greater than 5")
  1. elif 和 else
if x > 10:
    print("x is greater than 10")
elif x > 5:
    print("x is between 5 and 10")
else:
    print("x is less than or equal to 5")

三、循环

  1. for 循环
for i in range(5):
    print(i)     # 输出0,1,2,3,4
    # 注意,range内的范围是左闭右开的,没有规定左边界就从0开始
  1. while 循环
i = 0
while i < 5:
    print(i)
    i += 1

四、函数

def greet(name):
    print("Hello, " + name + "!")

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

五、列表和元组

  1. 列表
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")  # 添加元素
print(fruits[0])  # 访问第一个元素
  1. 元组
colors = ("red", "green", "blue")
# ⚠️注意:元组是不可变的

六、字典

person = {
    "name": "jiang",
    "age": 23,
    "city": "泉州"
}
print(person["name"])  # 输出:jiang

七、文件操作

# 打开文件
file = open("example.txt", "r")

# 读取文件内容
content = file.read()
print(content)

# 关闭文件
file.close()

八、模块和包

Python通过模块和包来组织代码。你可以使用import语句来导入模块或包中的功能。

import math
print(math.sqrt(16))  # 输出:4.0

九、异常处理

Python使用try/except语句块来处理程序运行时可能出现的异常情况。

try:
    # 尝试执行的代码块
    result = 10 / 0
except ZeroDivisionError:
    # 当发生除以零错误时执行的代码块
    print("Cannot divide by zero!")

你还可以使用finally子句来执行无论如何都需要运行的代码,比如资源清理操作。

十、列表推导式(List Comprehensions)

列表推导式是一种简洁地创建列表(注意区分列表和元组,元组是不可变的!!🧐)的方法。

# 创建一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares)  # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

十一、字典推导式(Dictionary Comprehensions)

类似地,字典推导式可以简洁地创建字典。

# 创建一个字典,其中键是1到5的数字,值是它们的平方
squares_dict = {x: x**2 for x in range(1, 6)}
print(squares_dict)  # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

十二、生成器(Generators)

生成器是一种特殊类型的迭代器,它使用yield关键字而不是return来返回值。它们用于表示一个只能遍历一次的数据流。

# 创建一个生成器函数,产生1到5的平方
def square_generator(n):
    for i in range(1, n+1):
        yield i**2

# 使用生成器
gen = square_generator(5)
print(next(gen))  # 输出: 1
print(next(gen))  # 输出: 4
print(list(gen))  # 输出: [9, 16, 25]

十三、Lambda 函数

Lambda 函数是一种小型匿名函数,可以用作其他函数的参数。

# 定义一个lambda函数,计算两个数的和
add = lambda x, y: x + y
print(add(3, 5))  # 输出: 8

十四、类与对象(面向对象编程)

Python支持面向对象编程,允许你定义类来创建对象。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def greet(self):
        print(f"Hello, my name is {self.name} and I'm {self.age} years old.")

# 创建Person类的对象
bob = Person("jiang", 23)
bob.greet()  # 输出: Hello, my name is jiang and I'm 23 years old.

# 在Python中,字符串前的`f`或`F`前缀表示这是一个格式化字符串字面量(formatted string literal)
# 也叫做f-string。f-string是Python 3.6及以上版本中引入的一种新的字符串格式化方法
# 它提供了一种简洁、易读的方式来嵌入表达式到字符串中

#在f-string中,花括号 `{}` 内可以放置变量、表达式或函数调用
#它们的值会在运行时被计算并插入到字符串的相应位置

十五、装饰器(Decorators)

装饰器是一种修改函数或类行为的高级Python功能。它们允许你在不修改原函数或类代码的情况下,为其添加新功能。

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()
# 输出:
# Something is happening before the function is called.
# Hello!
# Something is happening after the function is called.

十六、上下文管理器与with语句

with语句用于简化资源管理的代码,如文件操作、网络连接等。它确保了在代码块执行完毕后,资源会被正确地清理和关闭。

with open('example.txt', 'r') as file:
    content = file.read()
# 文件会在此处自动关闭

十七、迭代器与可迭代对象

迭代器是实现了__iter__()__next__()方法的对象,它们可以在一个序列中遍历元素。可迭代对象则是任何可以返回迭代器的对象。

# 创建一个迭代器对象
my_iter = iter([1, 2, 3])
print(next(my_iter))  # 输出: 1
print(next(my_iter))  # 输出: 2

十八、枚举(Enumerations)

枚举是一种特殊的类,用于表示固定数量的常量集。

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

print(Color.RED)  # 输出: Color.RED——即枚举成员的名称
print(Color.RED.value)# 输出枚举成员的值

十九、生成器表达式(Generator Expressions)

生成器表达式类似于列表推导式,但它们返回的是一个生成器对象,用于按需生成元素,而不是一次性生成所有元素。

# 创建一个生成器表达式,产生1到10的平方
squares = (x**2 for x in range(1, 11)) # 记住左闭右开,其实就是[1,10]
print(next(squares))  # 输出: 1
print(list(squares))  # 输出: [4, 9, 16, 25, 36, 49, 64, 81, 100]

二十、动态类型

Python是一种动态类型的语言,这意味着你不需要在声明变量时指定其类型,Python解释器会在运行时自动确定。

“类型”通常指的是变量的数据类型。

有的编程语言要求我们在使用变量之前,必须先明确告诉它这个变量的类型,这就是所谓的“静态类型”。

常见的静态类型语言包括Java、C、C++等。

常见的动态类型语言有Python、JavaScript、Ruby等。

x = 10  # x 是整数
x = "Hello"  # x 现在是字符串

二十一、全局变量与局部变量

在函数内部定义的变量是局部变量,它们只在函数内部可见。在函数外部定义的变量是全局变量,它们在整个程序中都是可见的。

x = 10  # 全局变量

def my_function():
    x = 5  # 局部变量
    print(x)  # 输出: 5

my_function()
print(x)  # 输出: 10

二十二、输入与输出

Python提供了input()函数用于从用户那里获取输入,以及print()函数用于在屏幕上显示输出。

name = input("What is your name? ")
print("Hello, " + name + "!")

二十三、模块搜索路径

Python解释器通过模块搜索路径来查找导入的模块。你可以通过修改sys.path来添加或删除搜索路径。

import sys
sys.path.append('/path/to/my/modules')

二十四、多进程与多线程

这一点属于操作系统的知识,刚开始看不懂问题也不大,挑能看懂的看

我后面也会再出一些关于线程、进程之类的文章😊

Python支持多进程和多线程编程,但需要注意的是,由于全局解释器锁(GIL)的存在,Python的标准线程库并不能实现真正的并行计算。对于需要并行处理的任务,可以考虑使用multiprocessing模块或第三方库如concurrent.futures

  • 多进程:每个进程有自己独立的地址空间(内存空间),因此进程间的数据是分开的,这使得进程间的数据共享变得复杂,通常需要使用进程间通信(IPC)机制,如管道、共享内存、消息队列等。同时,多进程在创建、销毁和切换时相对复杂,速度较慢,且占用内存较多,CPU利用率可能较低。然而,由于进程间相互独立,一个进程的异常或崩溃通常不会影响其他进程。

  • 多线程线程是进程的子集,多个线程存在于同一进程的上下文中(看不懂没事,我会解释一下),共享相同的地址空间和资源。因此,线程间的数据共享变得简单,但也需要更谨慎的同步来避免竞争条件。多线程在创建、销毁和切换时相对简单,速度快,且占用内存较少,CPU利用率较高。但是,由于线程间共享资源,一个线程的异常或崩溃可能会导致整个进程的崩溃。

多个线程存在于同一进程的上下文中是什么意思?🧐

用通俗的语言来说,就是这些线程都是“同一家人”,它们住在同一个“房子”(进程)里。这个“房子”里有共享的空间(内存),所以这些线程可以很方便地互相交换信息、使用共同的数据。但正因为它们住得这么近,有时候也可能会发生“争抢”或者“打架”的情况,这时候就需要一些“规则”(同步机制)来确保大家能够和谐共处。

二十五、Python的内置函数和模块

Python提供了大量的内置函数和模块,这些函数和模块为开发者提供了丰富的功能。例如,os模块提供了与操作系统交互的功能,sys模块提供了对Python解释器的一些变量和函数的访问,math模块包含了数学运算的函数等。

import os
import sys
import math

# 使用os模块获取当前工作目录
print(os.getcwd())

# 使用sys模块获取命令行参数
print(sys.argv)

# 使用math模块进行数学运算
print(math.sqrt(16))  # 输出: 4.0

最后

千里之行,始于足下。

这些内容对于Python这样一门优秀的语言来说当然是远远不够的。

但是希望这些内容能对你有所帮助!!

下次再见咯😁

溜🚗~