オラクる。

oracle専門ブログにしてみようかな~っと

2014年11月

今回はモジュールの作成方法と利用方法を確認します。
モジュールとして別ファイルを作成し、本体からはimportで作成したモジュールを読み込んで使えるようにするという感じです。

・スクリプト 
class testclass:
def __init__(self):
print ("create testclass")

def test_method(self,str):
print ("call test method")
print (str)

→上記モジュールをtestmodule.pyというファイル名で本体のスクリプトと同じフォルダに配置します。 

import testmodule
testclass1 = testmodule.testclass()
testclass1.test_method("1")

from testmodule import testclass
testclass1 = testclass()
testclass1.test_method("2") 

→まず、「import testmodule」でモジュールを読み込みます。
その後、モジュール名.クラス名でtestclassの初期化を行ないます。
初期化時にモジュールの「def __init__(self):」内の処理が読み込まれます。
初期化後に、testclass内の関数test_methodを読み込みます。

また、import時に「from モジュール名 import クラス名」と指定することで、 初期化時にモジュール名を記載する必要が無くなります。

・実行結果
create testclass
call test method
1
create testclass
call test method
2
 

日付を利用する場合、まずはdatetimeモジュールをインポートします。
「datetime.date.today()」で今日の日付を取得し、「datetime.datetime.today()」で今日の日付の詳細を取得します。

スクリプト
import datetime

today = datetime.date.today()
todaydetail = datetime.datetime.today()

print (today)
print (todaydetail)

print (today.year)
print (today.month)
print (today.day)
print (todaydetail.year)
print (todaydetail.month)
print (todaydetail.day)
print (todaydetail.hour)
print (todaydetail.minute)
print (todaydetail.second)

print (today.isoformat())
print (todaydetail.strftime("%Y-%m-%d %H-%M-%S"))
 
実行結果
2014-11-19
2014-11-19 23:45:32.231133
2014
11
19
2014
11
19
23
45
32
2014-11-19
2014-11-19 23-45-32 

日付の計算はtimedelta関数を利用します。
下記例では今日、今日の一日後、お正月までの日数を計算、出力しています。
 
スクリプト
import datetime

today = datetime.datetime.today()

print (today)
print (today + datetime.timedelta(days=1))

newyear = datetime.datetime(2015,1,1)
calc = newyear - today
print (calc)
print (calc.days)

実行結果
2014-11-19 23:54:14.929183
2014-11-20 23:54:14.929183
42 days, 0:05:45.070817
42
 

Pythonにおいても四則演算は+、-、*、/ を使います。
優先順位は+、-よりも*、/ の方が高いです。
() を使うことで、計算順序を変えることも出来ます。

スクリプト
# -*- coding: utf-8 -*- 

test_integer = 100

print (test_integer + 10)
print (test_integer - 10)
print (test_integer * 10)
print (test_integer / 10)

print (test_integer + 20 * 100)
print ((test_integer + 20) * 100)

実行結果
110
90
1000
10.0
2100
12000 

また、文字列として認識された数字は、そのままでは計算に利用できません。
int関数を利用して数値型に変換します。

スクリプト
# -*- coding: utf-8 -*- 

test_integer = "100"

print (int(test_integer) + 10) 
 
実行結果
110 

・文字列のゼロ埋め
与えられた文字列に対して、左側にゼロ、もしくは他の文字を埋め込むにはrjust関数を利用します。
例えば「rjust(10,"0")」の場合、総文字数が10になるように左側に0を埋め込みます。
第二引数は0でなくても問題ありません。

スクリプト
# -*- coding: utf-8 -*- 

test_str = "1234"

print (test_str.rjust(10,"0"))
print (test_str.rjust(10,"!")) 

実行結果
0000001234
!!!!!!1234 

また、zfillという関数を利用してゼロを埋め込むことも出来ます。
なお、引数の値より、文字数が大きい場合は特に何も起きません。

スクリプト
# -*- coding: utf-8 -*- 

test_str = "1234"

print (test_str.zfill(10))
print (test_str.zfill(3))

実行結果
0000001234
1234
 
・文字列の検索
先頭の文字が指定された文字列かを調べるにはstartswith関数を利用します。
結果はtrueかfalseで返ります。

スクリプト
# -*- coding: utf-8 -*- 

test_str = "python-izm"

print (test_str.startswith("python"))
print (test_str.startswith("izm")) 

実行結果
True
False 
 
もしくはin関数を利用する方法もあります。
「検索文字列 in 検索対象」という感じになります。

スクリプト
# -*- coding: utf-8 -*- 

test_str = "python-izm"

print ("z" in test_str)
print ("s" in test_str) 

実行結果
True
False
 
・大文字、小文字変換
大文字の変換はupper関数、小文字の変換はlower関数を利用します。

スクリプト
# -*- coding: utf-8 -*- 

test_str = "Python-Izm"

print (test_str.upper())
print (test_str.lower()) 

実行結果
PYTHON-IZM
python-izm 

・先頭、末尾の文字列削除
先頭の文字列を削除する場合はlstrip関数、末尾の文字列を削除するにはrstrip関数を利用します。
引数を指定してない場合は空白を除去します。

スクリプト
# -*- coding: utf-8 -*- 

test_str = "     Python-Izm"
print (test_str)
test_str = test_str.lstrip()
print (test_str)
test_str = test_str.lstrip("Python")
print (test_str)
test_str = test_str.rstrip("Izm")
print (test_str)

実行結果 
     Python-Izm
Python-Izm
-Izm

 

我が家からも近いし、そんなには混んでいないのが魅力的
京王線のよみうりランド駅か小田急線のよみうりランド駅のいずれかで行くことがありますが、今回は京王線のよみうりランド駅から行きました
ここは駅前からゴンドラが出ていて、それに乗って園内に行けます

IMG_9649
 
このゴンドラはとても眺めが綺麗
園内を一望することも出来るんです
よみうりランドのキャッチコピー「空から行けちゃう遊園地」 は、このゴンドラの景色から来ているのですね

IMG_9652

よみうりランドには絶叫系のアトラクションも結構あるけれど、まずは観覧車
一青窈の「大家」でも「よみうりランドの観覧車」は歌われていますね
天気が良かったので、景色がとても良かったです
そして、この日は平原綾香とコラボしているらしく、平原綾香の歌が流れていました

IMG_9656

初日で不具合を起こしてから、ずっと運休のままのツイストコースターロビン
半年以上経つけど、未だに再開の兆しは無し
今までに無いタイプのコースターなので、ぜひ再開して欲しいです

そして、真後ろに見えるのがフリーフォールのクレイジーヒューストン
カウントダウンとともに急上昇するクレイジーヒューと、ゆっくり上昇した後急降下するクレイジーストーン
どちらもドキドキ感がたまらないです

IMG_9658

IMG_9660

よみうりランドの名物コースター
開設当時は世界最速だったらしいです
森のなかを駆け抜ける感じが最高♪
 
IMG_9666

IMG_9665

IMG_9677
 
IMG_9686

さらに、この時期は「ジュエルミネーション」というイベントがやっていて、夕方以降園内がライトアップされます
アトラクションがイルミネーションに包まれるので、とても綺麗です
TV CMで宣伝しているだけあって、この「ジュエルミネーション」目当てなのか?
夜のほうが来園者が多かったです

IMG_9664

アシカショーのアシカたちも可愛かったですよ♪ 

このページのトップヘ