前のパートに戻る 完了して次のパートへ  

  1章:Python入門

目次


  • はじめに
  • Google Colabの使い方
  • Hello, World!!
  • 変数・オブジェクト
  • 基本的な型を抑える
  • 配列, 辞書を効率的に扱う
  • おわりに
  • おまけ:Ruby学習済みの人のための、Ruby <=> Python早見表

はじめに


ここでは、Pythonも初めての方へ向けて、Pythonの簡単なチュートリアルと共にGoogle Colabの解説をします。

Pythonをある程度触ったことのある人ならば飛ばしてOKです。

また、Rubyをある程度触ったことのある人向けにRuby-<=>-Python早見表も作成しました。(このパートの一番下にあります)

Rubyをある程度触ったことのある人は上記をご参照ください。

Google Colabの使い方


Google Colab(グーグル・コラボ)とは、Pythonを対話型インターフェースで実行できるツールです。

まずはGoogle Colabのページへアクセスしてみてください。

右下にある「Python3の新しいノートブック」からノートブックを作成しましょう。

Google Colab

とりあえず、ノートブック、タイトル、セルだけ覚えればOKです。

まずは、後から見返しやすくするため、タイトルを適当なもの(「01_Python入門」など)に変えておくことをオススメします。

セルの実行と本教材における取り決め

本教材では、基本的にセルにコードを入れて実行することで理解が進むようになっています。

下のように、 「・ソースコード」と書かれた次の枠内をセルに入れ、Shift + Enter を押して実行ください。

セルを実行した結果は、出力がある場合「・結果」と書かれた枠があるので、同一の結果が出ているか確認してください。

  • ソースコード

3 + 4

  • 結果
7

今回の場合、セルに 「3 + 4」と入れ、「Shift + Enter」を押してください。

セルの下に新しいセルができ、「3 + 4」と入れた下の行に、7という数字が出力されていればOKです。

基本は、 プログラムを打つ → 「Shift + Enter」で実行 ということを繰り返します。

Hello, World!!


まずはプログラミング言語の基本であるHello, World!!という文字をノートブック上に出力してみましょう。

文字をダブルクオーテーションまたはシングルクォーテーションで囲む必要がある点に注意です。

  • ソースコード

print("Hello, World!!")

  • 結果
Hello, World!!

実行したセルの下に Hello, World!! という文字が出力されていればOKです。

変数・オブジェクト


変数は データにつけるラベル のようなものです。

オブジェクトは、Pythonの中で扱うものは全てオブジェクトです。

たとえば3という数字列も、"3"という文字列も全てオブジェクトです。

よくわからない場合は、オブジェクトと言われたら、「何かしらのものを指している」と考えていただければOKです。

さて、変数の話に戻りますが、変数は同じオブジェクトに対し、複数回同じ処理をするときなどに変数があると便利です。

先程使用したセルの中身を以下のように書き換えてみてください。

  • ソースコード

# 行の最初に"#"(シャープ)が書いてあると、それ以降は無視されます。
# 変数への代入は以下のようにする
# 変数名 = 代入したいもの
var = "Hello, World!!"
print(var)

  • 結果
Hello, World!!

結果は先程と同じく、Hello, World!! という文字が出力されます。

型とエラーが起きたときの対応について

型とは「あるデータがどのような性質のもので、どのように取り扱うべきかを定めたもの」です。

プログラミングをする上では常に気にする必要があります。

例えば、文字や配列の長さを出してくれる関数を"30"という文字列と数字列に適用してみます。

  • ソースコード

print(len("30")) # => 2
print(len(30))   # => エラー:int型にlen関数は適用できない

  • 結果
2

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-8-b21fcfc6e1d9> in <module>
      1 print(len("30")) # => 2
----> 2 print(len(30))   # => エラー:int型にlen関数は適用できない


TypeError: object of type 'int' has no len()

1行目は普通に処理されるものの、2行目はエラーが出ていることがわかります。

1番下の行にどのようなエラーが出ているかが書かれています。まずはどういうエラーが出ているかを読んでください。

今回の場合は intの型にlenという関数は使えないよ、というエラーでした。

基本的な型を抑える


前の節ではHello, World!!という文字を出力しました。

この節では、基本的な型(数値型、配列型、辞書型)について学んでいきます。

数値型

数値を表現する型です。整数の場合int型, 小数の場合float型と呼ばれます。

文字列と違い、シングルクォーテーションやダブルクオーテーションで囲まずに数字を打つことで生成できます。

  • ソースコード

print(3.49) # float型(小数)

  • 結果
3.49

配列型

複数の要素を同時に扱いたいときは配列型(list型)に入れて扱います。

中括弧([ ])で囲うことにより配列型として扱うことができます。

  • ソースコード

l = [1, 2, 3, 4]
print(l)

  • 出力
[1, 2, 3, 4]

[1, 2, 3, 4] という配列が出力されればOKです。

辞書型

キーとバリューで情報の紐づけができる型 が辞書型です。

配列と違い、順番という概念がありません

小カッコ({})で囲み、中の要素は オブジェクト(キー): オブジェクト(バリュー) とすることで宣言できます。

なお、オブジェクト(キー)の型は基本的に数値型か文字列型に限られますが、バリューは全ての型を代入できます。

ここでは例として、いくつかの商品と、その値段を管理することを考えます。

  • ソースコード

d = {
    "apple": 100,
    "orange": 200,
    "kiwi": 300
}
print(d["apple"]) # => 100

  • 結果
100

キー(apple)に対するバリュー(100)が出力されていればOKです。

配列, 辞書を効率的に扱う


ここでは、配列や辞書を便利に扱うためのいくつかの手段について説明します。

配列, 辞書の中の全ての要素を1つずつ取り出す

配列の中の全ての要素を1つずつ取り出す処理は、非常によく使用されます。

ここでは、配列の中の全ての要素をfor文で取り出し、print文で出力します。

  • ソースコード

l = [1, 2, 3, 4]
for item in l:
    print(item)

  • 結果
1
2
3
4

辞書型の場合、辞書を配列に変換する必要があります。

①キー, ②バリュー, ③キーとバリュー両方を取り出す場合で、辞書に対して用いるメソッドが少し違います。

それぞれのメソッドを試してみます。

  • ソースコード

d = {
    "apple": 100,
    "orange": 200,
    "kiwi": 300
}

print("--keys--")
for k in d.keys():
    print(k)

print("--values--")
for v in d.values():
    print(v)

print("--key & values--")
for k, v in d.items():
    print(k, v)

  • 結果
--keys--
apple
orange
kiwi
--values--
100
200
300
--key & values--
apple 100
orange 200
kiwi 300

上記のように出力されていればOKです。

リスト内包表記

上記のfor文を1行で書くことのできる、Python独自の書き方です。参考:Qiitaのページなど

「配列の各要素に対し、2で割れるならばその値を、2で割れないならば1を追加する」という例を考えてみます。

  • ソースコード

# 普通に書いた場合
oldlist = [1, 2, 3, 4, 5, 6, 7]
newlist = []
for item in oldlist:
    if item % 2 == 0:
        newlist.append(item) # appendは配列の末尾に要素を足すメソッド
    else:
        newlist.append(1)
print(newlist)

# リスト内包表記で書いた場合
newlist = [item if item % 2 == 0 else 1 for item in oldlist]
print(newlist)

  • 結果
[1, 2, 1, 4, 1, 6, 1]
[1, 2, 1, 4, 1, 6, 1]

書いてあることはif else文なので難しくないのですが、順番が独特なので、慣れが必要です。

配列、辞書の中に特定の要素があるか判定

オブジェクト in 配列 で配列の中に特定の要素があるか判定します。

これは、if文と組み合わせて使用されることが多いです。

  • ソースコード

l = [1, 2, 3, 4]

if 1 in l:
    print("hoge") # => 出力される
if 5 in l:
    print("huga") # => 出力されない

  • 結果
hoge

hogeという文字が出力されていたらOKです。

辞書の場合も、配列とほぼ同じです。一例のみ示します。

  • ソースコード

d = {
    "apple": 100,
    "orange": 200,
    "kiwi": 300
}

if "orange" in d.keys():
    print("hoge")

if 300 in d.values():
    print("huga")

  • 結果
hoge
huga

hogeとhugaが出力されればOKです。

おわりに


ここまででPythonの入門をざっくり説明しました。

次の章では機械学習で扱うデータを扱うための詳細な方法について学んで行きます。

おまけ:Ruby学習済みの人のための、Ruby <=> Python早見表


その他細かい違いは Rubyの公式ページに記載があります。そちらもご参照ください。

基本的なところは同じですが、配列に対する操作は細かいところが結構違うので注意してください。

議論
0 質問
このコースの評価は?