python入門その3
演算子
pythonにも算術演算子、比較演算子、連結演算子、論理演算子、ビット演算子など多くの演算子があります。
基本的にc#と同じですが、所々違うものもあるのでそれをみていきましょう。
算術演算子
0 | 演算子 | 例 | 説明 |
---|---|---|---|
1 | + | a+b | 足し算をする |
2 | - | a-b | 引き算をする |
3 | * | a*b | 掛け算をする |
4 | / | a/b | 割り算をする |
5 | // | a//b | aをbで割った商の整数値 |
6 | % | a%b | aをbで割った時のあまり |
7 | ** | a**b | aをn回かけた数(ベキ乗と言います) |
これらを算術演算子、数値演算子などと呼びます。
基本的には使ったことがある演算子がほどんどだと思いますが、5行目と7行目はあまり馴染みがないと思います。実際に使ってみましょう。
ex3-1
・1024を3で割った時の整数値(あまりを無視した答え)は幾つでしょうか
・12の3乗は幾つでしょうか
比較演算子
0 | 演算子 | 例 | 説明 |
---|---|---|---|
1 | == | a==b | aとbが等しい |
2 | != | a!=b | aとbが等しくない |
3 | > | a>b | aはbより大きい |
4 | < | a<b | aはbより小さい |
5 | >= | a>=b | aはb以上 |
6 | <= | a<=b | aはb以下 |
7 | is | a is b | aとbのオブジェクトが同一 |
8 | is not | a is not b | aとbのオブジェクトが同一ではない |
比較も大きくはc#と変わりません。
ただ7,8行目は見慣れないかなと思います。
下がis
,is not
を使った例です。
list1 = [1,2,3,4]
list2 = [2,3,4,5]
if list1 is list2:
print "true"
elif list1 is not list2:
print "false"
出力するとfalseと表示されます。リストなどをpythonではオブジェクトと呼びますが、その場合にこのis
,is not
は使用されます。
ex3-2
・変数aとbに数字を代入し、aがbより大きければ「big」、小さければ「small」、同じなら「equal」と表示させてみましょう。
・永久ループを書き、その中で変数に入力を続けるプログラムを書きます。変数が5で割り切れたらループが終わるプログラムを書いてください。
・変数aとbに数字を代入し、a×bが偶数ならOdd,奇数ならEvenと表示させてみましょう。
論理演算子
0 | 演算子 | 例 | 説明 |
---|---|---|---|
1 | not | not b | 否定。bではない時。 |
2 | and | a and b | 論理積。aとb |
3 | or | a or b | 論理和。aあるいはb |
c#ではa&&b
(論理積)やa||b
(論理和)と書いていました。
pythonでは英語でそのままand
,or
と書きます。
ここではnot
が見慣れていないかと思います。
not
はnot 式
という形式で使用します。次のプログラムは、入力されたnが10でなければ「yes」と表示するプログラムです。
n = input()
if not n == 10:
print "yes"
頭がこんがらがるかもしれませんが、要するに後ろに書いた式を満たさないという意味です。
勘の良い人なら次のプログラムと同じ意味だと分かると思います。
n = input()
if n != 10:
print "yes"
ex3-3
・変数aに数字を代入し、50以上100以下であれば「True」と表示するプログラムを書いてください。
・変数aに数字を代入し、その数字が2で割り切れる数字だった時、あるいは5で割り切れる数字であった時、「true」と出力するプログラムを書いてください。
・100までのすべての素数を出力するプログラムを書いてください。(素数とは、その数自身と1でしか割れない数です。)(ヒント:1と、2,3,5,7の倍数をすべて除いた数が素数です。if文をたくさん使います。for文で1~100を数えてあげるようにします。)
・ある数字を入力し、その年が夏季オリンピックの年か、冬季オリンピックの年か、あるいは何もない年か出力してください。ただし、東京オリンピックは2020年にします。(ヒント、夏季オリンピックは4の倍数年です)