一、什么是Python

1.1 Python的诞生

1989年,为了打发圣诞节假期,Gudio van Rossum吉多· 范罗苏姆(龟叔)决心开发一个新的解释程序(Python雏形)

1991年,第一个Python解释器诞生

Python这个名字,来自龟叔所挚爱的电视剧Monty Python's Flying Circus

1.2 为什么学习Python

简单易学、全球第一、优雅、应用场景丰富(就业方向多)

1.3 Python的应用场景

常见的有:大数据、人工智能、后端开发、运维、测试等等

二、Python的基础语法

2.1字面量

2.1.1 什么是字面量

在代码中,被写下来的固定的值(数据),叫做字面量

"abcd"
1
3.6

2.1.2 字面量类型

同时也是值(数据)类型

2.1.3 什么是字符串

注:先简单提出概念,方便写简易的代码,后续字符串有详解

字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串

如:

"abcde"

"世界真美好"

"123456大揭秘"

都是字符串

Python中,字符串需要用双引号("字符串内容")包围起来

被引号包围起来的,都是字符串

注:实际使用字符串时,无论是单引号,双引号,还是三引号都可以

即:字符串有三种不同的定义方式

三引号定义法,表示在一堆三个双引号的范围内,均是字符串(可以换行)

2.2 注释

2.2.1 Python注释示例

单行注释以#开头,通常用于简短说明:

# 计算两个数的和
result = a + b

多行注释可以用连续的#或三引号'''/""",适合函数说明:

def calculate_sum(x, y):
    '''
    计算两个数字的和
    参数:
        x (int): 第一个加数
        y (int): 第二个加数
    返回:
        int: 两数之和
    '''
    return x + y

行尾注释用于解释特定代码:

threshold = 100  # 设置系统阈值

注释规范建议:

  • 公共函数/类建议写docstring
  • 复杂逻辑需要注释说明
  • 避免无意义的注释
  • 注释与代码同步更新

2.3 输入与输出

2.3.1 Python 输入与输出基础

Python 提供了多种方式处理输入和输出操作,包括标准输入输出、文件操作等。

标准输入输出

使用 input() 函数获取用户输入,print() 函数输出内容到控制台。

# 获取用户输入
user_input = input("请输入内容: ")

# 输出内容
print("你输入的内容是:", user_input)

文件读写

通过 open() 函数打开文件,使用 read()write() 等方法进行文件操作。

# 写入文件
with open("example.txt", "w") as file:
    file.write("Hello, World!")

# 读取文件
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

格式化输出

使用 f-string 或 format() 方法进行格式化输出。

name = "Alice"
age = 25

# f-string 格式化
print(f"姓名: {name}, 年龄: {age}")

# format() 方法
print("姓名: {}, 年龄: {}".format(name, age))

多行输入

处理多行输入时,可以使用循环或列表推导式。

# 多行输入示例
lines = []
while True:
    line = input()
    if line == "":
        break
    lines.append(line)

print("输入的内容:")
for line in lines:
    print(line)

二进制文件操作

处理二进制文件时,使用 "rb""wb" 模式。

# 写入二进制文件
with open("binary.bin", "wb") as file:
    file.write(b"\x48\x65\x6C\x6C\x6F")

# 读取二进制文件
with open("binary.bin", "rb") as file:
    data = file.read()
    print(data)

异常处理

在文件操作中,建议使用 try-except 处理可能的异常。

try:
    with open("nonexistent.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("文件不存在")

2.4 变量的定义与使用

2.4.1 Python变量定义与使用

变量定义
Python中变量通过赋值语句直接创建,无需显式声明类型。变量名需遵循以下规则:

  • 以字母或下划线开头
  • 仅包含字母、数字和下划线
  • 区分大小写
  • 避免使用Python关键字(如iffor等)

示例代码:

name = "Alice"          # 字符串类型变量
age = 25                # 整数类型变量
price = 19.99           # 浮点数类型变量
is_active = True        # 布尔类型变量

变量类型动态性
Python变量类型可随时改变,由赋值决定当前类型:

var = 100       # 初始为整数
var = "text"    # 变为字符串
var = [1, 2]    # 变为列表

多变量赋值
支持同时为多个变量赋值:

x, y, z = 1, 2, 3           # 分别赋值
a = b = c = "same_value"    # 链式赋值

变量命名规范

  • 使用小写字母和下划线组合(snake_case)
  • 常量通常全大写(如MAX_SIZE
  • 避免单字符变量名(循环计数器除外)

示例:

user_count = 10
PI = 3.14159
for i in range(5): pass

变量作用域

  • 局部变量:函数内定义的变量,仅在函数内有效
  • 全局变量:函数外定义的变量,需用global关键字在函数内修改

示例:

global_var = "global"

def func():
    local_var = "local"
    global global_var
    global_var = "changed"

删除变量
使用del语句释放变量:

temp = "data"
del temp       # 删除后访问会报NameError

2.5 基础类型与运算符

2.5.1 Python 基础类型

Python 中的基础数据类型包括整数(int)、浮点数(float)、布尔值(bool)、字符串(str)和空值(None)。这些类型是构建更复杂数据结构的基础。

整数用于表示整数值,例如 10-5。浮点数用于表示带有小数点的数值,例如 3.14-0.001。布尔值只有两个取值:TrueFalse,通常用于逻辑判断。

字符串是由字符组成的序列,可以用单引号或双引号表示,例如 'hello'"world"。空值 None 表示没有值或缺失值,常用于初始化变量或函数返回值。

2.5.2 Python 运算符

Python 提供了多种运算符,包括算术运算符、比较运算符、逻辑运算符和赋值运算符。

算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)、整除(//)、取模(%)和幂运算(**)。例如:

5 + 3   # 结果为 8
10 / 3  # 结果为 3.333...
10 // 3 # 结果为 3
2 ** 3  # 结果为 8

比较运算符用于比较两个值,返回布尔值。包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。例如:

5 == 5  # True
5 != 3  # True
10 > 5  # True

逻辑运算符包括与(and)、或(or)和非(not),用于组合多个条件。例如:

True and False  # False
True or False   # True
not True        # False

赋值运算符用于为变量赋值,例如 =+=-=。例如:

x = 5
x += 3  # x 变为 8

2.5.3 类型转换

Python 允许在不同类型之间进行转换。常用的类型转换函数包括 int()float()str()bool()。例如:

int("10")    # 结果为 10
float(5)     # 结果为 5.0
str(100)     # 结果为 "100"
bool(0)      # 结果为 False

2.5.4 运算符优先级

运算符的优先级决定了表达式中运算的顺序。优先级从高到低依次为:

  1. 括号 ()
  2. 幂运算 **
  3. 乘法 *、除法 /、取模 %、整除 //
  4. 加法 +、减法 -
  5. 比较运算符
  6. 逻辑运算符

例如:

5 + 3 * 2   # 结果为 11
(5 + 3) * 2 # 结果为 16

2.6 基本操作

2.6.1 Python 字符串基本操作

字符串是 Python 中最常用的数据类型之一,可以通过单引号或双引号创建。

创建字符串

str1 = 'Hello'
str2 = "World"

字符串拼接

combined = str1 + " " + str2  # 输出: 'Hello World'

字符串长度

length = len(str1)  # 输出: 5

字符串索引和切片

char = str1[1]      # 输出: 'e'
substring = str1[1:4]  # 输出: 'ell'

字符串方法

upper_str = str1.upper()  # 转换为大写: 'HELLO'
lower_str = str1.lower()  # 转换为小写: 'hello'
stripped = "  hello  ".strip()  # 去除两端空格: 'hello'

2.6.2 Python 数组基本操作

在 Python 中,数组通常使用 array 模块或 numpy 库实现,但列表更常用。

创建数组(使用 array 模块)

import array
arr = array.array('i', [1, 2, 3])  # 'i' 表示整数类型

访问元素

element = arr[1]  # 输出: 2

修改元素

arr[1] = 5  # 数组变为 [1, 5, 3]

数组长度

length = len(arr)  # 输出: 3

2.6.3 Python 列表基本操作

列表是 Python 中最常用的数据结构之一,可以包含不同类型的元素。

创建列表

lst = [1, 2, 3, 'a', 'b']

列表拼接

new_lst = lst + [4, 5]  # 输出: [1, 2, 3, 'a', 'b', 4, 5]

列表长度

length = len(lst)  # 输出: 5

列表索引和切片

element = lst[2]       # 输出: 3
sublist = lst[1:4]     # 输出: [2, 3, 'a']

列表方法

lst.append(6)        # 添加元素到末尾: [1, 2, 3, 'a', 'b', 6]
lst.remove('a')      # 移除第一个匹配项: [1, 2, 3, 'b', 6]
lst.pop(1)           # 移除索引为1的元素: [1, 3, 'b', 6]

2.6.4 Python 字典基本操作

字典是键值对的集合,键必须是不可变类型(如字符串、数字)。

创建字典

dict1 = {'name': 'Alice', 'age': 25}

访问元素

value = dict1['name']  # 输出: 'Alice'

修改或添加元素

dict1['age'] = 26      # 修改值
dict1['city'] = 'NY'   # 添加新键值对

字典长度

length = len(dict1)  # 输出: 3

字典方法

keys = dict1.keys()    # 获取所有键: dict_keys(['name', 'age', 'city'])
values = dict1.values()  # 获取所有值: dict_values(['Alice', 26, 'NY'])

2.6.5 Python 集合基本操作

集合是无序且不重复的元素集合,支持数学上的集合操作。

创建集合

set1 = {1, 2, 3, 3}  # 输出: {1, 2, 3}(自动去重)

添加元素

set1.add(4)  # 集合变为 {1, 2, 3, 4}

移除元素

set1.remove(3)  # 集合变为 {1, 2, 4}

集合操作

set2 = {3, 4, 5}
union = set1 | set2       # 并集: {1, 2, 3, 4, 5}
intersection = set1 & set2  # 交集: {4}
difference = set1 - set2    # 差集: {1, 2}

集合长度

length = len(set1)  # 输出: 3

2.7 流程控制

2.7.1 Python流程控制基础

Python的流程控制主要包括条件语句和循环语句,用于控制代码的执行顺序和逻辑分支。

条件语句(if-elif-else)
x = 10
if x > 0:
    print("x是正数")
elif x < 0:
    print("x是负数")
else:
    print("x是零")
循环语句(for/while)
# for循环遍历序列
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# while循环
count = 0
while count < 5:
    print(count)
    count += 1

2.7.2 流程控制进阶用法

循环控制语句
# break终止循环
for i in range(10):
    if i == 5:
        break
    print(i)

# continue跳过当前迭代
for i in range(10):
    if i % 2 == 0:
        continue
    print(i)
嵌套循环
for i in range(3):
    for j in range(2):
        print(f"i={i}, j={j}")
异常处理流程控制
try:
    result = 10 / 0
except ZeroDivisionError:
    print("不能除以零")
finally:
    print("执行完成")

2.7.3 流程控制最佳实践

使用列表推导式简化循环:

squares = [x**2 for x in range(10)]

使用enumerate获取索引和值:

for index, value in enumerate(['a', 'b', 'c']):
    print(index, value)

使用zip并行迭代多个序列:

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(name, age)

更多推荐