Python基礎文法-菜鳥チュートリアル-第23章:Python 3標準ライブラリの概要

23930 ワード

学習サイト:https://www.runoob.com/python/python-basic-syntax.htmlコードを実行するとメモが生成されます
未完成部分:各種の方法が実践操作に着手していない
#コードは次のとおりです.
import sys
# chapter23:Python3      
print("
chapter23:Python3
"
) print("1. ") print("1)os 。") print("eg:") print(">>> import os
"
">>> os.getcwd() #
"
"'C:\\Python34'
"
">>> os.chdir('/server/accesslogs') #
"
">>> os.system('mkdir today') # mkdir
"
"0") print("2) os dir() help() :") print("eg:") print(">>> import os
"
">>> dir(os)
"
"
"
">>> help(os)
"
"") print("3) ,:mod:shutil ") print("eg:") print(">>> import shutil
"
">>> shutil.copyfile('data.db', 'archive.db')
"
">>> shutil.move('/build/executables', 'installdir')") print("2. ") print("1)glob ") print("eg:") print(">>> import glob
"
">>> glob.glob('*.py')
"
"['primes.py', 'random.py', 'quote.py']") print("3. ") print("1) 。 sys argv 。") print("eg: \"python demo.py one two three\" :") print(">>> import sys
"
">>> print(sys.argv)
"
"['demo.py', 'one', 'two', 'three']") print("4. ") print("1)sys stdin,stdout stderr , stdout , 。") print("eg:") print(">>> sys.stderr.write('Warning, log file not found starting a new one
')
"
"Warning, log file not found starting a new one") print("2) \"sys.exit()\"。") print("5. ") print("1)re 。 , 、 :") print("eg:") print(">>> 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'") print("2) , , , :") print("eg:") print(">>> 'tea for too'.replace('too', 'two')
"
"'tea for two'") print("6. ") print("1)math C :") print("eg:") print(">>> import math
"
">>> math.cos(math.pi / 4)
"
"0.70710678118654757
"
">>> math.log(1024, 2)
"
"10.0") print("2)random 。") print("eg:") print(">>> 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") print("7. ") print("1) 。 urls urllib.request smtplib:") print("eg:") print(">>> from urllib.request import urlopen
"
">>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'):
"
"... line = line.decode('utf-8') # Decoding the binary data to text.
"
"... if 'EST' in line or 'EDT' in line: # look for Eastern Time
"
"... print(line)
"
"
Nov. 25, 09:43:32 PM EST
"
">>> import smtplib
"
">>> server = smtplib.SMTP('localhost')
"
">>> server.sendmail('[email protected]', '[email protected]',
"
"... \"\"\"To: [email protected]
"
"... From: [email protected]
"
"...
"
"... Beware the Ides of March.
"
"... \"\"\")
"
">>> server.quit()") print("8. ") print("1)datetime 。
"
"2) , 。
"
"3) :") print("eg:") print(">>> # 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(1964, 7, 31)
"
">>> age = now - birthday
"
">>> age.days
"
"14368") print("9. ") print("1) :zlib,gzip,bz2,zipfile, tarfile。") print("eg:") print(">>> import zlib
"
">>> s = b'witch which has which witches wrist watch'
"
">>> len(s)
"
"41
"
">>> t = zlib.compress(s)
"
">>> len(t)
"
"37
"
">>> zlib.decompress(t)
"
"b'witch which has which witches wrist watch'
"
">>> zlib.crc32(s)
"
"226805979") print("10. ") print("1) 。Python , 。timeit ") print("11. ") print("1) ,
"
"2)doctest , 。
"
"3) 。
"
"4) , , doctest :") print("eg:") print("def average(values):
"
" \"\"\"Computes the arithmetic mean of a list of numbers.
"
" >>> print(average([20, 30, 70]))
"
" 40.0
"
" \"\"\"
"
" return sum(values) / len(values)
"
"import doctest
"
"doctest.testmod() # ") print("5)unittest doctest , :") print("eg:") print("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")

#コードの実行結果は次のとおりです.
chapter 23:Python 3標準ライブラリの概要
1.オペレーティングシステムインタフェース1)osモジュールは、オペレーティングシステムに関連する多くの関数を提供する.eg:
import os os.getcwd()#は、現在の作業ディレクトリ「C:Python 34」を返します.
os.chdir(’/server/accesslogs’)#現在の作業ディレクトリosを変更する.System(‘mkdir today’)#実行システムコマンドmkdir 0 2)osのような大型モジュールを使用する場合に内蔵されるdir()とhelp()関数は、eg:
import os dir(os)
help(os)3)日常のファイルとディレクトリ管理タスクに対して、mod:shutilモジュールは使いやすい高度なインタフェースegを提供しています.
import shutil shutil.copyfile(‘data.db’, ‘archive.db’) shutil.move(’/build/executables’, ‘installdir’) 2.ファイルワイルドカード1)globモジュールは、ディレクトリワイルドカード検索からファイルリストegを生成するための関数を提供する.
import glob glob.glob(’*.py’) [‘primes.py’, ‘random.py’, ‘quote.py’] 3.コマンドラインパラメータ1)汎用ツールスクリプトは、コマンドラインパラメータを頻繁に呼び出します.これらのコマンドラインパラメータはsysモジュールのargv変数にチェーンテーブル形式で格納されます.eg:たとえばコマンドラインで「python demo.py one two three」を実行すると、次の出力結果が得られます.
import sys print(sys.argv) [‘demo.py’, ‘one’, ‘two’, ‘three’] 4.エラー出力リダイレクトとプログラム終了1)sysにはstdin,stdout,stderr属性もあり,stdoutがリダイレクトされた場合でも警告やエラー情報を表示するために後者を用いることができる.eg:
sys.stderr.write('Warning,log file not found starting a new one')Warning,log file not found starting a new one 2)多くのスクリプトの指向性終了には「sys.exit()」が使用されます.5.文字列正規一致1)reモジュールは、高度な文字列処理に正規表現ツールを提供します.複雑なマッチングと処理の場合、正規表現は簡潔で最適化されたソリューションを提供します:eg:
import re re.findall(rf[a-z]*’, ‘which foot or hand fell fastest’) [‘foot’, ‘fell’, ‘fastest’]
re.sub(r’[a-z]+)’,r’,‘cat in the hat’)‘cat in the hat’2)単純な機能のみが必要な場合は、文字列法をまず考慮すべきである.非常に簡単で、読みやすく、デバッグしやすいからである.eg:
‘tea for too’.replace(‘too’, ‘two’) ‘tea for two’ 6.数学1)mathモジュールは浮動小数点演算に下位C関数ライブラリへのアクセスを提供する:eg:
import math math.cos(math.pi/4) 0.70710678118654757
math.log(1024,2)10.0 2)randomは、乱数を生成するツールを提供する.eg:
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 7.インターネットへのアクセス1)インターネットへのアクセスおよびネットワーク通信プロトコルの処理のためのいくつかのモジュール.最も簡単な2つはurlsから受信データを処理するためのurllibである.requestおよびEメール送信用smtplib:eg:
from urllib.request import urlopen for line in urlopen(‘http://tycho.usno.navy.mil/cgi-bin/timer.pl’): … line = line.decode(‘utf-8’) # Decoding the binary data to text. … if ‘EST’ in line or ‘EDT’ in line: # look for Eastern Time … print(line) Nov. 25, 09:43:32 PM EST
import smtplib server = smtplib.SMTP(‘localhost’) server.sendmail(‘[email protected]’, ‘[email protected]’, … “”“To: [email protected] … From: [email protected] … … Beware the Ides of March. … “””)
server.quit() 8.日付と時刻1)datetimeモジュールは、日付と時刻の処理に簡単で複雑な方法を提供します.2)日付と時刻アルゴリズムをサポートするとともに,より効率的な処理と出力のフォーマットに重点を置く.3)このモジュールはタイムゾーン処理もサポートする:eg:
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(1964, 7, 31) age = now - birthday age.days 14368 9.データ圧縮1)次のモジュールは、zlib、gzip、bz 2、zipfile、tarfileなどの一般的なデータパッケージおよび圧縮フォーマットを直接サポートします.eg:
import zlib s = b’witch which has which witches wrist watch’ len(s) 41
t = zlib.compress(s) len(t) 37
zlib.decompress(t) b’witch which has which witches wrist watch’
zlib.crc32(s) 226805979 10.パフォーマンス・メトリック1)同じ問題を解決する方法の違いを理解することに興味を持つユーザーもいます.Pythonは、これらの問題に直接的な答えを提供するメトリックツールを提供しています.timeit 11.テストモジュール1)高品質のソフトウェアを開発する方法の1つは,各関数のテストコードを開発し,開発中によくテストを行うことである2)doctestモジュールは,モジュールをスキャンし,プログラムに埋め込まれたドキュメント文字列に基づいてテストを実行するツールを提供する.3)テスト構造は,その出力結果をドキュメント文字列に切り取って貼り付けるのと同じである.4)ユーザーが提供した例によって、doctestモジュールがコードの結果が文書と一致するかどうかを確認できるように文書を強化する:eg:def average(values):""Computes the arithmetic mean of a list of numbers.
print(average([20,30,70]))40.0""return sum(values)/len(values)import doctest doctest.testmod()#自動検証埋め込みテスト5)unittestモジュールはdoctestモジュールほど使いやすいわけではありませんが、独立したファイルにより包括的なテストセットを提供できます.eg:import unittest class TestStatisticalFunctions(unittest.TeCastse): 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