ロジカ式logo

はじめての
Python

ページ一覧に戻る
Lesson11-7 多重になった繰り返し
ロボた

つぎは、「繰り返し構造」の中に「繰り返し構造」があるプログラムだよ!

繰り返し構造の中に繰り返し構造
繰り返し構造の中に繰り返し構造 公園

ちょっと、頭の中が混乱するかもしれないけど、がんばってね!

ロボち

使い方の例

📝1
掛け算の、「九九の表」を表示するプログラムです。

ロボた

「九九の表」を作るには、外側のfor文のカウント変数と内側のfor文のカウント変数を使って、掛け算をするのがポイントだよ!

それと、表示するとき「改行」しないようにするのも重要なポイントなんだ!
そのためには、print文をちょっと工夫しないといけないんだ!

ロボち
縦並び出力 print文
横並び出力 print文
,付き横並び出力 print文
ロボた

「end = ""」の「" "」の中に何か文字を入れると、それが出力したあと表示されるんだよ!

それじゃぁ、「九九の表」のプログラムを見てみようか!
最初に実行して、どんなふうに表示されるか確認してね!

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

外側と内側の繰り返しは、それぞれ9回繰り返しているよ!

だから、それぞれのカウント変数は、こんなふうに変化しているよ!

ロボち
カウント変数の変化

外側の繰り返しは「縦の列」になると思ってね!

ロボち
ロボた

2~4行目までは、内側の繰り返しだよ! 3行目で、外側のカウント変数と内側のカウント変数の掛け算をしているんだ!

4行目のprint文が「print(num, end = " ")」ってなってるから、 掛け算の結果は半角スペースがついてこんなふうに横に並んで表示されるんだ!

ロボち
繰り返し表
ロボた

内側の繰り返しが終わると、5行目のいつものprint文で、何も表示しないで改行だけしているんだよ!

そうすると、こんな「九九の表」ができるんだ!

ロボち
九九の表
ロボた

「九九の表」のプログラムがわかってもらえたかな?

難しかったかもしれないけど、あとで役に立つからしっかり理解しておいてね!

ロボち

やってみよう

⌨️1
「*」記号を使って、以下と同じ結果となるように「縦8行横5列」の長方形を描いてください。

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

📖 解答例と解説

for i in range(8):
    for c in range(5):
        print("*", end = "")
    print()
ロボた

計算をする必要はないから、繰り返す回数をそのまま指定すればいいね!

横に並べるときも、「*」の間に何も表示させる必要はないから「end = ""」でいいね!

ロボち

エスケープシーケンス

ロボた

「エスケープシーケンス」というのは、文字列の中で使う特殊な記号のことだよ!

彼女は"おはよう!"と言いました。と表示させたい場合、
print("彼女は"おはよう!"と言いました。")と書くとエラーになってしまうね。

ロボち
PRACTICE
print("彼女は"おはよう!"と言いました。")
ロボた

「"」を文字列の中で使いたいときには、記号の前に「\(バックスラッシュ)」や「¥」をつけて「エスケープシーケンス」にしないといけないんだ!

\"」と書くことによって「"」が文字列に置き換わるんだよ!

ロボち
ロボた

プログラミングでは、特に「\"」「\'」「\n」といったエスケープシーケンスがよく使われるよ!

\」と「¥」は、同じ意味だから、どちらを使ってもいいよ!
英語モードでキーボードの右上にある「¥」のキーを押すと、「\」が入力できるよ!

ロボち
ロボた

\n」は文字列の中で改行させるときに使う「エスケープシーケンス」だよ!

今までは、
print(5)
print(14)
を実行すると、
5
14
と改行されて表示されていたね。

ロボち
ロボた

普通の「print( )」が改行していたのは、本当は表示したあと改行するように「end = "\n"」がついていたからなんだ!

print(5, end = "\n")という表記が正確で、この赤字部分が通常は省略されているんだよ!

ロボち
PRACTICE
# 文字列を\nを使って途中で改行させてみよう print("あいうえお\nかきくけこ") # 文字列の中で、"や'を表示させてみよう print("あいう\"えおかきく\'けこ")
POINT
  •   print文で出力するとき、改行しないようにするには「end = ""」をつける。
  •   「end = ""」で、出力後に表示する文字を指定できる。
  •   「エスケープシーケンス」を使えば、文字列の中で「"」「'」「改行」を使える。