ゆずまの○○日記がシンプルでいいと思います!

プログラミングを中心に書いていこうと思ってます。

05_ループの応用

  • whileでループを作る
    • ループにシーケンスを添えないこと。
    • 繰り返し変数もない
    • 条件式を添える
  • continue文を使う
    • それ以降のループブロックを実行せず、ブロックの最初まで戻ることができる。
    • 特定の条件にあるとき、ブロックの一部を実行せず、ループを続けたいときに使うと便利です。
  • ループのelse
    • for文にelseを添えると、ループの実行が終わった後に実行されるブロックを定義できる。
    • for文のブロックでbreak文が実行されたときは、else以降のブロックは実行されない。

while文の記法

    while 条件式:
        ループ内で実行するブロック
# coding: utf-8

# In[3]:

### FizzBuzz問題を解くプログラム
cnt = 1
while cnt <= 100:
    if cnt % 3 == 0 and cnt % 5 == 0:
        print("FizzBuzz")
    elif cnt % 3 == 0:
        print("Fizz")
    elif cnt % 5 == 0:
        print("Buzz")
    else:
        print(cnt)
    cnt = cnt + 1


# In[14]:

### じゃんけんプログラム
from random import randint
# ディクショナリの定義をする
hands = {0:"グー", 1:"チョキ", 2:"パー",}
# タプル をキーに使いディクショナリに設定する
# 勝ち負けのルール
rules= {(0,0):"あいこ" , (0,1):"勝ち"    , (0,2):"負け",
             (1,0):"負け"    , (1,1):"あいこ" , (1,2):"勝ち",
             (2,0):"勝ち"    , (2,1):"負け"    , (2,2):"あいこ"}

while True:
    pc_hand           = randint(0,2)
    user_hand_str = input("0:グー, 1:チョキ, 2:パー, 3:やめる")
    
    # じゃんけんをやめる
    if user_hand_str == "3":
        break
    
    # 不正な入力の場合、ループの先頭に戻る
    if user_hand_str not in ("0", "1", "2"):
        continue
    # ユーザーの手を数値に変換
    user_hand = int(user_hand_str)
    
    print("あなた" + hands[user_hand]+ "、コンピュータ:" + hands[pc_hand])
    
    print(rules[user_hand, pc_hand])


# In[23]:

### for文とelse文の組み合わせ (素数です)
a_num = 59
for num in range(2, a_num):
    print(a_num, num)
    if a_num % num == 0:
        print(a_num, "は素数ではありません")
        break
else:
        print(a_num, "は素数です")


# In[22]:

### for文とelse文の組み合わせ(素数ではありません。)
a_num = 60
for num in range(2, a_num):
    print(a_num, num)
    if a_num % num == 0:
        print(a_num, "は素数ではありません")
        break
else:
        print(a_num, "は素数です")


# In[ ]: