見出し画像

Pythonに手を出してみる①

とりあえず、萩原(https://note.com/akotora2911)が書いてくれたコードを読んで勉強することにした。

1+2+3+4+5=15

sum = 0
n=5
for i in range(1,n+1):
   sum = sum + i
print('sum = ',sum)
sum =  15

ほんとに素人なのでfor文の所を辿ってみる。

i=1 のとき sum(=0)+i(=1) を sum に代入するので sum=1 になる。
i=2 のとき sum(=1)+i(=2) を sum に代入するので sum=3 になる。
i=3 のとき sum(=3)+i(=3) を sum に代入するので sum=6 になる。
i=4 のとき sum(=6)+i(=4) を sum に代入するので sum=10 になる。
i=5 のとき sum(=10)+i(=5) を sum に代入するので sum=15 になる。

自分なら最初にsum=0って書いておくのを忘れそうだ。そもそも、この足し算を「足す数を1ずつ増やしながら、足し算を繰り返すこと」って捉えることも、言われてみなければ分からない。

偶数判定

n=5
for i in range(0,n+1):
   if(i%2 ==0):
       print(i)
   else:
       print('odd!')
0
odd!
2
odd!
4
odd!

ほんっとに素人なので日本語に訳してみる。

i=0 のとき i(=0) を2で割った余りは0だから i(=0) を表示する。
i=1 のとき i(=1) を2で割った余りは0ではないから odd! と表示する。
i=2 のとき i(=2) を2で割った余りは0だから i(=2) を表示する。
i=3 のとき i(=3) を2で割った余りは0ではないから odd! と表示する。
i=4 のとき i(=4) を2で割った余りは0だから i(=4) を表示する。
i=5 のとき i(=5) を2で割った余りは0ではないから odd! と表示する。

字下げにも注目だ。ループの内容はforよりも字下げをして表し、ifの条件が真/偽になるときの処理はif/elseよりも字下げをして表している。

入力を受け付ける

n =int(input())
print('>入力nに',n,'が与えられました')
print('n + 9 は',n+9,'です')
>入力nに 5 が与えられました
n + 9 は 14 です

5を入力してみたら上の結果を返してくれた。2, 3行目をよく見たら文字列と数をきちんと区別している(以下、見やすいよう勝手にスペースを入れた)。

'>入力nに'←文字列 , n←数 , 'が与えられました'←文字列
'n + 9 は'←文字列 , n+9←数 , 'です'←文字列

ここで input() として5を入力するのだが、さりげなく int() という関数を挟んである。これは入力されたものを整数として扱う、ということらしい。

'>入力nに'←文字列 , 5←数 , 'が与えられました'←文字列
'n + 9 は'←文字列 , 14←数 , 'です'←文字列

次の記事からは、萩原のコードを参考に、違った計算ができないか試してみる。