実習の前に

(1) 変数

変数はプログラムの中でデータ(数値や文字列など)を一時的に保存しておく箱のようなものです。変数を使うことによってプログラムを読みやすくすることができたり、いろいろなメリットがあります。

変数への代入

変数に値を代入するには、=を用います。次の例は、1行目で変数aに500を代入し、2行目でaの内容を画面出力しています。画面出力をするときは、print(...)のカッコの中に出力する内容を指定します。


        a = 500   # aに500を代入
        print(a)  # aを出力
      
500

Google Colaboratoryでは簡単な計算はprint(...)なしに出力しますが、通常の環境ではprint関数を用いて出力します。

変数の計算

数値の入った変数に計算することもできます。


        a = 123     # aに123を代入
        b = a * 4   # aに4をかけてbに代入
        print(b)    # bを出力
      
492

変数の計算と文字列の出力

print関数のカッコ内で、文字列と変数をカンマ,でつなぐことで文字列と変数の値を出力することができます。

次の例では変数abという2つの変数を区別するように出力します。「aの値:」や「bの値:」のような文字列はダブルクォート"で囲みます。


        a = 5
        b = 8
        print("aの値:", a)
        print("bの値:", b)
      

        aの値: 5
        bの値: 8
      

変数の上書き

一度代入された変数に別の値を代入すると、それ以降は新しく代入された値が入った状態になります。


        a = 3   # aに3を代入する
        a = 5   # aに5を代入する(このあと、aの値は5に更新される)

        print("a =", a)
      
a = 5

変数を使った変数の上書き

次のように、a = a + 5と書くと、その行の時点で入っている値を用いて、変数の値を更新します。


        a = 3       # aに3を代入する
        a = a + 5   # aの値(3)に5を加えて代入する

        print("a =", a)
      
a = 8

実行の順序

プログラムに書かれた内容は、上の行から順に実行されます。


        a = 3       # aに3を代入する
        a = a + 4   # aの値(3)に4を加えて、aに代入する
        a = a * 5   # aの値(7)に5をかけて、aに代入する

        print("a =", a)
      
a = 35

変数の入れ換え†

変数aの値と変数bの値を入れ換えるときは、変数aの値を別の変数tに代入しておき、変数aに変数bの値を代入し、変数bに変数tの値を代入します。このとき、一時的に値を代入しておく変数には、「一時的」という意味のtemporaryを略してttmptempといった変数名で使われることが多いです。


        a = 3
        b = 5

        t = a   # aの値(3)が変数tに代入される
        a = b   # bの値(5)がaに代入される
        b = t   # 変数tに代入されていたaの元の値(3)がbに代入される

        print("a =", a)
        print("b =", b)
      

        a = 5
        b = 3
      

変数tを用いないと、次のようになり、交換できないので注意してください。


        a = 3
        b = 5

        a = b   # 最初にbの値(5)がaに代入される。この時点でaもbも5になる
        b = a   # ここでaの値(すでに5になっている)がbに代入される。これによってbも5になる

        print("a =", a)
        print("b =", b)
      

        a = 5
        b = 5
      

(2) 変数に使える文字

変数の計算

変数名は、abといったアルファベット1文字だけではなく、複数の文字(文字列)で書けます。

次の例は、身長と体重からBMIの値を求めるプログラムです。身長を変数height,体重を変数weightで指定し、heightweightの値から計算したBMIの値を変数bmiに代入しています。

※BMI(Body Mass Index)はボディマス指数と呼ばれ、体重[g]を身長[m]の2乗で割って求めます。成人ではBMIが国際的な指標として用いられ、日本では適正値は18.5〜25とされています。


        height = 169.0  # height:身長[cm]
        weight = 56.0   # weight:体重[kg]

        # BMI = 体重[kg] ÷ 身長[m]の2乗
        bmi = weight / (height/100.0)**2
        
        print(bmi) # BMIを出力
      
19.607156612163443 

変数に使える文字

変数に使える文字は次の種類です。
・アルファベット(小文字推奨)
・数字(2文字目以降)
・アンダースコア(_
例)apple, banana, dog01, dog02, ...

変数の命名規則

2語以上の英単語を使用して変数名をつけるときは、アンダースコア(_)で区切ります(snake_caseといいます)。
例)user_name, total_price, math_score, total_score, ...

変数に使えない文字

次の語は構文を構成するため、変数に使用することはできません。このようなものを予約語といいます。
False, None, True, and, as, assert, async, await, break, class, continue, def, del, elif, else, except, finally, for, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield

また、アルファベットの大文字は変数以外の用途で使うことが多いので使わない方がいいでしょう(のちほど出てきます)。

(3) 変数の型

変数の型

説明 記述例 備考
str 文字列
(文字や文字列)
str = "abc"
str = "2"
文字列はダブルクォート("...")で囲む。
"2"は文字としての「2」を表す。
int 整数
(小数点を含まない数値)
num = 6
num = 123456
num = -765432
float 浮動小数点数
(小数点を含む実数値)
num = 3.14
num = 3.0
整数値をfloat型として代入するときは、「3.0」のように代入。
bool 真偽値
TrueFalseの2種類の値)
flg = True
flg = False

変数の型が変化する場合†

Pythonでは計算の結果によって変数の型が変化する場合があります。すぐに必要な知識ではないので最初は読み流してください。


        a = 1 # 変数aがはじめて使われ、int型の1が代入される
        print(a)

        a = a / 5 # 計算結果(0.2)が小数になるので、aはfloat型になる
        print(a)

        a = a * 5 # 計算結果(1.0)は整数で表せるが、aの型はfloatのまま
        print(a)
      

        1     # int型
        0.2   # float型
        1.0   # float型
      

(4) 文字列の扱い

文字列どうしの結合

文字列どうしを結合するときは、文字列どうしを+でつなげます。


        junior_highschool = "海城" + "中学" # 文字列どうしを足すと結合される
        print(junior_highschool)
      
海城中学

文字列の変数どうしの結合


        junior_highschool = "海城" + "中学"
        school_name = junior_highschool + "高等学校"
        print(school_name)
      
海城中学高等学校

文字列と数値の変数どうしを結合する場合†

数値は、str(...)のカッコの中に入れて文字列に変換してから、他の文字列と結合します。


        grade = 4
        school_name = "海城中学高等学校"
        school_name_grade = school_name + str(grade) +"年" # 数値は文字列に変換してから結合
        print(school_name_grade)
      
海城中学高等学校4年

str(...)に入れて文字列に変換しなかった場合、TypeErrorとなります。

改行文字

改行するときは改行文字\nを入れます。

\(バックスラッシュ)は ⌥option+¥を押しながら)で入力します。


        lyrics = "朝に仰ぐ芙蓉峰\n玲瓏千古かげ高し\n夕に見やる太平洋\n渺茫万里はてもなし"
print(lyrics)

        朝に仰ぐ芙蓉峰
        玲瓏千古かげ高し
        夕に見やる太平洋
        渺茫万里はてもなし
      

文字列の扱いの例

次の例では、最初に"*"を変数sに代入します。2〜4行目でs = s + sを3回繰り返し、5行目でsを出力します。どのような文字が出力されるか考えてみましょう。


        s = "*"
        s = s + s
        s = s + s
        s = s + s
        print(s)
      

(5) print関数の使い方

print関数の基本

print関数とは

print(...)はPythonの関数というものです。他にも様々な関数がありますが、print関数はカッコ内に指定した内容を画面に表示します。Google Colaboratoryでは簡単な計算はprint関数なしに出力しますが、通常の環境ではprint関数を用いて出力します。他の関数については必要になったときに扱います。

1行ずつ表示

変数ad"apple", "banana", "cherry", "drian"をそれぞれ代入し、変数adを1行ずつ出力します。


        a = "apple"
        b = "banana"
        c = "cherry"
        d = "drian"

        print(a)
        print(b)
        print(c)
        print(d)
      

        apple
        banana
        cherry
        drian
      

同じ行に複数の変数を表示

print関数のカッコ内に変数adカンマ,で区切ると、変数adの値を同じ行に出力します。このとき、各変数のあいだは半角スペース1つ分で区切られます。

print(a, b, c, d)
apple banana cherry drian

print関数にendオプション(end="...")を入れると、任意の文字を末尾に付加して出力します。デフォルト値(endオプションをつけない場合)は、\n(改行文字)です。

\(バックスラッシュ)は ⌥option+¥を押しながら)で入力します。

末尾文字

end="."を指定すると、各変数を並べた後にドット.をつけて出力します。

print(a, b, c, d, end=".")
apple banana cherry drian.

改行しない場合

print関数はデフォルトで改行が入りますが、end=""と指定することで、改行を入れずに出力します。


        print(a, end="")
        print(b, end="")
        print(c, end="")
        print(d, end="")
      
applebananacherrydrian

end=" "と指定すると、改行されずに、文字列の後に半角スペース1つを入れて出力されます。


        print(a, end=" ")
        print(b, end=" ")
        print(c, end=" ")
        print(d, end=" ")
      
apple banana cherry drian

end=", "と指定すると、改行されずに、半角カンマのあとに半角スペース1つを入れて出力されます。


        print(a, end=", ")
        print(b, end=", ")
        print(c, end=", ")
        print(d, end=", ")
      
apple, banana, cherry, drian,

print()

print()のみ(カッコ内に何も入れない)記述した場合には、endオプションのデフォルト値である改行文字のみが出力されます。


        print(a, end="")
        print()
        print(b, end="")
      

        apple
        banana
      

print関数にsepオプションsep="...")を入れると、任意の区切り文字で変数を区切って出力します。デフォルト値(sepオプションをつけない場合)は、半角スペース1つ分です。

カンマ区切り

sep=", "と指定すると、各変数のあいだを半角カンマ,半角スペース1つで区切ります。

print(a, b, c, d, sep=", ")
apple, banana, cherry, drian

区切りなし

sep=""を指定すると、区切らずに出力します。

print(a, b, c, d, sep="")
applebananacherrydrian

タブ文字区切り

sep="\t"と指定すると、タブ文字\tで区切られます。タブ文字とは、普通のスペースとは異なり、次の区切りの位置まで空白を埋めます。つまり、次のように指定することで、2つめの変数を開始する位置を揃えることができます。Colaboratoryでは半角8文字で区切られるので、8文字以上の文字列と8文字未満の文字列が混在するときには注意が必要です。

\(バックスラッシュ)は ⌥option+¥を押しながら)で入力します。


        print(a, b, sep="\t")
        print(c, d, sep="\t")
      

        apple	banana
        cherry	drian
      

改行区切り

sep="\n"を指定すると、改行文字\nで区切られるので、各変数をそれぞれ1行ずつ表示します。


        print(a, b, c, d, sep="\n")
      

        apple
        banana
        cherry
        drian