🎃

【随時更新】たまにPythonを触る人のためのPythonの基本文法まとめ・チートシート

2023/10/27に公開

こんにちは、AIQ株式会社のフロントエンドエンジニアのまさぴょんです!
今回は、たまにPythonを触る人のためのPythonの基本文法まとめ・チートシートを作成したので、そのご紹介です。

標準出力

print('Hellow World') # Hellow World

変数

hello = 'Hellow World'

# 変数に再代入
hello = 'Hellow AIQ'

基本的なデータ型の種類と型定義

str型:文字列

# 1. str型:文字列
string: str = 'ロボ玉'

print(string) # ロボ玉
print(type(string)) # <class 'str'>

int型:整数

# 2. int型:整数
integer: int = 12

print(integer) # 12
print(type(integer)) # <class 'int'>

float型:小数点

# 3. float型:小数点
double: float = 12.34

print(double) # 12.34
print(type(double)) # <class 'float'>

bool型:真偽値

# 4. bool型:真偽値
boolean_true: bool = True
boolean_false: bool = False

print(boolean_true) # True
print(boolean_false) # False

print(type(boolean_true)) # <class 'bool'>
print(type(boolean_false)) # <class 'bool'>

list型:リスト

# 5. list型:リスト
array: list = ['ロボ玉試作1号機', 'ロボ玉試作2号機', 'ロボ玉試作3号機']

print(array) # ['ロボ玉試作1号機', 'ロボ玉試作2号機', 'ロボ玉試作3号機']
print(type(array)) # <class 'list'>

tuple型:タプル(定数・List)

# 6. tuple型:タプル => 定数-List
tupleData: tuple = ('robotama', 'hakutou', 'momo')

print(tupleData) # ('robotama', 'hakutou', 'momo')
print(type(tupleData)) # <class 'tuple'>

dict型:辞書

# 7. dict型:辞書
dictionary: dict = {
    'robotama-1': 'ロボ玉試作1号機',
    'robotama-2': 'ロボ玉試作2号機',
    'robotama-3': 'ロボ玉試作3号機',
}

print(dictionary) # {'robotama-1': 'ロボ玉試作1号機', 'robotama-2': 'ロボ玉試作2号機', 'robotama-3': 'ロボ玉試作3号機'}
print(type(dictionary)) # <class 'dict'>

数値計算

足し算

# 足し算
print(12 + 15 + 50) # 77

引き算

# 引き算
print(30 - 15) # 15

掛け算

# 掛け算
print(5 * 5) # 25

割り算

# 割り算
print(12 / 3) # 4.0

# 割り算 Ver. 割り切れない場合
print(15 / 7) # 2.142857142857143

// で、小数点を切り捨てる

# // で、小数点を切り捨てる
print(12 // 3) # 4
print(15 // 7) # 2

文字列操作

文字列の結合

# 文字列の結合
maritama = 'まり玉' + 'なのだ'
print(maritama)# まり玉なのだ

文字列に変数を埋め込む

momo = 'ももちゃん'
# 文字列に変数を埋め込む
hakutou = f'白桃さんと、{momo}'
print(hakutou)

改行Code

# 改行Code
print('ロボ玉\nぷるぷる')
# ロボ玉
# ぷるぷる

指定indexの文字列を取得

# 指定の index の文字を取得する(0始まり)
robotama = "ロボ玉"
print(robotama[2]) # 玉

文字列のスライス

robotama = "ロボ玉なのだ"

# index 0〜2 を取得する (0 <= index < 3)
print(robotama[0:3])

findメソッドで、該当の文字列のindexを探す

return は、最初に発見した index番号になります。
見つからない場合は、-1が返ってきます。

piui = 'ピウイは、やんちゃな子猫です'

resutl = piui.find('猫')
print(resutl) # 11

replaceメソッドで、文字列を置換する

# 文字列内の指定文字列を新しい文字列で置き換える
hakutou = "白桃さんは、ロボ玉を食べたい!"
momo = hakutou.replace('白桃さん', 'ももちゃん')
print(momo)
# ももちゃんは、ロボ玉を食べたい!

upperメソッドで、小文字を大文字に変換する

upperメソッドは、小文字の文字を大文字に変換するメソッドです。

robotama = "robotama"

# 文字列内のすべての文字を大文字に変換する
upper_tama = robotama.upper()

print(upper_tama) # ROBOTAMA

lowerメソッドで、大文字の文字を小文字に変換する

lowerメソッドは、大文字の文字を小文字に変換するメソッドです。

ROBOTAMA = "ROBOTAMA"

# 文字列内のすべての文字を小文字に変換する
lower_tama = ROBOTAMA.lower()

print(lower_tama) # robotama

splitメソッドで、特定の文字で、文字列を分割する・リスト化する

# Defaultは、空白で区切る
result = robotama.split()
print(result) # ['Robotama', 'is', 'so', 'Cute!']

lang = 'JavaScript,Python,PHP,TypeScript,HTML,CSS'
# 区切り文字を指定する場合
result = lang.split(',')
print(result) # ['JavaScript', 'Python', 'PHP', 'TypeScript', 'HTML', 'CSS']


lang = 'JavaScript ,Python, PHP, TypeScript, HTML, CSS'
result = lang.split(', ')
print(result) # ['JavaScript ,Python', 'PHP', 'TypeScript', 'HTML', 'CSS']

リストの操作

リストの生成とDataアクセス

# リストの作成
japan_location = ["東京", "さいたまー", "グンマー帝国"]

print(japan_location) # ['東京', 'さいたまー', 'グンマー帝国']

# index で 該当Dataを取得する
print(japan_location[0]) # 東京
print(japan_location[1]) # さいたまー

lenメソッドで、リストの長さ(要素数)を取得する

japan_location = ["東京", "さいたまー", "グンマー帝国"]

## lenメソッドで、リストの長さ(要素数)を取得する
print(len(japan_location)) # 3

リストの特定のDataをUpdateする

# リストの作成
japan_location = ["東京", "さいたまー", "グンマー帝国"]

japan_location[0] = 'Tokyo'
print(japan_location)
# ['Tokyo', 'さいたまー', 'グンマー帝国']

リストの特定のDataをUpdateする

japan_location = ["東京", "さいたまー", "グンマー帝国"]

## index 1から2までの List を切り取る
slice_list = japan_location[1:3]

print(slice_list) 
# ['さいたまー', 'グンマー帝国']

## 元のリストは、破壊されない
print(japan_location) 
# ['Tokyo', 'さいたまー', 'グンマー帝国']

append() で、リストに1つの要素を追加できる

japan_location = ["東京", "さいたまー", "グンマー帝国"]

## append() で、リストに1つの要素を追加できる
japan_location.append('ふなっしー')
print(japan_location)
# ['東京', 'さいたまー', 'グンマー帝国', 'ふなっしー']

extend() を使用してリストに要素を複数・追加できる

[]の形で、複数渡すので、そこだけ要注意です。

japan_location = ["東京", "さいたまー", "グンマー帝国"]

## extend() を使用してリストに要素を複数・追加する => [] の形で、複数渡すので、要注意
japan_location.extend(['北海道', '沖縄'])
print(japan_location) 
# ['東京', 'さいたまー', 'グンマー帝国', '北海道', '沖縄']

特定の文字列があるかを検索して、その要素のindexを取得する

最初に見つけた1つの要素の indexが欲しい場合は、index("文字列")を使用する。

my_list = ["apple", "banana", "cherry"]
index = my_list.index("banana")
print(1) # この場合、index は 1 になる

該当するすべてのindexが欲しい場合は、enumerateを使用する。

my_list = ["apple", "banana", "apple"]
indexs = [i for i, x in enumerate(my_list) if x == "apple"]  
print(indexs) # この場合、indices は [0, 2] になる

文字列リストを結合(join)する

文字列リストを結合(join)するには、次のようにします。

# リストの定義
items = ['遊園地・テーマパーク', '動物園', '水族館']

# リストをカンマ区切りの文字列に変換
comma_separated = ', '.join(items)

# 結果の表示
print(comma_separated)  # 出力: 遊園地・テーマパーク, 動物園, 水族館

リストの参照・Copy(Shallow Copy)

cat_list = ['白桃さん', 'ももちゃん', 'ぴうい']

# 参照・Copy
shallow_copy_list = cat_list

shallow_copy_list.append('ロボ玉')

print(cat_list) # ['白桃さん', 'ももちゃん', 'ぴうい', 'ロボ玉']
print(shallow_copy_list) # ['白桃さん', 'ももちゃん', 'ぴうい', 'ロボ玉']

リストのクローン(Deep Copy)

cat_list = ['白桃さん', 'ももちゃん', 'ぴうい']

# 値・Copy
deep_copy_list = cat_list[:]

deep_copy_list.append('ロボ玉')

print(cat_list) # ['白桃さん', 'ももちゃん', 'ぴうい']
print(deep_copy_list) # ['白桃さん', 'ももちゃん', 'ぴうい', 'ロボ玉']

タプル(定数リスト)

タプルは、valueのUpdateが不可能な定数リストです。

タプルの作成と、indexによるvalueの取得

# タプルは、valueのUpdateが不可能なリスト => つまり、定数リスト
robotama_tuple = ("ロボ玉", '東京', 2000)
print(robotama_tuple) # ('ロボ玉', '東京', 2000)

# index で value を取得する
print(robotama_tuple[0]) # ロボ玉
print(robotama_tuple[1]) # 東京
print(robotama_tuple[2]) # 2000

## Errorパターン => value の Update操作はできない
# print(robotama_tuple[0] = 'ピウイ')

タプルの長さを取得する

robotama_tuple = ("ロボ玉", '東京', 2000)

# タプルの長さを取得
tuple_len = len(robotama_tuple)
print(tuple_len) # 3

タプルを結合する

robotama_tuple = ("ロボ玉", '東京', 2000)

# 2つのタプルを結合
merge_tuple = robotama_tuple + ("白桃さん", '千葉県', 8000)
print(merge_tuple) # ('ロボ玉', '東京', 2000, '白桃さん', '千葉県', 8000)

タプルのスライス

# タプルは、valueのUpdateが不可能なリスト => つまり、定数・List
robotama_tuple = ("ロボ玉", '東京', 2000)

# 2つのタプルを結合
merge_tuple = robotama_tuple + ("白桃さん", '千葉県', 8000)

# インデックス0からインデックス2までの要素を取得する・スライス操作
slice_tuple = merge_tuple[0:3]

print(merge_tuple) # ('ロボ玉', '東京', 2000, '白桃さん', '千葉県', 8000)
print(slice_tuple) # ('ロボ玉', '東京', 2000)

辞書型(Dictionary)

辞書型(Dictionary)は、JavaScriptで言うところのObjectで、いわゆるkey:value型のData構造です。

ディクショナリの作成と、indexによるvalueの取得

## ディクショナリの作成
robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

## key を使用して、value を取得する
val1 = robotama_dict["robotama"]
val2 = robotama_dict["hamflag"]

print(val1) # ロボ玉
print(val2) # True

keys()メソッドで、ディクショナリからすべてのkeyを取得する

robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

## dict から すべての key を取得する
dict_keys = robotama_dict.keys()
print(dict_keys) 
# dict_keys(['robotama', 'from', 'hamflag', 'power'])

values()メソッドで、ディクショナリからすべてのvalueを取得する

robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

# dict から すべての vallue を取得する
dict_vals = robotama_dict.values()
print(dict_vals) # dict_values(['ロボ玉', '東京', True, 2000])

ディクショナリに新しい「key:value」を追加する

robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

## 新しい key & value の追加
robotama_dict['rival'] = '白桃さん'

print(robotama_dict)
# {'robotama': 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, 'rival': '白桃さん'}

ディクショナリの既存のvalueをUpdateする

robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

## 既存の Value の Update
robotama_dict['hamflag'] = False

print(robotama_dict)
# {'robotama': 'ロボ玉', 'from': '東京', 'hamflag': False, 'power': 2000}

ディクショナリのvalueを削除する

robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

# ディクショナリからエントリを削除
del(robotama_dict['power'])

print(robotama_dict)
# {'robotama': 'ロボ玉', 'from': '東京', 'hamflag': True}

ディクショナリにkeyが存在するかどうかを確認する

robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

# ディクショナリに特定の key が存在するかどうかを確認するには、inキーワードを使用します。
print('robotama' in robotama_dict) # True
print('speed' in robotama_dict) # False

比較演算子

  • 比較演算子は、2つの値を比較し、その結果として真偽値(TrueまたはFalse)を出力します。

  • Pythonの比較演算子の表現は、次のとおりです。

意味 演算子
等しい ==
等しくない !=
より大きい >
より小さい <
以上 >=
以下 <=

値が「等しいかどうか?」を比較・判定する

robotamaPower = 1000
hakutouPower = 3000
piuiPower = 1000

# 値が「等しいかどうか?」を比較・判定する
result = robotamaPower == hakutouPower
result2 = robotamaPower == piuiPower

print(result) # False
print(result2) # True

値が「等しくないかどうか?」を比較・判定する

robotamaPower = 1000
hakutouPower = 3000
piuiPower = 1000

# 値が「等しくないかどうか?」を比較・判定する
result = robotamaPower != hakutouPower
result2 = robotamaPower != piuiPower

print(result) # True
print(result2) # False

以上と以下の比較・判定

robotamaPower = 1000
hakutouPower = 3000
maritamaPower = 1500

# maritamaPower は、robotamaPower 以上 で hakutouPower 以下
result = robotamaPower <= maritamaPower <= hakutouPower
result2 = not (robotamaPower <= maritamaPower <= hakutouPower)

print(result) # True
print(result2) # False

条件分岐と論理演算子

  • 基本的な if, elif, else を使った条件分岐は次のように記述する。
print('成人・Checker')
# 年齢
age = 20 

if age > 20:
    print("大人だね🌟")
elif age == 20:
    print("成人の儀式!バンジージャンプ🔥")
else:
    print("まだ、お酒は飲めません。。。ぴえん🥺")

論理演算子

  • Pythonの論理演算子の表現と、その効果は、次のとおりです。
演算子 効果
and すべての条件がTrueの場合にTrueになる
or 条件のうちの1つ以上がTrueなら、Trueになる
not 条件の真偽を反転する
season = '夏'
favoritePlace = '海'

if season == '夏' and favoritePlace == '海':
  print('夏だ!ビーチに行こう!')
elif season == '夏' and season == '山':
  print('夏だ!山に行こう!')

age = 28

# 年齢が20以下、または、30以上かどうかを判断
if (age <= 20) or (age >= 30):
    print("年齢は20以下、または、30以上です")
else:
    print("年齢は20以下、または、30以上ではありません")


age = 25
# 20ではない場合
if not (age == 20):
    print("20では、ありません")
# 20の場合
else:
    print("20です🌟")

ループ処理

通常のfor文

my_animals = ["ロボ玉", "まり玉", "ピウイ", "白桃さん", "ももちゃん"]

# 通常の for文
for animal in my_animals:
    print(animal)

range関数で、設定した数の数値を繰り返し出力する(注意: 0 始まり)

# range関数で、設定した数の数値を繰り返し出力する(注意: 0 始まり)
for num in range(3):
    print(num)

for文でindexも取得する場合

my_animals = ["ロボ玉", "まり玉", "ピウイ", "白桃さん", "ももちゃん"]

# for文でindexも取得する場合
for index in range(len(my_animals)):
    animal = my_animals[index]
    print(index, animal)

タプルもリスト同様にfor文で取り出せる

# タプルは、valueのUpdateが不可能なリスト => つまり、定数・List
robotama_tuple = ("ロボ玉", '東京', 2000)

# タプルの要素を順番に取り出す
for robo in robotama_tuple:
    print(robo)

辞書(dict)の要素をforループで取り出す

## 辞書(dict)の要素をforループで取り出す方法
robotama_dict = {"robotama": 'ロボ玉', 'from': '東京', 'hamflag': True, 'power': 2000, }

# key & value 両方、取り出す
for key, value in robotama_dict.items():
    print(key, value)

# key のみを取り出す
for key in robotama_dict:
    print(key)

# value のみを取り出す
for value in robotama_dict.values():
    print(value)

関数

関数の定義(def)

  • Pythonの場合はdefで関数を定義します。
  • ちなみに、defは、define(定義する)の略です。
## 関数の定義
def hello(name):
    """
    挨拶をする関数
    """
    result = 'Hello' + name + 'さん'
    return result

print(hello('ロボ玉'))
print(hello('ピウイ'))

print(help(hello))
## [ 出力結果 ] ##
# Help on function hello in module __main__:

# hello(name)
#     挨拶をする関数

関数内でのグローバル変数の作り方

  • 関数内は、通常、ローカル・スコープですが、global 変数名でグローバル変数を定義することができます。
robotama = "ロボ玉"
def cute(robotama):
    # グローバル変数を定義
    global piui 
    piui= "ピウイ"
    print(robotama, "は可愛い!!")

cute(robotama) # ロボ玉 は可愛い!!
cute(piui) # ピウイ は可愛い!!

引数のデフォルト値設定

# デフォルト値を持つ引数の例
def plusTwo(x, y=2): 
   return x + y

print(plusTwo(3)) # 5
print(plusTwo(5)) # 7

可変長引数 Ver.すべて可変

  • 可変長引数は、*変数名で定義します。
  • 可変長引数の部分は、tupleとして「パック」されて渡されます。
# 可変長引数は params という引数に「パック」される
def printPrameter(*params): 
    print('引数の数', len(params)) # 引数の数: 5 
    print('Type:', type(params)) # Type: <class 'tuple'>

    # タプルなので、for で取り出す
    for param in params:
        print(param)

printPrameter('ロボ玉','まり玉','ピウイ', '白桃さん', 'ももちゃん')

可変長引数 Ver.一部可変

def calucNum(x, y, *num):
    result = x + y
    for n in num:
        result = result + n
    return result

print('calucNum-1:', calucNum(5,7,5)) # calucNum-1: 17
print('calucNum-2', calucNum(5,7,5,7,7)) # calucNum-2 31

可変長引数(パック) Ver.辞書

  • 可変長引数を、タプルではなく、辞書型で「パック」したい場合は**変数名でできます。
  • この際、辞書型の可変長引数の場合は、「key=value」の形で、引数をSetするので、注意です。c

## 可変長引数を、タプルではなく、辞書型で、パックする場合
def dictPack(**robotama):
    print('robotama: ', robotama) # robotama:  {'robotama': 'ロボ玉', 'live': '東京', 'hamflag': True, 'power': 2000}
    print('Type: ', type(robotama)) # Type:  <class 'dict'>

    for key in robotama:
        print(f'{key}: {robotama[key]}')

# 辞書型の可変長引数の場合は、「key=value」の形で、引数をSetする
dictPack(robotama='ロボ玉', live='東京',hamflag=True, power=2000)

# robotama: ロボ玉
# live: 東京
# hamflag: True
# power: 2000

Coming Soon(続き作成中・・・)

  • Set, Class, ファイル操作など、続きのコンテンツは作成中。。。

まとめ

今回は、Pythonを触る人のためのPythonの基本文法まとめ・チートシートを作成したので、ご紹介しました。

Pythonを使って、いろいろ作りながら、Pythonの使い方も随時更新していきたいと思います。

個人で、Blogもやっています、よかったら見てみてください。

https://masanyon.com/

注意事項

この記事は、AIQ 株式会社の社員による個人の見解であり、所属する組織の公式見解ではありません。

求む、冒険者!

AIQ株式会社では、一緒に働いてくれるエンジニアを絶賛、募集しております🐱🐹✨

詳しくは、Wantedly (https://www.wantedly.com/companies/aiqlab)を見てみてください。

参考・引用

https://zenn.dev/aiq_dev/articles/2629b53f1298bc

AIQ Tech Blog (有志)

Discussion