admin管理员组

文章数量:1541715

一、引言

在 2024 年,Python 依然是编程领域的闪耀之星。无论是数据分析、人工智能、Web 开发还是自动化任务,Python 都以其简洁高效的语法和强大的功能发挥着重要作用。本文将为你呈现超级完整的 Python 基础语法和知识点总结,助你轻松掌握这门热门语言。

本篇文章篇幅较长,希望能慢慢看完,文中提到的《Python语法及练习题》相关知识点,小尤已经整理成PDF,**需要的可以文末自取!

或者扫描下方二维码获取

Python 语言特点:

  1. 易于学习和阅读:Python 的设计哲学强调代码的可读性和简洁的语法(比如使用缩进来定义代码块,而不是大括号或关键字)。这使得 Python 成为初学者的理想选择,同时也便于经验丰富的开发者编写和维护代码。

  2. 解释型语言:Python 是解释型语言,这意味着你可以直接在 Python 解释器中运行代码,而无需事先编译成机器码。这种特性使得 Python 代码的开发和调试过程更加快速和灵活。

  3. 面向对象:Python 支持面向对象的编程范式,这意呀着你可以定义和使用类(class)和对象(object),以及它们的属性和方法。面向对象编程(OOP)有助于编写模块化、可重用的代码。

  4. 丰富的标准库和第三方库:Python 拥有庞大的标准库,提供了大量的模块和函数来支持各种任务,如文件操作、网络编程、文本处理、数据库交互等。此外,还有大量的第三方库和框架,如 NumPy、Pandas(用于数据处理和分析)、Django(Web 开发框架)、TensorFlow/PyTorch(机器学习库)等,极大地扩展了 Python 的应用领域。

  5. 跨平台:Python 代码可以在多种平台上运行,包括 Windows、macOS、Linux/Unix 等。这种跨平台性使得 Python 成为开发跨平台应用程序的理想选择。

  6. 可扩展性:Python 是一种可扩展的语言,这意味着你可以使用 C 或 C++(或其他语言)来编写 Python 模块的扩展,从而实现对性能的优化或访问低级系统接口。

  7. 动态类型系统:Python 使用动态类型系统,即变量的类型是在运行时确定的,而不是在编译时。这增加了 Python 的灵活性,但也需要注意类型错误的可能性。

  8. 强大的社区支持:Python 拥有庞大的社区和丰富的资源,包括官方文档、教程、书籍、博客、论坛和问答网站(如 Stack Overflow)。这些资源为 Python 开发者提供了广泛的支持和帮助。

  9. 免费和开源:Python 是一种自由软件,其源代码是开放的,并且由 Python 软件基金会(PSF)管理。任何人都可以自由地使用、复制、修改和分发 Python。

  10. 广泛的应用领域:由于 Python 的易用性和强大的库支持,它已经被广泛应用于 Web 开发、数据分析、人工智能、机器学习、自动化脚本、科学计算、网络爬虫、游戏开发等多个领域。

一、基础语法练习题

1. 编写一个程序,计算并打印出 1 到 100 之间所有能被 3 和 5 同时整除的数的和。答案解析:


sum_num = 0
for i in range(1, 101):
    if i % 3 == 0 and i % 5 == 0:
        sum_num += i
print(sum_num)

2. 给定一个字符串,将其中的元音字母(a, e, i, o, u)全部替换为大写的“V”。答案解析:


vowels = 'aeiou'
s = "This is a string."
new_s = ""
for char in s:
    if char.lower() in vowels:
        new_s += 'V'
    else:
        new_s += char
print(new_s)

3. 实现一个函数,接收一个整数参数 n,返回 n 的阶乘。答案解析:

def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n - 1)

二、变量与数据类型

1. 变量:

用于存储数据的标识符,可随时修改值。遵循一定命名规则,如由字母、数字和下划线组成,不能以数字开头,区分大小写。

2. 数据类型:

- 数字类型:

  • 整数(int):可表示正整数、负整数和零。

    • 浮点数(float):带有小数部分的数字。

    • 复数(complex):由实部和虚部组成。

  • 字符串(str):用单引号、双引号或三引号括起来的字符序列,可进行拼接、切片等操作。

  • 列表(list):可变的有序序列,可存储不同类型的数据,通过索引访问元素。

  • 元组(tuple):不可变的有序序列,一旦创建不能修改。

  • 集合(set):无序的不重复元素集合,支持集合运算。

  • 字典(dict):键值对的无序集合,通过键来访问值。

3.列表和字典练习题

1. 有一个列表 `[2, 5, 3, 8, 4, 6]`,请使用列表推导式生成一个新的列表,其中每个元素是原列表对应元素的平方减 1。答案解析:


original_list = [2, 5, 3, 8, 4, 6]
new_list = [i**2 - 1 for i in original_list]
print(new_list)

2. 给定一个字典,其中包含学生的姓名和他们的成绩。请找出成绩最低的学生的姓名。答案解析:


students = {'Alice': 85, 'Bob': 78, 'Charlie': 90, 'David': 72}
min_score = min(students.values())
for name, score in students.items():
    if score == min_score:
        print(name)
        break

3. 有两个列表,分别表示学生的姓名和他们的年龄。请创建一个字典,以学生姓名为键,年龄为值。答案解析:


names = ['Alice', 'Bob', 'Charlie']
ages = [20, 22, 19]
student_dict = {names[i]: ages[i] for i in range(len(names))}
print(student_dict)

三、运算符

1. 算术运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)、**(幂)、//(整除)。

2. 比较运算符:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。

**3. 逻辑运算符:**and(与)、or(或)、not(非)。

4. 赋值运算符:=、+=、-=、*=、/= 等,用于给变量赋值并进行运算。

(1)算术运算符练习题

1. 计算表达式 `3 + 4 * 2 - 6 / 3` 的结果。

答案解析:

- 先计算乘法和除法:`4 * 2 = 8`,`6 / 3 = 2`。

- 再计算加法和减法:`3 + 8 = 11`,`11 - 2 = 9`。

2. 已知变量 `x = 5`,计算 `x**2 + 3*x - 10` 的结果。

答案解析:

- `x**2 = 5**2 = 25`。

- `3*x = 3*5 = 15`。

- 则表达式结果为 `25 + 15 - 10 = 30`。

(2)比较运算符练习

1. 判断 `5 > 3 and 4 < 6` 的结果是 True 还是 False。

答案解析:

- `5 > 3` 为 True,`4 < 6` 为 True。

- `True and True` 结果为 True。

2. 已知 `x = 10`,`y = 8`,判断 `x!= y or x > y` 的结果。

答案解析:

- `x!= y` 为 True,`x > y` 为 True。

- `True or True` 结果为 True。

(3)逻辑运算符练习

1. 已知 `a = True`,`b = False`,计算 `not a and b` 的结果。

答案解析:

- `not a` 为 False。

- `False and False` 结果为 False。

2. 判断 `(3 > 2) and (5 < 6) or not (4 == 4)` 的结果。

答案解析:

- `3 > 2` 为 True,`5 < 6` 为 True,所以 `(3 > 2) and (5 < 6)` 为 True。

- `4 == 4` 为 True,`not (4 == 4)` 为 False。

- `True or False` 结果为 True。

(4)赋值运算符练习

1. 已知 `x = 5`,执行 `x += 3` 后,`x` 的值是多少?

答案解析:

- `x += 3` 相当于 `x = x + 3`。

- 原来 `x = 5`,则 `x = 5 + 3 = 8`。

2. 有变量 `y = 10`,执行 `y *= 2 - 1` 后,`y` 的值是多少?

答案解析:

- 先计算 `2 - 1 = 1`。 - 然后 `y *= 1`,即 `y = y * 1`。

- 原来 `y = 10`,所以结果为 `10 * 1 = 10`。

四、控制流语句

Python中的控制流语句是编程中用于控制程序执行流程的重要工具。它们允许程序根据条件、循环或其他逻辑来决定执行哪些代码块。Python中的控制流语句主要包括条件语句(if-elif-else)、循环语句(for循环和while循环)以及跳转语句(break、continue和pass)。下面将详细讲解这些控制流语句。

1. 条件语句(if-elif-else)

条件语句用于根据一个或多个条件来执行不同的代码块。Python中的条件语句以if开头,后面可以跟一个或多个elif(else if的缩写),以及一个可选的else

# 基本结构  
if 条件表达式:  
    # 条件为真时执行的代码  
elif 另一个条件表达式:  
    # 第一个条件为假且这个条件为真时执行的代码  
else:  
    # 所有条件都为假时执行的代码  
  
# 示例  
x = 10  
if x > 5:  
    print("x 大于 5")  
elif x == 5:  
    print("x 等于 5")  
else:  
    print("x 小于 5")
2. 循环语句

循环语句允许你重复执行一段代码直到满足某个条件。Python提供了两种基本的循环结构:for循环和while循环。

2.1 for循环

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

# 遍历列表  
fruits = ["apple", "banana", "cherry"]  
for fruit in fruits:  
    print(fruit)  
  
# 使用range()函数  
for i in range(5):  
    print(i)


2.2 while循环

while循环会在给定条件为真时重复执行一段代码块。

# 示例  
count = 0  
while count < 5:  
    print(count)  
    count += 1
3. 跳转语句

跳转语句用于改变程序正常的执行流程。

3.1 break

break语句用于立即退出循环,无论是for循环还是while循环。

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

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

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

pass语句是一个空操作;它什么也不做,只用作语法上需要语句的地方。3.3 pass
if True:  
    pass  # 什么都不做
总结

Python的控制流语句是编程中不可或缺的部分,它们允许你根据条件、循环或其他逻辑来控制程序的执行流程。通过熟练使用这些控制流语句,你可以编写出更加灵活和强大的Python程序。

五、函数

**1. 定义函数:**使用 def 关键字定义函数,包括函数名、参数和函数体。

2. 函数参数:

  • 位置参数:按照参数位置传递值。

  • 默认参数:在函数定义时指定默认值,调用时可省略。

  • 可变参数:*args 接收任意数量的位置参数,**kwargs 接收任意数量的关键字参数。

**3. 返回值:**使用 return 语句返回函数的结果,可以是单个值或多个值组成的元组。

——函数练习题

1. 编写一个函数,接收一个列表和一个整数参数 n,函数返回列表中所有大于 n 的元素组成的新列表。

答案解析:

def filter_list(lst, n):
    return [i for i in lst if i > n]

2. 实现一个函数,接收一个字符串参数,将其中的每个单词的长度作为新的列表元素返回。

答案解析:

def word_lengths(s):
    words = s.split()
    return [len(word) for word in words]

3. 写一个函数,判断一个给定的字符串是否是回文(正读和反读都一样)。

答案解析:



def is_palindrome(s):
    cleaned_s = ''.join(filter(str.isalnum, s)).lower()
    return cleaned_s == cleaned_s[::-1]

六、模块与包

**1. 模块:**一个包含 Python 代码的文件,可以被其他程序导入使用。

**2. 包:**一个包含多个模块的目录,用于组织和管理代码。

**3. 导入模块:**使用 import 语句导入模块或包中的特定部分,如 import module_name 或 from module_name import function_name。

(1)、模块导入练习题

1. 导入 Python 内置的`math`模块,并使用它计算半径为 5 的圆的面积。

答案解析:


import math

radius = 5
area = math.pi * radius ** 2
print(area)

2. 从`datetime`模块中导入`datetime`类,然后获取当前的日期和时间并打印出来。

答案解析:


from datetime import datetime

now = datetime.now()
print(f"当前日期和时间:{now}")

(2)、自定义模块练习

1. 创建一个名为`my_module.py`的模块,在其中定义一个函数`greet(name)`,该函数接收一个名字参数并打印出“Hello, [name]!”。然后在另一个脚本中导入这个模块并调用这个函数。

答案解析:

`my_module.py`内容:


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

调用脚本内容:


import my_module

my_module.greet("John")

2. 在一个模块中定义两个函数,一个函数计算两个数的和,另一个函数计算两个数的差。在另一个脚本中导入这个模块并分别调用这两个函数。

答案解析:

`my_operations.py`内容:

def add_numbers(a, b):
    return a + b

def subtract_numbers(a, b):
    return a - b

调用脚本内容:


import my_operations

sum_result = my_operations.add_numbers(10, 5)
diff_result = my_operations.subtract_numbers(10, 5)

print(f"和:{sum_result},差:{diff_result}")

(3)、包的组织练习

1. 创建一个名为`my_package`的包,在其中包含两个模块`module1.py`和`module2.py`。在`module1.py`中定义一个函数打印“Module 1”,在`module2.py`中定义一个函数打印“Module 2”。然后在一个脚本中导入这两个模块并分别调用它们的函数。

答案解析:

创建包结构如下:


my_package/
    __init__.py
    module1.py
    module2.py

`module1.py`内容:


def print_module1():
    print("Module 1")

`module2.py`内容:


def print_module2():
    print("Module 2")

调用脚本内容:


from my_package.module1 import print_module1
from my_package.module2 import print_module2

print_module1()
print_module2()

七、面向对象编程

**1. 类与对象:**定义类,创建对象,实现面向对象编程的封装、继承和多态特性。

**2. 方法与属性:**类中的函数称为方法,数据成员称为属性。

3. 构造函数:__init__方法,用于初始化对象的属性。

**4. 继承:**子类继承父类的属性和方法,可以扩展和重写父类的功能。

**5. 多态:**不同的对象对同一方法有不同的实现,增加代码的灵活性。

——面向对象编程练习题

1. 定义一个类表示三角形,包含三条边的长度属性,以及计算面积的方法。

答案解析:


import math

class Triangle:
    def __init__(self, side1, side2, side3):
        self.side1 = side1
        self.side2 = side2
        self.side3 = side3

    def area(self):
        s = (self.side1 + self.side2 + self.side3) / 2
        return math.sqrt(s * (s - self.side1) * (s - self.side2) * (s - self.side3))

2. 创建一个类表示汽车,有品牌、颜色和速度属性,以及加速和减速的方法。

答案解析:


class Car:
    def __init__(self, brand, color, speed=0):
        self.brand = brand
        self.color = color
        self.speed = speed

    def accelerate(self, increment):
        self.speed += increment

    def decelerate(self, decrement):
        self.speed = max(0, self.speed - decrement)

3. 设计一个类表示动物,有名字和年龄属性,以及一个发出声音的方法。然后创建子类表示猫和狗,分别实现它们特定的声音。

答案解析:


class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def make_sound(self):
        pass

class Cat(Animal):
    def make_sound(self):
        return "Meow"

class Dog(Animal):
    def make_sound(self):
        return "Woof"

八、异常处理

**1. 异常类型:**常见的异常类型如 ValueError、TypeError、IndexError 等。

**2. try-except 语句:**捕获和处理异常,保证程序的稳定性。

**3. finally 语句:**无论是否发生异常,都会执行的代码块。

(1)、基本异常处理练习

1. 编写一个程序,尝试将一个字符串转换为整数,如果字符串不能转换为整数则捕获异常并输出错误信息。

答案解析:


try:
    s = "abc"
    num = int(s)
except ValueError as e:
    print(f"发生错误:{e}")

2. 让用户输入两个数字,然后尝试进行除法运算。如果除数为零则捕获异常并输出错误信息。

答案解析:


try:
    num1 = int(input("请输入第一个数字:"))
    num2 = int(input("请输入第二个数字:"))
    result = num1 / num2
    print(result)
except ZeroDivisionError as e:
    print(f"发生错误:{e}")

(2)、多个异常处理练习

1. 编写一个程序,尝试打开一个不存在的文件,然后再尝试将一个非列表对象当作列表进行索引操作。捕获这两种不同类型的异常并输出相应的错误信息。

答案解析:


try:
    with open("nonexistent_file.txt", "r") as f:
        content = f.read()
    obj = "not a list"
    element = obj[0]
except FileNotFoundError as e:
    print(f"文件不存在错误:{e}")
except TypeError as e:
    print(f"类型错误:{e}")

2. 让用户输入一个数字,然后尝试将其转换为整数并进行一些运算。可能出现的值错误(用户输入非数字)和零除错误。捕获这两种异常并输出相应的错误信息。

答案解析:


try:
    s = input("请输入一个数字:")
    num = int(s)
    result = 10 / num
    print(result)
except ValueError as e:
    print(f"值错误:{e}")
except ZeroDivisionError as e:
    print(f"零除错误:{e}")

(3)、自定义异常练习

1. 定义一个自定义异常类`MyException`,当发生特定情况时抛出这个异常。然后在一个程序中使用这个自定义异常。

答案解析:


class MyException(Exception):
    pass

try:
    condition = True
    if condition:
        raise MyException("自定义异常发生")
except MyException as e:
    print(f"自定义异常:{e}")

2. 定义一个函数,接收一个参数,如果参数小于零则抛出自定义异常。在主程序中调用这个函数并处理可能抛出的异常。

答案解析:


class NegativeNumberException(Exception):
    pass

def check_number(num):
    if num < 0:
        raise NegativeNumberException("参数不能为负数")
    return num

try:
    result = check_number(-5)
    print(result)
except NegativeNumberException as e:
    print(f"错误:{e}")

九、文件操作

Python的文件操作是编程中非常基础且重要的部分,它允许你读取、写入、追加以及删除文件中的数据。下面,我将通过一些简单的练习代码来演示Python如何进行文件操作。

1. 打开文件

在Python中,使用open()函数来打开文件,并返回一个文件对象。open()函数的基本语法是:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
其中file是文件路径(可以是相对路径或绝对路径),mode是打开文件的模式(默认为'r',即只读模式)。其他参数大多数情况下可以省略。

2. 读取文件

示例:读取文件内容
# 打开文件并读取内容  
with open('example.txt', 'r', encoding='utf-8') as file:  
    content = file.read()  
    print(content)
这里使用了with语句,它可以确保文件在使用完毕后会被正确关闭。encoding='utf-8'是为了正确处理文本文件中的编码问题,尤其是当文件包含非ASCII字符时。

3. 写入文件

示例:向文件写入内容
# 打开(或创建)文件并写入内容  
with open('output.txt', 'w', encoding='utf-8') as file:  
    file.write('Hello, Python!\n')  
    file.write('Welcome to file operations.')

注意,使用'w'模式会覆盖文件原有内容。如果希望追加内容到文件末尾,应使用'a'模式。

4. 追加文件

示例:向文件追加内容
# 打开文件并追加内容  
with open('output.txt', 'a', encoding='utf-8') as file:  
    file.write('\nAnother line.')

5. 逐行读取文件

示例:逐行读取文件内容


	# 打开文件并逐行读取 

	with open('example.txt', 'r', encoding='utf-8') as file: 

	for line in file: 

	print(line, end='') # end='' 用于避免打印额外的换行符

6. 读取文件并处理

示例:读取文件并计算行数
# 打开文件并计算行数  
count = 0  
with open('example.txt', 'r', encoding='utf-8') as file:  
    for line in file:  
        count += 1  
print(f'The file has {count} lines.')

练习:

  1. 读取并打印文件内容:创建一个名为data.txt的文本文件,并在其中写入一些内容。然后编写一个Python脚本,读取并打印data.txt的内容。

  2. 写入文件:编写一个Python脚本,向名为results.txt的文件中写入一些数据(例如,你的姓名和年龄)。

  3. 逐行处理文件:编写一个脚本,读取data.txt的每一行,并在控制台输出每一行的内容及其行号。

Python 基础语法依然是编程学习的重要基石。通过掌握变量与数据类型、运算符、控制流语句、函数、模块与包、面向对象编程、异常处理、文件操作以及常用内置函数和库等知识点,你将能够轻松应对各种编程任务。不断实践和探索,让 Python 成为你编程之旅的得力伙伴。

  最后小编也给大家分享一份Python学习压缩包,里面的内容都是适合零基础小白的笔记,不懂编程也能听懂、看懂。

  • 包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

  ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  ③ 100多个Python实战案例,学习不再是只会理论 
  ④ 华为出品独家Python漫画教程,手机也能学习
  ⑤ 历年互联网企业Python面试真题,复习时非常方便
****

👉[[CSDN大礼包:《python安装工具&全套学习资料》免费分享]](安全链接,放心点击

👉Python学习大礼包👈


完整安装、学习资料
扫下方二维码免费领取源码还有案例↓ ↓ ↓

本文标签: 知识点语法入门基础大全