ロジカ式logo

はじめての
Python

ページ一覧に戻る
応用問題2-2 条件分岐 繰り返し
条件分岐と繰り返しの基本型
print statement
演習課題6
  •   以下のプログラムを作ってください。
    1. キーボードから、一つの整数を入力する。
    2. 入力された整数の個数分、「0 1 2 3 4」と順番に数を並べて表示する。
    3. 数は、半角スペースを間に挟んで横に並ぶように表示する。
    4. 9を表示した次は、10ではなくまた0に戻って表示する。
    5. 例:入力した数が16なら、以下のように16個表示される。
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
PRACTICE

📖 解答例と解説

loop_num = int(input())
show_num = 0   #表示する数

for i in range(loop_num):
    if show_num == 10:
        show_num = 0
        print(0, end = " ")
    else:
        print(show_num, end = " ")
    show_num += 1
ロボた

カウント変数を使わないで、別に数を表示させるための変数を使う必要があるよ!
表示のために使う変数の値が「10」になったら、「0」にすればいいんだ!

数が半角スペースを挟んで横に並ぶようにするには、print文の中に「end=" "」を追加すればいいんだったね!

ロボち

演習課題7
  •   以下のプログラムを作ってください。
  • 「*」記号を使って以下のような、10列10行の四角形を表示するプログラム。
    1. 横に並ぶ記号と記号の間には、何も挟まないでください。

**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
PRACTICE

📖 解答例と解説

for i in range(10):
    for j in range(10):
        print("*", end = "")
    print()
ロボた

「九九の表」を作ったときのように、繰り返しの中に繰り返しがあるよ!

内側の繰り返しで記号が横に並ぶから、改行しないようにprint文の中に「end = ""」を追加すればいいんだ!

ロボち

演習課題8
  •   以下のプログラムを作ってください。
  • 「*」記号を使って以下のような、10行の直角三角形を表示するプログラム。
    1. 横に並ぶ記号と記号の間には、何も挟まないでください。

*
**
***
****
*****
******
*******
********
*********
**********
PRACTICE

📖 解答例と解説

for i in range(10):
    for c in range(i + 1):
        print("*", end = "")
    print()
ロボた

縦(外側)の繰り返しのたびに「*」記号が一つずつ増えているから、内側の繰り返しの回数が一つずつ増えるようにするといいんだよ!

そのためには、外側の繰り返しのカウント変数が一つずつ増えていくのを利用して、内側の繰り返しの回数を「i + 1」とすればいいんだ!
どうして「i」を一つ増やせばいいのかは、カウント変数がどんなふうに変化するのか考えればわかるはずだよ!

ロボち

演習課題9
  •   以下のプログラムを作ってください。
  • 「*」記号を使って、以下のような直角三角形を表示するプログラム。
    1. 横に並ぶ記号と記号の間には、何も挟まないでください。
    2. 半角スペースと、「*」記号を組み合わせるとできます。

         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********
PRACTICE

📖 解答例と解説

for i in range(10):
    change_symbol = 10 - (i + 1)
    for c in range(10):
        if c < change_symbol:
            print(" ", end = "")
        else:
            print("*", end = "")
    print()
ロボた

基本は、「*」で四角形を作るのと同じだよ!

「change_symbol=10-(i+1)」のところで、内側のカウント変数がいくつのときに半角スペースと「*」記号をチェンジさせるか計算しているんだ!

ロボち

演習課題10
  •   以下のプログラムを作ってください。
  • 「*」記号を使って、以下のような横向きの二等辺三角形を表示するプログラム。
    1. 横に並ぶ記号と記号の間には、何も挟まないでください。
    2. 9行の二等辺三角形にしてください。

*
**
***
****
*****
****
***
**
*
PRACTICE

📖 解答例と解説

loop_num = 0

for i in range(9):
    if i < 5:
        loop_num += 1
    else:
        loop_num -= 1
    for c in range(loop_num):
        print("*", end = "")
    print()
ロボた

内側の繰り返しの回数を、変数で変化させればいいんだ!

そして条件のところでは、内側の繰り返す回数を増やす処理と減らす処理を、いつ切り替えるか判断させているよ!

ロボち