Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Python初心者が「Python文法詳解」を読んだメモ #3

More than 1 year has passed since last update.

バックナンバー

今日は短めですが、少しずつでもやっていこうと思います。
写経メインでサクッと。

累積代入文
>>> spam = 10
>>> spam += 100
>>> spam
110
>>> spam -= 60
>>> spam
50
>>> spam *= 10
>>> spam
500
>>> spam /= 2
>>> spam
250.0
>>> spam //= 3
>>> spam
83.0
>>> spam %= 10
>>> spam
3.0
>>> spam **=4
>>> spam
81.0

# ビット演算
>>> spam = 1024
>>> spam >>= 2
>>> spam
256
>>> spam <<= 2
>>> spam
1024

>>> spam = 0b11110000
>>> spam
240
>>> spam &= 0b00001111  # ビット論理積
>>> spam
0

>>> spam = 0b11110000
>>> spam ^= 0b00111100  # ビット排他的論理和
>>> spam
204   # 0b11001100

>>> spam = 0b11110000
>>> spam |= 0b00001111  # ビット論理和
>>> spam
255  # 0b11111111
変数名はかなり自由度が高い
# こんなこともできるし(別にやりたくないけど)
>>> スパム = 10
>>> def ハム():
...     return  * 3
... 
>>> ハム(スパム)
30

# これもあり
>>> π = 3.14
>>> V = A * Ω

# 大文字と小文字は区別される
>>> spam = 10
>>> Spam = 20
>>> spam
10
>>> Spam
20

# 以下の変数名は全て有効
>>> _spam = 1
>>> スパム = 1
>>>  = 1
>>> Spam = 1

# 以下の変数名は全て無効
>>> $pam = 1    # 記号始まり
>>> 1スパム = 1  # 数値始まり
>>> spam = 1  # 全角数値始まり
>>> スパム = 1 # 句読点はNG

# 変数名として使えるか判定することもできる
>>> 'Spam'.isidentifier()
True
>>> '♪'.isidentifier()
False

# ただし、名前はUnicode標準の正規化形式KCに正規化されるのでこうなる 関数名も同様
# 要するにやらないほうがいい
>>> スパム = '半角'
>>> スパム = '全角'
>>> print(スパム)
全角
>>> print(スパム)
全角
or
# orは「真」の値が返ってくる
>>> 1 or 0
1
>>> 0 or 2
2

>>> 0 or 0.0
0.0  # どちらも「偽」の場合は右辺の値が返ってくる

>>> 1 or 2
1  # どちらも「真」の場合は左辺の値が返ってくる
   # この時、「2」は評価すらされていない(この評価省略を「ショートサーキット」と呼ぶ)


# 実用例
>>> if x:      # このif文は
>>>     z = x
>>> else:
>>>     z = y

>>> z = x or y # こう書ける
and
>>> 1 and 2
2    # 両方「真」なら右辺の値が返ってくる
>>> 0 and 1
0    # どちらかが「偽」なら「偽」の値を返す(ここでも1はショートサーキットされている)
>>> 1 and 0.0
0.0  # どちらかが「偽」なら「偽」の値を返す
not
# notはbool型の値を返す
>>> not 1
False
>>> not 0
True
usayomo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away