【随時更新】たまにPythonを触る人のためのPythonの基本文法まとめ・チートシート
こんにちは、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もやっています、よかったら見てみてください。
注意事項
この記事は、AIQ 株式会社の社員による個人の見解であり、所属する組織の公式見解ではありません。
求む、冒険者!
AIQ株式会社では、一緒に働いてくれるエンジニアを絶賛、募集しております🐱🐹✨
詳しくは、Wantedly (https://www.wantedly.com/companies/aiqlab)を見てみてください。
参考・引用
AIQ 株式会社 に所属するエンジニアが技術情報をお届けします。 ※ AIQ 株式会社 社員による個人の見解であり、所属する組織の公式見解ではありません。 Wantedly: wantedly.com/companies/aiqlab
Discussion