奇数について触れられていないのは何故というのが、if文の条件式に何故組み込まないのかという意味でしたら、省略しても問題がない為です
python
1
2if value == 'q': #終了
3 break
4 number = int(value)
5 if number % 2 == 0: #偶数
6 continue
7 else:
8 print(number, "squared is", number*number)
このようにelseやelifで記述しても動作は同じである為、もしelse文などがあった方がしっくりくるのでしたらそのようにしても問題はないかと
また下の代入の質問がint変換をしているのが何故という意味でしたら、can110さんの言うように、数値に変換する為ですが、もし何故わざわざ代入しなおすのかという意味でしたら、代入をし直さなければ、下のコードのように一々int変換をしてやらなければいけないからです
python
1while True:
2 value = input("Integer, please [q to quit]:")
3 if value == 'q': #終了
4 break
5
6 if int(value) % 2 == 0: #偶数
7 continue
8 print(value, "squared is", int(value)*int(value))
代入をする事でint変換を3つも書くことなく済むわけです
ただこれに関しては好みの問題なのかなと
また数値しか使わない前提であれば、inputを直接int変換してやる方法もあります
python
1value = int(input("Integer, please [q to quit]:"))
しかし今回はqという文字がループを抜ける条件である為、直接int変換してしまうとqを入力した時にエラーが起きてしまうためこの方法が使えないわけです
追記について
int関数を使っているのは、何故かと言うとcan110さんの回答にあるように、inputからは文字列が返されるからです
すなわち
python
1value=10 #数値 コンピューターで計算可能 型で言うとint型
2value2="10" #数字 コンピューターで計算不可能 型で言うとstr型
3
4print(value+int(value2))
value2の方で返されている扱いになっています
数字と数値は見た目は同じですが、
コメントにもあるように、コンピューターは数値でしか計算する事が出来ません
試しにint変換を外してみてください
エラーが起きるはずです
そこでint変換を使う事で、計算不可能な数字から計算可能な数値に変えてやる事で
number*numberという計算を可能にしているわけです
型変換の詳細については32ページから40ページを参照にしてください
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/15 03:45
2017/04/15 04:10