Pythonの制御構文

プログラミング

自分向けの備忘録です。

宣言 (statements)

変数 (variable)

num = 100

# 100 と表示される
print( num )

リスト (list)

他のプログラミング言語における配列(array)と同等

arrayA = [10, 20, 30]

# 10と表示される
print(array[0])

タプル (tuple)

arrayA = (10, 20, 30)

# 10と表示される
print(array[0])

辞書型 (dictionary)

dict_x = {"first": 1, "second":2, "third": 3}

# 1 と表示される
print( dict_x["first"] )

関数 (function)

def 関数名(引数):
    ~ 内容 ~

組み込み関数 (built-in functions)

# 整数に変換
int()

# 浮動小数点数に変換
float()

# 文字列に変換
str()

# 端末からの入力を受け付ける
input()

range()
len()

format()
str.format()


print(int('10,000'.replace(',', '')))
# 10000と表示される
組み込み関数
Python インタプリタには数多くの関数と型が組み込まれており、いつでも利用できます。それらをここにアルファベット順に挙げます。,,,, 組み込み関数,,, A, abs(), aiter(), all(), anext(), any()...

制御構文 (control flow statements)

if / elif / else文

if 条件式:
    ~ 内容 ~
elif 条件式:
    ~ 内容 ~
else:
    ~ 内容 ~

for文

繰り返し処理を行います。elseがある場合、ループの最後に else 内の処理を実行します

# fruits = ("apple", "banana", "melon", "orange") のようにタプルでも可能
fruits = ["apple", "banana", "melon", "orange"]

for i in fruits:
    print(fruits)
else:
    print("finished!")

### 表示結果 ###
apple
banana
melon
orange
finished!
# foobar.txtの中身を一行ずつ表示
for line in open("foobar.txt")
    print(line)

処理を繰り返したい回数を指定する場合、range()を使います。

for i in range(5)
  print(i)

while文

# x が10以上になるまで処理を繰り返す
# else が最後にある場合、ループの最後に else 内の処理を実行
x = 1
total = 0

while x <= 10:
    total += x
    x += 1
else:
    print("finished")

match文

Python バージョン3.10で新たに搭載された文で他の言語におけるswitch文と同等。default: の処理は case _: のようにアンダースコアを指定します。

match 変数等:
    case "foo":
        ~ 処理 ~

    case "bar":
        ~ 処理 ~

    case "hoge":
        ~ 処理 ~

    case _:
        ~ 処理 ~

with文

withを使えば、withブロックが終了した時に自動的に終了処理が呼び出されます。

# withを用いない書き方
f = open("test.txt")
print(f.read())
f.close()


# withを用いた書き方1
# f.close() を書かなくて良い
with open("test.txt") as f:
    print(f.read())


# withを用いた書き方2
# f.close() を書かなくて良い
f = open("test.txt")
with f:
    print(f.read())

exec文

引数の文字列を Python のプログラムとして実行します。

exec("print('Hello')")

try-except-else-finally文

例外処理。tryで実行してエラーが発生した場合、exceptで処理、エラーがない場合elseで処理、finallyはエラーの有無に関係なく行う最後の処理。

def divide(a, b):
    try:
        print(a / b)
    except ZeroDivisionError as e:
        print('catch ZeroDivisionError:', e)
    except TypeError as e:
        print('catch TypeError:', e)
    else:
        print('finish (no error)')
    finally:
        print('all finished')
        

return

def keisan(x, y):
  z = x * y
  return z

# 6 と表示される
print( keisan(2, 3) )
def add_mul(x, y):
    return (x + y, x * y)

z0, z1 = add_mul(1, 2)

# 3 2 と表示される
print(z0, z1)

continue

continueは条件が真の時に残りの処理を飛ばして再度ループに戻る。

>>> for i in range(1, 6):
...     if i == 3:
...         continue
...     print(i, end = ",")
...
1,2,4,5,

break

for文やwhile文などループからの脱出に使われる

def kion_msg ( temp ):

    warning = ""
    num = (35.0, 30.0, 28.0)
    
    msg = (
    "野外での運動は直ちに中止してください。",
    "野外での運動は控えてください。",
    "脱水症状に気をつけましょう",
    "特に注意報は発令されていません。")

    for i in range( len(num) ):
        if num[i] <= temp:
            warning = msg[i]
            break
        else:
            warning = msg[3]

    print ("現在の気温は {:.1f}℃ です。".format(temp) + warning )

kion_msg( 36.6 )

>$ python3 test.py

演算子 (operators)

数値演算子 (arithmetic operators)

  +   # 加算
  -   # 減算
  *   # 乗算
  /   # 除算
  %   # 剰余

ビット演算子 (bitwise operators)

  <<  # 左へビットシフト
  >>  # 右へビットシフト
  &   # 論理積
  |   # 論理和
  ~   # 論理否定
  !   # 論理否定
  ^

代入演算子 (assignment operators)

  x = y    # x に y を代入
  x += y   # x = x + y と同等
  x -= y   # x = x - y と同等
  x *= y   # x = x * y と同等
  x /= y   # x = x / y と同等
  x %= y   # x = x % y と同等

  x **= y   # x = x ** y に同じ
  x //= y   # x = x // y に同じ
  x &= y    # x = x & y に同じ
  x |= y    # x = x | y に同じ
  x ^= y    # x = x ^ y に同じ
  x <<= y   # x = x << y に同じ
  x >>= y   # x = x >> y に同じ

# インクリメント(x++)・デクリメント(i--) は対応していないので以下で代用
  x += 1
  x -= 1

論理演算子 (logical operators)

# 論理 NOT
if not(num <= num2):

# 論理 AND
if (20 <= num1) and (100 < num2):

# 論理 OR
if (num1) or (num2):

関係演算子 (relational operators)

num1 == num2
num1 is num2

num1 != num2
num1 is not num2

num1 <  num2
num1 <= num2
num1 >  num2
num1 >= num2

参照元

公式サイトのドキュメント

Python Documentation contents
What's New in Python- What's New In Python 3.12- Summary -- Release highlights, New Features- PEP 695: Type Parameter Sy...

参考にさせていただいたサイト様

【初心者向け】Pythonでfor文の使い方をマスターしよう - TECH PLAY Magazine
Pythonにおけるfor文は要素を順番に取り出して処理を行うための制御構文です。この記事ではfor文の基本的な使い方を解説しています。Pythonでプログラミングをする場合には必須の機能となりますので、しっかりとマスターしておきましょう。
例外処理(try-except)を活用しよう - Qiita
はじめにPythonの例外処理(try-except)について,簡単に紹介します.基本構文Pythonの例外処理の基本として,try-exceptがあります.例として,ゼロ除算実行時に発生するZeroDivisionErro…
とほほのPython入門 - 制御構文 - とほほのWWW入門

コメント