Python3 – 内包表記

基本形

リスト/タプルからの要素の取り出し

リスト/タプルの要素を順に取り出したリストを返す。

range()を使ったリストの生成

要素の演算

要素に対して順次同じ演算を施す。

floatの要素

小数部分を持った数値を要素とする方法。

ifの使用

抽出する要素の条件の指定

後置if文で要素が条件に合致した場合のみ値に送ることができる。ただしelseは使えない。

抽出した要素の条件による値の選択

値を三項演算子にすることで、取り出された要素の条件によって値を変えることができる。

複数のループ

複数リストの同時ループ

複数のリストを同時に回すときは、2つの変数に対応するリストにzip()を使う。

多重ループ

多重ループの以下の2つの違いを押さえておく。

まず2つのforを連続させた場合。

次にforを[]で囲んだ場合。

 

入れ子のコレクションへのアクセス

入れ子になったリストなどの要素へのアクセスは、一時変数を使って多重ループ。

多重配列の作成

多重配列の作成は、内側の要素から考えていくとわかりやすい。

内包表記ではないが、以下の記法でも同じ結果を得る。

応用

要素数が増減する多重配列

要素数が順次増減する配列の例。内側のリストの終値=長さを変数として、その変数を外側のループで回している。

2つのリストの交互結合

2つのリストの要素を交互に結合する。たとえば[1, 3, 5]と[2, 4, 6]から[1, 2, 3, 4, 5, 6]を生成。

  1. 各リストから1つずつ要素を取り出し、それらを要素とするリストを作成
    • [[x, y] for x, y in zip([1, 3, 5], [2, 4, 6])]
      -> [[1, 2], [3, 4], [5, 6]]
  2. その結果から各要素リストをsublistとして取り出す
  3. 各サブリストから順次要素を取り出して、全体リストの要素とする

 

 

Python3 – リストとタプル

リスト

リストの初期化

リストとタプルの表現

[…]でリスト(list)を、(…)でタプル(tuple)を記述する。リストは要素の変更が可能だが、タプルは変更できない。

要素を改行して記述可能で、最後の要素のカンマ(,)は付けても付けなくてもよい。

型の異なる要素を混在させてよい。

要素が一つだけのタプルは、要素の後にカンマ(‘)を付ける必要がある。

入れ子

リスト、タプルは入れ子にできる。リストの要素にタプルがあってもよく、その逆も可能。

リストとタプルの違い

リストの要素は変更できるが、タプルの要素は変更できない。

ただしタプルの要素がオブジェクトの場合、オブジェクトへの参照が変わらなければ、オブジェクトの内容は変更可能。

相互変換

list()関数でタプルをリストに、tuple()関数でリストをタプルに変換可能。

リスト

リストの初期化

共通操作

要素の個数

要素数はlen()関数で得られる。

要素へのアクセス

インデックスを指定してアクセスできる。最初の要素のインデックスは0となる。

インデックスに負の数を指定すると、-1を最後尾としてそこから前方へカウントする。

forによる順次アクセス

forで個々の要素にアクセスできる。

結合

リスト同士、タプル同士を結合して、新たなリスト/タプルを生成できる。

部分列

  • [n:m]でn番目からm-1番目の要素を取り出した部分列を返す
  • [:m]は先頭からm-1番目まで、[n:]はn番目から最後までの部分列を返す
  • [n:m:s]でn番目~m-1番目の要素をs個おきで返す

n、mにマイナスの値を指定すると、後ろから数える。-1が最後の要素を差し、そこから前へ遡っていく。ただしmに-1を指定すると、その一つ手前の-2番目の要素までが対象となる。

要素の検索

in演算子
要素がリストに含まれているかどうかを判定。
index()メソッド
指定した要素のインデックスを返す。2番目の引数で検索を開始するインデックスを指定可能。要素が存在しない場合はValueError。

リストのみの操作

以下の操作は要素の変更を伴うので、リストのみ可能。

要素の変更

単独要素の置き換えのほか、部分リストを指定した一括置換が可能。置き換えられるリストと置き換えるリストの長さが違う場合、自動的にリストの長さが変更される。

要素の追加・削除

要素の追加

append()メソッド
引数をリストの要素として追加する。
insert()メソッド
インデックスで指定した要素の前に新たな要素を追加する。

要素の削除

詳細はこちら

del文
添字を指定してリストの要素を削除する。部分リストを指定して削除することも可能。
remove()メソッド
要素そのものを指定して削除する。同じ値の要素が複数存在する場合、最初の要素を削除する。
pop()メソッド
指定した位置の要素を取り出して削除する。先頭要素はゼロ番目、位置指定を省略した場合は最後尾。

リストの拡張

extend()メソッドにより、リストに他のリストの要素を展開して追加できる。

内包表記

内包表記を参照。

 

Python3 – リテラル

数値

整数

基数

10進のほか、8進、16進、2進表記が可能。


console.log()→print()としても結果は同じ。

長整数

Python2では長整数L/lがあったが、Python3ではintとlongは統合され、L/lの表記は廃止された。

Python3のprint関数では表現は変わらないが、一定値を超えるとObject扱いとなり、Brysonのconsole.logではオブジェクト形式で表示される。

print()ではint、longとも表示は変わらないが、console.log()で長整数の場合はObject表現となる。

浮動小数点数

虚数・複素数

Pythonでは複素数が扱え、虚数単位は数値に続く”j”で表す。

論理値

論理値はTrue/Falseの二値。頭文字を大文字にすること(小文字の場合は未定義変数扱いになる)

文字列

文字列リテラルは、ダブルクォート(“)かシングルクォート(‘)で囲む。

エスケープ

バックスラッシュ(\)によって制御文字を表したり、特殊文字を通常の文字として扱える。

\n 改行
\t タブ
\” ダブルクォート(“)
\’ シングルクォート(‘)
\\ バックスラッシュ(\)

Linuxコマンド – chmod

概要

ファイルやディレクトリのパーミッションを変更する。パーミッションは記号または数値で指定する。

記法

オプション

-c 権限変更されたファイルのみ詳細に表示
-f 権限変更できなかった場合もエラーメッセージを表示しない
-v 経過を表示
-R ディレクトリとその下のファイルを再帰的に変更

記号モード(シンボリックモード)

記号の意味

u 所有者の権限
g グループの権限
o その他のユーザの権限
a 全てのユーザの権限
無指定 a(全てのユーザ)と同じ意味
+ 指定したユーザに後に記述した権限を付加する
指定したユーザから後に記述した権限を削除する
= 指定したユーザの権限を後に記述した権限に変更する
r 読み出し権限
w 書き込み権限
x 実行権限

使用例

全てのユーザに実行権限を与える。

グループとその他のユーザから書き込み権限を削除する

絶対モード

u, g, oそれぞれのrwxのパターンに対応した0~7の8進数で指定。

0
–x 1
-w- 2
-wx 3
r– 4
r-x 5
rw- 6
rwx 7

対応例

-rw-r—– 640
-r——– 400
-rwxrwxrwx 777

 

HTML – input

概要

input要素はフォームを構成する各種入力部品を作成する際に使用する。

書式

<input type="type" id="id" name="name" ...>

id属性

  • id属性によってlabelとinput要素を関連付け(labelをクリックしたときにinputと同様の反応をさせるなど)。

name属性

  • ラジオボタンやチェックボックスを一つのグループとしてまとめる

type属性

input要素のtype属性で部品の種類を指定し、部品のタイプに応じた属性でそれぞれの設定を行う。

ype属性のデフォルトは”text”。

“button” 汎用ボタン
“checkbox” チェックボックス
“color” カラーピッカー
“date” 日付選択
“email” メールアドレス入力に特化
“file” ファイルの選択
“hidden” 非表示の隠しデータ
“image” 画像ボタン
“number” スピンで整数の選択
“password” パスワード入力に特化
“radio” ラジオボタン
“range” スライダーで数値を選ぶ
“submit” 送信ボタン
“text” 一行テキストボックス
“time” 時刻選択

【注】

  • emailはフォーム内のsubmitボタンを押したときに内容をチェックする
  • resetは非推奨とされているので載せていない。

任意属性

type=”…”
MIMEタイプを指定
media=”…”
メディアクエリ(初期値は”all”)
hreflang=”…”
外部リソースの言語を指定
sizes=”…”
アイコンなどのサイズを指定

 

HTML5 – link

link要素の配置

meta要素は文書にリンクさせる外部ソースを指定する際に使用し、<head>~</head>の間に配置する。

link要素の属性

link要素には必須属性と任意属性がある。

必須属性

rel リンク先のリンクタイプを指定。CSSの場合はstylesheet
href リンク先のURL

任意属性

type MIMEタイプを指定
media メディアクエリ(初期値は”all”)
hreflang 外部リソースの言語を指定。
sizes アイコンなどのサイズを指定。

雛形

スタイルシート
<link rel="stylesheet href="cssファイルのURL">

 

HTML5 – メディア・クエリ

概要

link要素のmedia属性の値として使用。メディアタイプやメディア特性で指定。演算子を使って複数の条件を指定可能。

メディア・クエリの要素

メディア・タイプ

screen コンピュータ画面
tty テレタイプなどの字幅が固定の機器
tv テレビ
projection プロジェクタ
handheld モバイル機器
print プリンタ
braille 点字出力機器
aural 音声出力機器
all 全てのメディア

メディア特性

width
表示領域の幅。min-/max-前置詞使用可。
height
表示領域の高さ。min-/max-前置詞使用可。
device-width
出力デバイス(画面や印刷用紙)の幅。min-/max-前置詞使用可。
device-height
出力デバイス(画面や印刷用紙)の高さ。min-/max-前置詞使用可。
orientation
縦表示(portrait)/横表示(landscape)を指定。
aspect-ratio
表示領域のアスペクト比。水平ピクセル数と垂直ピクセル数を、スラッシュ(/)区切りで指定。min-/max-前置詞使用可。
device-aspect-ratio
出力デバイスのアスペクト比。考え方はaspect-ratioと同じ。min-/max-前置詞使用可。
color
出力デバイスのカラーコンポーネントあたりのビット数。カラーデバイスでない場合の値は”0″。min-/max-前置詞使用可。
color-index
出力デバイスのカラールックアップテーブルのエントリ数。min-/max-前置詞使用可。
monochrome
モノクロデバイス上のピクセルあたりのビット数。モノクロデバイスでない場合の値は”0″。min-/max-前置詞使用可。
resolution
出力デバイスの解像度。min-/max-前置詞使用可。
scan
テレビ型出力デバイスの操作方式。

progressive プログレッシブ方式
interlace インターレース方式
grid
出力デバイスがグリッド又はビットマップであるかどうかを調べる。

演算子

and AND演算子
not NOT演算子
, (comma) OR演算子
only メディアクエリ非対応ブラウザからスタイルシートを隠す

実装例

表示領域の幅が300px以上900px以下のコンピュータ・スクリーンに限って、スタイルシートを適用する場合

メディアクエリの実装例

 

HTML – MIMEタイプ

概要

MIMEでデータ形式を識別するためのコード体系。

“type/subtype”の形式で記述され、たとえばHTML文書は”text/html”。JPEG画像は”image/jpeg”と表す。typeに指定できるものの例として、text(文字)、image(画像)、video(動画)、audio(音声)、application(アプリケーション固有)、message(メールメッセージ)、multipart(複数形式が混在)など。

MIMEタイプ一覧

ファイル形式 拡張子 MIMEタイプ
HTML、テキスト
 テキスト .txt  text/plain
HTML .html, .html text/html
XHTML .xhtml application/xhtml+xml
XML .xml text/xml
RSS .rss, .xml application/rss+xml
application/xml
text/xml
CSS、スクリプト
 CSS .css text/css
CGI .cgi application/x-httpd-cgi
PHP .php application/x-httpd-php
JavaScript .js. text/javascript
VBScript .vbs text/vbscript
画像
GIF  .gif image/gif
JPEG .jpeg, .jpg image/jpeg
PNG .png image/png
ico .ico image/vnd.microsoft.icon
動画
 Flash  .swf application/x-shockwave-flash
MPEG .mpeg, .mpg video/mpeg
MP4 .mp4 video/mp4
WebM .webm video/webm
Ogg .ogv video/ogg
QuickTime .mov, .qt video/quicktime
AVI .avi video/x-msvideo
音声
 MP3  .mp3  audio/mpeg
AAC .m4a audio/aac
Ogg .ogg audio/ogg
MIDI .midi, .mid audio/midi
RealAudio .ra audio/vnd.rn-realaudio
WAVE .wav audio/wav
その他
ZIP .zip application/zip
PDF .pdf application/pdf
Word .doc application/msword
Excel .xls application/msexcel

 

HTML5 – viewport

書式

プロパティ

980

プロパティ 範囲 初期値
width 表示領域の幅 数値:ピクセル数 200~10000 980
device-width 端末の幅に合わせる
height 表示領域の高さ 数値:ピクセル数 233~10000 自動
device-height 端末画面の高さに合わせる
initial-scale 初期ズーム倍率 数値:倍率 minimus-scale~maximum-scale
minimum-scale 最小倍率 数値:倍率 0~10 0.25
maximum-scale 最大倍率 数値:倍率 0~10 1.6
user-scalable ズーム操作 yes:許可  yes
no:禁止

使用例

以下の設定の表示例