博客
关于我
python 模块和包,系统模块,时间模块,哈希摘要(3.17)
阅读量:509 次
发布时间:2019-03-07

本文共 4584 字,大约阅读时间需要 15 分钟。

A Job Interview Question (Output Judgment)

Question Analysis

The code snippet provided has a list list1 where an anonymous function is dynamically added for each iteration. The function definition is stored in the list rather than being immediately called. After the loop completes, the functions are called with x=2 to produce specific outputs. The challenge is to determine the expected result based on the closure behavior in Python.

Solving the Problem

The list1 is populated with anonymous functions that capture the i variable from their enclosing scope. Even though the functions are defined inside a loop, their references to i are late-bound. This means that after the loop completes and i is finally set to 4, all functions in the list will refer to this same value of i when they are called. Thus, the output of each function call will be 4 * 2 = 8.

Step-by-Step Explanation

  • The loop runs from i = 0 to i = 4.
  • Each iteration creates an anonymous function that captures the current value of i.
  • The functions are stored in list1 but are not immediately called.
  • When print(list1[0](2)) is called, i has been set to 4, so the returned function calls 4 * 2 = 8.
  • Similarly, print(list1[2](2)) and print(list1[4](2)) also yield 8 because all closures reference the final value of i at the time the loop completes.
  • Module and Package

    Module Basics

    • A .py file represents a module. The file name is its module name.
    • The module name must be a valid identifier and not a reserved keyword to be usable by other modules.

    Package Concepts

    • A package is a file folder containing an __init__.py file. This special file signals Python that the folder is a package.

    Importing Modules

    There are several ways to import modules:

  • Basic Import:

    import module_name
    • Imports the entire module and allows access to its attributes using module_name.attribute.
  • Implicit Import:

    from module_name import variable1, variable2
    • Imports specific variables from the module and uses them without the module name prefix.
  • Alias Import:

    import module_name as new_module_name
    • Gives the imported module a new name for convenience.
  • Star Import:

    from module_name import *
    • Imports all global variables from the module.
  • Module Import Principles

    • The import statement examines the module and executes its code if required, depending on whether the module has been imported before.
    • The if __name__ == '__main__': guard clause prevents the module's main code from executing when the module is imported.

    Importing Packages

    To import a package or a module within a package:

  • Importing a Package:

    import package_name
    • This imports the entire package, making its contents accessible through package_name.module_name.
  • Importing a Specific Module:

    from package_name.module_name import *
    • This imports all exports from the specified module within the package.
  • __init__.py File Purpose

    The __init__.py file runs automatically when Python imports the package. It initializes the package and can define constants, default values, or functions related to the package.

    System Modules

    Entertaining Modules

    • turtle: For creating graphics in Python.

      import turtleturtle.polygon(3)  # Draw a triangle
    • smtplib: For sending email.

      import smtplibsmtp = smtplib.SMTP('smtp.example.com')smtp.sendmail(from_addr, to_addr, message)

    Commonly Used System Modules

    1. os Module

    Reverse Example:

    import os# List current working directoryos.getcwd() # List directory contentsos.listdir('path_to_folder')

    2. time and datetime Modules

    • time(): Returns the current timestamp in seconds.
      import timet1 = time.time()print(t1)  # ~4-byte timestamp
    • datetime: Combines date and time into a single object.
      from datetime import datetime, timedeltanow = datetime.now()print(now)  # 'YYYY-MM-DD HH:MM:SS'
    • Time Manipulation:
      future = now + timedelta(days=10)print('10 days later:', future)

    3. random Module

    • Generate random numbers:

      import random# Random between 10 and 20print(random.randint(10, 20))# Random float between 0 and 1print(random.random())
    • Shuffle a list:

      nums = [23, 34, 'abc', True]random.shuffle(nums)print(nums)
    • هاش ازlied from a sequence:

      import randomresult = random.choice('abc3lo901')print(result)nums = [23, 34, 'abc', 20, 3, 4]result = random.choices(nums, k=2)print(result)

    4. hashlib Module

    • Compute hashes:
      import hashlibhash_obj = hashlib.md5()hash_obj.update(b'123456')print(hash_obj.hexdigest())

    Conclusion

    This was an overview of various Python concepts, including functions, modules, packages, and commonly used system libraries. The content covers essential tools every Python programmer should be familiar with when developing applications.

    转载地址:http://frrjz.baihongyu.com/

    你可能感兴趣的文章
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    Python和RF编写web自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>
    python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
    查看>>
    python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
    查看>>
    Python命名中尾随下划线有什么好处?
    查看>>
    Python启动脚本
    查看>>
    Python听写汇总结果
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>