2024-03-20

Pythonで文字列を大文字や小文字へ変換するよ

Pythonで文字列を大文字や小文字へ変換するよ

文字列を小文字から大文字へ変換するよ

# 対象文字列だよ
targetText = "I'm in Love"
# すべて大文字に変換するよ
print(targetText.upper())

実行結果

I'M IN LOVE

文字列を大文字から小文字へ変換するよ

# 対象文字列だよ
targetText = "I'm in Love"
# すべて小文字に変換するよ
print(targetText.lower())

実行結果

i'm in love

2024-03-19

Pythonで文字列から空白を削除するよ

Pythonで文字列から空白を削除するよ。

先頭の空白を削除するよ

# 対象文字列だよ(先頭と末尾に空白が入っていることに注目してね)
targetText = "  わたしは きのこ が食べれないよ       "
# 空白が削除されたことがわかるように先頭と末尾に"@"を付けているよ
print(f"空白削除前:{'@' + targetText + '@'}")
print(f"空白削除後:{'@' + targetText.lstrip() + '@'}")

実行結果

空白削除前:@  わたしは きのこ が食べれないよ       @
空白削除後:@わたしは きのこ が食べれないよ       @

末尾の空白を削除するよ

# 対象文字列だよ(先頭と末尾に空白が入っていることに注目してね)
targetText = "  わたしは きのこ が食べれないよ       "
# 空白が削除されたことがわかるように先頭と末尾に"@"を付けているよ
print(f"空白削除前:{'@' + targetText + '@'}")
print(f"空白削除後:{'@' + targetText.rstrip() + '@'}")

実行結果

空白削除前:@  わたしは きのこ が食べれないよ       @
空白削除後:@  わたしは きのこ が食べれないよ@

先頭と末尾の空白を削除するよ

# 対象文字列だよ(先頭と末尾に空白が入っていることに注目してね)
targetText = "  わたしは きのこ が食べれないよ       "
# 空白が削除されたことがわかるように先頭と末尾に"@"を付けているよ
print(f"空白削除前:{'@' + targetText + '@'}")
print(f"空白削除後:{'@' + targetText.strip() + '@'}")

実行結果

空白削除前:@  わたしは きのこ が食べれないよ       @
空白削除後:@わたしは きのこ が食べれないよ@

空白をすべて削除するよ

# 対象文字列だよ(先頭と末尾に空白が入っていることに注目してね)
targetText1 = "  わたしは きのこ が食べれないよ       "
targetText2 = targetText1.replace(" ", "")
# 空白が削除されたことがわかるように先頭と末尾に"@"を付けているよ
print(f"空白削除前:{'@' + targetText1 + '@'}")
print(f"空白削除後:{'@' + targetText2 + '@'}")

実行結果

空白削除前:@  わたしは きのこ が食べれないよ       @
空白削除後:@わたしはきのこが食べれないよ@

replace関数は文字を置換する処理だよ。
" "(空白)を""(無)に置換して空白を削除しているよ。

Pythonで文字列に変数の値を埋め込むよ

Pythonで文字列に変数の値を埋め込むよ。

文字列に変数の値を埋め込むよ①

# 名前だよ
name = "静香"
# 苗字と名前を結合してのび太の妻を表示するよ
resultText = "源" + name + ""
print(resultText)

実行結果

源静香

文字列に変数の値を埋め込むよ②

# 名前だよ
name = "英才"
# 苗字と名前を結合してチート野郎を表示するよ
resultText = "出木杉{}".format(name)
print(resultText)

実行結果

出木杉英才

文字列に変数の値を埋め込むよ③

# 名前だよ
name = "のび太"
# 苗字と名前を結合して主人公を表示するよ
resultText = "野比{name}".format_map({'name': name})
print(resultText)

実行結果

野比のび太

文字列に変数の値を埋め込むよ④

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 実行したときの秒を取得するよ
resultSecond = datetime.now().second
# 実行した秒が偶数か奇数か判定するよ
if resultSecond % 2 == 0:
    result = "偶数"
else:
    result = "奇数"
# 変数の値を文字列に埋め込んで表示するよ
resultText = f"実行したのは {resultSecond}秒 で {result} だよ。"
print(resultText)

実行結果

実行したのは 8秒 で 偶数 だよ。

Pythonで文字列と文字列を連結・結合するよ

Pythonで文字列と文字列を連結・結合するよ。

文字列を連結・結合するよ①

# 苗字と名前だよ
name1 = "剛田"
name2 = "武"
# 苗字と名前を連結してジャイアンを表示するよ
result = name1 + name2
print(result)

実行結果

剛田武

文字列を連結・結合するよ②

# 苗字と名前だよ
str_list = ["骨川", "スネ夫"]
# 苗字と名前を連結してジャイアンの部下を表示するよ
result = "".join(str_list)
print(result)

実行結果

骨川スネ夫

2024-03-17

Pythonで日付や時間を操作するよ

Pythonで日付や時間を操作するよ。
日付の計算などを紹介するね。

現在の日付、時間を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 現在の日付を表示するよ
today = datetime.now()
print(today)

実行結果

2024-03-17 08:33:25.084094

年、月、日を指定して日付型の値を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 年、月、日を指定して日付型にするよ
targetDate = datetime(2024, 4, 1)
print(targetDate)

実行結果

2024-04-01 00:00:00

年、月、日、時、分、秒を指定して日付型の値を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 年、月、日、時、分、秒を指定して日付型にするよ
targetDate = datetime(2024, 4, 1, 15, 35, 59)
print(targetDate)

実行結果

2024-04-01 15:35:59

yyyy/mm/dd形式、yyyy年mm月dd日形式で表示するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 年、月、日、時、分、秒を指定して日付型にするよ
targetDate = datetime(2024, 4, 1, 15, 35, 59)

# yyyy/MM/dd形式で表示するよ
print(targetDate.strftime("%Y/%m/%d"))
# yyyy/MM/dd hh:mm:ss形式で表示するよ
print(targetDate.strftime("%Y/%m/%d %H:%M:%S"))

# yyyy年/MM月dd日形式で表示するよ
print(targetDate.strftime("%Y年%m月%d日"))
# yyyy年/MM月dd日 hh時mm分ss秒形式で表示するよ
print(targetDate.strftime("%Y年%m月%d日 %H時%M分%S秒"))

実行結果

2024/04/01
2024/04/01 15:35:59
2024年04月01日
2024年04月01日 15時35分59秒

2つの日付を比較して大小チェックするよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 現在の日付を表示するよ
today = datetime.now()
# 年、月、日、時、分、秒を指定して日付型にするよ
targetDate = datetime(2024, 4, 1, 15, 35, 59)

# 日付の大小を比較するよ
if today < targetDate:
    print(f'今日は{targetDate.strftime("%Y/%m/%d")}より前だよ')
else:
    print(f'今日は{targetDate.strftime("%Y/%m/%d")}以降だよ')

実行結果

今日は2024/04/01より前だよ

経過日数を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 現在の日付を表示するよ
today = datetime.now()
# 指定の日付を指定するよ
targetDate = datetime(2024, 2, 1)
# 経過日数を計算するよ
resultDate = (today - targetDate).days
print(f"{resultDate}日経過しました。")

実行結果

45日経過しました。

日付型かチェックする関数を作るよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 日付型かチェックするよ
def isDate(targetValue):
    try:
        # 引数の型によって処理を分岐するよ
        if isinstance(targetValue, int):
            # 数値(yyyymmdd)を日付型に変換するよ
            resultValue = datetime.strptime(str(targetValue), "%Y%m%d")
            return True
        elif isinstance(targetValue, str):
            # 文字(yyyy/mm/dd)を日付型に変換するよ
            resultValue = datetime.strptime(targetValue, "%Y/%m/%d")
            return True
        elif isinstance(targetValue, datetime):
            # 日付型であればTrueを返すよ
            return True
        else:
            return False
    except ValueError:
        return False

# 数値型
print(isDate(20240229))
# 文字型
print(isDate("2024/02/55"))
# 日付型
print(isDate(datetime.today()))

実行結果

True
False
True

生年月日から年齢を計算する関数を作るよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 生年月日から年齢を計算するよ
def calcAge(birthDay):
    # 生年月日をdatetimeオブジェクトに変換
    birthDay = datetime.strptime(birthDay, "%Y/%m/%d")
    # 現在の日付を表示するよ
    today = datetime.now()
    # 年齢を計算するよ
    return today.year - birthDay.year - ((today.month, today.day) < (birthDay.month, birthDay.day))

# 年齢を計算
age = calcAge("2000/04/01")
# 年齢を表示
print(f"現在の年齢は{age}歳です。")

実行結果

現在の年齢は23歳です。

2024-03-16

Pythonでテキストファイルの文字を読むよ

Pythonでテキストファイルから文字を読み込むよ。
基本的な書き方から、便利な書き方、最後にテキストファイルを全行読み込んでリストに格納してみるよ。

テキストファイルから文字を読み込むサンプルだよ

読み込むテキストファイルの内容だよ。

この文字を読むよ
[EOF]
# ファイルを読むモードでファイルを開くよ
file = open(r"d:\サンプル.txt", "r")
# 1行目を読み込むよ
first_line = file.readline().strip()
# 結果を出力するよ
print(f"1行目の文字列は「{first_line}」")
# ファイルを閉じるよ
file.close()

実行結果

1行目の文字列は「この文字を読むよ」


ファイルの閉じ忘れを防止する書き方を紹介するよ

読み込むテキストファイルの内容だよ。

この文字を読むよ
[EOF]
# ファイルを読むモードでファイルを開くよ
with open(r"d:\サンプル2.txt", "r") as file:
    # 1行目を読み込むよ
    first_line = file.readline().strip()
# 結果を出力するよ
print(f"1行目の文字列は「{first_line}」")

実行結果

1行目の文字列は「この文字を読むよ」


テキストファイルの中の文字列を全行読み込んでリスト型に入れるよ

読み込むテキストファイルの内容だよ。

2024/03/15 21:18:15 149 : サンプル1行目
2024/03/15 21:18:15 150 : サンプル2行目
2024/03/15 21:18:15 151 : サンプル3行目
[EOF]
# ファイルを読むモードでファイルを開くよ
with open(r"d:\サンプル3.txt", "r") as file:
    # 格納するリストを初期化するよ
    all_lines = []
    # ファイルを1行ずつ処理するよ
    for line in file:
        # 語尾の改行は邪魔だから削除するよ
        line = line.rstrip("\n")
        # リストにぶちこむよ
        all_lines.append(line)
        
# 結果を出力するよ
for index, all_line in enumerate(all_lines):
    print(f"{index + 1}行目は「{all_line}」")

実行結果

2024/03/15 21:18:15 149 : サンプル1行目
2024/03/15 21:18:15 150 : サンプル2行目
2024/03/15 21:18:15 151 : サンプル3行目


2024-03-14

Pythonでテキストファイルに文字を書くよ

Pythonでテキストファイルに文字を書いてみるね。

テキストファイルに文字を書き込むよ①

# 書くモードでファイルを開くよ
file = open(r"d:\サンプル.txt", "a")
# ファイルに文字列を書き込むよ
file.write("この文字を書くよ\n")
# ファイルを閉じるよ
file.close()

実行結果

この文字を書くよ
[EOF]

基本的なプログラムの書き方だよ。ファイルを開いたら最後は閉じることを忘れないでね。 ファイルを閉じないとプログラムが終了するまで使用中になって編集できなくなっちゃうよ。



テキストファイルに文字を書き込むよ②

# 書くモードでファイルを開くよ
with open(r"d:\サンプル2.txt", "a") as file:
    # ファイルに文字列を書き込むよ
    file.write("この文字を書くよ\n")

実行結果

この文字を書くよ
[EOF]

withを使ったプログラムの書き方だよ。 こちらはwithの処理が終わったら自動的にファイルが閉じられるよ。 閉じ忘れがないから安心だね。



ログを出力する関数を作るよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 
# ログを出力するよ
# 
def LogOutput(outStr):
    # 書くモードでファイルを開くよ
    with open(r"d:\サンプル3.txt", "a") as file:
        # 年月日 時分秒 ミリ秒(3桁)を取得するよ
        nowStr = datetime.now().strftime("%Y/%m/%d %H:%M:%S %f")[:-3]
        # ファイルに文字列を書き込むよ
        file.write(nowStr + " : " + outStr + "\n")
    return

# 1回目のログ出力だよ
LogOutput("サンプル1行目")
# 2回目のログ出力だよ
LogOutput("サンプル2行目")
# 3回目のログ出力だよ
LogOutput("サンプル3行目")

実行結果

2024/03/15 21:18:15 149 : サンプル1行目
2024/03/15 21:18:15 150 : サンプル2行目
2024/03/15 21:18:15 151 : サンプル3行目
[EOF]