0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonノート: 基本系

Last updated at Posted at 2023-07-22

概要

Pythonノート基本系 (自分用メモ)

基本

文・式

基本的にインタープリタなので1文ずつ解釈して動作

改行が文の区切りになる

print("Hello")
print("Goodbye")

コロンで区切っても良い

>>> print("Hello"); print("Goodbye")
Hello
Goodbye

コメント

#で始まる行はコメントとして扱われる

# comment xxxx

制御構文

インデント

制御構文のブロックは一般的に括弧{ ...... }で表すことが多いが、pythonはインデントによってブロックを表現する

if文

if a is b:
    print("a is equal to b")
else:
    print("a is not equal to b")

while文

while condition: でブロックを始める。
else:節を記載した場合ブロックは一度だけ実行される

while a < b:
    print(f"a = {a}")
    a += 1
else:
    print(f"a = {a} (end)")

for文

forはシーケンス型(list, tuple...)の各要素に対して処理を繰り返す
for 変数 in リスト:のように記載
else:節がある場合は最後に一度だけブロックを実行

>>> for i in [1,2,3,4]:
...     print(f"i={i}")
... else:
...     print("end")
i=1
i=2
i=3
i=4
end

range関数

range関数は整数などのシーケンスを作成するのに便利
書式は range(start, stop [, step])
start省略時はstart=0, step省略時はstep=1

>>> for num in range(0, 4):
...   print(num)
...
0
1
2
3

戻り値はrange型のオブジェクト (class 'range')

>>> r = range(3)
>>> r
range(0, 3)
>>> type(r)
<class 'range'>

break / continue

break/continueは他言語同様
breakはループを脱出、continueは処理をスキップし次のインデックスの処理から再開する。

for i in range(10):
    if i != 3:
        print(f"i=={i}")
    else:
        print("i==3 => break")
        break
for i in range(10):
    if i != 3:
        print(f"i=={i}")
    else:
        print("i==3 => skip")
        continue

演算子

算術演算子

種類 記法
加算 + a = 1 + 2
減算 - a = 3 - 2
乗算 * a = 2 * 2
累乗 * a = 2 ** 3
除算(結果はfloat) / a = 125 / 23 (a = 5.434782608695652 )
除算(余りは切り捨て) // a = 125 // 23 (a = 5)
剰余 % a = 125 % 23 (a = 10)

ビット演算子

種類 記法
AND a & b
OR a | b
XOR a ^ b
左シフト(算術) a >> n
右シフト(算術) a << n

論理(bool)演算子

種類 記法
and a and b
or a or b
not not b

比較演算子

種類 記法
等しい a == b
異なる a != b
~より小さい a < b
~より大きい a > b
~以下 a <= b
~以上 a >= b
等しい a is b
異なる a is not b
に含まれる(bはシーケンス型) a in b
に含まない(bはシーケンス型) a not in b

組み込み型

公式 docs.python.org : 組み込み型

型を調べる

  • type()関数を使う
  • 整数(int)型の場合
>>> num = 10
>>> type(num)
<class 'int'>

数値型 int / float / complex

公式 docs.python.org: 数値型 int, float, complex

int(整数)

>>> num = 3

0x 0o 0bで始まる値は16進数、8進数、2進数で記載した数値として扱われる

>>> 0x20
32
>>> 0o20
16
>>> 0b10
2

float(浮動小数点型)

>>> type(0.02)
<class'float'>

e'n(整数)'で10のn乗を表す

>>> 0.24e-3
0.00024

complex(複素数型)

虚数をjで記載して複素数を表す

>>> cmp = 1 + 2j
>>> type(cmp)
<class'complex'>

str 文字列型

シングル;/ダブルクォートで囲んだ値は文字列リテラル(=定数)となる。

>>> s = 'abc'
>>> type(s)
<class'str'>

bool ブール型

True,Falseで記載

>>> B = True
>>> C = False
>>> A and B
False

list リスト型

[ ] で囲んだ値がリスト(いわゆる配列)

>>> list_1 = [ 3, 7, 'abc', 2+3j]
>>> list_1
[3, 7, 'abc', (2+3j)]
>>> type(list_1)
<class'list'>

tuple タプル型

( ) で囲んだ値がタプル(書き換え不可なリスト)

>>> tpl = (5,6,'tuple')
>>> tpl
(5, 6, 'tuple')
>>> type(tpl)
<class'tuple'>

dict ディクショナリ型

{ } で囲んだ値がディクショナリ(辞書型=ハッシュ型)

>>> dct = {'age':10, 'name':'Bob', 'job':'null'}
>>> dct
{'age': 10, 'name': 'Bob', 'job': 'null'}
>>> dct['name']
'Bob'
>>> type(dct)
<class'dict'>

内包表記 [式 for 変数名 in シーケンス型オブジェクト]

リストなどシーケンス型の各要素に対して演算した結果をリスト(など)に格納できる

>>> a = [2,5,6]

リストの各要素の2倍の値のリスト

>>> [i * 2 for i in a]
[4, 10, 12]

bytes型

文字列リテラルにプレフィックスbをつけたものはbytes型となる

>>> b = b'abc'
>>> type(b)
<class'bytes'>

また文字列型オブジェクトに対しencode(),decode()メソッドを使用してbyte型に変換できる

>>> s = 'abc'
>>> s.encode()
b'abc'

型変換

数値↔文字列変換

int(文字列, base)

  • 16進数 base=16
>>> int('20', 16)
32
  • 10進数 base=10
>>> int('20', 10)
20
  • base=2
>>> int('100', 2)
4

str(整数)

  • 整数(10進) →文字列
>>> str(20)
'20'
  • 整数(16進) →文字列
>>> str(0x20)
'32'

文字列format

formatメソッド

  • format() メソッドでの表示
  • 記載方法 : "本文 {:フォーマット}".format(変数)
>>> name = 'bob'
>>> age = 33
>>> print("Name is {:s}. Age is {:d}".format(name, age))
Name is bob. Age is 33

f文字列

  • f文字列でもformatメソッド同様の出力ができる
  • 記載方法 : f"本文 {変数:フォーマット}"
>>> print(f"Name is {name:s}. Age is {age:d}")
Name is bob. Age is 33

字下げ、桁揃えのフォーマット指定

  • 右揃えは>, 左揃えは<で指定。
>>> print(f"Age: {age:>3d}")
Age:  33
     ^^^ 3文字で右寄せ (空白埋め)

>>> print(f"Age: {age:<3d}")
Age: 33
     ^^^ 3文字で左寄せ

  • 0埋めの指定
>>> print(f"Age: {age:>03d}")
Age: 033
     ^^^ 3文字で右寄せ (0埋め)

%を使った書式化

>>> print("Age: %03d" % age)
Age: 033
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?