『Python数値計算ノート』ではアフィリエイトプログラムを利用して商品を紹介しています。

print関数・input関数

print()

Python の print() は受け取ったオブジェクトを様々な形式で表示する関数です。int や float などの数値はそのまま渡します。文字列を出力するときはシングルクォーテーションまたはダブルクォーテーションで囲むようにします。

# PYTHON_PRINT

# In[1]

print(100)
print('Python3')
print("Anaconda")

# 100
# Python3
# Anaconda

複数のオブジェクトを並べて表示させることもできます。

# In[2]

print('NumPy', 'SciPy', 'SymPy')
# NumPy SciPy SymPy

引数に複数のオブジェクトが渡された場合、上のサンプルコードにあるように、デフォルトの設定ではオブジェクトの間に半角スペースが入るようになっていますが、sep 引数で区切り文字(セパレータ)を指定することができます。たとえばカンマで区切りたいときは次のように記述します。

# In[3]

print('NumPy', 'SciPy', 'SymPy', sep=",")
# NumPy,SciPy,SymPy

オブジェクト同士の間隔をもう少し広げたい場合は、sep にカンマと半角スペースを指定します。

# In[4]

print('NumPy', 'SciPy', 'SymPy', sep=", ")
# NumPy, SciPy, SymPy

print() の引数に変数を渡すと変数の中身が表示されます。
下の例ではリストの入った変数を指定しています。

# In[5]

# オブジェクト指向プログラミングの四大要素
x = ['カプセル化', '継承', 'ポリモーフィズム', '抽象化']
print(x)
# ['カプセル化', '継承', 'ポリモーフィズム', '抽象化']# In[6]

for k in range(3):
    print('AtlierKobato')

# AtlierKobato
# AtlierKobato
# AtlierKobato

末尾の文字は end 引数で指定することができます。
たとえば末尾に半角スペースを入れる場合は次のように記述します。

# In[7]

for k in range(3):
    print('Python', end=" ")
# Python Python Python

print() 関数の正式な構文を載せておきます。

print(*objects, sep, end, file, flush)

*objects の * は可変引数であることを示しています。これは上で説明したように、複数のオブジェクトを渡すことができるということです。sep, end, file, flush はすべてキーワード引数です(渡すときはキーワード名を添える必要があります)。sep はセパレータ(区切り文字)、end は末尾に添えるオブジェクトです。

フォーマット済み文字列出力

print() 関数はフォーマット済みの文字列を出力する機能を提供します。文字列内にプレースホルダー({})を設置すると、{} の内側に書かれたオブジェクトを変数の値で置き換えます。

# In[8]

name = "Shohei"
age = 35

print(f"Hello, my name is {name} and I'm {age} years old.")
# Hello, my name is Shohei and I'm 35 years old.

オブジェクトの出力

print() 関数はオブジェクトの __str__ または __repr__ メソッドが戻り値として定義している文字列を表示します。

# In[9]

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Mariko", 39)
print(person)
# Person(name=Mariko, age=39)

もし、オブジェクトに __str__ も __repr__ も定義されていなければ、クラス名とメモリアドレスを返します。

# In[10]

class ClassSample:
    def __init__(self):
        pass

my_object = ClassSample()

print(my_object)
# <__main__.ClassSample object at 0x78378fcba560>

ファイルへの出力

print() は出力をファイルに書き込む機能を提供します。以下のように、with open 構文の中で使用します。

# In[11]

with open("output.txt", "w") as f:
    print("Let's study Python every day!", file=f)

input()

input() はユーザーがキーボードで入力したデータを受け取る関数です。受け取ったデータは変数に文字列 (strクラスのオブジェクト) として渡すことができます。

# # PYTHON_INPUT

# In[1]

# ユーザーからデータを受け取る
x = input()

print(x)

このコードを実行すると、テキストボックスが現れてユーザーにデータの入力を促します。たとえば Python と入力すると、

Python

と表示されます。input()関数の引数に文字列を指定すると、テキストボックスが表示されるときに渡した文字列が同時に表示されます。

# In[2]

# ユーザーからデータを受け取る
x = input("データを入力してください:")

print(x)

Python input関数
input()関数は受け取ったデータが数値であっても、文字列に変換してしまいます。ユーザーが入力したデータを使って計算をさせたい場合は、関数などを使って再び数値に戻してやる必要があります。整数に変換するなら int() を、浮動小数点に変換する場合には float() を使います。たとえば、ユーザーが入力した数値に 10.5 を加えるコードは次のように書きます。

# In[2]

# ユーザーから数値を取得
x = input("数値を入力してください:")

# 取得した数値を float に変換
x = float(x) + 10.5
print(x)

このコードを実行して、ユーザーが 10 を入力すると

20.5

と出力されます。

コメント