プログラミング

初心者のPython入門(for range,while,if else,list,数値,文字列)

2019年6月10日

Pythonの入門書をいくつか読み、Webサイトもいくつか参照しました。
自分が理解したことを、Python入門ページとしてまとめてみます。(備忘録です)

はじめに

プログラミングの習得は「習うより慣れろ」だと思います。
英語を習得したくて留学すると、現地の人と会話することでリスニング能力やスピーキング能力が高まると思います。
プログラム言語は、会話する相手はコンピューターです。つまり「現地の人と会話する」=「プログラムを書いてコンピューターで実行する」は同じです。幸いなことに、相手はコンピューターなので時間や場所を選んだりしませんし、文法や単語を間違ったからといって恥ずかしがったりする必要もありません。それどころか、コンピュータはプログラムが間違っていれば、どこが間違っているか教えてくれます。(そこが違うってわかってるなら直してくれればいいのにと思うことがあります。)
さあ、コンピューターとpythonで会話できるように頑張りましょう。(間違ったらコンピューターが添削してくれます。)

※コンピューターとの会話例:'sin'という名前は定義されていないというエラーメッセージが出ている。’np.sin’とすればエラーにならない。(sinはnumpyで定義された関数のため)

Pythonとは?

・世界的に人気のプログラミング言語(Googleの検索情報によるランキングで1位)
・文法が単純化されておりプログラムが読みやすく書きやすい。
・パッケージ(ライブラリ)がたくさん用意されている。
高度な計算やグラフの描画などが簡単にできる。
AIに強いのも、専用パッケージが充実しているからですね。

Pythonの2.xと3.xはどっちを使う?

迷うことはありません。3.xを使いましょう。
Pythonには大きく2つのバージョン(2.xと3.x)があり、両者には互換性がありません。Python2系のサポートは2020年に終了すると言われていますので、今から始める人は迷うことなく3.xを使いましょう。

インストールどうすればいい?

Anacondaをインストールするのがおすすめです。

インストールがまだの方はこちら:初心者のPython入門(Anacondaのインストールだけで開発環境が完成する)

プログラムはどうやって作ればいいの?

SpyderまたはJupyterLabを使いましょう。
Anacondaプロンプト(コマンドプロンプト)を使ったプログラムは、1行ずつしか実行できない上にプログラムが保存されません。テキストエディタを使ってプログラムを作る方法もありますが、プログラム実行中の変数の値を見ることが出来ず時代遅れの環境です。せっかくなので、新しい環境を使っていきましょう。

参考:初心者のPython入門(JupyterLab=Jupyter Notebookの正式後継環境) 

参考:初心者のPython入門(Spyder=統合開発環境で開発効率を爆上げ) 

文法(基本的なところだけみてみましょう)

コメント

コメントには2種類の表現方法がある。

(1)#以降がコメント
(2)"""に挟まれた範囲がコメント

予約語

変数などに使えない予約語は以下の通り。
'False','None','True','and','as','assert','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'

文字コード(ソース内に日本語を使う場合)

pythonには、プログラムに関係の無い余計な記述はほとんどないのですが、最初の1行あたりに文字コードの指定を入れることが良くあります。これを入れないとコメントや表示する日本語の文字コードを決定できないため、おまじない的に入れておきましょう。

# -*- coding: utf-8 -*-

utf-8の部分が文字コードです。他の文字コードも記載可能ですが、通常はutf-8にしておきましょう。

・数値型
整数、少数部を持つ数が扱えます。

# aに整数を入れる
a=1
# bに実数を入れる
b=2.0
# cに大き目の値を入れる
c=5000
# a b c を表示する
print(a,b,c)

 

・文字列型
文字列は、単引用符''または二重引用符""で囲みます。
string = "string"

・リスト型
複数の値をまとめて扱うのに用います。
カンマ区切りの数を[]で囲んだものとして扱います。

# listに値を代入(たくさんの数字を一度に入れられる)
list=[1,2,3,5,8,10,15,21]

 

・if文
条件によって処理を変える際につかいます。行の最初の空白の数に気を付けます。
if分で条件を満たしたときに実行する範囲は、先頭の空白の数によって他の場所と見分けます。

a=0
# aが0より小さいか確認
if a < 0:
    a=0
    print("aは0より小さい")
# aが0と等しいか確認
elif a==0:
    print("aは0です")
# それ以外の場合
else:
    print("aは0より大きい")

実行結果は以下の通りです。(a=0の部分を変更して実行してみましょう)

aは0です

 

・for文

繰り返し処理を行うときに使用します。行の最初の空白の数に気を付けます。先頭の空白の数によって、forで繰り返し実行する範囲が決定されます。

# iが0から5までの間繰り返し実行
for i in range(5):
    # iを表示する
    print(i)

実行結果は以下の通りです。(for i in range(5)により実行されるのは、iが0,1,2,3,4の範囲になります。)

0
1
2
3
4

 

・while文

条件が成り立つ間、繰り返し実行します。条件が成り立たなければ、1度も実行されません。

先頭の空白の数によって、whileで繰り返し実行する範囲が決定されます。

# 最後の文字を0にしておき、0が出現するまで順番に表示させる
str = ['This ','is ','a ','pen.','0' ]

i=0
# 0になるまで順番に表示
while (str[i]!='0'):
    # printで改行しない場合は、end''をパラメータとして与える
    print(str[i],end="")
    # iを1つずつ加算する
    i=i+1

実行結果は以下の通りです。(whileの説明のために単語ごとに表示していますが、本当は1行のprint文で表示した方が簡単ですね。)

This is a pen.

ここまでのコードをJupyterLabなどにコピペして動作を確認してみてください。
動かしてみて、変更して動作がどう変わったかを見ることで少しづつ理解が深まると思います。

-プログラミング
-, , , , , ,

© 2020 小さなことをやってみるブログ