順次処理と print
第1章で,プログラムとは「コンピュータにやってほしい手順を,順番に書き並べたもの」 だと学んだ.この章では,いよいよ実際に Python のプログラムを書いて動かしてみる. 題材にするのは,画面に文字や数値を表示するという,もっとも基本的で, これからずっと使い続ける仕事です.
この章で身につけてほしいことは,大きく2つです.1つは,画面に表示するための 命令 print の使い方.もう1つは,プログラムが書いた順に,上から下へ 1つずつ実行されるという,順次という考え方です. 変数や計算の本格的な話は次の章にゆずり,ここでは「表示する」と「順に実行される」の 2点に集中します.
画面に文字を表示する:print の基本
スマートフォンのメモ帳に「牛乳を買う」と書くように,コンピュータにも何かを 表示させたい場面は多いです.計算した結果やメッセージを,人が読める形で外に出すこと, これが第1章で学んだ出力です.Python で画面に文字を出すには, print(プリント)という関数を使います.関数とは, あらかじめ用意されている「○○をする命令のかたまり」のことです. print は「カッコの中身を画面に表示する」という仕事を引き受けてくれます.
まずは,あいさつを1つ表示するだけのプログラムを見てみましょう.
print("おはよう")これを実行すると,画面には次のように表示されます.
おはよう
たった1行で,コンピュータに「画面に文字を出す」という仕事をさせることができました. この print(...) という書き方は,これから何度も登場します. まずはこの形をしっかり覚えてください.
print の形を分解する
print("おはよう") は,いくつかの部品からできている(図2.1).
print 関数の形- 関数の名前
-
先頭の
printが,使いたい関数の名前です. 「表示しなさい」という命令の名札だと思えばよいでしょう. - カッコ
-
名前のすぐあとに,半角の丸カッコ
(\ )を書きます. 「ここからここまでが,関数に渡すものですよ」という囲みです. - 中身(引数)
-
カッコの中に,表示したいものを書きます.関数に渡すこの値を 引数(ひきすう)といいます.ここでは文字を渡しています.
- ダブルクォート
-
表示したい文字は,ダブルクォート
"\ "ではさむ. こうしてダブルクォートで囲んだ文字のかたまりを文字列といいます.
文字列をダブルクォートで囲むのには,理由があります.コンピュータにとって, おはよう という文字の並びが「そのまま表示する文字」なのか「何かの命令」 なのかは,見ただけでは区別がつきません.そこで,「これは文字です」という 目印としてダブルクォートで囲むのです.
カッコ (\ ) やダブルクォート "\ " は,すべて半角で 入力します.日本語入力(全角)の「()」や「”」を使うとエラーになります. 画面の上では似て見えるが,コンピュータにとってはまったく別の文字です. うまく動かないときは,まず半角になっているかを確認するとよいでしょう.
ダブルクォートは,文字列の始まりと終わりの両方に必要です. print("おはよう) のように閉じるほうを書き忘れると,コンピュータは 「文字列がどこで終わるのか分からない」と困ってしまい,エラーになります. カッコやクォートは「開いたら閉じる」をセットで意識するとよいでしょう.
シングルクォートでもよい
文字列は,ダブルクォート "\ " のかわりにシングルクォート '\ ' ではさんでもよいでしょう.print('おはよう') も同じ結果になります. ただし,本書ではダブルクォートに統一します.始めと終わりで 種類をそろえる必要があるので,print("おはよう') のように混ぜると エラーになる点にだけ注意したい.
print("...")はカッコの中の文字列を画面に表示する関数です.表示したい文字はダブルクォート
"\ "ではさむ.これを文字列といいます.カッコもダブルクォートも,すべて半角で,開いたら必ず閉じる.
文字列の表示を確かめる
知識
printの丸括弧の中へ文字列を渡すと画面へ表示できます。文字列の始まりと終わりの引用符は対にします。
print("おはよう")実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
おはよう
ヒントを見る
文字列の引用符と、命令の丸括弧を区別してください。画面へ現れる文字と、コードの構造だけを示す記号を分けます。
演習の解説
「おはよう」の4文字を表示して改行します。printという名前と半角括弧は命令の構造で、引用符の中は表示するデータです。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
___("おはよう")ヒントを見る
引用符と括弧の対を確認します。空欄は、括弧内の文字列を画面へ出す処理の名前です。
虫食いの解説
print("おはよう")空欄には print が入ります。「おはよう」の4文字を表示して改行します。printという名前と半角括弧は命令の構造で、引用符の中は表示するデータです。
数値を表示する
print で表示できるのは,文字だけではありません.テストの点数,気温, 買い物の値段といった数値も表示できます.数値を表示するときは, ダブルクォートで囲まない.たとえば,今日の気温が25度だとして, その数値をそのまま表示してみましょう.
print(25)
25
文字列のときと違い,25 はダブルクォートで囲んでいません. これは,25 を数値としてあつかう,という意味になります. 小数も同じように,囲まずに書けば数値として表示されます.
print(36.5)
36.5
囲む・囲まないで何が変わるのか
ここで,初学者がいちばん戸惑う点を整理しておく. ダブルクォートで囲むかどうかで,コンピュータの受け取り方が変わります.
print(25)-
25を整数という数値として あつかう.あとで足し算や引き算など,計算の対象にできます. print("25")-
"25"を,2 と 5 という文字が並んだ 文字列としてあつかう.見た目は同じ25だが, こちらは「数」ではなく「文字」です.
画面に出る見た目はどちらも 25 で,この段階では違いが分かりにくい. しかし,第3章で計算を学ぶと,この違いがはっきり効いてくる.いまは 「数として使いたいなら囲まない,文字として見せたいだけなら囲んでもよい」 とだけ覚えておけば十分です.
数値をダブルクォートで囲むくせがつくと,あとで計算しようとしたときに うまくいかなくなります.「気温」「点数」「値段」のようにあとで足したり 比べたりするかもしれない数は,囲まずに数値のまま書くようにするとよいでしょう.
数値はダブルクォートで囲まずに書く(例
print(25)).同じ
25でも,囲めば文字列,囲まなければ数値として扱われます.あとで計算に使う数は,数値(囲まない)にしておく.
整数と小数を表示する
知識
数値を表示するときは引用符を付けません。数値の小数点は半角のピリオドです。
print(78)
print(1.72)実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
78
1.72
ヒントを見る
整数と小数を、どちらの命令が先に表示するか追ってください。小数点も出力の一部として予想します。
演習の解説
78と1.72をそれぞれ別の行に表示します。数値を引用符で囲むと文字列になり、後で計算する際の扱いが変わります。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
___(78)
print(1.72)ヒントを見る
2つの数値は別々の表示命令へ渡されています。出力の行数を先に数えてください。
虫食いの解説
print(78)
print(1.72)空欄には print が入ります。78と1.72をそれぞれ別の行に表示します。数値を引用符で囲むと文字列になり、後で計算する際の扱いが変わります。
計算結果をそのまま表示する
print のカッコの中には,計算式を書くこともできます. その場合,コンピュータはまず計算をすませ,その答えを表示します. たとえば,リンゴ3個とミカン2個で合わせて何個か,を表示してみましょう.
print(3 + 2)
5
画面には 3 + 2 ではなく,計算の答えである 5 が表示されました. print は「カッコの中をまず計算し,その結果を表示する」という 順序で動いています.足し算の記号 + は,算数と同じ意味の 演算子です.
引き算や,もう少し複雑な式も同じように書けます.600円の買い物を1000円で 払ったときのおつりを計算して表示してみましょう.
print(1000 - 600)
400
掛け算には *(アスタリスク),割り算には /(スラッシュ)を使います. × や ÷ という記号は Python では使えないので注意したい. 1個120円のジュースを5本買ったときの合計を出してみましょう.
print(120 * 5)
600
掛け算は *,割り算は / で書きます.算数で使う ×(かける)や ÷(わる)の記号は,キーボードにあっても Python では計算記号として 使えません.* と / は半角で入力します.
計算式を囲むと計算されない
ここで1つ気をつけたいことがあります.print("3 + 2") のように, 式をダブルクォートで囲んでしまうと,それは文字列になり,計算されません.
print("3 + 2")3 + 2
囲んだことで 3 + 2 が「文字のかたまり」とみなされ,計算されずに そのまま表示されました.計算してほしいときは囲まない.この違いは, 前節の「数値」と「文字列」の話とまったく同じです.
割り算は小数で答えが出る
割り算 /(スラッシュ)は,算数と少しちがうところがあります. たとえば 10 を 4 で割ってみましょう.8人で40個のあめを 分けるような場面です.
print(10 / 4)
2.5
答えは 2.5 という小数で出た.Python の / は, わりきれてもわりきれなくても,つねに小数で答えを出します.たとえば 8 / 2 の答えも,4 ではなく 4.0 と表示されます. 「割り算をすると小数になることがある」と覚えておくとよいでしょう.
わり算の「商」と「あまり」
「あめが 10 個あります.3人で同じ数ずつ分けると,1人何個で,何個あまるか」. こういう整数のままの割り算には,専用の演算子が2つあります. //(スラッシュ2つ)は商(何個ずつ分けられるか), %(パーセント)はあまりを求めます.
print(10 // 3) # 商 print(10 % 3) # あまり
3 3 1
10 // 3 は「10 の中に 3 がいくつ入るか」で,答えは 3. 10 % 3 は「3 ずつ分けたあとに残る数」で,答えは 1 です. // と / は見た目が似ているが,// は答えが小数にならず, 整数のまま出る点がちがう.
同じ数を何回もかける:べき乗
**(アスタリスク2つ)はべき乗,つまり「同じ数を何回かける」かを 表す演算子です.たとえば,一辺が 4 の正方形の面積(4 の2乗)は 次のように書けます.
print(4 ** 2)
16
4 ** 2 は 4 を2回かける,つまり 4 * 4 と同じで 16 に なります.2 ** 3 なら 2 * 2 * 2 で 8 です.かけ算の * を 2つ続けて書くと意味が変わる,という点に注意してください.
演算子の記号は,1つか2つかで意味が変わります./(割り算・小数)と //(商・整数),*(掛け算)と **(べき乗)は, それぞれ別の演算子です.記号の個数まで正しく入力しましょう.
printはカッコの中の式を先に計算し,その結果を表示します.演算子は
+(足す)-(引く)*(掛ける)/(割る).すべて半角./の答えは小数になります.整数のままの商は//,あまりは%,べき乗は**を使います.式をダブルクォートで囲むと,計算されず文字列としてそのまま表示されます.
括弧と計算順を比べる
知識
printへ渡す式は、計算した結果になってから表示されます。括弧を使うと計算順を指定できます。
print(2 + 3 * 4)
print((2 + 3) * 4)実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
14
20
ヒントを見る
内側の括弧がない式と、ある式を別々に計算してください。計算結果の表示順はコードの行の順番です。
演習の解説
1行目は3×4を先に計算して14、2行目は2+3を先に計算して20です。内側の丸括弧が計算順を変えます。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
print(2 + 3 ___ 4)
print((2 + 3) * 4)ヒントを見る
1行目と2行目では、内側の括弧の有無が違います。途中の計算を書いてみてください。
虫食いの解説
print(2 + 3 * 4)
print((2 + 3) * 4)空欄には * が入ります。1行目は3×4を先に計算して14、2行目は2+3を先に計算して20です。内側の丸括弧が計算順を変えます。
文字と数値を並べて表示する
「今日の気温は25度です」のように,文字と数値を混ぜて1行に表示したい 場面は多いです.print では,カッコの中に表示したいものをカンマ , で区切っていくつでも並べることができます.
print("今日の気温は", 25, "度です")今日の気温は 25 度です
カンマで区切った3つのもの,"今日の気温は"(文字列)・25(数値)・ "度です"(文字列)が,左から順に1行に並んで表示されました. このように,文字列と数値を自由に混ぜて並べられるのが print の便利な点です.
カンマで区切ると自動でスペースが入る
実行結果をよく見ると,並べたもののあいだに半角スペースが1つ入っています. print は,カンマで区切られたものを表示するとき,区切りとして 自動的にすき間(半角スペース)を入れてくれます.「今日の気温は」と「25」が くっつかず読みやすいのは,このためです.
買い物メモのように,品物と個数を並べて表示することもできます.
print("りんご", 3, "個")りんご 3 個
カンマ , も半角で書きます.全角の「,」を使うとエラーになります. 本文の読点は全角の「,」を使うが,プログラムの中では半角のカンマである, という区別に慣れてください.
カンマで区切る方法と,足し算の + を混同しないようにしたい. print("点数は", 80) は文字列と数値を並べて表示するが, print("点数は" + 80) はエラーになります.文字列と数値は + で つなぐことができないからです.混ぜて表示したいときは,カンマを使うとよいでしょう.
文字列どうしは + でつなげる
文字列と数値を + でつなぐことはできないが,文字列どうしなら + でつなぐことができます.これを連結といいます. 「お」と「はよう」をつないで1つの文字列にしてみましょう.
print("お" + "はよう")おはよう
2つの文字列が,すき間なく1つにつながって表示されました.ここがカンマとの大きな ちがいです.カンマで区切ると区切りに半角スペースが入るが,+ の連結では すき間が入らずそのままくっつく.並べてくらべてみましょう.
print("おはよう", "ございます") # カンマで区切る
print("おはよう" + "ございます") # プラスで連結するおはよう ございます おはようございます
1行目はカンマ区切りなので「おはよう」と「ございます」のあいだに半角スペースが 入ります.2行目は + の連結なので,すき間なくつながる. すき間をあけたいならカンマ,つなげたいなら +と使い分けるとよいでしょう.
+ で連結できるのは文字列どうしだけです. "年" + 3 のように文字列と数値を + でつなごうとするとエラーになります. 数値も混ぜたいときは,+ ではなくカンマで区切る方法を使います.
カッコの中をカンマ
,で区切ると,複数のものを1行に並べて表示できます.文字列と数値を混ぜて並べてよいでしょう.区切りには自動で半角スペースが入ります.
カンマは半角.文字列と数値を
+でつなぐことはできません.文字列どうしは
+で連結できます.こちらはすき間が入りません.
文字と数値を同じ行に並べる
知識
printの引数をカンマで区切ると、文字と数値を同じ行へ表示できます。通常、引数の間には半角空白が1個入ります。
print("点数", 78)実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
点数 78
ヒントを見る
1つの命令へ文字列と数値を渡しています。2つの引数の間に何が入るか、末尾に改行があるかを考えてください。
演習の解説
表示は「点数 78」です。文字列と数値をカンマで渡すため、数値を文字列へ変換する必要はありません。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
print("点数", ___)ヒントを見る
カンマで分かれた引数の間へ入る文字を確認します。空欄は引用符のない数値です。
虫食いの解説
print("点数", 78)空欄には 78 が入ります。表示は「点数 78」です。文字列と数値をカンマで渡すため、数値を文字列へ変換する必要はありません。
コメント:プログラムにメモを書く
プログラムが長くなってくると,「この行は何をしているのか」が,書いた本人でも あとで分からなくなることがあります.そこで役立つのがコメントです. コメントとは,プログラムの中に書いておく,人間向けのメモのことで, コンピュータは無視して実行しない.
Python では,行の中に #(シャープ,ハッシュ)を書くと, そこから行の終わりまでがコメントになります.
# これはコメント。実行されない
print("こんにちは") # ここから右もコメントこんにちは
1行目はまるごとコメントなので,何も実行されません.2行目は print(...) が 実行されたあと,# から右の部分がコメントとして無視されています. だから画面には こんにちは だけが表示されました.
コメントは何のためにあるのか
コメントは,主に次のような場面で役立つ.
その行が何をしているかを,あとで読む人(未来の自分を含む)に 説明します.
一時的にある命令を実行させたくないとき,行の先頭に
#を つけて「コメントにする」ことで,その行だけ止められます.
本書のコード例でも,要所に日本語のコメントをつけて説明しています. 自分でプログラムを書くときも,「あとで読んで分かるように」短いメモを 残すくせをつけるとよいでしょう.
行の先頭に # をつけて止める
2つめの使い方を,実際に試してみましょう.3つの print のうち,真ん中の行の 先頭に # をつけて,その行だけをコメントにして止める.
print("1番目")
# print("2番目")
print("3番目")1番目 3番目
真ん中の print("2番目") は,先頭に # がついたことでコメントに なり,実行されませんでした.そのため画面には 1番目 と 3番目 だけが 表示されています.このように,命令を消さずに一時的に止められるのが, コメントの便利なところです.# を外せば,また実行されるようになります.
# は半角で書きます.全角の「#」はコメントとして働きません. また,# はその行だけを無視します.次の行は,ふつうに実行されます.
#から行末までがコメントで,実行されない人間向けのメモです.命令の説明や,一時的に行を止めるのに使います.
#は半角.効くのはその行だけ.
コメントと実行する文を区別する
知識
半角の#から行末まではコメントです。説明を残せますが、コメントは実行結果へ出ません。
# 合計点を表示します
print(80 + 75)実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
155
ヒントを見る
コメントは命令として実行されません。メモの行を出力へ含めず、計算する行だけを追ってください。
演習の解説
コメントの日本語は表示されず、計算結果155だけが表示されます。#を文字列の外に書くことがコメントの条件です。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
# 合計点を表示します
print(80 ___ 75)ヒントを見る
メモの行は計算にも表示にも参加しません。実際に実行される式だけを追ってください。
虫食いの解説
# 合計点を表示します
print(80 + 75)空欄には + が入ります。コメントの日本語は表示されず、計算結果155だけが表示されます。#を文字列の外に書くことがコメントの条件です。
命令は書いた順に実行される(順次)
ここまで,1行だけのプログラムを見てきた.プログラムは,命令を何行でも 並べて書けます.そして,並べた命令は上から下へ,書いた順に1つずつ 実行されます.これが,第1章で出てきた順次である (図2.2).
3つのあいさつを,順に表示するプログラムを書いてみましょう.
print("おはよう")
print("こんにちは")
print("こんばんは")おはよう こんにちは こんばんは
1行目の print("おはよう") がまず実行され,画面に おはよう が出ます. 次に2行目,最後に3行目が実行されます.print は1回ごとに改行するので, 3つのあいさつは縦に1行ずつ並ぶ.このように,書いた順と表示される順 がきれいに対応している点に注目してください.
順番を入れかえると,結果も変わる
順次の大切さを確かめるために,わざと順番を入れかえてみましょう. 先ほどの3行のうち,1行目と3行目を入れかえる.
print("こんばんは")
print("こんにちは")
print("おはよう")こんばんは こんにちは おはよう
命令そのものは1つも変えていないのに,並べる順番を変えただけで, 表示される順番が変わった.第1章の料理のレシピと同じで, 手順の順番そのものが結果を決めるのです.プログラムを書くときは, 「どの命令を,どの順で実行させたいか」をいつも意識する必要があります.
「命令を全部書いたのに思った表示にならない」というとき,命令の内容は 合っていても,順番が違っていることがよくあります.うまくいかないときは, 上から1行ずつ「いま何が起きるか」を声に出して追ってみるとよいでしょう.
手順の順番が結果を決める
あいさつだけでなく,買い物の場面でも順番は大切です.「レジで合計を見て, そのあとおつりを受け取る」という流れを,そのまま print で表してみましょう.
print("合計", 600, "円")
print("おつり", 1000 - 600, "円")合計 600 円 おつり 400 円
もし2つの print を入れかえると,「おつり」が先,「合計」が あとに表示され,レジの流れと合わなくなります.
print("おつり", 1000 - 600, "円")
print("合計", 600, "円")おつり 400 円 合計 600 円
計算の中身はどちらも同じなのに,print を並べた順番のとおりに表示されます. どの順で見せたいかを考えて命令を並べることが,読みやすい出力につながる.
字下げ(行頭のすき間)は,半角スペースで入れます.日本語入力の全角スペースが 行頭にまぎれこむと,IndentationError(字下げのエラー)になります.画面上は どちらも同じすき間に見えるが,コンピュータには別物です.行頭にスペースが あるはずのない行で,原因が分からないエラーが出たら,全角スペースを疑うとよいでしょう.
命令を複数並べると,上から下へ書いた順に1つずつ実行される(順次).
printは1回ごとに改行するので,結果は縦に並ぶ.命令の順番が変われば,結果も変わります.順番そのものが大切です.
3行の表示順を追う
知識
順次実行では上の命令から下へ進みます。3つの表示があるときは、最後の行も含めて表示順を確認します。
print("おはよう")
print("こんにちは")
print("こんばんは")実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
おはよう
こんにちは
こんばんは
ヒントを見る
各表示命令の文字列を、上から順に書き出してください。各回で改行するため、次の文字列は次の行へ進みます。
演習の解説
おはよう、こんにちは、こんばんはの順に3行を表示します。3つのprintを1つずつ実行するため、それぞれの末尾に改行が入ります。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
___("おはよう")
print("こんにちは")
print("こんばんは")ヒントを見る
同じ表示処理が3回あります。空欄の行も含め、上から何が表示されるかを記録します。
虫食いの解説
print("おはよう")
print("こんにちは")
print("こんばんは")空欄には print が入ります。おはよう、こんにちは、こんばんはの順に3行を表示します。3つのprintを1つずつ実行するため、それぞれの末尾に改行が入ります。
入力なし→処理→出力:最小のプログラム
最後に,これまで学んだことを使って,少しまとまったプログラムを書いてみましょう. 題材は,3科目のテストの合計点を表示する,というものです. 第1章で学んだ「入力→処理→出力」のうち,ここではまだ入力(キーボードから 打ち込む)は学んでいないので,点数はプログラムの中に直接書くことにします. つまり「入力なし→処理→出力」という最小の形です.
# 3科目の合計点を表示する
print("テストの結果") # 見出しを表示
print("国語と数学と英語の合計")
print(80 + 75 + 90) # 3科目を足した結果を表示テストの結果 国語と数学と英語の合計 245
このプログラムを,上から順に追ってみましょう.
- 1行目
-
#で始まるコメント.実行されず,何も表示されません. 「このプログラムが何をするか」のメモです. - 2行目
-
print("テストの結果")で,見出しの文字列を表示します. - 3行目
-
print("国語と数学と英語の合計")で,説明の文字列を表示します. - 4行目
-
print(80 + 75 + 90)で,まず80 + 75 + 90を計算し, その結果245を表示する(処理と出力).
ここでの処理は 80 + 75 + 90 という足し算,出力は それぞれの print による表示です.入力をまだ使っていなくても, 立派に「処理して,結果を出す」プログラムになっています.
文字と数値を1行にまとめる
合計点を「合計は245点です」のように,1行で読みやすく表示することもできます. 前の節で学んだ,カンマで区切る方法を使います.
# 合計点を1行で表示する
print("合計は", 80 + 75 + 90, "点です")合計は 245 点です
カッコの中で,文字列・計算式・文字列をカンマで区切って並べています. 真ん中の 80 + 75 + 90 は先に計算されて 245 になり, その前後に文字列がそえられて1行に表示されました. このように,print 1つでも,計算と表示を組み合わせて 分かりやすい出力を作ることができます.
このプログラムでは,点数を 80・75・90 と 直接書いている.そのため,別の点数を表示したいときは,書いた数を 書きかえる必要があります.毎回プログラムを書きかえずに,あとから自由に値を あつかえるようにする仕組みが変数です.これは次の第3章で学ぶ.
複数の
printを順に並べれば,まとまった出力のプログラムになります.入力を使わなくても「処理(計算)→出力(表示)」のプログラムは作れます.
カンマ区切りを使えば,計算結果と文字を1行にまとめて表示できます.
入力なしで代金を計算する
知識
キーボード入力がなくても、コードに書いた値を計算して出力するプログラムを作れます。
print(120 * 3)実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
360
ヒントを見る
キーボードから入力を待つ命令はありません。コードに用意された2つの数を使って、表示前の計算を確かめます。
演習の解説
120を3倍して360を表示します。この例は入力待ちになりません。実行するだけで処理と出力まで進みます。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
print(120 ___ 3)ヒントを見る
単価と個数がコード内に用意されています。入力待ちをせず、その2つの値をどう組み合わせるか考えます。
虫食いの解説
print(120 * 3)空欄には * が入ります。120を3倍して360を表示します。この例は入力待ちになりません。実行するだけで処理と出力まで進みます。
この章のまとめ
この章では,画面に表示する関数 print と,命令が書いた順に実行される 順次を学んだ.要点を整理しておく.
print(...)はカッコの中身を画面に表示します.文字列は ダブルクォート"\ "で囲み,数値は囲みません.カッコの中の式は先に計算され,その結果が表示されます. 演算子
+ - * /はすべて半角.カンマ
,で区切れば,文字列と数値を混ぜて1行に並べられます.#から行末まではコメントで,実行されない人間向けのメモです.命令は上から下へ書いた順に1つずつ実行される(順次). 順番が変われば結果も変わります.
次の第3章では,値に名前をつけて何度でも使い回せるようにする 変数を学ぶ.変数を使えるようになると,毎回数を書きかえなくても, もっと柔軟なプログラムが書けるようになります.
計算してから説明を添える
知識
文字列と数値を区別し、式が評価されてから表示されることをまとめて確認します。
print("合計", 80 + 75)実行前に、表示される行数と各行の値を予想してください。上のコードを編集欄へ開き、変更せずに実行します。その後「出力例」を開き、予想と実行結果を比べてください。入力操作はありません。各表示行の末尾には改行があります。
出力例
合計 155
ヒントを見る
文字列の後に渡す式を先に計算してください。その結果と説明の文字列が、何で区切られて表示されるかを予想します。
演習の解説
式80+75が155になり、文字列「合計」と半角空白で区切られて同じ行へ表示されます。
___の1か所だけを補い、上と同じ結果が出るコードにしてください。他の行は変えません。
print("合計", 80 ___ 75)ヒントを見る
カンマの後の式を先に計算します。説明の文字列と、その計算結果の間の空白にも注目してください。
虫食いの解説
print("合計", 80 + 75)空欄には + が入ります。式80+75が155になり、文字列「合計」と半角空白で区切られて同じ行へ表示されます。
図で理解する
練習して確かめる
章末演習(10問)
ここには解答を載せていません。
- 章末演習章末演習 1
コメントで計算の目的を説明し、3種類のチケットの料金を順番に表示してください。
入力
キーボード入力なし。大人1200円を2人、学生800円を3人、小学生500円を1人とします。
処理条件
- 各計算の直前に、対象と計算の目的を説明する
#コメントを1行ずつ書きます。 print()を3回使い、料金の式を渡します。変数やsum()は使いません。- 計算結果を直接書かず、掛け算を使います。
出力
大人、学生、小学生の順に料金の数値だけを各1行、合計3行で表示します。コメント、単位、空行は表示しません。
実行例
2400 2400 500ヒントを見る
計算する人の区分を先に整理します。コメントは実行する命令と区別し、数値の出力に混ざらないことを確認してください。
- 各計算の直前に、対象と計算の目的を説明する
- 章末演習章末演習 2
上から順に実行される性質を使い、数値の表示と文字列の表示を交互に並べてください。
入力
キーボード入力なし。表示する数値は半角の整数2026と小数3.5です。
処理条件
print()を4回使います。- 数値は引用符で囲まず、説明の文字列は引用符で囲みます。
- 変数、計算式、型変換、改行文字
\nは使いません。
出力
1行目
年、2行目2026、3行目気温、4行目3.5とします。日本語は全角、数字と小数点は半角です。空白・空行・単位を加えません。実行例
年 2026 気温 3.5ヒントを見る
数値そのものと、その数値を説明する言葉を区別してください。4つの命令を表示したい順番に並べます。
- 章末演習章末演習 3
数字を並べた文字列の連結と、数値の足し算の違いを確かめてください。
入力
キーボード入力なし。使う数値は12と3、使う文字列は
"12"と"3"です。処理条件
- 1行目は2つの文字列を
+で連結します。 - 2行目は2つの数値を
+で計算します。 print()を2回使います。結果の文字列や数値を直接書かず、変数、型変換、カンマによる複数値の表示は使いません。
出力
文字列の連結結果、数値の計算結果の順に半角数字だけを各1行で表示します。合計2行で、空白・見出し・空行は加えません。
実行例
123 15ヒントを見る
同じ + でも、左右が文字列なのか数値なのかを確かめます。引用符の有無だけで結果の意味が変わります。
- 1行目は2つの文字列を
- 章末演習章末演習 4
負の数の整数除算で、商と余りの関係を確かめてください。
入力
キーボード入力なし。割られる数は -7、割る数は3です。
処理条件
print()を3回使います。1行目は-7 // 3、2行目は-7 % 3の式です。- 3行目は「整数の商 × 3 + 余り」の式を、同じ
//と%を使って書きます。 - 結果の数値を直接書かず、変数、
int()、round()は使いません。 //は小数部分を単に削る操作ではなく、商を小さい側の整数へ丸めます。
出力
整数の商、余り、元の数に戻した結果の順に、各1行で半角整数を表示します。負号は半角
-です。空白・見出し・空行は加えません。実行例
-3 2 -7ヒントを見る
商が負のとき、0に近い整数と小さい側の整数を区別します。最後に「割られる数 = 商 × 割る数 + 余り」の関係で確認してください。
- 章末演習章末演習 5
国語80点・数学75点・英語90点の3教科の合計点を,説明文といっしょに表示するプログラムを書いてください。
入力
入力なし(キーボードからの入力は行わない)。
処理条件
print()を2回使います。- 2行目は1つの
print()の中で,文字列合計は,合計を求める式80 + 75 + 90,文字列点ですの3つをカンマ,で区切って並べる。 - 合計の数値を直接書きません。
- 文字列の連結
+,str(),f文字列,sum(),sep・end引数は使いません。 - 外部モジュールは使いません。
出力
- 1行目に
3教科の合計を計算しますと表示する(3は半角数字,それ以外は全角文字)。 - 2行目は
合計は,半角スペース1つ,合計点(半角数字),半角スペース1つ,点ですの順に表示します。 - 合計2行とし,空行は表示しません。
実行例
3教科の合計を計算します 合計は 245 点ですヒントを見る
まず2行目を「文字列」「式」「文字列」の3つの部品に分けます。次に,カンマで区切った部品の間に何が自動で入るかを考え,出力条件の空白と一致するか確かめてください。
- 章末演習章末演習 6
今日の献立を表示するプログラムを,コメントを使って書いてください。昼のメニューは中止になったため,その行を削除せずに実行されないようにします。
入力
入力なし(キーボードからの入力は行わない)。
処理条件
- 1行目に,プログラムの目的を説明するコメント(
#で始まる行)を書きます。 献立表,朝: パン,昼: ラーメン,夜: カレーをこの順に表示するprint()の行を4行書きます。そのうえで,昼の行だけ行頭に#を付けて実行されないようにします。- 昼の行は削除しません。
- 外部モジュールは使いません。
出力
- 1行目に
献立表,2行目に朝: パン,3行目に夜: カレーを表示します。 朝と夜の後のコロン:は半角とし,その直後に半角スペースを1つ入れます。それ以外の文字は全角とします。- 昼のメニューの行,コメントの内容,空行は表示しません。
実行例
献立表 朝: パン 夜: カレーヒントを見る
まず4行すべてを表示するプログラムを書いて実行し,次にどの行を実行させないかを決めます。# を付けた行が実行結果に現れないことを確かめてください。
- 1行目に,プログラムの目的を説明するコメント(
- 章末演習章末演習 7
10 を 3 で割ったときの「整数の商」「余り」「小数までの商」を順に表示するプログラムを書いてください。3種類の割り算の演算子の違いを確かめる課題です。
入力
入力なし(キーボードからの入力は行わない)。
処理条件
print()を3回使います。- 1行目は
//,2行目は%,3行目は/を使った式をprint()に渡して計算させる。 - 計算結果の数値を直接書きません。
round()などで結果を加工しません。 - 外部モジュールは使いません。
出力
- 1行目に整数の商,2行目に余り,3行目に小数までの商を,半角数字で1行に1つずつ表示します。
- 3行目は,Python が表示する桁数のまま(丸めずに)表示します。
- 合計3行とし,式・見出し・空行は表示しません。
実行例
3 1 3.3333333333333335ヒントを見る
まず,整数の商・余り・小数までの商のそれぞれに対応する演算子を確認します。3行目の末尾の桁が手計算と違って見えるのは,コンピュータが小数を近似して扱うためです。
- 章末演習章末演習 8
余りを求める演算子
%と,べき乗の演算子**を使い,次の3つの値を順に表示するプログラムを書いてください。- 14 を 3 で割った余り
- 20 を 4 で割った余り(割り切れるかどうかの確認)
- 2 の 4 乗
入力
入力なし(キーボードからの入力は行わない)。
処理条件
print()を3回使います。- 1・2行目は
%,3行目は**を使った式をprint()に渡して計算させる。 - 計算結果の数値を直接書きません。
2 * 2 * 2 * 2のような掛け算の繰り返しやpow()は使いません。 - 外部モジュールは使いません。
出力
- 上の1〜3の順に,計算結果の整数を半角数字で1行に1つずつ表示します。
- 割り切れる場合,余りは
0と表示されます。 - 合計3行とし,式・見出し・空行は表示しません。
実行例
2 0 16ヒントを見る
まず,それぞれの計算が「余り」と「べき乗」のどちらなのかを見分けます。次に,べき乗の式では演算子の左右のどちらが底で,どちらが指数になるかを確認してください。
- 章末演習章末演習 9
文字列の連結演算子
+を使い,短い文字列をつなげて3行の文字列を作り,表示するプログラムを書いてください。入力
入力なし(キーボードからの入力は行わない)。
処理条件
print()を3回使います。- 1行目は文字列
Hello,とWorld!,2行目はPythonとPython,3行目はABCとABCを,それぞれ+でつないで表示します。 - 完成した文字列を1つの文字列として直接書きません。カンマ
,で並べる書き方,文字列の*,f文字列,sep・end引数は使いません。 - 外部モジュールは使いません。
出力
- 半角英字と半角記号で,1行目に
Hello,World!,2行目にPythonPython,3行目にABCABCを表示します。 - 大文字・小文字は実行例のとおりとし,つなぎ目にスペースを入れません。
- 合計3行とし,見出しや空行は表示しません。
実行例
Hello,World! PythonPython ABCABCヒントを見る
まず各行を,処理条件で指定された2つの部品に分けます。次に,+ でつないだときにつなぎ目に空白が入るかどうかを,実行して確かめてください。
- 章末演習章末演習 10
文字列を
+で連結した場合と,カンマ,で区切って並べた場合とで,表示がどう違うかを比べるプログラムを書いてください。入力
入力なし(キーボードからの入力は行わない)。
処理条件
print()を2回使い,どちらにも文字列りんごとジュースの2つを渡す。- 1行目は
+で連結し,2行目はカンマ,で区切って並べる。 - 空白を含む文字列を自分で書き足しません。f文字列や,
sep・end引数は使いません。 - 外部モジュールは使いません。
出力
- 1行目は
りんごとジュースをすき間なくつないで表示します。 - 2行目は
りんご,半角スペース1つ,ジュースの順に表示します。 - 文字は全角とし,合計2行とします。見出しや空行は表示しません。
実行例
りんごジュース りんご ジュースヒントを見る
同じ2つの文字列を使い,つなぎ方だけを変えます。どちらの書き方で半角スペースが自動で入るかを考えてから,実行結果と出力条件を見比べてください。