ホーム»プログラミング» 【プログラミング】[独学][Python-第2回]数字や文字列を表示して変数を扱ってみよう
a

【プログラミング】[独学][Python-第2回]数字や文字列を表示して変数を扱ってみよう

プログラミング

前回はPythonがどんなものかご紹介をさせて頂きました。
今回は実際にノンプログラマーがPythonを書いて、動かしてみて少しだけプログラマー気分を味わってみるといった内容でその手順を記載しておきます。
もし、時間に余裕があるようでしたら本記事を読みながら同じ様に動かしてみて頂けると理解が深まると思います。


前回にご紹介した「Anacond」と「Jupyter Lab」のインストールがまだの方はコチラ

<strong>komori</strong>
komori

本記事は下記の様な方にオススメです!

  • 前回の記事を読んでPythonに少しでも興味が出た方
  • Pythonが書ける環境は出来たけど、そこからどうするか考えていない方
  • 独学でPythonの勉強をしているけど、他の人ってどんな事からしているのか知りたい方

今回もこちらのスッキリわかるPython入門を参考に進めていきます。


「Anaconda Prompt」から「Jupyter Lab」を起動する

Anaconda Promptを起動する

前回インストールしている「Anaconda」の中に含まれているアプリ「Anaconda Prompt」呼び出しましょう。
※デスクトップ画面にショートカットを作ってない方は検索で「ana」で画面のような状態になりますので、そこから起動します。

「Anaconda Prompt」から「Jupyter Lab」を起動する

「Anaconda Prompt」の画面にて「Jupyter Lab」と入力してください。

(base) C:\Users\*******>jupyter lab

入力出来たらエンターキーを押しましょう。
※ジュピター(jupyter)の綴りを間違いやすいのご注意ください。
※ジュピター(jupyter)とラボ(lab)の間は半角スペースです。

Jupyter Labの画面について

Notebookを選択

初めて起動した方は画面の見方がわからず戸惑うかと思いますが、画面の細かい説明はさておき「Notebook」を選択してみましょう。
画像の様な画面になれば、いよいよ実際Pythonを書いていくことができます。

まずはファイル名をつけておきましょう。今は新規作成のファイルとなっていてタブに「Untitled.ipynb」と書いているとおりでファイル名が付けられていません。
画面左のリスト上に表示されている今作った「Untitled.ipynb」をクリックして、右クリックするとメニューが表示されますので、Renameで任意の名前に書きかえておきましょう。

Pythonでプログラムを書いて実行する

Print関数で数値や文字を出力する


さて、ファイル名のリネームができたら、いよいよPythonのコードを書いていくわけですが、Jupyter Labではセルと言われる四角い領域の中にコードを記載していきます。
試しにセルの中に”1 + 1″と入力してタブ上の「▶(実行ボタン)」をクリックするか、キーボードの「Shift」を押しながら「Enter」キーを押しましょう。

数式を入力したセルの下に実行結果の”2”が表示されましたでしょうか。

プログラムを書いて、実行するとプログラムを書いたセルのすぐ下に実行結果が表示されます。
なお、画像中段に記載したとおりで文字列を実行する場合、Pythonでは ” か ’ で表示した文字列を囲むことが作法となります。
(※他プログラミング言語でも同様の作法がありますので、プログラムを書く時に文字列を処理する場合はこういった作法があるもの。と認識しておいて問題ないです。)

プログラム実行結果
print(10)10
print(‘なんでやねん’)なんでやねん
print(‘nandeyanenn’)nandeyanenn

この「Print()」というのは関数と呼ばれるもので、ここでは単純に“()内の文字を出力しろ”。っていう命令文と解釈してもらえれば大丈夫です。

関数は無数に存在します。また、慣れてくれば自分で作成することも可能ですが、先ずはこういった便利な命令文があるということを知っていれば簡単なプログラムは書けます。


続いて、計算結果や文字列を結合して表示してみましょう。

プログラム実行結果
print(10 + 10)20
print( ‘なんでやねん’ + ‘nandeyanenn’ )なんでやねんnandeyanenn

※上記の「なんでやねんnandeyane」の場合は、print( ‘なんでやねん’ + ‘nandeyanenn’ )というプログラムを入力するより、print( ‘なんでやねんnandeyanenn’ )とすれば、実行される結果が同じになりますが、変数を用いた文字列結合処理はユーザーへの通知などで利用する場面も沢山ありますので同じ結果になったとしても色々な手段があることを知っておきましょう。


続いてそれぞれの数値及び、文字列をカンマ(,)で区切った場合の実行結果は下記のとおりです。

プログラム実行結果
print(10 , 10)10 10
print( ‘なんでやねん’ , ‘nandeyanenn’ )なんでやねん nandeyanenn

計算や結合について動作を確認できました。色々な計算及び結合をためしてみましょう。

プログラム説明実行結果
print(10 + 2)足し算12
print(10 – 2)引き算8
print(10 * 2)掛け算20
print(10 / 2)割り算(小数)5.0
print(10 // 2)割り算(整数)5
print(10 % 2)割り算の余り0
print(10 ** 2)べき乗100
print(’10’ + ‘2’)文字列の連結102
print(‘なんでやねん’ + ‘なんでやねん’)文字列の連結なんでやねんなんでやねん
print(‘なんでやねん’ * 2)文字列の反復なんでやねんなんでやねん

jupyter lab画面の「#数値の計算」と「#文字列の結合」はコメントアウトしている部分ですので、プログラムとして認識されません。
シンプルな処理のみで構成されている場合は大きな意味はありませんが、長文を用いた複雑な処理を実行するプログラムの場合はこういったコメントを残すことで可読性が格段に良くなります。


Print関数で文章を書いて出力してみる

文章を書く際に用いられるものをご紹介致します。
上から文字列として文章を出力するプログラム、改行を表す制御文字を入れた文章を出力するプログラム(画像内の青くラインが入った部分が実行結果です。)、バックスラッシュを含んだ文章を出力するプログラム、引用符のシングルクォーテーションとダブルクォーテーションを含んだ文章を出力するプログラムとなります。


変数

変数を使って計算したり、文字列と合わせてみる

ここからは変数を用いてプログラムを書いていきます。
では先ず、“変数”とは何か。と言うことになりますが、これもPythonという言語に関わらず他のプログラミング言語にも用意されている仕組みとなります。
書籍やインターネットで調べると、多くの場合はこの変数をよく“箱”に例えられています。
実際、そのイメージのとおりで箱の中に値を入れてプログラムで使用することができ、状況によって中身を変えることが出来る便利なものとなっています。

基礎的なプログラムの書き方で最も多い使用方法となれば、繰り返し処理を実施する際に用いるカウンタとして使います変数を使います。またアプリ利用時のログインアカウント及びパスワードも変数を扱うことで実装することも可能です。


変数名の命名におけるポイント

画像のように、変数を使う際は下記のように記述します。
変数名 = 値 
画像では変数name、age、pokemonの3つを準備してそれぞれに値を代入しています。
nameには’さとし’、ageには10、pokemonには’ピカチュウ’が代入されていて、Print関数で出力するプログラムによりそれぞれの値が表示されています。
なお、変数名には使えないものがあったり、慣習的に気を付けた方が良いことなどがありますので下記の表を参考にしてください。

変数の命名にて注意すべき点具体例
予約語if、for、global、with、import など…
先頭が数字24colors、3coins など…
先頭に__
※アンダースコアが2つ
__doubleunderscore など…
大文字・小文字、全角・半角は区別されるName name は別物扱いとなるなど…
小文字で始まり、値との関連性が高いものが望ましいname age pokemonなど…
<strong>komori</strong><br>
komori

ポイント
変数名のつけ方にはセンスもありますが、第3者からもわかりやすいといった点を意識して命名しましょう。また、利用するシーンが一般的なら慣習に従った方が可読性は良くなります。他のプログラムの中で使われるような予約語は指定できないことにも注意が必要です。

変数への代入はまとめて行うこともできます。
name , age , pokemon = ‘さとし‘ , 10, ‘ピカチュウと言った風にまとめて変数に代入する方法をアンパック代入と呼びます。

変数には単語をつなげた名前をつける事も可能ですが、画像中のmy_fingerの各単語”my”と”finger”を_(アンダースコア)でつなげたスネークケースが推奨となります。
スネークケース以外にもMyfinger(アッパーキャメルケース)、myFinger(ロワーキャメルケース)、my-finger(チェインケース)などがあります。

変数の値を更新する記述について
age + 1
上記を行った後、print関数で変数ageを出力した場合、変数ageの値が10から新たに代入された訳ではありません。従って変数ageの値は10のままとなり、Print(age)の実行結果が10と出力されています。
画像の一番下にあるとおり、変数ageの値を評価してから代入する書き方としては、以下のようになります。
age = age + 1

上記と同じ様に、複合代入演算子を用いた変数の値の代入方法を次にご紹介します。


複合代入演算子による変数の値の代入

複合代入演算子とは変数の値に指定処理を行い、改めて変数に値を代入するためのものです。

複合代入演算子の書き方説明
変数+= 値 ( 例:age += 5)変数の値に5を足して代入
変数 -= 値 ( 例:age -= 5)変数の値から5を引いて代入
変数 *= 値 ( 例:price *= 1.5)変数の値に1.5を掛けて代入
変数 /= 値 ( 例:price /= 2)変数の値を2で割って代入

上記の表に書かれている内容を実行した内容が下記の画像となります。
プログラムの上から順番にそれぞれの変数の値が推移していくことが変わっていくことが読み取れます。
◆画像中段あたりの変数の値
・ageの値に5が足された状態でprint関数で一度出力され、実行結果は15。
・priceの値に1.5が掛けられた状態でprint関数で一度出力され、実行結果は150.0。

◆画像下段あたりの変数の値
・age(15)の値から5が引かれた状態でprint関数で一度出力され、実行結果は10。
・price(150.0)の値を2で割られた状態でprint関数で一度出力され、実行結果は75.0。


input関数で変数に値を代入する

変数に値を代入する方法は他にもあります。本章でご紹介するinput関数もその内の一つと言えます。
実際に動かしてみると、少しアプリ感が出て嬉しくなりますので是非挑戦してください。
書き方はすごくシンプルになっており、下記のとおりです。
変数名 = input(文字列)

実行すると最初に画像のように名前を入力する枠が表示されます。
input関数の()内で指定した文字列はこの質問内容となっています。

1.最初に変数名nameに入力する値をユーザーの操作から貰う処理
 あなたの名前を教えてください。に入力された内容が変数nameに代入されます。

2.続いて変数ageに指定する値を入力します。
 あなたの年齢を教えてください。に入力された内容が変数ageに代入されます。

3.最後に変数名pokemonに入力する値を指定します。
 あなたのパートナーを教えてください。入力された内容が変数pokemonに代入されます。

画像の場合の実行結果は以下ようになります。
 print(‘あなたの名前は’ + name(さとし) + ‘で、年齢は’ + age(10) + ‘歳で、パートナーは’ + pokemon(ピカチュウ) +’です。’)


データ型の種類と用途

変数の最終章としてデータ型(若しくは型)の説明となりますが、今までの手順で数値文字列の変数を用いてプログラムの処理を実行してきました。
実はそれぞれの変数に型がありそれらを理解しておくことが重要となります。

データ型の名前説明
int
(イント型)
整数10、100、-100
float
(フロート型)
小数3.14、-0.5
str
(ストリング型)
文字列さとし、ピカチュウ
bool
(ブール型)
真偽値True、False

Pythonの場合は変数を定義する際に型の指定は必要ありませんが、他のプログラミング言語の場合は定義時に型の指定が必要なものも存在します。

例えば、VBA(Visual Basic for Applications)では下記のように記述したりします。

Dim age as Integer (※変数 age を整数型で宣言する場合の書き方)
Dim name as String (※変数 name を文字列型で宣言する場合の書き方)


整数型の変数(箱)には整数を代入、文字列型の変数(箱)には文字列を代入することが原則となりますので、型宣言をした後に型の異なる値を代入しようとするとエラーになります。

具体例:age = ”さとし” や name = 10 を書いた場合など。

pythonで変数に値を代入して、その変数がどの型で認識されているかわかりにくいので変数の型を調べる際に便利なtype関数というものを使って確認していきます。type関数の書き方は以下のとおりです。

type(変数名)

注目すべきポイントは、下記で変数の“poke_height”を文字列型に変換している点です。
poke_height = str(poke_height)
これにより、最終行のprint(type(poke_height))の実行結果が’str’で返ってきています。
なお、この型変換で用いたstr(poke_height)も関数となりますので、目的のデータ型に変換したい場合は以下のように記述します。

データ型変換関数の書き方記入例
int(変数名)int(poke_height)
str(変数名)str(poke_height)
float(変数名)float(poke_height)
<strong>komori</strong>
komori

ポイント
int関数やfloat関数で文字列を変換しようとすると識別が出来ないためエラーとなるところに注意が必要です。


文字列と変数を用いて文章を表示する

これまでの関数と変数を用いて文章を書いてみましょう。
Pythonでこれらを行う方法はいくつかありますので、画像を参考にしてください。

全て同じ実行結果となりますが、それぞれを見比べていきましょう。
先ずは、通常の記述方法で記載するとこんな感じです。


print(‘俺の名前は’+ name +’で、年齢は’ + str(age) + ‘歳です。\n相棒のピカチュウの身長は’+ str(poke_height) + ‘㎝です。\n’)
※改行が\nで表示されていますが、バックスラッシュとnです。ご了承ください。

整数型の変数ageと、小数型の変数のpoke_heightをstr関数で文字列に変換して、他の文章と結合しています。オーソドックスな書き方にはなりますが、しばらく時間がたった後にこのコードを見たら少し読みづらく感じるかもしれませんし。一番は書きにくい印象です。

print(‘俺の名前は{}で、年齢は{}歳です。\n相棒のピカチュウの身長は{}㎝です。\n’.format(name,age,poke_height))
※改行が\nで表示されていますが、バックスラッシュとnです。ご了承ください。

こちらはfomat関数を用いて文字列と変数を結合しています。ポイントは{}を使ってそれぞれの変数を代入しているのですが、コードの左側からformat関数の()内の変数を順番に代入しています。
具体的には、”俺の名前は{}で…”内の{}中には変数nameの値が、”年齢は{}歳です。…”の{}には変数ageの値が、”ピカチュウの身長は{}㎝…”の{}には変数pokemon_heightの値が代入されます。

print(f’俺の名前は{name}で、年齢は{age}歳です。\n相棒のピカチュウの身長は{poke_height}㎝です。’)
※改行が\nで表示されていますが、バックスラッシュとnです。ご了承ください。

こちらはf-stringという書き方となります。表示したい文字列の前に”f”を入力し、シングルまたはダブルクォーテーションで文字列を囲みます。また文字列内に変数を含める場合、{}を使ってその内部に変数名を指定すると、指定された変数の値が表示される仕組みとなっています。

文字列と変数を用いて文章を表示する(応用編)

input関数とアンパック代入の組み合わせとf-stringを用いた文章出力です。
この書き方だとコードは右側に少し長くなりますが、2つのコードで出来上がりとなります。

<strong>komori</strong>
komori

応用編のようなコードが書かれていると格好良いプログラムといった印象ですが、まずは不格好でも基本が出来た状態からもっと簡単に書けないかな。って感じで発展させていけば良いと思います。


Pythonを触って・書いて・動かして遊んでみようのさいごに

今回はPythonで基本となる文字出力から変数を経て、変数を含んだ文章出力を解説いたしました。
これだけでも結構遊んだりできそうな内容ですが、次回はコレクションなどをご紹介できればと考えています。

コメント

タイトルとURLをコピーしました