10分钟学会了Python 100个易懂的基本知识 |下篇

Python是一门强大且易学的编程语言,适合初学者和经验丰富的开发者.下面是100个的基本语法知识,包含详细的示例和详细描述.大家可以去操作起来.

41. 生成器表达式

squares = (x**2 for x in range(5))
print(list(squares))

生成器表达式用于创建生成器对象,提供了一种简洁的方法生成值。

42. 文件读取和写入

with open('file.txt', 'r') as file:
    content = file.read()
    print(content)

文件操作方法用于读取和写入文件数据。

43. 异常捕获

try:
    x = int("abc")
except ValueError:
    print("无效的值")

异常捕获用于处理潜在的错误。

44. assert 语句

x = 10
assert x > 0, "x 应该是正数"

assert 语句用于调试,确保条件为真。

45. Python 的标准库

Python 的标准库包括众多模块,如 ossysdatetimemath 等,用于处理各种编程任务。

46. 生成随机数

import random
print(random.randint(1, 10))

使用 random 模块生成随机数。

47. 时间和日期

from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))

使用 datetime 模块处理时间和日期。

48. 正则表达式

import re
pattern = re.compile(r'\d+')
matches = pattern.findall("There are 123 apples and 456 oranges.")
print(matches)

使用 re 模块处理正则表达式。

49. 类的静态方法

class Math:
    @staticmethod
    def add(x, y):
        return x + y

print(Math.add(5, 3))

静态方法属于类而不是实例。

50. 类的类方法

class Person:
    population = 0

    @classmethod
    def get_population(cls):
        return cls.population

print(Person.get_population())

类方法用于访问类属性和方法。

51. str 和 repr 方法

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

    def __str__(self):
        return f"Person(name={self.name})"

    def __repr__(self):
        return f"Person('{self.name}')"

person = Person("Alice")
print(str(person))
print(repr(person))

__str____repr__ 方法用于控制对象的字符串表示。

52. Python 的垃圾回收

Python 使用垃圾回收机制自动管理内存,以避免内存泄漏。

53. 数据类

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

person = Person(name="Alice", age=25)
print(person)

数据类简化了创建类的过程,自动生成了常用方法。

54. Python 的内存管理

Python 使用内存管理机制来优化程序性能,如引用计数和垃圾回收。

55. 函数式编程

Python 支持函数式编程,允许使用高阶函数和不可变数据结构。

56. Python 的迭代协议

Python 的迭代协议包括 __iter__()__next__() 方法,用于自定义对象的迭代行为。

57. 自定义异常

class CustomError(Exception):
    pass

try:
    raise CustomError("这是自定义异常")
except CustomError as e:
    print(e)

自定义异常用于创建特定的错误类型。

58. Python 的编码与解码

text = "Hello, World!"
encoded_text = text.encode('utf-8')
decoded_text = encoded_text.decode('utf-8')
print(decoded_text)

Python 支持不同编码格式的数据处理。

59. Python 的字节与字节数组

data = b'Hello, World!'
byte_array = bytearray(data)
print(byte_array)

字节和字节数组用于处理二进制数据。

60. Python 的协程

import asyncio

async def say_hello():
    print("Hello!")
    await asyncio.sleep(1)
    print("World!")

asyncio.run(say_hello())

协程用于实现异步编程,提高程序性能。

61. 使用 collections 模块

from collections import Counter

counter = Counter("aabbcc")
print(counter)

collections 模块提供了许多有用的数据结构,如 Counterdefaultdict

62. 数据持久化

import pickle

data = {"name": "Alice", "age": 25}
with open('data.pkl', 'wb') as file:
    pickle.dump(data, file)

with open('data.pkl', 'rb') as file:
    loaded_data = pickle.load(file)
    print(loaded_data)

数据持久化用于将数据保存到文件并重新加载。

63. Python 的垃圾回收机制

Python 使用引用计数和垃圾回收机制自动管理内存。

64. 网络编程

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('www.example.com', 80))
sock.sendall(b'GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n')
response = sock.recv(4096)
print(response.decode())
sock.close()

Python 提供了 socket 模块用于网络编程。

65. Python 的线程和进程

import threading

def print_numbers():
    for i in range(5):
        print(i)

thread = threading.Thread(target=print_numbers)
thread.start()
thread.join()

Python 支持线程和进程并行执行任务。

66. Web 编程

Python 支持 Web 编程,通过框架如 Django 和 Flask 可以创建 Web 应用。

67. 数据可视化

Python 的 matplotlibseaborn 模块提供了强大的数据可视化功能。

68. 科学计算

Python 的 numpyscipy 模块用于科学计算和数值分析。

69. 机器学习

Python 的 scikit-learntensorflow 提供了机器学习和深度学习的支持。

70. 处理 JSON 数据

import json

data = {"name": "Alice", "age": 25}
json_data = json.dumps(data)
print(json_data)

loaded_data = json.loads(json_data)
print(loaded_data)

Python 提供了 json 模块处理 JSON 数据。

71. 处理 XML 数据

import xml.etree.ElementTree as ET

data = """<person>
    <name>Alice</name>
    <age>25</age>
</person>"""

root = ET.fromstring(data)
print(root.find('name').text)

Python 提供了 xml.etree.ElementTree 模块处理 XML 数据。

72. Python 的编码与解码

text = "Hello, World!"
encoded = text.encode('utf-8')
decoded = encoded.decode('utf-8')
print(decoded)

Python 支持不同的字符编码和解码。

73. 正则表达式高级用法

import re

pattern = re.compile(r'\b\w+\b')
matches = pattern.findall("Hello, world! Python is amazing.")
print(matches)

正则表达式用于高级模式匹配和搜索。

74. 使用 itertools 模块

import itertools

data = [1, 2, 3]
permutations = list(itertools.permutations(data))
print(permutations)

itertools 模块提供了高效的迭代工具。

75. 使用 functools 模块

from functools import lru_cache

@lru_cache(maxsize=128)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(10))

functools 模块提供了函数工具,如缓存和装饰器。

76. 使用 os 模块

import os

print(os.getcwd())  # 当前工作目录
os.makedirs('new_folder', exist_ok=True)  # 创建新目录

os 模块提供了与操作系统交互的功能。

77. 使用 sys 模块

import sys

print(sys.version)  # Python 版本
sys.exit()  # 退出程序

sys 模块提供了与 Python 解释器交互的功能。

78. 使用 argparse 模块

import argparse

parser = argparse.ArgumentParser(description="Example program")
parser.add_argument('name', type=str, help="Your name")
args = parser.parse_args()
print(f"Hello, {args.name}")

argparse 模块用于创建命令行界面。

79. 使用 logging 模块

import logging

logging.basicConfig(level=logging.INFO)
logging.info("This is an info message")

logging 模块用于记录日志。

80. 使用 csv 模块

import csv

with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(["Name", "Age"])
    writer.writerow(["Alice", 25])
    
with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

csv 模块用于读取和写入 CSV 文件。

81. 使用 sqlite3 模块

import sqlite3

connection = sqlite3.connect('example.db')
cursor = connection.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
cursor.execute('INSERT INTO users (name) VALUES (?)', ('Alice',))
connection.commit()

cursor.execute('SELECT * FROM users')
print(cursor.fetchall())

connection.close()

sqlite3 模块用于与 SQLite 数据库交互。

82. 使用 socket 模块进行网络编程

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
server_socket.listen()

client_socket, addr = server_socket.accept()
print(f"Connection from {addr}")

client_socket.sendall(b'Hello, Client!')
data = client_socket.recv(1024)
print(f"Received: {data.decode()}")

client_socket.close()
server_socket.close()

socket 模块用于网络编程,创建服务器和客户端。

83. 使用 threading 模块

import threading

def print_numbers():
    for i in range(5):
        print(i)

thread = threading.Thread(target=print_numbers)
thread.start()
thread.join()

threading 模块用于创建和管理线程。

84. 使用 multiprocessing 模块

import multiprocessing

def print_numbers():
    for i in range(5):
        print(i)

process = multiprocessing.Process(target=print_numbers)
process.start()
process.join()

multiprocessing 模块用于创建和管理进程。

85. 使用 asyncio 模块进行异步编程

import asyncio

async def say_hello():
    print("Hello!")
    await asyncio.sleep(1)
    print("World!")

asyncio.run(say_hello())

asyncio 模块用于创建异步程序,提高程序性能。

86. 使用 contextlib 模块

from contextlib import contextmanager

@contextmanager
def open_file(filename):
    file = open(filename, 'w')
    try:
        yield file
    finally:
        file.close()

with open_file('file.txt') as file:
    file.write("Hello, World!")

contextlib 模块提供了上下文管理器工具。

87. 使用 unittest 模块进行单元测试

import unittest

class TestMath(unittest.TestCase):
    def test_add(self):
        self.assertEqual(2 + 2, 4)

if __name__ == '__main__':
    unittest.main()

unittest 模块用于编写和运行单元测试。

88. 使用 pytest 进行测试

# test_math.py
def test_add():
    assert 2 + 2 == 4

# 运行测试
# pytest test_math.py

pytest 是一个流行的测试框架,提供了更多功能和灵活性。

89. 使用 dataclasses 模块

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

person = Person(name="Alice", age=25)
print(person)

dataclasses 模块简化了创建数据类的过程。

90. 使用 pydantic 进行数据验证

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

person = Person(name="Alice", age=25)
print(person)

pydantic 提供了数据验证和设置默认值的功能。

91. 使用 attrs 进行类定义

import attr

@attr.s
class Person:
    name = attr.ib()
    age = attr.ib()

person = Person(name="Alice", age=25)
print(person)

attrs 模块提供了简洁的类定义语法。

92. 使用 typing 模块进行类型注解

from typing import List, Dict

def greet(name: str) -> str:
    return f"Hello, {name}!"

names: List[str] = ["Alice", "Bob"]
info: Dict[str, int] = {"age": 25}

typing 模块用于类型注解,增强代码的可读性和维护性。

93. 使用 pathlib 模块处理文件路径

from pathlib import Path

path = Path('file.txt')
path.write_text("Hello, World!")
print(path.read_text())

pathlib 模块提供了面向对象的文件路径操作方法。

94. 使用 shutil 模块进行文件操作

import shutil

shutil.copy('file.txt', 'file_copy.txt')

shutil 模块提供了高级的文件操作功能。

95. 使用 requests 模块进行 HTTP 请求

import requests

response = requests.get('https://www.example.com')
print(response.text)

requests 模块提供了简便的 HTTP 请求功能。

96. 使用 beautifulsoup4 进行网页抓取

from bs4 import BeautifulSoup
import requests

response = requests.get('https://www.example.com')
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.text)

beautifulsoup4 模块用于解析和抓取网页数据。

97. 使用 json 处理 JSON 数据

import json

data = {"name": "Alice", "age": 25}
json_data = json.dumps(data)
print(json_data)

loaded_data = json.loads(json_data)
print(loaded_data)

json 模块用于处理 JSON 数据的编码和解码。

98. 使用 yaml 处理 YAML 数据

import yaml

data = {"name": "Alice", "age": 25}
yaml_data = yaml.dump(data)
print(yaml_data)

loaded_data = yaml.safe_load(yaml_data)
print(loaded_data)

yaml 模块用于处理 YAML 数据的编码和解码。

感谢大家的关注和支持!想了解更多编程精彩知识内容,请关注我的 微信公众号:小胡子,有最新最前沿的的知识和人工智能AI与大家共享,同时,如果你觉得这篇文章对你有帮助,不妨点个赞,并点击关注.动动你发财的手,万分感谢!!!

原创文章不易,求点赞、在看、转发或留言,这样对我创作下一个精美文章会有莫大的动力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python茶水实验室

你的关注,是我创作的最大动力.

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值