かなり気分的な技術日記

日々の勉強メモです

【Python#7】ブール値

概要

ブール値について

内容

bool()関数

0ではない数値はTrue。

>>> bool(True)
True
>>> bool(1)
True
>>> bool(45)
True
>>> bool(-45)
True

値が0の数値はFalse。

>>> bool(False)
False
>>> bool(0)
False
>>> bool(0.0)
False

Trueとは何か

チェックしている要素がブール値ではない場合、以下はすべてFalseとして扱われる。
その他のものはすべてTrueと見なされる。

要素
ブール値 False
整数のゼロ 0
浮動小数点のゼロ 0.0
空文字 ''
空リスト []
空タプル ()
空辞書 {}
空集合 set()

以下のように、「真」と「偽」の定義を使って、空データ構造かどうかをチェックすることができる。

>>> some_list = []
>>> if some_list:
...     # Trueの場合
...     print("空ではありません")
... else:
...     # Falseの場合
...     print("空です")
...
空です

【Python#6】\(バックスラッシュ)を使用した行の継続

概要

継続文字の(バックスラッシュ)の使い方

内容

行末に(バックスラッシュ)を置くと、Pythonはまだ改行していないと認識して動作する。
以下、サンプル。
継続文字を使用することで、改行ではなく継続行として認識する。

>>> total = 1 + \
...         2 + \
...         3 + \
...         4
>>> total
10

継続文字がない場合、無効な構文エラーになる。

>>> total = 1 +
  File "<stdin>", line 1
    total = 1 +
               ^
SyntaxError: invalid syntax
>>>

なお、(バックスラッシュ)を使用せずに、以下のような記載もできる。

>>> total = (
...     1 +
...     2 +
...     3 +
...     4)
>>> total
10

【Python#5】Pythonの命名規則

概要

Python命名規則について

内容

PEP8(Pythonのコーディング規約)をもとに整理。

命名規則の種類

  • パスカルケース (PascalCase)
    すべての単語の先頭が大文字

  • キャメルケース (camelCase)
    先頭の単語だけ小文字、あとに続く単語の先頭は大文字。

  • スネークケース (snake_case)
    すべて小文字で各単語をアンダースコア(_)で区切る。
    全部大文字のスネークケースは、定数で利用される。

  • ケバブケース (kebab-case)
    すべて小文字で各単語をハイフン(-)で区切る。

Python命名規則一覧

対象 命名規則
パッケージ
(ディレクトリ名)
スネークケース
(※なるべく短い名前で、アンダースコア非推奨)
package_name
モジュール
(ファイル名)
スネークケース
(※なるべく短い名前で)
module_name
クラス パスカルケース ClassName
型変数 パスカルケース
(※なるべく短い名前で)
TypeName
例外 パスカルケース ExceptionName
グローバル変数 スネークケース global_variable_name
関数 スネークケース function_name
変数 スネークケース variable_name
関数やメソッドの引数 スネークケース parameter_name
メソッド スネークケース method_name
インスタンス変数 スネークケース instance_variable_name
定数 全部大文字のスネークケース CONSTANT_NAME

【Python#4】型の調べ方と判定

概要

型の調べ方と判定について

内容

型を調べるには、type()を使用する。
型を判定するには、isで比較するか、isinstance()を使用する。

型の調べ方

>>> type(5)
<class 'int'>
>>> type(2.0)
<class 'float'>
>>> x = 5 + 2.0 
>>> type(x)
<class 'float'>

型の判定

>>> type(5) is int     
True
>>> isinstance(5, int)
True

【Python#3】ミュータブルとイミュータブル

概要

ミュータブルとイミュータブルについて

内容

オブジェクトの内容を変えられる変えられないかの違い。
ミュータブル(可変)は、変えられる。
イミュータブル(不変)は、変えられない。

ミュータブル(可変)

>>> a = [2, 4, 6]
>>> b = a
>>> a
[2, 4, 6]
>>> b
[2, 4, 6]
>>> a[0] = 99
>>> a
[99, 4, 6]
>>> b
[99, 4, 6]

どちらかで変更した値が両方から見える。

イミュータブル(不変)

>>> x = 5
>>> x
5
>>> y = x
>>> y
5
>>> x = 29
>>> x
29
>>>y
5

5という数値を変更しているのではなく、新しく29という数値を生成して、そこにxという名前を設定しなおしているだけ。

まとめ(一覧)

データ型 イミュータブル ミュータブル
bool 真偽値
int 整数
float 浮動小数
complex 複素数
range 連続した整数
str 文字列
bytes バイナリ
bytearray バイナリ
list リスト
tuple タプル
dict 辞書
set 集合
frozenset 集合
datetime 日時

【Linux#1】tarとtar.gzの違い

概要

tarとtar.gzは何がどう違うのか?

内容

tar (Tape Archive)

tarとは、複数のファイルやディレクトリを一つのファイルにまとめたアーカイブファイルのこと。
tarには圧縮する機能はない。
元々、テープにバックアップするためにデータをアーカイブする目的で使用されていた。
アーカイブ関連のコマンドには、cpioやddといったコマンドもある。
ddコマンドはファイルシステムやディスク単位でバックアップする際に利用される。

tar.gz

tar.gzとは、gzipコマンドでtarファイルを圧縮したファイルのこと。
tarのようにファイルを一つにまとめる機能はない。

【Python#2】予約語

概要

Python予約語の確認方法について

内容

予約語は以下で一覧表示できる。  

>>> help("keywords")

Here is a list of the Python keywords.  Enter any keyword to get more help.

False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not

または  

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']