繰り返し処理

# for文で1~100の値と識別番号を表示

for i in range(1, 101):
    print(f'i = {i:3}  id(i) = {id(i)}')

C:>python xxx.py
i = 1 id(i) = 140707660424104
i = 2 id(i) = 140707660424136
i = 3 id(i) = 140707660424168
i = 4 id(i) = 140707660424200
i = 5 id(i) = 140707660424232
i = 6 id(i) = 140707660424264
i = 7 id(i) = 140707660424296
i = 8 id(i) = 140707660424328
i = 9 id(i) = 140707660424360
i = 10 id(i) = 140707660424392
i = 11 id(i) = 140707660424424
i = 12 id(i) = 140707660424456
i = 13 id(i) = 140707660424488
i = 14 id(i) = 140707660424520
i = 15 id(i) = 140707660424552
i = 16 id(i) = 140707660424584
i = 17 id(i) = 140707660424616
i = 18 id(i) = 140707660424648
i = 19 id(i) = 140707660424680
i = 20 id(i) = 140707660424712
i = 21 id(i) = 140707660424744
i = 22 id(i) = 140707660424776
i = 23 id(i) = 140707660424808
i = 24 id(i) = 140707660424840
i = 25 id(i) = 140707660424872
i = 26 id(i) = 140707660424904
i = 27 id(i) = 140707660424936
i = 28 id(i) = 140707660424968
i = 29 id(i) = 140707660425000
i = 30 id(i) = 140707660425032
i = 31 id(i) = 140707660425064
i = 32 id(i) = 140707660425096
i = 33 id(i) = 140707660425128
i = 34 id(i) = 140707660425160
i = 35 id(i) = 140707660425192
i = 36 id(i) = 140707660425224
i = 37 id(i) = 140707660425256
i = 38 id(i) = 140707660425288
i = 39 id(i) = 140707660425320
i = 40 id(i) = 140707660425352
i = 41 id(i) = 140707660425384
i = 42 id(i) = 140707660425416
i = 43 id(i) = 140707660425448
i = 44 id(i) = 140707660425480
i = 45 id(i) = 140707660425512
i = 46 id(i) = 140707660425544
i = 47 id(i) = 140707660425576
i = 48 id(i) = 140707660425608
i = 49 id(i) = 140707660425640
i = 50 id(i) = 140707660425672
i = 51 id(i) = 140707660425704
i = 52 id(i) = 140707660425736
i = 53 id(i) = 140707660425768
i = 54 id(i) = 140707660425800
i = 55 id(i) = 140707660425832
i = 56 id(i) = 140707660425864
i = 57 id(i) = 140707660425896
i = 58 id(i) = 140707660425928
i = 59 id(i) = 140707660425960
i = 60 id(i) = 140707660425992
i = 61 id(i) = 140707660426024
i = 62 id(i) = 140707660426056
i = 63 id(i) = 140707660426088
i = 64 id(i) = 140707660426120
i = 65 id(i) = 140707660426152
i = 66 id(i) = 140707660426184
i = 67 id(i) = 140707660426216
i = 68 id(i) = 140707660426248
i = 69 id(i) = 140707660426280
i = 70 id(i) = 140707660426312
i = 71 id(i) = 140707660426344
i = 72 id(i) = 140707660426376
i = 73 id(i) = 140707660426408
i = 74 id(i) = 140707660426440
i = 75 id(i) = 140707660426472
i = 76 id(i) = 140707660426504
i = 77 id(i) = 140707660426536
i = 78 id(i) = 140707660426568
i = 79 id(i) = 140707660426600
i = 80 id(i) = 140707660426632
i = 81 id(i) = 140707660426664
i = 82 id(i) = 140707660426696
i = 83 id(i) = 140707660426728
i = 84 id(i) = 140707660426760
i = 85 id(i) = 140707660426792
i = 86 id(i) = 140707660426824
i = 87 id(i) = 140707660426856
i = 88 id(i) = 140707660426888
i = 89 id(i) = 140707660426920
i = 90 id(i) = 140707660426952
i = 91 id(i) = 140707660426984
i = 92 id(i) = 140707660427016
i = 93 id(i) = 140707660427048
i = 94 id(i) = 140707660427080
i = 95 id(i) = 140707660427112
i = 96 id(i) = 140707660427144
i = 97 id(i) = 140707660427176
i = 98 id(i) = 140707660427208
i = 99 id(i) = 140707660427240
i = 100 id(i) = 140707660427272

# for文で1~100の値と識別番号を表示(変数iの値をループ本体内で変更)

for i in range(1, 101):
    print(f'i = {i:3}  id(i) = {id(i)}')
    i = 100                                 # この代入を追加

C:>python xxx.py
i = 1 id(i) = 140707660424104
i = 2 id(i) = 140707660424136
i = 3 id(i) = 140707660424168
i = 4 id(i) = 140707660424200
i = 5 id(i) = 140707660424232
i = 6 id(i) = 140707660424264
i = 7 id(i) = 140707660424296
i = 8 id(i) = 140707660424328
i = 9 id(i) = 140707660424360
i = 10 id(i) = 140707660424392
i = 11 id(i) = 140707660424424
i = 12 id(i) = 140707660424456
i = 13 id(i) = 140707660424488
i = 14 id(i) = 140707660424520
i = 15 id(i) = 140707660424552
i = 16 id(i) = 140707660424584
i = 17 id(i) = 140707660424616
i = 18 id(i) = 140707660424648
i = 19 id(i) = 140707660424680
i = 20 id(i) = 140707660424712
i = 21 id(i) = 140707660424744
i = 22 id(i) = 140707660424776
i = 23 id(i) = 140707660424808
i = 24 id(i) = 140707660424840
i = 25 id(i) = 140707660424872
i = 26 id(i) = 140707660424904
i = 27 id(i) = 140707660424936
i = 28 id(i) = 140707660424968
i = 29 id(i) = 140707660425000
i = 30 id(i) = 140707660425032
i = 31 id(i) = 140707660425064
i = 32 id(i) = 140707660425096
i = 33 id(i) = 140707660425128
i = 34 id(i) = 140707660425160
i = 35 id(i) = 140707660425192
i = 36 id(i) = 140707660425224
i = 37 id(i) = 140707660425256
i = 38 id(i) = 140707660425288
i = 39 id(i) = 140707660425320
i = 40 id(i) = 140707660425352
i = 41 id(i) = 140707660425384
i = 42 id(i) = 140707660425416
i = 43 id(i) = 140707660425448
i = 44 id(i) = 140707660425480
i = 45 id(i) = 140707660425512
i = 46 id(i) = 140707660425544
i = 47 id(i) = 140707660425576
i = 48 id(i) = 140707660425608
i = 49 id(i) = 140707660425640
i = 50 id(i) = 140707660425672
i = 51 id(i) = 140707660425704
i = 52 id(i) = 140707660425736
i = 53 id(i) = 140707660425768
i = 54 id(i) = 140707660425800
i = 55 id(i) = 140707660425832
i = 56 id(i) = 140707660425864
i = 57 id(i) = 140707660425896
i = 58 id(i) = 140707660425928
i = 59 id(i) = 140707660425960
i = 60 id(i) = 140707660425992
i = 61 id(i) = 140707660426024
i = 62 id(i) = 140707660426056
i = 63 id(i) = 140707660426088
i = 64 id(i) = 140707660426120
i = 65 id(i) = 140707660426152
i = 66 id(i) = 140707660426184
i = 67 id(i) = 140707660426216
i = 68 id(i) = 140707660426248
i = 69 id(i) = 140707660426280
i = 70 id(i) = 140707660426312
i = 71 id(i) = 140707660426344
i = 72 id(i) = 140707660426376
i = 73 id(i) = 140707660426408
i = 74 id(i) = 140707660426440
i = 75 id(i) = 140707660426472
i = 76 id(i) = 140707660426504
i = 77 id(i) = 140707660426536
i = 78 id(i) = 140707660426568
i = 79 id(i) = 140707660426600
i = 80 id(i) = 140707660426632
i = 81 id(i) = 140707660426664
i = 82 id(i) = 140707660426696
i = 83 id(i) = 140707660426728
i = 84 id(i) = 140707660426760
i = 85 id(i) = 140707660426792
i = 86 id(i) = 140707660426824
i = 87 id(i) = 140707660426856
i = 88 id(i) = 140707660426888
i = 89 id(i) = 140707660426920
i = 90 id(i) = 140707660426952
i = 91 id(i) = 140707660426984
i = 92 id(i) = 140707660427016
i = 93 id(i) = 140707660427048
i = 94 id(i) = 140707660427080
i = 95 id(i) = 140707660427112
i = 96 id(i) = 140707660427144
i = 97 id(i) = 140707660427176
i = 98 id(i) = 140707660427208
i = 99 id(i) = 140707660427240
i = 100 id(i) = 140707660427272

# 整数値のカウントアップ(ソート後のaからbまで)

a = int(input('整数a:'))
b = int(input('整数b:'))

a, b = sorted([a, b])       # 昇順にソート

counter = a
while counter <= b:
    print(counter, end=' ')
    counter = counter + 1   # counterに1を加える
print()

C:>python xxx.py
整数a:50 (画面入力)
整数b:60 (画面入力)
50 51 52 53 54 55 56 57 58 59 60

# 整数値のカウントアップ(counterの最終値を表示)

a = int(input('整数a:'))
b = int(input('整数b:'))

a, b = sorted([a, b])       # 昇順にソート

counter = a
while counter <= b:
    print(counter, end=' ')
    counter = counter + 1   # counterに1を加える
print(f'\ncounterの値は{counter}です。')

C:>python xxx.py
整数a:50 (画面入力)
整数b:60 (画面入力)
50 51 52 53 54 55 56 57 58 59 60
counterの値は61です。

# 整数値のカウントアップ(カウントアップを1個おきに変更)

a = int(input('整数a:'))
b = int(input('整数b:'))

a, b = sorted([a, b])       # 昇順にソート

counter = a
while counter <= b:
    print(counter, end=' ')
    counter = counter + 2   # counterに2‑を加える

C:>python xxx.py
整数a:50 (画面入力)
整数b:60 (画面入力)
50 52 54 56 58 60

# 正の整数値を0までカウントダウン

print('カウントダウンします。')
n = int(input('正の整数値:'))

while n >= 0:
    print(n, end=' ')
    n -= 1           # nから1を引く
print()

C:>python xxx.py
カウントダウンします。
正の整数値:50 (画面入力)
50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

# 1からnまでの和を求める

print('1からnまでの和を求めます。')
n = int(input('nの値:'))

total = 0
i = 1
while i <= n:
    total += i   # totalにiを加える
    i += 1       # iに1を加える
print(f'1から{n}までの和は{total}です。')

C:>python xxx.py
1からnまでの和を求めます。
nの値:10 (画面入力)
1から10までの和は55です。

# 1からnまでの和を求める(nに正の整数値を読み込む)

print('1からnまでの和を求めます。')

while True:
    if (n := int(input('nの値:'))) > 0:
        break

total = 0
i = 1
while i <= n:
    total += i   # totalにiを加える
    i += 1       # iに1を加える
print(f'1から{n}までの和は{total}です。')

C:>python xxx.py
1からnまでの和を求めます。
nの値:10 (画面入力)
1から10までの和は55です。

# 整数を次々と読み込んで正の整数値を加算

print('正の整数値を加算します(終了は-9999)。')

total = 0
while True:
    n = int(input('整数値:'))
    if n == -9999:
        break
    if n <= 0:
        continue
    total += n
print(f'正の整数の合計は{total}です。')

C:>python xxx.py
正の整数値を加算します(終了は-9999)。
整数値:10 (画面入力)
整数値:20 (画面入力)
整数値:30 (画面入力)
整数値:40 (画面入力)
整数値:50 (画面入力)
整数値:60 (画面入力)
整数値:70 (画面入力)
整数値:80 (画面入力)
整数値:90 (画面入力)
整数値:100 (画面入力)
整数値:101 (画面入力)
整数値:102 (画面入力)
整数値:103 (画面入力)
整数値:-9999 (画面入力)
正の整数の合計は856です。

# 数当てゲーム

import random

MAX = 1000                  # 当てさせる最大値
MAX_STAGE = 10              # 入力できる最大回数
print(f'1~{MAX}の数を{MAX_STAGE}回以内で当ててください。')

stage = 1
answer = random.randint(1, MAX)

while stage <= MAX_STAGE:
    print(f'{stage}回目 いくつかな:', end='')
    n = int(input())

    if n < 1 or n > MAX:    # 範囲外の値はやり直し
        continue

    if n == answer:         # 正解
        print(f'正解。{stage}回で当たりました。')
        break
    elif n > answer:
        print('もっと小さな数です。')
    else:
        print('もっと大きな数です。')

    stage += 1

else:
    print(f'残念。正解は{answer}でした。')

C:>python xxx.py
1~1000の数を10回以内で当ててください。
1回目 いくつかな:50 (画面入力)
もっと大きな数です。
2回目 いくつかな:90 (画面入力)
もっと大きな数です。
3回目 いくつかな:500 (画面入力)
もっと小さな数です。
4回目 いくつかな:300 (画面入力)
もっと小さな数です。
5回目 いくつかな:200 (画面入力)
もっと小さな数です。
6回目 いくつかな:100 (画面入力)
もっと大きな数です。
7回目 いくつかな:150 (画面入力)
もっと小さな数です。
8回目 いくつかな:120 (画面入力)
もっと大きな数です。
9回目 いくつかな:130 (画面入力)
もっと大きな数です。
10回目 いくつかな:140 (画面入力)
もっと小さな数です。
残念。正解は136でした。

# じゃんけんゲーム

import random

print('じゃんけんゲーム')

# 勝った回数、負けた回数、引き分けた回数
win_no = lose_no = draw_no = 0

while True:
    comp = random.randint(0, 2)

    while True:
        human = int(input('じゃんけんポン(0:グー/1:チョキ/2:パー):'))
        if 0 <= human <= 2:
            break

    print('私は', end='')
    match comp:
      case 0: print('グー', end='')
      case 1: print('チョキ', end='')
      case 2: print('パー', end='')
    print('です。')

    # 勝敗の判定
    judge = (human - comp + 3) % 3

    match judge:
      case 0:
        print('引き分けです。')
        draw_no += 1
      case 1:
        print('あなたの負けです。')
        lose_no += 1
      case 2:
        print('あなたの勝ちです。')
        win_no += 1

    retry = int(input('もう一度(0:はい/1:いいえ):'))
    if retry == 1:
        break

print(f'成績:{win_no}勝{lose_no}敗{draw_no}分けでした。')

C:>python xxx.py
じゃんけんゲーム
じゃんけんポン(0:グー/1:チョキ/2:パー):1 (画面入力)
私はチョキです。
引き分けです。
もう一度(0:はい/1:いいえ):0 (画面入力)
じゃんけんポン(0:グー/1:チョキ/2:パー):0 (画面入力)
私はパーです。
あなたの負けです。
もう一度(0:はい/1:いいえ):1 (画面入力)
成績:0勝1敗1分けでした。

# 読み込んだ回数だけ挨拶する(カウントは0から)

n = int(input('挨拶は何回:'))

for i in range(n):
    print(f'No.{i}:こんにちは。')

C:>python xxx.py
挨拶は何回:5 (画面入力)
No.0:こんにちは。
No.1:こんにちは。
No.2:こんにちは。
No.3:こんにちは。
No.4:こんにちは。

# 読み込んだ回数だけ挨拶する(カウントは1から:その1)

n = int(input('挨拶は何回:'))

for i in range(n):
    print(f'No.{i + 1}:こんにちは。')

C:>python xxx.py
挨拶は何回:5 (画面入力)
No.1:こんにちは。
No.2:こんにちは。
No.3:こんにちは。
No.4:こんにちは。
No.5:こんにちは。

# 読み込んだ回数だけ挨拶する(カウントは1から:その2)

n = int(input('挨拶は何回:'))

for i in range(1, n + 1):
    print(f'No.{i}:こんにちは。')

C:>python xxx.py
挨拶は何回:5
No.1:こんにちは。
No.2:こんにちは。
No.3:こんにちは。
No.4:こんにちは。
No.5:こんにちは。

# for文による整数値のカウントアップ(ソート後のaからbまで)

a = int(input('整数a:'))
b = int(input('整数b:'))

a, b = sorted([a, b])       # 昇順にソート

for counter in range(a, b + 1):
    print(counter, end=' ')
print()

C:>python xxx.py
整数a:5 (画面入力)
整数b:1 (画面入力)
1 2 3 4 5

# 整数値のカウントアップ

start = int(input('開始:'))
end   = int(input('終了:'))
step  = int(input('増分:'))

for count in range(start, end, step):
    print(count, end=' ')
print()

C:>python xxx.py
開始:5 (画面入力)
終了:10 (画面入力)
増分:2 (画面入力)
5 7 9

# 読み込んだ整数値以下の奇数を列挙

n = int(input('整数値:'))

for i in range(1, n + 1, 2):
    print(i, end=' ')
print()

C:>python xxx.py
整数値:10 (画面入力)
1 3 5 7 9

# 読み込んだ整数値以下の全約数を列挙

n = int(input('整数値:'))

for i in range(1, n + 1):
    if n % i == 0:
        print(i, end=' ')
print()

C:>python xxx.py
整数値:6 (画面入力)
1 2 3 6

# 読み込んだ整数値の個数だけ*を連続表示

n = int(input('整数値:'))

for _ in range(n):
    print('*', end='')
print()

C:>python xxx.py
整数値:6 (画面入力)
******

# 10~99の乱数をn個生成

import random

n = int(input('乱数は何個:'))

for _ in range(n):
    r = random.randint(10, 99)
    if (r == 13):
        print('\n事情により中断します。')
        break
    print(r, end=' ')
else:
    print('\n乱数生成終了。')

C:>python xxx.py
乱数は何個:3 (画面入力)
64 48 42
乱数生成終了。

# 九九の表を表示

print('-' * 27)
for i in range(1, 10):
    for j in range(1, 10):
        print(f'{i * j:3d}', end='')
    print()
print('-' * 27)

C:>python xxx.py

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

# 長方形を表示

print('長方形')
h = int(input('高さ:'))
w = int(input('横幅:'))

for i in range(h):
    for j in range(w):
        print('*', end='')
    print()

C:>python xxx.py
長方形
高さ:10 (画面入力)
横幅:5 (画面入力)
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****

# 長方形を表示(変数名をjから_に変更)

print('長方形')
h = int(input('高さ:'))
w = int(input('横幅:'))

for _ in range(h):
    for _ in range(w):
        print('*', end='')
    print()

C:>python xxx.py
長方形
高さ:10 (画面入力)
横幅:5 (画面入力)
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****

# 左下側が直角の二等辺三角形を表示

print('左下直角の二等辺三角形')
n = int(input('短辺の長さ:'))

for i in range(n):
    for j in range(i + 1):
        print('*', end='')
    print()

C:>python xxx.py
左下直角の二等辺三角形
短辺の長さ:3(画面入力)
*
**
***

# 左下側が直角の二等辺三角形を表示(変数名をjから_に変更)

print('左下直角の二等辺三角形')
n = int(input('短辺の長さ:'))

for i in range(n):
    for _ in range(i + 1):
        print('*', end='')
    print()

C:>python xxx.py
左下直角の二等辺三角形
短辺の長さ:3 (画面入力)
*
**
***

# 右下側が直角の二等辺三角形を表示

print('右下直角の二等辺三角形')
n = int(input('短辺の長さ:'))

for i in range(n):
    for _ in range(n - i - 1):
        print(' ', end='')
    for _ in range(i + 1):
        print('*', end='')
    print()

C:>python xxx.py
右下直角の二等辺三角形
短辺の長さ:3 (画面入力)
*
**
***

# 左上側が直角の二等辺三角形を表示

print('左上直角の二等辺三角形')
n = int(input('短辺の長さ:'))

for i in range(n):
    for j in range(n - i):
        print('*', end='')
    print()

C:>python xxx.py
左上直角の二等辺三角形
短辺の長さ:3 (画面入力)


***
**
*

# 右上側が直角の二等辺三角形を表示

print('右上直角の二等辺三角形')
n = int(input('短辺の長さ:'))

for i in range(n):
    for _ in range(i):
        print(' ', end='')
    for _ in range(n - i):
        print('*', end='')
    print()

C:>python xxx.py
右上直角の二等辺三角形
短辺の長さ:3 (画面入力)


***
**
*

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。