ばぁど・うぉっちんぐ

セキュリティに強いWeb屋。自由と春を求めて羽ばたく渡り鳥。

このブログはGoogle Analyticsを利用しています

【6日目】Python勉強メモ -モジュールのimport-

GW特別企画6日目。

10連休も半分終わってしまい悲しいお気持ち。

前回はこちら

ultrabirdtech.hatenablog.com

今回はモジュールのimport

Pythonのコア部分は最小の構成で構築されているので、プログラミングに必要な機能があれば適時importする必要がある。

モジュールとは、Pythonコードをまとめたファイルのこと。 モジュールをimportすることで、モジュール内のコード、変数などをプログラムで使用することができる。

モジュールのimport

基本構文

import [module名]

Pythonファイルの.pyを取り除いたもの。

randomモジュールをimportする場合

import random

fruits = ['apple', 'orange', 'strawberry']
print(random.choice(fruits))

部分的にimportをする

モジュールを全体的にimportするのではなく部分的に必要な場合、部分的にimportすることも可能。

from random import choice

fruits = ['apple', 'orange', 'strawberry']
print(choice(fruits))

別名でimportすることも可能

asを利用することで、別名でimportすることも可能

from random import choice as select # choice()をselect()としてimportしている

fruits = ['apple', 'orange', 'strawberry']
print(select(fruits))

時と場合に応じて使い分ける。

コマンドライン引数を受け取る(sys)

コマンドライン引数とは、pythonファイルを実行する際に入力値として与える引数のこと。 Pythonではsysモジュールをimportすることで実現可能。 sys.argvとアクセスすると、コマンドライン引数で渡した値にアクセス可能。

0要素目には実行中のファイル名が入る。 1要素目以降は、引数に渡されたものが入る。

下記のようなprint_argv.pyを作成する。

import sys

print(ファイル名:=>sys.argv[0])
print(引数1=====>sys.argv[1])

下記のコマンドで実行してみる。

$ python print_argv.py 'test '
ファイル名=>print_argv.py
第1引数====>test

引数として与えたtestという文字列がプログラム上に引き渡されたことがわかる。

Let's Try

電卓プログラムを作る

今まで学んだことの総合課題。

コマンドライン引数として与えられた数値1、数値2を、オペレータにより計算をするようなcalculator.pyファイルを作る。

仕様

  • 与えられたコマンド引数に従って数値を計算する電卓プログラムを作成してください
  • コマンドライン引数で下記を与えられること

    • 第1引数: 数値1
    • 第2引数: 数値2
    • 第3引数: オペレータ(+-*/)
  • エラー処理を行うこと

    • 第1引数、第2引数に数値以外(文字列hogeなど)が割り当てられた時エラー文を表示すること
    • 第3引数に+, -, *, / 以外のものが与えられた場合エラー文を表示すること
    • 数値2に0が与えられ、除算が行われた時、エラー文を表示すること
    • 引数が足りない場合エラー文を表示すること

出力例

期待する出力

# 足し算
$python calculator.py 2 3 +
5

# 引き算
$ python calculator.py 90 8 -
82

# 乗算
$ python calculator.py 6 7 '*'
42

# 除算
$ python calculator.py 6 2 /
3.0

エラー表示の出力

引数2に数値以外の値(hoge)を与えた場合

$ python calculator.py 6 hoge +
[ERROR]: 計算する値は数値を入力してください。

ゼロ除算を行なった場合

$ python calculator.py 5 0 /
[ERROR]: 割り算を行う際に0徐算が発生しました。第2引数を1以上の数値にしてください。

まとめ

次回はこちら

ultrabirdtech.hatenablog.com