第 5 天:Python 基础知识 - 第 3 部分

使用 Python 模块和库进行练习,以增强您的编程技能并完成更多关于 HackerRank Python 的练习。

分步指南

1.回顾基本概念

  • 函数:了解如何在 Python 中定义和调用函数。函数有助于将代码组织成可重用的块。
  • 循环:熟悉 for 和 while 循环。循环用于多次执行一段代码。
  • 数据结构:了解列表、字典、集合和元组。这些结构可帮助您有效地存储和组织数据。

2.了解Python模块和库

  • 模块:可重用的代码片段(函数、类、变量),可以导入到程序中以提供附加功能。
  • 库:为不同任务提供广泛功能的模块集合。

3. 探索主要的 Python 库

  • os:该模块提供了一种与操作系统交互的方式,允许您处理文件、目录和执行系统命令。
  • sys:sys 模块提供对 Python 解释器使用或维护的一些变量以及与解释器强烈交互的函数的访问。
  • math:该模块提供平方根、阶乘和三角运算等数学函数。
  • random:random 模块用于生成随机数,这对于模拟、游戏和测试很有用。
  • datetime:该模块提供用于操作日期和时间的类,允许您处理与时间相关的任务。
  • re:re 模块提供对正则表达式的支持,这对于字符串匹配和操作很有用。
  • json:此模块用于解析 JSON(JavaScript 对象表示法),这是一种用于在服务器和 Web 应用程序之间交换数据的流行数据格式。
  • csv:csv 模块用于读取和写入 CSV(逗号分隔值)文件,这是表格数据的常见格式。
  • 统计:该模块提供计算数值数据的数学统计的函数。
  • collections:collections模块提供了专门的容器数据类型,例如namedtuples、deque、Counter和OrderedDict。
  • itertools:该模块提供创建迭代器以实现高效循环的函数,例如生成排列和组合。
  • functools:functools 模块用于作用于或返回其他函数的高阶函数,例如装饰器和部分函数。
  • 运算符:该模块导出一组与Python内部运算符相对应的高效函数,例如加法、减法和用于排序的项目获取器。

4. 练习

4.1 使用 os 模块

  • 任务:编写一个Python脚本,列出当前目录中的所有文件和目录。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import os

    def list_files_and_directories():
    path = '.'
    files = os.listdir(path)
    for file in files:
    print(file)

    list_files_and_directories()
    ### 5. HackerRank 练习
    完成在<a href="https://www.hackerrank.com/domains/python" target="_blank" style="color: blue;">HackerRank Python</a>接下来的练习:

    4.2 使用 sys 模块

  • 任务:编写一个 Python 脚本来打印您正在使用的 Python 版本。
    1
    2
    3
    4
    5
    6
    import sys

    def print_python_version():
    print(f"Python 版本: {sys.version}")

    print_python_version()

    4.3 使用 math 模块

  • 任务:编写一个计算数字阶乘的 Python 脚本。
    1
    2
    3
    4
    5
    6
    7
    import math

    def calculate_factorial(number):
    return math.factorial(number)

    num = 5
    print(f"{num}的阶乘 是 {calculate_factorial(num)}")

    4.4 使用 random 模块

  • 任务:编写一个 Python 脚本,生成 5 个 1 到 100 之间的随机数的列表。
    1
    2
    3
    4
    5
    6
    7
    import random

    def generate_random_numbers():
    random_numbers = [random.randint(1, 100) for _ in range(5)]
    return random_numbers

    print(generate_random_numbers())

    4.5 使用 datetime 模块

  • 任务:编写一个打印当前日期和时间的 Python 脚本
    1
    2
    3
    4
    5
    6
    7
    from datetime import datetime

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

    print_current_datetime()

    4.6 使用 re 模块

  • 任务:编写一个 Python 脚本,查找给定文本中的所有电子邮件地址。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import re

    def find_emails(text):
    email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
    emails = re.findall(email_pattern, text)
    return emails

    text = "Please contact us at support@example.com or sales@example.com."
    print(find_emails(text))

    4.7 使用 json 模块

  • 任务:编写一个Python脚本来解析JSON数据并打印特定信息。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import json

    def parse_json(data):
    parsed_data = json.loads(data)
    for key, value in parsed_data.items():
    print(f"{key}: {value}")

    json_data = '{"name": "John", "age": 30, "city": "New York"}'
    parse_json(json_data)

    4.8 使用 csv 模块

  • 任务:编写一个 Python 脚本,从 CSV 文件中读取数据并打印每一行。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import csv

    def read_csv_file(file_path):
    with open(file_path, mode='r') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
    print(row)

    file_path = 'data.csv'
    read_csv_file(file_path)

    4.9 使用 statistics 模块

  • 任务:编写一个 Python 脚本来计算数字列表的平均值和中位数。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import statistics

    def calculate_statistics(numbers):
    mean = statistics.mean(numbers)
    median = statistics.median(numbers)
    return mean, median

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    mean, median = calculate_statistics(numbers)
    print(f"平均值: {mean}, 中位数: {median}")

    4.10 使用 collections 模块

  • 任务:编写一个 Python 脚本,使用 collections.Counter 计算列表中元素的频率。
    1
    2
    3
    4
    5
    6
    7
    8
    from collections import Counter

    def count_elements(lst):
    counter = Counter(lst)
    return counter

    lst = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
    print(count_elements(lst))

    4.11 使用 itertools 模块

    1
    2
    3
    4
    5
    6
    7
    8
    import itertools

    def generate_permutations(lst):
    permutations = list(itertools.permutations(lst))
    return permutations

    lst = [1, 2, 3]
    print(generate_permutations(lst))

    4.12 使用 functools 模块

  • 任务:编写一个 Python 脚本,使用 functools.reduce 计算数字列表的乘积。
    1
    2
    3
    4
    5
    6
    7
    8
    from functools import reduce

    def multiply_elements(lst):
    product = reduce(lambda x, y: x * y, lst)
    return product

    lst = [1, 2, 3, 4]
    print(multiply_elements(lst))

    4.13 使用 operator 模块

  • 任务:编写一个Python脚本,使用operator.itemgetter根据第二个元素对元组列表进行排序。
    1
    2
    3
    4
    5
    6
    7
    8
    from operator import itemgetter

    def sort_tuples(lst):
    sorted_lst = sorted(lst, key=itemgetter(1))
    return sorted_lst

    lst = [(1, 'banana'), (2, 'apple'), (3, 'orange')]
    print(sort_tuples(lst))

    概括

  • 回顾:基本的 Python 概念。
  • 学习:关键的 Python 库以及如何使用它们。
  • 练习:使用 Python 模块和库解决练习。
  • HackerRank:完成额外练习以强化您的学习。

如果您需要任何特定练习或概念的帮助,请随时询问!