Python基本文法3

公開日: 2025/2/12 更新日: 2025/1/22
グローバル(global)宣言・グローバル変数とは、関数内でグローバル変数にアクセスするための宣言です。

ローカル変数(関数定義の内部で定義した関数)とグローバル変数(関数定義の外側で定義した変数)があります。

glb = 0

def func1():
    glb = 1

def func2():
    global glb
    glb = 5

print(glb) # 0が出力される
func1()
print(glb) # 0が出力される
func2()
print(glb) # 5が出力される

1. ライブラリ


ライブラリとは、ある程度まとまった汎用性の高い処理(関数・クラス・その他)を他のプログラムから読み込むことで、使うことが出来るようにしたファイルです。

Python内では基本的にimportできるものをライブラリと呼んだりします。

ライブラリは一般的な呼び名であり、Pythonでは、基本的にライブラリという表記があったら、モジュールのことだと思ってください。

2. モジュールとパッケージ


モジュールはPythonのコードをまとめたファイルであり、他のプログラムから再利用できるようにしたファイルのことを「モジュール」と言います。

単体では動作しませんが、importすることでモジュールが使えるようになります。

パッケージとは__init__.pyと複数のモジュールがディレクトリに集まったものです。

__init__.pyはパッケージディレクトリに置かれ、そのパッケージをインポートした際に実行されます。

2-1. モジュールのインポート

import文の単純な使い方は次のようになります。

・import 読み込みたいモジュール

読み込みたいモジュールの部分は、他のPythonファイルのファイル名から拡張子の.pyを取り除いたものです。

例、sysモジュールを読み込みたい時

(sysモジュールは、Pythonをインストールした段階で利用できるモジュールの1つです。これを標準モジュールと呼び、他にもosモジュールなど様々あります。)

import sys

複数のモジュールをインポートする場合、「,」でモジュール名を区切ってインポートできます。

import sys, os

例、mathモジュールのcos関数を利用したい場合はモジュール名.関数名(引数)で利用できます。

import math
math.cos(1) # 0.5403023058681398

3. fromとimport


from ファイル名(モジュール名) import *でファイル名の指定なしに呼び出しが可能になります。

from モジュール名 import *

モジュールの関数などを利用する際に、モジュール名.の記述を省略して関数名だけで使用したい場合は以下になります。

from math import cos, sin, tan
cos(1)

構文を元に次のようにプログラムを書くことが出来ます。

from math import cos, sin, tan
cos(1)

名前を指定せずにモジュール内のすべてのメンバ(関数、定数、クラスなどのこと)をインポートする場合は、以下のように指定します。

# from モジュール名 import *
from math import *
cos(1)
sin(1)

3-1. 別名でのモジュールのインポート

# main.py
import fortune

result = fortune.get_fortune()
print("今日の運勢は... ", result)

import fortuneと記述していましたが、asを用いることで、別名をつけることができます。

import fortune as ft

result = ft.get_fortune()
print("今日の運勢は... ", result)

別名をつけたことでft.get_fortune()と呼び出すことが出来るようになります。

3-2. 必要なものだけをインポートする

必要な部品だけもインポートできます。

from fortune import get_fortune

result = get_fortune()
print("今日の運勢は... ", result)

また別名をつけ、かつget_fortuneだけインポートすることもできます。

from fortune import get_fortune as gf

result = gf()
print("今日の運勢は... ", result)

4. ライブラリ・モジュールの場所を調べる


ライブラリの場所は、モジュールの file アトリビュートか path アトリビュートで調べることができます。

import os
print( os.__file__ ) # /Users/aiacademy/anaconda3/lib/python3.6/os.py

5. 日付


日付関係の処理について。

datetimeモジュールを使う。

datetimeオブジェクトからdate()メゾットを利用することで、日付部分だけを取得できます。


コード

today=datetime.date.today()   現在の日付を取得
year=today_date.year             日付から年の情報を取得
month=today_date.month       日付から月の情報を取得
day=today_date.day               日付から日の情報

5-1. 現在日時の取得

import datetime
tzone = datetime.timezone(offset=datetime.timedelta(hours=9), name="Asia/Tokyo")
print(datetime.datetime.now(tzone))


print(tzone)
2024-03-13 17:00:19.981555+09:00
Asia/Tokyo

5-2. 現在よりも○○時間後

30日後
import datetime

tzone = datetime.timezone(offset=datetime.timedelta(hours=9), name="Asia/Tokyo")
now = datetime.datetime.now(tzone)
print(now)

future = now + datetime.timedelta(days=30)
print(future)
2024-03-13 17:02:31.905607+09:00
2024-04-12 17:02:31.905607+09:00

5-3. 日時の比較

import datetime


tzone = datetime.timezone(offset=datetime.timedelta(hours=9), name="Asia/Tokyo")
now = datetime.datetime.now(tzone)
future = now + datetime.timedelta(days=30)


print(now < future)


print(now > future)
True
False

5-4. フォーマットとして出力

import datetime
tzone = datetime.timezone(offset=datetime.timedelta(hours=9), name="Asia/Tokyo")
now = datetime.datetime.now(tzone)

print(now.strftime("%Y-%m-%d %H:%M:%S%z"))
2024-03-13 17:13:14+0900