7-1. input関数による標準入力
Pythonでは、input関数を用いることでキーボードからのキー入力を文字列として取り込むことができます。数値を入力しても文字列として入力されている点に注意してください。PyScriptでinput関数を使用すると、入力ウィンドウが開くのでそこからキー入力できます。
※input("*****")のように*****部分に入力した文字列は入力受付時に表示されます。ただし、本ページ記述時の2023.11.03時点において、本ページで利用しているPyScriptではエラーになりますので注意してください。
a=input()
print(a)
print(type(a))
▼プログラミングセル7-1.
a=input("入力してください:") #2023.11.03時においてPyScriptではエラー
print(a)
7-2. input関数の入力値による算術演算
input関数で取り込んだ値を算術演算する場合は、int型やfloat型に変換する必要があります。
a=int(input())
print("入力値の3乗;",a**3)
▼プログラミングセル7-2.
a=float(input())
print("入力値の3乗;",a**3)
7-3. input関数における複数値の取得
input関数で取り込んだ文字列オブジェクトでメソッド関数splitを使用することで複数の値を取得することができます。split関数は、半角スペースで文字列を分割します。split(",")のように引数を指定することで分割する区切り文字を指定することもできます。取得した複数の値は、個別に変数に代入したり、リストに格納することができます。
a=input() #半角スペース区切りで入力2つ、それ以外はエラー
b,c=a.split()
print(b, c)
a=input()
b,c=a.split(",") #カンマ区切りで入力2つ、それ以外はエラー
print(b, c)
▼プログラミングセル7-3.
a=[]
a=input() #リストに格納
print(a)
7-4. map関数による複数値の変換
input関数で複数の値を取得する場合、str型をint型に変換したい場合があります。そのときにmap関数を使うと複数の値を同時に変換することができます。また、a,b=のような形で代入時に複数の値を順番に対応する変数に代入(アンパック代入)することができます。
a=input()
b,c=a.split()
d,e=map(int, (b,c))
print(d, e)
print(type(d),type(e))
▼プログラミングセル7-4.
a,b=map(int,input().split())
print(a, b)
print(type(a),type(b))
7-5. print関数による標準出力
すでにprint関数を利用していますが、print関数についてもう少し詳しく見ていきましょう。「3. 文字列と操作」では、数値や文字列、変数の値の表示、文字列と値の並記・連結、f文字列などを紹介しました。
▼プログラミングセル7-5.
print(100) #数値の表示
print("文字列の表示")
a=100
print(a)
print("変数の値:", a) #表示の並記
print("変数の中身:"+str(a)) #文字列変換での連結
print(f"文字列への値{a}の埋め込み") #f文字列
ここでは、改行なし表記と区切り文字の指定について見てみましょう。print関数のendオプションで行末の設定を変更することができます(デフォルトでは改行\n)。また、sepオプションで区切り文字を指定することもできます(デフォルトでは半角スペース)。ただし、PyScriptを利用している本サイトではendオプションはエラーになる点に注意してください。
print(123, end="") #本サイトではエラー
print("abc", end="-") #本サイトではエラー
▼プログラミングセル7-6.
print(123, 456, sep="\n") #改行を区切り文字に設定
print(123, 456, sep="-") #ハイフンを区切り文字に設定
7-6. 区切り文字によるリストの表示
リストの引き数に*を付けてsepオプションを利用すると、指定した区切り文字を使ってリストの要素を表示できます。
a=[1, 2, 3, 4, 5]
print(a, sep="-") #*がないので通常通りの表示
▼プログラミングセル7-7.
a=[1, 2, 3, 4, 5]
print(*a, sep="-")
7-7. f文字列以外の埋め込み方式
f文字列の他に、文字列に値を埋め込む方式として、文字列のメソッド関数formatを使う方式とパーセントを使った変換指定子(%d, %f, %s)を使う方式があります。文字列のメソッド関数formatを使う方式では、文字列の.format(xxxxx)を指定すると、文字列の中の波括弧{ }の場所(フォーマットフィールド)にxxxxxを置き換えます。また、フォーマットフィールドが複数個ある場合は、順番に置換したり、インデックスで指定したり、キーで指定したりすることができます。パーセントを使った変換指定子(%d, %f, %s)を使う方式では、C言語のprintf関数のように整数値を置き換える場合は%dを、実数(浮動小数点数)を置き換える場合は%fを、文字列を置き換える場合は%sを利用します。
print("{}の得点は{}点です".format("あなた", 100))
print("{1}点をとったのは{0}です".format("あなた",100))
name="あなた"
score=100
print("{}の得点は{}点です".format(name, score))
print("{name}の得点は{score}点です".format(name="あなた", score=100))
▼プログラミングセル7-8.
print("%sの得点は%d点です" % ("あなた", 100))
print("平均点は%f点です" % (81.3))
name="あなた"
score=100
print("%sの得点は%d点です" % (name, score))
7-8. 桁数の指定
f文字列を使用例として、数値の表示桁数の設定について見てみましょう。f文字列の場合、print(f"{変数:9.5f}")のような形式で、コロンの後でフォーマットを指定します。X.Yfの場合、整数部と小数部、小数点も含み全体をX桁で表示し、小数部をY桁(四捨五入)で表示させます。
▼プログラミングセル7-9.
a=12345
print(f"{a:9d}") #全体9桁
print(f"{a:09d}") #開いている桁を0で埋める
a=3.141592653589
print(f"{a:9.5f}") #全体9桁=整数部3桁+小数点分1桁+小数部5桁
print(f"{a:09.5f}") #開いている桁を0で埋める
問題
以下の問題の解答となるプログラムを記述しましょう。