Python勉強会
<第4回Web会議日程>
2023年02月21日(水) 19:00から
<第4回の自習範囲>
【Pythonチュートリアル】
https://docs.python.org/ja/3/tutorial/index.html
6. モジュール
6.1. モジュールについてもうすこし
6.1.1. モジュールをスクリプトとして実行する
6.1.2. モジュール検索パス
6.1.3. "コンパイル" された Python ファイル
6.2. 標準モジュール
6.3. dir() 関数
6.4. パッケージ
6.4.1. パッケージから * を import する
6.4.2. パッケージ内参照
6.4.3. 複数ディレクトリ中のパッケージ
7. 入力と出力
7.1. 出力を見やすくフォーマットする
7.1.1. フォーマット済み文字列リテラル
7.1.2. 文字列の format() メソッド
7.1.3. 文字列の手作業でのフォーマット
7.1.4. 古い文字列書式設定方法
7.2. ファイルを読み書きする
7.2.1. ファイルオブジェクトのメソッド
7.2.2. json による構造化されたデータの保存
10. 標準ライブラリミニツアー
10.1. OSへのインターフェース
10.2. ファイルのワイルドカード表記
10.3. コマンドライン引数
10.4. エラー出力のリダイレクトとプログラムの終了
10.5. 文字列のパターンマッチング
10.6. 数学
10.7. インターネットへのアクセス
10.8. 日付と時刻
10.9. データ圧縮
10.10. パフォーマンスの計測
10.11. 品質管理
10.12. バッテリー同梱
11. 標準ライブラリミニツアー –- その 2
11.1. 出力のフォーマット
11.2. 文字列テンプレート
11.3. バイナリデータレコードの操作
11.4. マルチスレッディング
11.5. ログ記録
11.6. 弱参照
11.7. リスト操作のためのツール
11.8. 10 進浮動小数演算
モジュール名 | 用途 |
---|---|
mathモジュール | 数学計算に関連する処理 |
randomモジュール | 乱数に関する処理 |
statisticsモジュール | 統計の計算に関する処理 |
datetimeモジュール | 日付・時刻の取得や操作に関する処理 |
reモジュール | 文字列のパターンマッチング(正規表現)関する処理 |
sysモジュール | インタプリタや実行環境に関連した情報の操作に関する処理 |
emailモジュール | 電子メールに関する処理 |
※もっと詳しく見たい方は以下を参照してみてください
Python 標準ライブラリ
script.py
」を作成し、コマンドライン上で「python3 script.py one two three four five
」を実行したときの結果として正しいものはA~Dのどれでしょうか?[script.py]
A ['script.py', 'one', 'two', 'three'
]
B ['script.py', 'one', 'two', 'three', 'four'
]
C ['python3', 'script.py', 'one', 'two'
]
D ['python3', 'script.py', 'one', 'two', 'three'
]
「script.py」ファイルを作成する
「script.py」の解説
ライブラリであるsysモジュールをインポートする
インデックス 0 の位置 (sys.argv[0]) には、pythonコマンドで指定したスクリプト自身の名前が格納されるので、今回の問題では「script. py」
インデックスは「開始値は常に含まれ、終了値は常に含まれない」
となるので、「0 1 2 3」が表示される
上記のことから、「python3 script.py one two three four five
」を実行すると、script.py one two three
が求められる
A ['script.py', 'one', 'two', 'three'
]
A mathモジュールを使うと、コード処理の実行時間を計測できる。
B smtplibモジュールを使うと、任意のインターネット上のホストにメールを送ることができる。
C randomモジュールを使うと、疑似乱数を生成することができる。
D statisticsモジュールを使うと、数値データの基本統計量(平均、中央値、分散など)を取得することができる。
B smtplibモジュールを使うと、任意のインターネット上のホストにメールを送ることができる。
<smtplibモジュール>
PythonでSMTPまたはESMTPのリスナーデーモンを備えた任意の
インターネット上のホストにメールを送るために使用することが
できる SMTPクライアント・セッション・オブジェクトを定義
※smtplibモジュール
smtplibモジュールの記述に当てはまるため、Bは正解
smtplibモジュール使用例(メール送信)
C randomモジュールを使うと、疑似乱数を生成することができる。
<randomモジュール>
様々な分布をもつ疑似乱数生成器を実装している。ランダムな
要素や乱数を使う操作などにはとても便利
※randomモジュール
randomモジュールの記述に当てはまるため、Cは正解
randomモジュール使用例(パスワード作成)
D statisticsモジュールを使うと、数値データの基本統計量(平均、中央値、分散など)を取得することができる。
<statisticsモジュール>
数値 (Real 型) データを数学的に統計計算するための関数を
提供し、簡単に平均値、中央値、分散、標準偏差を求められる
※statisticsモジュール
statisticsモジュールの記述に当てはまるため、Dは正解
statisticsモジュール使用例(平均値・中央値)
A mathモジュールを使うと、コード処理の実行時間を計測できる。
コード処理の実行時間を計測できるのは、timeitモジュールの説明のため、Aが誤り
<timeitモジュール>
小さいPythonコードの時間を計測するシンプルな手段を提供。
なるべく正確な時間を算出するためにプロットフォーム特有の
time関数を使用
※timeitモジュール
timeitモジュール使用例(基本例)
<mathモジュール>
数学的な計算をするのに役立つ標準モジュール。円周率、
切り上げ、切り捨て、指数、対数、三角関数など様々な数学関連
の処理が可能
mathモジュール
mathモジュール使用例(円周率)
A mathモジュールを使うと、コード処理の実行時間を計測できる。
[fibo.py]
[コード]
A 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
B [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
C 0 1 1 2 3 5 8 13 21 34 55 89
D 0,1,1,2,3,5,8,13,21,34,55,89
「fibo.py」を作成する
fiboという名称でモジュールをインポートする
fib(100)を呼び出すので、「fibo.py」のfib(n)を呼び出す
fib(n)の解説
fib(n)を呼び出す
a=0、b=1を代入する
今回の問題ではn=100だから、aが100を超えるまで繰り返す
aの値を出力し、end=''により、末尾に空白を指定する
a=b、b=a+bを代入する
最終的に文字列を出力する
上記により、fib(100)を求めて出力する
C 0 1 1 2 3 5 8 13 21 34 55 89
A 1:3.141f, 0:2.71828f
B 3.141, 2.71828
C 2.718, 3.14159
D 2.71828 3.141
※今回のチュートリアルに記載がないため以下を参考にして下さい
ヒント:math
ライブラリであるmathモジュールをインポートする
print('{1:.3f}, {0:.5f}
{1:.3f}の1はインデックス番号、.3は小数点以下の桁数で下3桁、fは小数点を表す
format(math.pi, math.e)
math.pi : π=3.141592… (円周率)
math.e : e = 2.718281… (自然対数の底)
最初のインデックスは0となるので、math.piは0、math.eは1となる
C 2.718, 3.14159