プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Python
  • 【Python】基本文法
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Python】基本文法

05.26

  • miyabisan2
  • コメントを書く

この記事は4分で読めます

変数

1
a = 1

コメント

1
# コメントです。

出力

print関数

1
2
3
4
a = 1
print(a)
 
print('a',a) # a 1

複数出力

1
2
3
a = 2
b = 3
print(a,b) # 2 3

辞書を出力(pprint)

辞書をprintするとそのままでは改行されず非常に見づらいです。その場合はpprintを使ってあげると自動でいい感じに改行してくれるのでデバッグが楽です。

1
2
3
4
5
from pprint import pprint
pprint(list[0])
 
{'address': '東京都',
'age': '25年'}

演算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = 1 + 2
print(a)
 
b = 2 - 1
print(b)
 
c = 2 * 2
print(c)
 
d = 4 / 2
print(d) # 2.0
 
# 4 ÷ 3 の商を計算
print(4 // 3)
 
# 5 ÷ 3 の余りを計算
print(5 % 3)

文字列

「ダブルクオート」と「シングルクオート」の違い

基本的には、文字列を囲むという用途ではどちらも違いはありません。

ただ、「文字列の中にダブルクオートを使いたい場合は、シングルクオートを使う」、「文字列の中にシングルクオートを使いたい場合は、ダブルクオートを使う」という様な使い分けをします。どちらを使っても変わりない場合はシングルクオートを優先して使うことが一般的です。

例

1
2
3
4
5
6
7
8
#文字列の中にダブルクオートを使いたい場合は、シングルクオートを使う
print('おはよう"ございます。')
 
#文字列の中にシングルクオートを使いたい場合は、ダブルクオートを使う
print("おはよう'ございます。")
 
#文字列の中にシングルクオート、ダブルクオートをどちらも使いたい場合
print("おはよう\'ござい\"ます。")

また、「文字列の中にシングルクオート、ダブルクオートをどちらも使いたい場合」は、\にてエスケープします。

変数に代入して特定の文字だけ取得

1
2
3
4
5
6
7
8
s = 'abcd'
print(s[0]) # a
 
a = 'abcd'
print(a[0:2]) # ab
print(a[2:]) #cd
print(a[:3]) #abc
print(a[-1]) #d

特に後者の範囲指定は、0から1ではなく0から2になるので注意しましょう。

比較演算子

1
2
3
2 == 2 # True
3 == 2 # False
3 >= 2 # True

型

1
2
3
4
5
6
7
8
type(2) # int
type(3.14) # float
type('テキスト') # str
type(False) # bool
type([1, 2, 3, 4, 5]) # list
type((1, 2, 3)) # tuple
type({'スイカ': 80, 'メロン': 100}) # dict
type({1, 2, 3}) # set

キャスト(型変換)

1
2
str(3) # '3'
int('3') # 3

条件分岐

1
2
if 2 < 4:
    print('あってます')

半角スペースは4つが良いです。

elif

1
2
3
4
if 2 < 0:
    print('ゼロより小さいです。')
elif 2 > 0:
    print('ゼロより大きいです')

普通の言語でいうelse ifです。

else:

1
2
3
4
if 0 != 0:
    print('ゼロではないです')
else:
    print('ゼロです')

for文

1
2
3
4
5
6
for i in range(3):
    print(i)
 
1
2
3

開始位置を指定

1
2
3
4
5
for i in range(1, 3):
    print(i)
 
1
2

一つ飛ばす

1
2
3
4
5
for i in range(1, 5, 2):
    print(i)
 
1
3

listを回す。

1
2
3
4
5
6
7
list = ['メロン', 'スイカ', 'いちご']
for v in list:
    print(v)
 
メロン
スイカ
いちご

while文

1
2
3
4
5
6
7
while i < 3:
    i = i + 1
    print(i)
 
1
2
3

break

1
2
3
4
5
6
7
8
9
while i < 5:
    print(i)
    i += 1
    if i == 3:
        break
 
0
1
2

continue

1
2
3
4
5
6
7
8
9
for i in range(5):
    if i == 3:
        continue
    print(i)
 
0
1
2
4

関数

組み込み関数

これ以外にも非常にたくさんの関数があります。公式ドキュメントで都度調べましょう。

  • len
  • print
  • type
  • id
  • range
  • enumerate
  • min
  • max

len

長さを取得できる。

1
2
str('こんにちは')
5

min、max

リストの中の最大値、最小値を取得できる。

1
2
3
4
5
6
list= [1, 2, 3]
print(max(list))
print(min(list))
 
3
1

自作関数

1
2
3
4
def aaa():
    print('Hello World')
 
aaa() # Hello World

戻り値を返す関数

1
2
3
4
def aaa():
    return 'Hello World'
 
print(aaa()) # Hello World

引数

1
2
3
4
def aaa(x):
    print(x)
 
aaa('Hello World') # 'Hello World'

キーワード引数

引数名を指定すれば、順番は順不同でもいけるというもの。

1
2
3
4
def get_full_name(first, name):
    return first + name
full_name = get_full_name(name='太郎', first='佐藤')
print(full_name)

lambda(ラムダ)式、無名関数

関数を短くかけます。

1
2
aaa = lambda x: x - 2
print(aaa(4))
条件分岐
1
2
aaa = lambda x: x if x == 2 else 0
print(aaa(2)) # 2
lambdaのユースケース
  • 関数名をつけるまでもない簡単な処理の場合に使う。
  • また、今後Pythonでデータ分析を行なっていきたい場合は頻出になるのでしっかり抑えましょう。

例外処理

1
2
3
4
5
6
try:
    a =1+'2'
except TypeError as e:
    print(e) # unsupported operand type(s) for +: 'int' and 'str'
 
print('例外処理完了') # これは普通に実行される。

なおtryを抜けた後の後続は普通に実行されます。もし例外処理を実行しないと実行時エラーが発生して後続処理は実行されないです。

例外型の種類

TypeError変数のデータ型に誤りがある場合のエラー。例えば、intとstrの値を結合させようとした場合に発生します。
MemoryErrorメモリが枯渇している場合に発生
AttributeError
NameError変数が定義されていない場合のエラー
Exception全ての例外を捕捉したい場合に記述(Errorは全てErrorを派生しているため)
ZeroDivisionErrorゼロで割った際のエラー
ValueError変数の値に問題がある場合に発生します。
RuntimeError実行時の例外。かなり汎用的な例外です。どの例外にも当てはまらない場合に使います。例えば、通信エラーなどはこれに含めてしまって問題ないと思います。

ExceptionとErrorの違い

XXXErrorクラスはExceptionクラスを継承して作られたクラスになります。

複数かける

なお、例外はどれか一つしか書けないというわけではなく以下のように複数記述することも可能です。

1
2
3
4
except TypeError as e:
    print('例外が発生しました',e)
except NameError as e:
    print('変数定義の際に例外が発生しました',e)

正常に終わった場合の処理、finally

1
2
3
4
5
6
7
8
9
try:
    # a =1+'2'
    a = 1 + 2
except TypeError as e:
    print('例外が発生しました',e)
else:
  print('正常です。')
finally:
  print('正常でも異常でもどちらも通る')

例外処理のユースケース

  • スクレイピングプログラムでURLが変わる場合

意図的に例外を発生させる。

1
raise 例外オブジェクト(メッセージ)

メッセージを指定すればトレースバックに出力されます。

ユースケース

では何のためにraiseさせるのかというと以下のようなケースが該当します。

バリデーション目的

例えば、ファイルから読み込んだCSVデータが意図と違っていた場合は意図的に例外を発生させます。

通信障害捕捉目的

例えば、WebAPIでエラーレスポンスとして500(サーバーダウン)などが返ってきた場合にステータスコードを確認してraiseしてあげたりします。

自作の例外クラスに変えたい場合

例外クラスはPython標準以外にも自分で自作することも可能です。自作の例外クラスを呼び出い場合などもraiseを使って呼ぶ必要があります。

retry目的

retryというライブラリは例外が発生したら自動的に再実行するのですが、一旦try ~ exceptで捕捉したうえでログ出力してraiseでretryを実行させる。

class

1
2
3
4
5
6
7
8
9
10
11
class Printer(object):
    def __init__(self,title):
        self.title = title
 
    def output(self):
        print(self.title +'を印刷します。')
 
printer = Printer('請求書')
printer.output()
 
請求書を印刷します。

self

オブジェクト自身を指しています。(上の例で言えばPrinterオブジェクト)

インスタンス変数

1
2
3
class Printer(object):
    def __init__(self,title):
        self.title = title

初期値を固定するなら以下の書き方もできます。

1
2
class Printer(object):
    title = "初期値"

継承

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Printer(object):
    def __init__(self,title):
        self.title = title
 
    def output(self):
        print(self.title +'を印刷します。')
 
printer = Printer('請求書')
printer.output()
 
class SubPrinter(Printer):
  pass
 
printer = SubPrinter('発注書')
printer.output()
 
請求書を印刷します。
発注書を印刷します。
スポンサーリンク
  • 2023 05.26
  • miyabisan2
  • コメントを書く
  • Python
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2023 06.26

    【Python】モジュール、自作モジュール、パッケージ、ライブラリ

  2. 2023 06.24

    【Python】PySimpleGUIについて

  3. 2023 06.22

    【Python】Tkinterについて

  4. 2023 06.04

    【Python】Scrapyでspiderを作成する流れ

  5. 2023 06.11

    【Python】スプレットシート操作

  6. 2018 06.18

    【Python】対話実行モード(REPL)。開発環境(PyCharm、IDLEなど)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Python】主流のスクレピングライブラリ

【Python】「Requests」の使い方

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー