Pythonプログラミング入門・サンプル・チュートリアル

Pythonプログラミング入門・サンプル・チュートリアル

【Pythonプログラミング入門】関数の基本的な定義方法、呼び出し方法

関数の基本的な定義方法、呼び出し方法

  • 「def 関数名(引数1, 引数2, ・・・): 処理」で定義する
  • 関数名の先頭は「英字」か「_」であること
  • 関数名には「英字」「数字」「_」以外は使えない
  • 関数でreturnを呼び出さなければ、呼び出し元にはNoneが戻される
# 処理なしの関数
def do_nothing():
    pass  # 処理内容がない場合、passを入力しないとエラーになる

do_nothing()

# 文字列を出力する関数
def say_hello():
    print("Hello!!!")
    
say_hello()

# 戻り値がある関数
## 文字列を返す
def your_name():
    return "Sato"

name = your_name()
print(name)

## bool値を返す
def success():
    return True

if success():
    print("成功")
else:
    print("失敗")
    
## 戻り値がない場合Noneが返される
print(do_nothing())
    
# 引数がある関数
def greeting(name):
    return "Hi," + name + "!!!"

print(greeting("Yamada"))

【Pythonプログラミング入門】設定ファイルの読み込み(サンプルあり)

この記事を読んでわかること

  • 設定ファイルの読み込み

設定ファイルの読み込み

  • Windowsのini形式のファイルの読み込み
  • configparserモジュールを使う
import configparser

# 設定ファイルの読み込み
cfg = configparser.ConfigParser()
cfg.read('localize.cfg')

# セクションの取得
## 繰り返し文で表示
print("繰り返し文で表示")
for section in cfg:
    for key, value in cfg[section].items():
        # 要素の表示
        print('キー:', key, '値', value)

print("")

## セクションを指定してアクセス
print("セクションを指定してアクセス")
obj = cfg['japanese']
for key, value in obj.items():
    # 要素の表示
    print('キー:', key, '値', value)

実行結果

f:id:fjswkun:20170204134447p:plain

使用した設定ファイル

localize.cfg

[japanese]
hello = こんにちは
bye = さようなら

[chinese]
hello = 你好
bye = 再见

【Pythonプログラミング入門】YAMLの読み書き(サンプルあり)

この記事を読んでわかること

  • YAMLの読み込み
  • YAMLの書き込み

YAML

PyYAMLのインストール

pip3 install PyYAML

YAMLの読み書き

YAMLの読み込み

  • 悪意のあるYAMLファイルを読み込んだ場合、致命的なエラーになる。
  • 必ずsafe_load()を使う
import yaml

# ファイルの読み込み
with open('tom.yaml', 'rt') as fp:
    text = fp.read()

# YAML文字列の読み込み
data = yaml.safe_load(text)

# 文字列
name = data['name']
print(name['first'])

# 数値
passport = data['passport']
print(passport)

# 日付
date = data['dates']
print(date['birth'])
print(date['death'])

# 配列
hobbies = data['hobby']
for hobby in hobbies:
    print(hobby)

# 辞書
businesses = data['business']
for business in businesses:
    print(business['company'])
    print(business['from'])
    print(business['to'])

使用したYAMLファイル

sato.yaml

name:
  first: Ichiro
  last: Sato
dates:
  birth: 1980-01-01
  death: null
hobby:
  - Travel
  - Game
passport: 1234567890
business:
  - company: Example Company
    from: 2001-01-01
    to: 2005-12-31
  - company: Example Example Company
    from: 1999-01-01
    to: 2000-12-31

YAMLの書き込み

  • dump()を使うとYAML形式の文字列を出力できる
# YAMLの書き込み
import yaml
from datetime import date

yamada = {
    'name': { 'first': 'Taro', 'last': 'Yamada'},
    'dates': { 'birth': date(1940, 2, 3), 'death': date(1999,4,5)},
    'passport': 1010101010,
    'hobby': ['Jogging', 'Book']
}

yamada_yaml = yaml.dump(yamada, default_flow_style=False)

# ファイル作成
with open('yamada.yaml', 'wt') as fp:
    fp.write(yamada_yaml)

書き込まれたYAMLファイル

yamada.yaml

dates:
  birth: 1940-02-03
  death: 1999-04-05
hobby:
- Jogging
- Book
name:
  first: Taro
  last: Yamada
passport: 1010101010