Pythonで斬ってつなぐ
2つのプログラムを示します。どちらのプログラムも 10 で割りながら(5行目)、余りを加える(4行目)という点では同じですが、2行目と4行目が微妙に違います。
# 〈プログラム1〉
n = int(input( ))
s = 0
while n>0 :
s = s + n%10
n = n//10
print (s)
# 〈プログラム2〉
n = int(input( ))
s = ’ ’
while n>0 :
s = s + str(n%10)
n = n//10
print (s)
違いは変数 s の「型」です。〈プログラム1〉の変数 s は「整数」で、〈プログラム2〉の変数 s は「文字列」。違いは、それだけ。
変数の型について、些細なことと思われるかもしれませんが、これが元でエラーが起きたり、期待通りの結果が得られなかったり、よくあることです。型の違いがけっこう大きな違いを生むこと、味わってくださいな。
では、〈解説・解答〉と行きましょう。
と、こんな風になります。どちらも Python で斬ってつないでいるわけですが、結果を見ればまるで違いますね。
《チャレンジ》についてはまた後で同じようなことをやりますので、簡単に方向性だけ示しておきます。
〈プログラム2〉で「10で割り続けた」ところを「2で破り続ける」ように書き換えることで「10進数の整数を入力して、2進数で表示する」プログラムにだいぶ近づきます。
〈プログラム1〉で「10で割った余りをそのまま足す」のを「途中で5倍しながら足す」ことで「5進数の整数を入力して、10進数で表示する」プログラムにだいぶ近づきます。ここから先は記事「Python でM進数をN進数に変換する」をご覧ください。
◇ ◇ ◇
〜 変数には型がある 〜
▷ Python をじっくり観察しよう
▷ Python の変数を体感する
▷ Pythonで斬ってつなぐ
この記事が気に入ったらサポートをしてみませんか?