`

Python Tutorial 笔记4

阅读更多

Standard Library

Library Name Usage Sample
os 提供一些类似于Shell的操作
>>> import os
>>> os.system('time 0:02')
0
>>> os.getcwd()      # Return the current working directory
'C:\\Python30'
>>> os.chdir('/server/accesslogs')
 
shutil 文件和目录管理
>>> import shutil
>>> shutil.copyfile('data.db', 'archive.db')
>>> shutil.move('/build/executables', 'installdir')
 
glob 支持通配符的文件搜索
>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']
 

sys.argv

getopt

optparse

输入参数  
re 正则表达式 
>>> import re
>>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'
 
random 随机函数
>>> import random
>>> random.choice(['apple', 'pear', 'banana'])
'apple'
>>> random.sample(range(100), 10)   # sampling without replacement
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>>> random.random()    # random float
0.17970987693706186
>>> random.randrange(6)    # random integer chosen from range(6)
4
 
datetime 日期时间
# dates are easily constructed and formatted
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2003, 12, 2)
>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

# dates support calendar arithmetic
>>> birthday = date(2005, 3, 6)
>>> age = now - birthday
>>> age.days
14368
 

zlib

gzip

bz2          

tarfile

zipfile     

压缩解压缩   
>>> import zlib
>>> s = 'witch which has which witches wrist watch'
>>> len(s)
41
>>> t = zlib.compress(s)
>>> len(t)
37
>>> zlib.decompress(t)
'witch which has which witches wrist watch'
>>> zlib.crc32(s)
226805979
 
timeit 测量时间
>>> from timeit import Timer
>>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
0.57535828626024577
>>> Timer('a,b = b,a', 'a=1; b=2').timeit()
0.54962537085770791
 
unittest 单元测试
import unittest

class TestStatisticalFunctions(unittest.TestCase):

    def test_average(self):
        self.assertEqual(average([20, 30, 70]), 40.0)
        self.assertEqual(round(average([1, 5, 7]), 1), 4.3)
        self.assertRaises(ZeroDivisionError, average, [])
        self.assertRaises(TypeError, average, 20, 30, 70)

unittest.main() # Calling from the command line invokes all tests
 
Template 模板替换
>>> t = Template('${village} folk send $$10 to $cause')
>>> t.safe_substitute(village='nottingham', cause='the ditch fund')
'village folk send $10 to the ditch fund'
 
MultiThread 多线程
import threading, zipfile

class AsyncZip(threading.Thread):
    def __init__(self, infile, outfile):
        threading.Thread.__init__(self)
        self.infile = infile
        self.outfile = outfile
    def run(self):
        f = zipfile.ZipFile(self.outfile, 'w', zipfile.ZIP_DEFLATED)
        f.write(self.infile)
        f.close()
        print('Finished background zip of:', self.infile)

background = AsyncZip('mydata.txt', 'myarchive.zip')
background.start()
print('The main program continues to run in foreground.')

background.join()    # Wait for the background task to finish
print('Main program waited until background was done.')
 
Logging 日志
import logging
logging.debug('Debugging information')
logging.info('Informational message')
logging.warning('Warning:config file %s not found', 'server.conf')
logging.error('Error occurred')
logging.critical('Critical error -- shutting down')

WARNING:root:Warning:config file server.conf not found
ERROR:root:Error occurred
CRITICAL:root:Critical error -- shutting down
 
Weak References 弱指针
import gc
import weakref
class Value:
    def __init__(self, value=0):
        self.value = value
    def __repr__(self):
        return str(self.value)

if __name__ == '__main__':
    d = {}
    v = Value(10)
    d['myvalue'] = v
    del v
    gc.collect()
    print(d['myvalue'])

    e = weakref.WeakValueDictionary()
    v = Value(11)
    e['myvalue'] = v
    del v
    gc.collect()
    print(e['myvalue'])
 

array

deque

bisect

heapq

容器  
decimal 精确计算
>>> Decimal('1.00') % Decimal('.10')
Decimal("0.00")
>>> 1.00 % 0.10
0.09999999999999995

>>> sum([Decimal('0.1')]*10) == Decimal('1.0')
True
>>> sum([0.1]*10) == 1.0
False
>>> getcontext().prec = 36
>>> Decimal(1) / Decimal(7)
Decimal("0.142857142857142857142857142857142857")
 
     

分享到:
评论
1 楼 tony_413 2009-04-14  
好贴,得订。

相关推荐

    Some of the python tutorial - 《Python学习笔记》.zip

    这份压缩包文件“Some of the python tutorial - 《Python学习笔记》.zip”包含了作者kwan1117的一些Python学习心得和教程,旨在帮助初学者快速掌握Python编程技能。尽管没有具体的标签,我们可以从这个标题推测,...

    小甲鱼python教学笔记.docx

    学习Python,可以参考小甲鱼的教程,包括B站视频如` BV1A5411a7xz `,Gitee上的教程` pygeo-tutorial `,以及鱼C论坛的教学视频。这些资源对于初学者来说非常实用,能帮助理解和掌握Python的基础知识。 Python的...

    python-notes:Python学习笔记:memo:

    python笔记 Python笔记学习笔记 :memo: 介绍 有时候想找一个东西(写法),但当下却忘记关键字,所以整理一篇学习笔记,要找资料的时候也比较方便。 有些是网路上找的范例,然后自己再修修改改,或者去参考一些...

    python3零基础源码笔记(2020-6-22打包)(基于千锋教育2019宋宋老师开源视频教程.7z

    菜鸟教程的python3教程:https://www.runoob.com/python3/python3-tutorial.html 穆雪峰的python3教程:https://www.liaoxuefeng.com/wiki/1016959663602400 python3官方中文手册:https://docs.python.org/zh-cn/3.6/

    python gtk3 tutorial

    **4. 字符串处理** - **定义**(Definitions):解释什么是字符串以及它们在GUI编程中的作用。 - **Python 2**:探讨在Python 2中处理字符串的方法。 - 使用`str`和`unicode`类型。 - 字符串编码和解码。 - **Python...

    python_tutorial_notes:我关于python的笔记

    以上只是Python编程涉及的部分知识点,Python_tutorial_notes笔记很可能会覆盖这些主题,并可能深入到更具体的细节,如错误处理、异常类型、装饰器实现、元编程等。通过阅读这份笔记,你可以系统地学习Python,提升...

    谷歌师兄的leetcode刷题笔记-pythonTutorial:为帮助我弟弟在上Udemy课程时学习Python而创建的存储库

    pythonTutorial 当你完成创建一个名为hello_yourname.py的文件并让它打印“Hello World” 如果成功完成,您应该能够看到以下内容: $ python hello_yourname.py Hello World 现在,告诉 git 你是谁: git config --...

    python-tutorial::person_running:一些python教程-《 Python学习笔记》

    这个"python-tutorial"压缩包文件显然包含了一些关于Python编程的学习资源,可能是教程、代码示例或者笔记,特别是《Python学习笔记》这本书的相关材料。下面我们将深入探讨这些标签所代表的Python相关知识点。 1. ...

    PythonTutorial:Python教程

    Python教程是针对初学者和进阶者的一份全面指南,旨在帮助他们掌握这门...在"PythonTutorial-main"这个压缩包中,很可能是包含了一系列的教程文件,如笔记、代码示例和练习,可以帮助你更系统地学习和巩固Python知识。

    pythontutorial:smr2613

    #课堂笔记 Virtualenvs(演示) Virtualenvs 是独立的完整 python 环境, pip 可用于在其中安装 python 模块。 通常以普通用户身份运行 在其中安装 python 模块不需要 root 权限。 创建虚拟环境 [mike@localhost ...

    最新Tutorial 学习笔记 3:Vectorization

    在本教程“最新Tutorial学习笔记3:Vectorization”中,我们将深入探讨向量化的优势、应用以及如何在实际编程中实施。 向量化的核心在于,它能够将原本针对单个元素的操作扩展到整个数组,比如一维的向量或者二维的...

    tutorial-vtk-python:教学VTK Python的材料

    #vtk-python教程 该存储库包含一些带vtk-python示例的iPython笔记本 卫星资料 显示数据,其中包含火山喷发附近卫星的信息。 体积数据 基于显示了各种可视化体积数据的技术。 图像和颜色映射(不是vtk) 关于如何...

    develpreneur-pythontutorial:Django-Python系列教程的存储库。 每天的代码

    "develpreneur-pythontutorial" 是一个与Python编程相关的教程项目,特别是专注于Django框架。这个项目可能是由一个名为 "develpreneur" 的个人或团队维护,旨在提供一系列逐步的教程,帮助学习者每天掌握新的Python...

    python杂项

    首先,我们看到一个名为"Python_Django_学习笔记_软件下载及安装(一).docx"的文件,这很可能是关于Django框架的学习笔记,Django是Python的一个强大Web开发框架。这部分内容可能包括Django的安装步骤,如如何通过pip...

    sharks-python-tutorial:其中包含ive提出的Python笔记简介,主要是为了我的朋友Tom Perkins帮助他学习Python!

    在这个"sharks-python-tutorial"中,我们将会深入探讨Python的基础和进阶概念,帮助初学者如Tom Perkins快速掌握这门语言。 **基础概念** 1. **变量与数据类型**: Python支持多种数据类型,包括整型(int)、浮点...

    python_ml_tutorial:完整的python教程,用于数据分析和机器学习

    完整的python教程,用于数据分析和机器学习本教程不假定您具有python的任何先验知识或任何其他编程语言背景。 整个教程都是用jupyter笔记本编写的,我觉得这是此类事情的最佳平台。 如果要在本地运行它们: 下载并...

    Python-Tutorial:生物医学工程必不可少的工具的Python工程部分

    Python教程 在这里,您可以找到我们Python教程的Jupyter笔记本,该教程属于Northeastern生物医学工程学生物工程基本工具部门的一部分。 本模块中的所有课程均组织为Jupyter笔记本。 这意味着您实际上可以运行代码...

    欧拉公式求圆周率的matlab代码-Python-Study:Python,robotframework,docker笔记和练习

    PythonTutorial python基本语法 RobotFrameworkBasic RobotFramework基本语法和demo Python学习进阶路线 列表,字典,推导式 迭代器和生成器 学习map、reduce、filter等函数,函数式编程 装饰器 设计模式

    python 中文资料打包

    9. **python_note_wcy.pdf**:这可能是某位开发者或教师的笔记,可能包含了他们对Python的理解和个人见解。 10. **Python_Tutorial_25cn.pdf**:《Python教程》的中文版,可能基于Python的官方教程进行翻译,适合...

    python-tutorial-notebooks:适用于NLP,ML,AI的Jupyter Notebooks Python教程

    适用于NLP,ML,AI的Python教程 (C)2016-2020年,( 另请参阅: 。 请参阅各个文档以及代码文件夹中的文件中的许可详细信息。 此文件夹中的文件是我在计算语言学,自然语言处理(NLP),机器学习(ML)和人工...

Global site tag (gtag.js) - Google Analytics