■
皆さんこんにちは!今日もプログラミング入門書いていきたいと思います!今日は昨日書いたとおりif文についてやっていきます。是非最後までご覧ください。それでは早速やっていきましょう!
3.ifを使った選択
ifは英語でどういうことを指すのか分かりますか?ifはもし~ならばというような意味を持ちます。このif文をプログラムで用いることで、もしこうだったらこうなる、違うならば違うことが起こるというような選択をすることが出来るプログラムを作れるようになります。
(1). # , \
まず、この2つの記号の使い方を説明します。これはif文だからなどという理由はないのですが、知っとくと便利ですので是非覚えてください!
プログラムを打ったときに横にメモ的なものを入れたくなるときありませんか?自分はそのプログラムの説明を横に書くようにしています。しかし普通に書いてしまうと次のようになってしましますよね。
ここで使うのが「#」です。これを使うことでこれ以降の文がプログラムとしてみられず、メモとして認識されます。
int("10" , 2) #2進数の10を10進数に変換する。
エラーを起こすことなくプログラムを実行できるようになりました。
しかし、シャープが文字列の中に含まれている場合は無効になります。たとえば「今は夜だ。」という文を表示させたいとき、
print("今は夜だ。")
というプログラムを打ちますよね。このクォート「””」に挟まれているのが文字列です。よって上の文を次のようにしたときシャープはそのまま表示されます。
print("今は夜だ。#朝まで後10時間ある。")
次はバックスラッシュ「\」について説明します。文が長すぎるのは余りよくないですよね。しかし、改行してしますとプログラムが行われません。
x = 3 +
4 +
5
x
ここで次のようなプログラムにすることでエラーを起こさず計算することが出来ます。
x = 3 +\
4 +\
5
x
しかし日本でバックスラッシュ「 \ 」を打とうとすると「¥」になってしまうので余り使えないと思います。では、どうすればよいか別のやり方を説明します。前後に()をつけるということです。
x = (
3 +
4 +
5)
x
このようにすることでエラーが起こらなくなります。
(2) if , elif , else
ついに今日のメインであるif文をやっていきます。まずは単純なブール値を例に行っていきます。
a = True
if a:
print("正解")
else:
print("不正解")
このプログラムは下のような結果を得ることが出来ます。
「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)とき「両方不正解」を表示
というものです。よって表示は次のようになります。
答えが分かりましたか?
では、分岐が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と表示するものです。結果は次のようになります。
しっかりとyesと表示されましたね。
ちなみにですが前の講義で「=」は代入を表すと言いましたよね。等しいという意味を持っているのが上で使われている「==」です。他にもあるので下にまとめておきます。
次のプログラムはTrueかFalseのどちらかが帰ってきます。予想してみましょう。
(x = 7と置きます。)
x == 5
x == 7
5 < x
x < 10
それぞれどちらの結果が帰ってくるでしょうか。正解はこちらです。
(3)論理演算子
論理演算子とはand , or , notのことを指します。
y = 20
y > 12 and y<22
このときy>12というのは正しく、y<22というのも正しいですよね。よってこれの結果はTrueが表示されます。
では、y<22をy<17という間違ったものに変えるとどうなるでしょうか。
y = 20
y > 12 and y<17
これは片方が合っていても片方が間違っているためFalseとなります。
論理演算子「and」は両方Trueの場合のみTrueになり、どれか1つでもFalseの場合はFalseと表示されます。
次に論理演算子「or」を見ていきましょう。
y = 20
y > 12 or y < 17
これは先ほどのものをandからorに変更したものです。先ほどはFalseでしたがどうなるでしょうか。
Trueと表示されました!
論理演算子「or」はどちらか片方がTrueならばTrueと表示され、どちらもFalseの場合のみFalseと表示されます。もちろんどちらもTrueの場合はTrueになります。
最後にnotを見ていきましょう。
y = 20
y > 12 and not y < 17
これは先ほどFalseになったもののy < 17の前にnotをつけたものです。どういった結果が出るでしょうか。
なんと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は子音です。")
これは母音と表示されます。
しかし2行目にこんなにorを使うのは面倒ですよね。そこで用いるのが「in」です。
y = 'aiueo'
x = 'a'
if x in y:
print("xは母音です。")
else:
print("xは子音です。")
「in」を使うとこんなにも簡単に書くことができる。
これでif文の基礎は終わりになります!!最後まで見ていただきありがとうございました!これを応用させていくと楽しいことになるという想像もできたのではないかと思います。次回は文字列について詳しくやっていきます。ぜひお楽しみに!!
(5)練習問題
・xとyに好きな数字を代入してxがyより低いときは「low」、xとyが等しいときは「equal」、xがyより高いときは「high」と表示するプログラムを書こう。
前回の答えです。
最後にプログラミングを始めたいけどパソコンの選び方が分からないという方のために僕がおすすめするノートパソコンを貼っておきますので是非ご購入ください!!
富士通は故障時などの対応が素晴らしく安心ですのでとてもおすすめです!!
|
またアマゾンでご購入の際はアマゾンプライムに入ることで送料が無料となったり様々な特典がありますので入ることをおすすめします!!
■
こんにちは!今日もプログラミング講座をしていきたいと思います!今日は前回の告知どうり数値について説明していきます。
2.数値
まずは一番単純である組み込みデータ型からやっていきます。
・ブール値
この値はTrueかFalseの2種類のみです。そのものが真か偽かをみることができます。
・整数
小数点以下がない数値のことを指します。
小数点以下が存在するものや、10e5のような指数表現を指します。(10e5=10の5乗)
(1)ブール値
ブール値についてもう少し説明していきます。これは任意の1つの値を受け付けます。値が0の場合の数値はFalse、それ以外はTrueとなります。
試しに次のプログラムはどうなるでしょうか。
bool(5)
bool(True)
bool(-13)
この上の3つはすべてTrueと表示されます。
次の3つはFalseと表示されます。
bool(0)
bool(0.0)
bool(False)
bool値がどのように活用できるかはまた後で説明していきます。
(2)リテラル値
みなさんリテラル値がなにか覚えていますか?
リテラル値というのは文字列や数字などそれ自体で表されるもののことです。
5や0などがリテラル値です。
1.数字(1~9)の前に0を置いてはいけません。
2.しかし整数の先頭に0b,0x,0oを置くことは大丈夫です。
数字だけのもの(434 , 76など)は正の整数を示します。数字の前に「+」をおいても値に変化は起きません。
負の整数を表すときは数字の前に「-」をつける。
また、1000を表すときに1,000と書くことが多いが「,」は使うことが出来ないので注意が必要です。もし使った場合次のようになってしまいます。
カンマ「,」の代わりにアンダースコア「_」を使うことは可能です。プログラムを行った場合は無視されます。
(3)演算
演算は次のように行います。
1つずつ見ていきましょう。
「+」と「-」は予想どおりだと思います。
8+9
9-8
数値と演算子は好きなだけ使用可能です。
8+6+98+3+5-4+8-4
乗算はかけ算のことです。
6 * 4
5 * 6 * 2 * 9 * 5
除算にすいては二種類あるので注意です。
1つ目はよくやる割り算です。
14 / 5
この場合は浮動小数点数まで計算を行います。
2つ目は整数の結果のみを表示します。
14 // 5
要するに2あまり4という答えの2を表示しているということです。
そして2あまり4のあまりの4を表示するのが次のやり方です。
14 % 5
ではまとめて2と4を得ることは出来ないのでしょうか?
そういうときは「divmod()」を使うことで求めることが出来ます。
divmod(14 , 5)
(4)整数と変数
今までのものはすべてリテラル値を使用していますが変数を用いても行うことが出来ます。
x = 67
x - 16
これはx - 16、つまり67 - 16の答えを表示してくれます。
このときxの値は変わっていません。ではxの値を変えるにはどうしたらよいでしょうか。次のように書きます。
x = 67
x = x - 16
x
xの値を51にすることが出来ました。
また、演算を特殊な書き方にすることも出来ます。次のものはどういった意味を持つでしょうか。それぞれx,y,zの値を予想してみましょう。
x = 95
x -= 3
y = 63
y += 5
z = 20
z *= 2
print(x)
print(y)
print(z)
正解はこのようになります。x,y,zはそれぞれ
x = 95 - 3
y = 63 + 5
z = 20 * 2と同意義ということです。
(5)優先順位
それではつぎのプログラム
2 + 5 * 4
はどのような答えが出るでしょうか?自分たちだったら乗算が先なので5*4=20にしてから+2をして22と答えを出しますよね。機械はどうなるでしょうか?
機械も同じように乗算、除算を先に計算してくれます!!
「+」や「ー」は後回しにされます。
では、次のプログラムはどうなるでしょうか。
-4 ** 2
「**」は指数の演算子となります。よってこれは-4の2乗ですね。よって答えは16。簡単ですね。しかし、、、
pythonの答えは-16になってしまいます。
先ほども言ったようにpythonでは「+」や「-」を後回しにしてしまいます。要するにpythonでは-4**2を-(4**2)ととらえてしまっているのです!!ではどのようにすれば本当の値を出せるのでしょうか?
(-4) **2
こうすることで「-」を引き算として見ずに「-4」という項としてみてくれます。
しっかりとした答えの表示に成功しました!!
(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
これは次のような結果が出ます。
これはいくつかの進数で表された数字を10進法に変換するというものです。
では10進法を2,8,16に変換する方法はないのでしょうか。
それが次のやり方です。2,8,16進数と順番にbin(),oct(),hex()で求めることが出来ます。
お気づきでしょうが、先ほどの0の後の英字は上のものを略称した形です。
それでは50を例にそれぞれ試していきましょう。
x = 50
bin(x)
oct(x)
hex(x)
これをそれぞれ行うと次のようになります。
ちなみに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')
というプログラムを使います。
(7)型の変換
pythonの整数以外のデータ型を整数に変換するにはint()関数を用います。int()関数を用いると小数点以下が切り捨てられ、整数で帰ってきます。
単純なもので行くとブール値です。ブール値は先ほど説明したとおりtrueとfalseのみですよね。そしてtrueが1、falseが0となります。よって、
int(True)
int(False)
は次のようになります。
逆に整数をtrue,falseにするには先ほどやったbool()関数を用います。
bool(1)
bool(0)
次に浮動小数点数を整数に変換してみましょう。
int(3.14)
int(1.0e5)
このint()関数と先ほどの基数を組み合わせてみましょう。
()内の文字列が10進数以外の場合は進数を下のように指定できます。先ほどと同様に10を用いて試してみましょう。
int("10" , 2)
int("10" , 8)
int("10" , 16)
カンマの後の数字が進数を表します。上から2,8,16進数ということですね。
ちなみに明らかに数値でないものを変換しようとするとエラーが起きます。(整数を整数に変換しようとするとエラーにはなりませんが何も起きません。)
(8)浮動小数点数
浮動小数点数は小数点を持つ数字のことです。pythonではfloatト呼ばれることが多いです。float()関数により整数などを浮動小数点数に変換することが出来ます。
float(True)
float(83)
float(1.0e5)
これは次のようになります。
整数と浮動小数点数を混ぜて演算を行うときは浮動小数点数に合わせられます。
12 + 8.0
今日の講義はここまでとします。見ていただきありがとうございました!!次はついに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進数に変換せよ。
前回の答えを載せておきます!!
いちから学ぶ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
続きを読む