【Python】いちから始めるプログラミング

いまや義務教育でも学ぶプログラミングを1から始めよう!!

皆さんこんにちは!今日もプログラミング入門書いていきたいと思います!今日は昨日書いたとおりif文についてやっていきます。是非最後までご覧ください。それでは早速やっていきましょう!

 

3.ifを使った選択

ifは英語でどういうことを指すのか分かりますか?ifはもし~ならばというような意味を持ちます。このif文をプログラムで用いることで、もしこうだったらこうなる、違うならば違うことが起こるというような選択をすることが出来るプログラムを作れるようになります。

 

(1). # , \

まず、この2つの記号の使い方を説明します。これはif文だからなどという理由はないのですが、知っとくと便利ですので是非覚えてください!

プログラムを打ったときに横にメモ的なものを入れたくなるときありませんか?自分はそのプログラムの説明を横に書くようにしています。しかし普通に書いてしまうと次のようになってしましますよね。

f:id:Reate:20211214171526p:plain

ここで使うのが「#」です。これを使うことでこれ以降の文がプログラムとしてみられず、メモとして認識されます。

 

int("10" , 2) #2進数の10を10進数に変換する。

 

f:id:Reate:20211214171808p:plain

エラーを起こすことなくプログラムを実行できるようになりました。

しかし、シャープが文字列の中に含まれている場合は無効になります。たとえば「今は夜だ。」という文を表示させたいとき、

 

print("今は夜だ。")

 

というプログラムを打ちますよね。このクォート「””」に挟まれているのが文字列です。よって上の文を次のようにしたときシャープはそのまま表示されます

 

print("今は夜だ。#朝まで後10時間ある。")

 

f:id:Reate:20211214172408p:plain

 

次はバックスラッシュ「\」について説明します。文が長すぎるのは余りよくないですよね。しかし、改行してしますとプログラムが行われません。

 

x = 3 +

      4 +

      5

x

f:id:Reate:20211214173313p:plain

ここで次のようなプログラムにすることでエラーを起こさず計算することが出来ます。

 

x = 3 +\

      4 +\

      5

x

 

しかし日本でバックスラッシュ「 \ 」を打とうとすると「¥」になってしまうので余り使えないと思います。では、どうすればよいか別のやり方を説明します。前後に()をつけるということです。

 

x = (
    3 + 
    4 +
    5)
x

 

このようにすることでエラーが起こらなくなります。

f:id:Reate:20211214173959p:plain

 

(2) if , elif , else 

ついに今日のメインであるif文をやっていきます。まずは単純なブール値を例に行っていきます。

 

a = True

if a:

     print("正解")

else:

     print("不正解")

 

このプログラムは下のような結果を得ることが出来ます。

f:id:Reate:20211214174557p:plain

「a」というのはブール値だとtrueですよね。ブール値では0以外がtrueとなるためここまでは分かると思います。上のプログラムはもしa=Trueならば「正解」を表示、違うならば「不正解」を表示するというものです。今回のa=Trueは正しいので「正解」と表示されました。では、次のプログラムはなんと表示されるでしょうか?

 

a = True
b = True
if a:
    if b:
        print("両方正解")
    else:
        print("aのみ正解")

else:
    if b:
        print("bのみ正解")
    else:
        print("両方不正解")

 

このプログラムは

・もしa=Trueかつb=Trueのときは「両方正解」を表示

・もしa=Trueでb=Trueではない(b=False)とき「aのみ正解」を表示

・もしa=Trueではなく(a=False)、b=Trueのとき「bのみ正解」を表示

・もしa=Trueではなく(a=False)、b=Trueではない(b=False)とき「両方不正解」を表示

というものです。よって表示は次のようになります。

f:id:Reate:20211214180009p:plain

答えが分かりましたか?

 

では、分岐が3種類以上分かれているときはどうすればよいでしょうか。

そんなときはifとelseの間にelifを用います。

 

suuji = 5
if suuji == 1:
    print("NO")
elif suuji == 3:
    print("NO")
elif suuji == 5:
    print("YES")
elif suuji == 7:
    print("NO")
else:
    print("NO")

 

このプログラムはsuuji = 5だったらyesと表示して、違う場合はnoと表示するものです。結果は次のようになります。

f:id:Reate:20211214180833p:plain

しっかりとyesと表示されましたね。

ちなみにですが前の講義で「=」は代入を表すと言いましたよね。等しいという意味を持っているのが上で使われている「==」です。他にもあるので下にまとめておきます。

 

f:id:Reate:20211214181352p:plain

 

次のプログラムはTrueかFalseのどちらかが帰ってきます。予想してみましょう。

(x = 7と置きます。)

 

x == 5

x == 7

5 < x

x < 10

 

それぞれどちらの結果が帰ってくるでしょうか。正解はこちらです。

f:id:Reate:20211214181844p:plain

 

(3)論理演算子

論理演算子とはand , or , notのことを指します。

 

y = 20

y > 12 and y<22

 

このときy>12というのは正しく、y<22というのも正しいですよね。よってこれの結果はTrueが表示されます。

f:id:Reate:20211214182455p:plain

では、y<22をy<17という間違ったものに変えるとどうなるでしょうか。

 

y = 20

y > 12 and y<17

これは片方が合っていても片方が間違っているためFalseとなります。

f:id:Reate:20211214182709p:plain

論理演算子「and」は両方Trueの場合のみTrueになり、どれか1つでもFalseの場合はFalseと表示されます。

次に論理演算子「or」を見ていきましょう。

y = 20

y > 12 or y < 17

 

これは先ほどのものをandからorに変更したものです。先ほどはFalseでしたがどうなるでしょうか。

f:id:Reate:20211214183031p:plain

Trueと表示されました!

論理演算子「or」はどちらか片方がTrueならばTrueと表示され、どちらもFalseの場合のみFalseと表示されます。もちろんどちらもTrueの場合はTrueになります。

最後にnotを見ていきましょう。

 

y = 20

y > 12 and not y < 17

 

これは先ほどFalseになったもののy < 17の前にnotをつけたものです。どういった結果が出るでしょうか。

f:id:Reate:20211214183517p:plain

なんとTrueと表示されました。これはnotをつけることでy < 17ではない、つまりy >=17というようになったからです。

 

not y < 17 == y >= 17ということですね。

論理演算子「not」は後ろのものを否定の形に変えることができます。

 

(4) in

例えばx = aのときこれは子音か母音かを表示させたいとする。これはifとorを用いて作ることができます。

 

x = 'a'
if x == 'a' or x == 'i' or x == 'u' or x == 'e' or x =='o':
    print("xは母音です。")
else:
    print("xは子音です。")

 

 

これは母音と表示されます。

f:id:Reate:20211214184632p:plain

しかし2行目にこんなにorを使うのは面倒ですよね。そこで用いるのが「in」です。

 

y = 'aiueo'
x = 'a'
if x in y:
    print("xは母音です。")
else:
    print("xは子音です。")

 

「in」を使うとこんなにも簡単に書くことができる。

f:id:Reate:20211214185012p:plain

 

これでif文の基礎は終わりになります!!最後まで見ていただきありがとうございました!これを応用させていくと楽しいことになるという想像もできたのではないかと思います。次回は文字列について詳しくやっていきます。ぜひお楽しみに!!

 

(5)練習問題

・xとyに好きな数字を代入してxがyより低いときは「low」、xとyが等しいときは「equal」、xがyより高いときは「high」と表示するプログラムを書こう。

 

前回の答えです。

f:id:Reate:20211214190717p:plain

f:id:Reate:20211214190725p:plain

最後にプログラミングを始めたいけどパソコンの選び方が分からないという方のために僕がおすすめするノートパソコンを貼っておきますので是非ご購入ください!!

富士通は故障時などの対応が素晴らしく安心ですのでとてもおすすめです!!

 


 

またアマゾンでご購入の際はアマゾンプライムに入ることで送料が無料となったり様々な特典がありますので入ることをおすすめします!!

 

こんにちは!今日もプログラミング講座をしていきたいと思います!今日は前回の告知どうり数値について説明していきます。

 

2.数値

まずは一番単純である組み込みデータ型からやっていきます。

 

・ブール値

 この値はTrueかFalseの2種類のみです。そのものが真か偽かをみることができます。

 

・整数

 小数点以下がない数値のことを指します。

 

浮動小数点数

 小数点以下が存在するものや、10e5のような指数表現を指します。(10e5=10の5乗)

 

(1)ブール値

ブール値についてもう少し説明していきます。これは任意の1つの値を受け付けます。値が0の場合の数値はFalse、それ以外はTrueとなります。

試しに次のプログラムはどうなるでしょうか。

 

bool(5)

bool(True)

bool(-13)

 

この上の3つはすべてTrueと表示されます。

f:id:Reate:20211213152429p:plain

次の3つはFalseと表示されます。

 

bool(0)

bool(0.0)

bool(False)

 

f:id:Reate:20211213152654p:plain

bool値がどのように活用できるかはまた後で説明していきます。

 

(2)リテラル

みなさんリテラル値がなにか覚えていますか?

リテラル値というのは文字列や数字などそれ自体で表されるもののことです。

5や0などがリテラル値です。

 

1.数字(1~9)の前に0を置いてはいけません。

2.しかし整数の先頭に0b,0x,0oを置くことは大丈夫です。

 

数字だけのもの(434 , 76など)は正の整数を示します。数字の前に「+」をおいても値に変化は起きません。

f:id:Reate:20211213154136p:plain

負の整数を表すときは数字の前に「-」をつける。

また、1000を表すときに1,000と書くことが多いが「,」は使うことが出来ないので注意が必要です。もし使った場合次のようになってしまいます。

f:id:Reate:20211213160104p:plain

カンマ「,」の代わりにアンダースコア「_」を使うことは可能です。プログラムを行った場合は無視されます。

f:id:Reate:20211213160313p:plain

(3)演算

演算は次のように行います。

f:id:Reate:20211213161348p:plain

1つずつ見ていきましょう。

「+」と「-」は予想どおりだと思います。

 

8+9

9-8

f:id:Reate:20211213161609p:plain

数値と演算子は好きなだけ使用可能です。

 

8+6+98+3+5-4+8-4

 

f:id:Reate:20211213161800p:plain

乗算はかけ算のことです。

 

6 * 4

5 * 6 * 2 * 9 * 5

 

f:id:Reate:20211213162031p:plain

除算にすいては二種類あるので注意です。

 

1つ目はよくやる割り算です。

 

14 / 5

 

この場合は浮動小数点数まで計算を行います。

f:id:Reate:20211213162352p:plain

2つ目は整数の結果のみを表示します。

14 // 5

 

f:id:Reate:20211213162543p:plain

 

要するに2あまり4という答えの2を表示しているということです。

そして2あまり4のあまりの4を表示するのが次のやり方です。

 

14 % 5

f:id:Reate:20211213162924p:plain

ではまとめて2と4を得ることは出来ないのでしょうか?

そういうときは「divmod()」を使うことで求めることが出来ます。

 

divmod(14 , 5)

 

f:id:Reate:20211213164957p:plain

 

(4)整数と変数

今までのものはすべてリテラル値を使用していますが変数を用いても行うことが出来ます。

 

x = 67

x - 16

 

これはx - 16、つまり67 - 16の答えを表示してくれます。

f:id:Reate:20211213163456p:plain

このときxの値は変わっていません。ではxの値を変えるにはどうしたらよいでしょうか。次のように書きます。

 

x = 67

x = x - 16

x

 

f:id:Reate:20211213163810p:plain

xの値を51にすることが出来ました。

また、演算を特殊な書き方にすることも出来ます。次のものはどういった意味を持つでしょうか。それぞれx,y,zの値を予想してみましょう。

 

x = 95

x -= 3

y = 63

y += 5

z = 20

z *= 2

print(x)

print(y)

print(z)

f:id:Reate:20211213164429p:plain

正解はこのようになります。x,y,zはそれぞれ

x = 95 - 3

y = 63 + 5

z = 20 * 2と同意義ということです。

 

(5)優先順位

それではつぎのプログラム

 

2 + 5 * 4

 

はどのような答えが出るでしょうか?自分たちだったら乗算が先なので5*4=20にしてから+2をして22と答えを出しますよね。機械はどうなるでしょうか?

f:id:Reate:20211213165612p:plain

機械も同じように乗算、除算を先に計算してくれます!!

「+」や「ー」は後回しにされます。

では、次のプログラムはどうなるでしょうか。

 

-4 ** 2

 

「**」は指数の演算子となります。よってこれは-4の2乗ですね。よって答えは16。簡単ですね。しかし、、、

f:id:Reate:20211213170011p:plain

pythonの答えは-16になってしまいます。

先ほども言ったようにpythonでは「+」や「-」を後回しにしてしまいます。要するにpythonでは-4**2を-(4**2)ととらえてしまっているのです!!ではどのようにすれば本当の値を出せるのでしょうか?

 

(-4) **2

こうすることで「-」を引き算として見ずに「-4」という項としてみてくれます。

f:id:Reate:20211213170526p:plain

しっかりとした答えの表示に成功しました!!

 

(6)基数

みなさん基数とは何か分かりますか?

基数とは簡単にまとめると何進法なのかです。大体使うのは10進法ですよね。

pythonでも特に指定がなければ数字は10進法と捉えられます。

 

2進法は数字の前に0b

8進法は数字の前に0o

16進法は数字の前に0x    をつけます。

 

0b10は2進法の10,0o10は8進法の10,0x10は16進法の10となります。

 

10をたとえに2,8,16進法を10進法に変換していきましょう。

 

0b10

0o10

0x10

 

これは次のような結果が出ます。

f:id:Reate:20211213230512p:plain

これはいくつかの進数で表された数字を10進法に変換するというものです。

では10進法を2,8,16に変換する方法はないのでしょうか。

それが次のやり方です。2,8,16進数と順番にbin(),oct(),hex()で求めることが出来ます。

お気づきでしょうが、先ほどの0の後の英字は上のものを略称した形です。

それでは50を例にそれぞれ試していきましょう。

 

x = 50

bin(x)

oct(x)

hex(x)

 

これをそれぞれ行うと次のようになります。

f:id:Reate:20211213232058p:plain

 

ちなみに16進数の場合は数16個必要になります。2進数の時は0と1の2個を使いますよね。では16の時は0~15を使うのでしょうか。残念ながら1桁の数字しか使うことは出来ないので10~はA,B,C~となっていきます。

 

(7)chr , ord

この2つの関数は整数を文字コードに、文字コードを整数に変換するものです。

たとえば65という数字に対応する文字コードはAになります。それを見るには

 

chr(65)

 

というプログラムを使います。逆にAを数字で表すには

 

ord('A')

 

というプログラムを使います。

f:id:Reate:20211213233142p:plain

(7)型の変換

python整数以外のデータ型を整数に変換するにはint()関数を用います。int()関数を用いると小数点以下が切り捨てられ、整数で帰ってきます。

単純なもので行くとブール値です。ブール値は先ほど説明したとおりtrueとfalseのみですよね。そしてtrueが1、falseが0となります。よって、

 

int(True)

int(False)

 

は次のようになります。

f:id:Reate:20211213233729p:plain

逆に整数をtrue,falseにするには先ほどやったbool()関数を用います。

 

bool(1)

bool(0)

 

f:id:Reate:20211213233948p:plain

次に浮動小数点数を整数に変換してみましょう。

 

int(3.14)

int(1.0e5)

 

f:id:Reate:20211213234427p:plain

 

このint()関数と先ほどの基数を組み合わせてみましょう。

()内の文字列が10進数以外の場合は進数を下のように指定できます。先ほどと同様に10を用いて試してみましょう。

 

int("10" , 2)

int("10" , 8)

int("10" , 16)

 

カンマの後の数字が進数を表します。上から2,8,16進数ということですね。

f:id:Reate:20211213234902p:plain

ちなみに明らかに数値でないものを変換しようとするとエラーが起きます。(整数を整数に変換しようとするとエラーにはなりませんが何も起きません。)

 

(8)浮動小数点数

浮動小数点数は小数点を持つ数字のことです。pythonではfloatト呼ばれることが多いです。float()関数により整数などを浮動小数点数に変換することが出来ます。

 

float(True)

float(83)

float(1.0e5)

 

これは次のようになります。

f:id:Reate:20211213235625p:plain

整数と浮動小数点数を混ぜて演算を行うときは浮動小数点数に合わせられます。

 

12 + 8.0

 

f:id:Reate:20211213235821p:plain

 

今日の講義はここまでとします。見ていただきありがとうございました!!次はついに2行以上を使うプログラムif()関数を用います!是非見てください!!

 

(9)練習問題

・次の数字はtrueかfalseかを答えよ。

(1)-30 (2)0.0 (3) 1

・18÷5の(1)割り切れた答え、(2)切り捨てたときの答えと余りを表示せよ。(2)は同時に表示してみよう。

・x = 4のときxを23+xの答えに変換しよう。

・次のものはどのような意味を持つだろうか。(x=22とする)

(1) x +=3  (2)x *=4 (3)x -=4

・-6**2を行うとき計算が間違ってします理由は何か。また、正しくするにはどうすればよいか。

・18(10進数)を2,8,16進数に変換せよ。

 

 

前回の答えを載せておきます!!

f:id:Reate:20211214001335p:plain

 

いちから学ぶPython講座

こんにちは!みなさんはプログラミングをしたことありますか?自分は前までC言語をしていましたがいまはPythonのプログラミングをしています。pythonは今とても注目されており、とても自然語に近いプログラミング言語でわかりやすいです。今からpythonを勉強したい人向けに記事を書いていきます!独学で学びたい人やスクールに通ってるけどわからないところがある人は是非ご活用ください!!

 

1.データ(値、変数)

Jupiter Notebookを使用してやっていきます。まずはデータをリテラル値(定数)や変数としてみていく方法を考えます。コンピュータはすべてのものをビットとしてみています。ビットとは情報量を示す単位であり、二進数の0や1をさします。

 

(1)変数

pythonでは変数を定義できます。これは他のプログラミング言語も同様です。しかし、使用できる変数には規則があります

 

1.小文字の英字(a~z)

2.大文字の英字(a~z)

3.アンダースコア( _ )

4.数字(0~9)

5.先頭は英字かアンダースコアでなければいけません。

   ※アンダースコアが先頭の場合特別なものと扱われてしまいます。

6.大文字と小文字を区別する。(apple,APple,APPLE,appLEなどはすべて別の変数です)

7.予約語を使ってはならない。

 

予約語一覧-------------------------------------------------------------------------------------

False   await   elese   import   pass   None   break   except

in   raise   True   class   finally   is   return   and   continue   

for   lambda   try   as   def   from   nonlocal   while   del   

assert   global   not   with   async   if    yield   or

続きを読む