プログラミング勉強中!!

TECH::EXPERT 40期 受講生の筆者がその日学んだことをアウトプットしていくブログです。学習量によっては全て書ききれないこともあります。お気付きのことありましたバシバシコメントください!!3月中旬よりWEBエンジニアとして働くことになりました。日々の業務などについても発信させていただきたいと思います!!よろしくお願いいたします!!

Python 3 学習 by paiza ループ処理を勉強する

はい、こんにちは。

最近はRuby以外の言語を勉強しようと思い、色々考えた結果、Pythonを選択する至りました。

なぜPython?

一言でいうと、誰でも美しいコードがかけるように作成されている言語だったからです。美しい・・・・・インデントで全てを管理、インデントが間違っているとエラーになる。レビュワー様に鬼のインデントを指摘された私にとって、非常にありがたい言語です。

for in を用いたループ処理

基本形

for 変数 in 繰り返す範囲:
    繰り返し処理

となります。

変数部分には、iもしくはjを用いることが多いです。

では実際に値を入力していきましょう。

for i in range(1,10)       #range(1,10)は1から10までの範囲でという意味
    print("hello world")   #hello worldを出力

上記はhello world という文字を10回出力してねという命令になります。

この処理で下記のように出力できる。

1
2
3
4
5
6
7
8
9

※スタートは0からなので、10は表示されない。10を表示したい場合は、range(1,11)とする。

whileを用いたループ処理

基本形

変数を初期化(定義)
while 条件式:
    #繰り返し処理
    #変数を更新

となる。

式と値を入力すると

i = 1     #変数の初期化(定義)
while i <= 10:   #iが10以下の時、iが10になるまで繰り返し処理をします!
    print(i)   #iを出力。10になるまで出力し続けます。
    i += 1     #一回処理されるごとにiに1を足して行ってね、ということ。

実行すると

1
2
3
4
5
6
7
8
9
10

となる。

ロジックとしては、while 条件式: で定めた条件を満たすまで繰り返し処理を「してくれるということだ。

これまでは数を増やして行ったが、カウントダウンもできる。

5から0までカウントダウンしてみよう。

i = 5
while i >= 1:
    print(i)
    i -= 1

として実行すると

5
4
3
2
1

となる。

iに入力する数字を変えてみると色々な発見があるので、ぜひ試してみよう!!

参考までに

i = 5
while i >= 1:
    print(i)
    i -= 1
print("next:"+str(i))  #次に現れる数字を出力

とすると、次に出力される数字が確認でき、非常に面白い。

 ループ処理を使ってモンスター討伐アプリを作ってみよう!!

完成形がこれ。

import random  #randomという関数をimportして使えるようにした。
hp = 100       #モンスターのhp設定
experience_point = random.randint(1,40) #経験値の設定
while hp >= 10:
    hit = random.randint(1, 10) #1から10の間でランダムにダメージを選ぶ
    print("勇者の攻撃")
    print("モンスターに"+str(hit)+"のダメージを与えた") # 繰り返し処理
    hp -= hit    #変数を更新
print("モンスターを討伐した!!")
print("勇者は経験値を"+str(experience_point)+"P獲得した")
print("なんと、モンスターが起き上がりこちらを見ている!")
print("仲間にしますか?")

実行結果

勇者の攻撃
モンスターに5のダメージを与えた
勇者の攻撃
モンスターに5のダメージを与えた
勇者の攻撃
モンスターに1のダメージを与えた
勇者の攻撃
モンスターに2のダメージを与えた
勇者の攻撃
モンスターに9のダメージを与えた
勇者の攻撃
モンスターに1のダメージを与えた
勇者の攻撃
モンスターに10のダメージを与えた
勇者の攻撃
モンスターに2のダメージを与えた
勇者の攻撃
モンスターに5のダメージを与えた
勇者の攻撃
モンスターに2のダメージを与えた
勇者の攻撃
モンスターに5のダメージを与えた
勇者の攻撃
モンスターに5のダメージを与えた
勇者の攻撃
モンスターに10のダメージを与えた
勇者の攻撃
モンスターに10のダメージを与えた
勇者の攻撃
モンスターに1のダメージを与えた
勇者の攻撃
モンスターに6のダメージを与えた
勇者の攻撃
モンスターに4のダメージを与えた
勇者の攻撃
モンスターに8のダメージを与えた
モンスターを討伐した!!
勇者は経験値を22P獲得した
なんと、モンスターが起き上がりこちらを見ている!
仲間にしますか?

モンスターをボコボコにできるアプリが完成しました。

ゲームならもっと複雑なループ処理、条件分岐をしているのだろうと気付かされたアプリ作成でした。

それでは。