LoginSignup
7
11

More than 5 years have passed since last update.

C/C++プログラマがPythonにチャレンジしてみる(はじめの一歩編)

Last updated at Posted at 2017-02-10

今までに何度かPythonを覚えようとチャレンジしてきたが、ことごとく失敗していました。
いよいよ本気で覚えないとまずい感じになってきたので、気合を入れてお勉強してみます。

で、その過程を公開すると、もしかしたら他の人の役にも立つのではないかと。

教科書

パーフェクトPython』を参考に進めていきます。
※私が使用したのは初版第4刷

Pythonのインストール

「Appendix A」に従い、WindowsにPythonをインストールしていきます。
ダウンロードサイトはこちら
※現時点の最新は「Python 3.6.0」
image.png

参考書によると、他のライブラリが32bitでビルドされていることが多いので32bit版をインストールしたほうがよいよ、とのことなので、

Windows x86 executable installer

をダウンロードすることにしました。
「python-3.6.0.exe」がダウンロードできますので、これを実行してインストールしします。
「pathに追加します」のチェックボックスはONにしておいた方がいいです。
(デフォルトだと、すごく深くにインストールされてしまいますので)

Tipsメモ

「2章」「3章」「4章」「5章」から、違和感たっぷりで、これは覚えておかないとダメだなというポイントを、なるべくわかりやすくメモ。
(知らなくてもよさそうなのは、混乱するだけなので、飛ばします)

はじめのはじめ(環境的なこと)

  • python.exe実行で専用Window(以下、Python窓)が開く image.png
  • Python窓を閉じるには「quit()」(または「Ctrl-Z」)
  • DOS窓等から「python.exe ファイル名」でも実行可能
    • ファイルを実行したいときはこっち
  • プロンプトは「>>>」
  • 基本は1行単位に指定
  • 関数だと連続入力モードになる
  • 空行を入れちゃうと、連続入力モードが終わってしまう
  • 日本語はUNICODE(UTF-8)で
  • Python窓で、既に設定されている変数とか関数とか、知りたくなったら「locals()」

なお、お勉強はDOS窓(ファイル実行用)とPython窓(入力即実行用)の2ウィンドウ体制で進めていきました。

違和感たっぷりなところ(C/C++プログラマ視点)

  • 「()」とか「{}」とか、基本的にはない
    • 「()」は関数の引数指定で使うけど
    • 「{}」も使うみたいだけど、知らなくても大丈夫
  • インデントでブロック指定
  • インデントはスペースだと訳わからなくなるからタブがいい
    • でも推奨はスペースとのこと
  • 行の最後に「;」とかつけない
  • コメントは「#」から開始、複数行コメントは「'''」で囲む
  • 型宣言なし
  • 定数(define)はない

ちゃんとPEP8を読んでおいた方がいいかも。

型関連

  • 数値型変数は「整数」「実数」「複素数」のみ
  • 文字列型変数は文字列を突っ込めばそうなる
  • 配列は「リスト」ってやつみたい(異なる型でも突っ込める)
    • 空状態での宣言は「x = []」
    • 挿入が「list.insert(pos,value)」で削除が「del list(pos)」なのが分かりにくい
      • 「list.pop(pos)」という手があるらしい
    • バイト配列もあるみたい
  • map型(key-value型)は「辞書型」という名前で存在している
    • 実はこいつで「{}」を使う
  • 「NULL」は「None」

関数

  • 関数の最初に「def」
  • 関数名の後には「:」
    • これが「{」的な意味合いかな(閉じないけど)
  • 戻り値は「return hoge」
    • 関数を返すことも可能

覚えておいた方がいいこと

  • モジュール(ライブラリみたいなもの)の読み込みは「import」
  • 計算で使えそうなモジュールは「math」

おまけ(文法的なもの)

  • if文は「if True:」「elif True:」「else:」
  • for文は「for item in x:」(イテレーションです)
    • xの要素が順番にitemに入る
    • x[n]でも取得可能
    • range()も覚えておこう
  • while文は「while True:」「else:」
  • 例外処理もある

まとめ

まだこの程度で何かできるわけではありませんが、今まであきらめていたところは超えられたような気がします。

7
11
12

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
7
11