05-Python

Python(Part.8)| python【組み込み関数(2)】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

「組み込み関数」について再確認する。
「組み込み関数」の「print()」の利用方法を理解する。
「組み込み関数」の「input()」の利用方法を理解する。

組み込み関数(再掲載)

「Python」の「組み込み関数」の概要

組み込み関数とは

「組み込み関数」とは「関数」を分類した呼び方で、プログラミング言語に標準で準備されている「関数」のことです。これに対して、プログラムを記述する時にプログラマがオリジナルに作成する「関数」を「ユーザー定義関数」と呼びます。

いずれの「関数」も処理をひとつにまとめて保管されていると捉えることができるので、「関数」は、よく「プログラムの部品」として例えられます。

「Python」の「組み込み関数」については「バージョン3.11.5」の時点で71個ほど準備されていて、プログラマは、その使用方法については「Python 3.11.5 documentation」で確認できます。(https://docs.python.org/ja/3/library/functions.html)

青くハイライトされている組み込み関数はこれまで学習したもので、赤くハイライトされているものは、本日、扱う組み込み関数となっています。

「プログラミング言語」には標準でいくつかの「組み込み関数」が準備されています。「python」では約70個の「組み込み関数」が準備されていて「python」を利用した開発を支えてくれています。

「組み込み関数」の「print()」の利用方法

「print()」はコンソールと呼ばれるコンピューターの入出力用の装置に対して文字列を出力する関数です。「print()」には指定できる引数が5種類あります。引数の内容は次の通りです。

print(*objects, sep=’ ‘, end=’\n’, file=None, flush=False)

引数名意味
*objects表示したいリテラルを入力します。
リテラルが複数個の場合はカンマ区切りで指定します。
sepリテラルが複数個の場合、その区切り文字を指定します。
end最後の文字を指定します。
file出力先のファイルを指定します。
flush即時出力の有無を指定します。

objects を sep で区切りながらテキストストリーム file に表示し、最後に end を表示します。sep 、 end 、 file 、 flush を与える場合、キーワード引数として与える必要があります。

https://docs.python.org/ja/3/library/functions.html#print

これらの引数を指定する場合は「キーワード引数」として指定する必要があります。「キーワード引数」については別の記事で扱いますが、簡単にいうと、引数の名前を利用して「引数名=値」として値を指定するということです。

組み込み関数「print()」のリファレンスはこちらから

print(*objects)での利用

「print()」ではリテラルを0個以上で指定できます。複数個指定する場合は「,(カンマ)」で区切ります。また、引数部分には変数を利用することも可能です。

print()
# 何も表示されません。
 
print(12345) 
 # 12345 を出力
                                 
print('あいうえお')
# あいうえお を出力

print(True)
# True を出力

print(12345, 'あいうえお', True) 
# 12345 あいうえお True を出力

# ---変数を利用します。----------------
int_value = 12345
str_value = 'あいうえお'
boolean_value = True

print(int_value, str_value, boolean_value)  
# 12345 あいうえお True を出力

実行結果

一番上の黒い部分は「print()」として引数に何も設定していない処理の結果で、何も表示されていない部分です。

print(*objects, sep)での利用

「print()」では「sep」で区切り文字を指定することができます。この引数は「キーワード引数」として設定します。

print(12345, 'あいうえお', True, sep='/') 
# 12345 あいうえお True の区切り文字に「/」を指定して出力

# ---変数を利用します。----------------
int_value = 12345
str_value = 'あいうえお'
boolean_value = True

print(int_value, str_value, boolean_value, sep='\n')  
# 12345 あいうえお True の区切り文字に「改行」を指定して出力
# \n はエスケープシーケンスで改行を表す特殊文字です。

エスケープシーケンスとは、コンピューターで表現したい特殊な文字や機能を規定した表記方法のことをいいます。

実行結果

print(*objects, end)での利用

「print()」では「end」で最終の文字列を指定することができます。この引数は「キーワード引数」として設定します。

print(12345, 'あいうえお', True, end='\n') 
# print()の最後の文字に「改行」を指定して出力
# print()ではendのデフォルト値は'\n'で改行が設定されています。
# 今回は動きを確認するために明示させています。

# ---変数を利用します。----------------
int_value = 12345
str_value = 'あいうえお'
boolean_value = True

print(int_value, str_value, boolean_value, end='右に続きます--->')
print(int_value, str_value, boolean_value, end='')
# print()の最後の文字に「右に続きます--->」を指定して出力
# デフォルト値の'\n'ではなくなったため、
# 文字列は改行されずに次の出力結果が続けて同じ行に出力されます。

実行結果

ひとつめの「print()」では改行を指定しているので、次の出力が一行下に移っていますが、ふたつめ以降の「print()」ではend引数に別の文字列が指定されているので改行が行われずに出力文字列が同じ行の右側に出力されています。

print(*objects, file)での利用

「print()」では「file」で利用したいファイルのオブジェクトを指定します。この記事のプログラムでは「open()」で開いたファイルを扱うオブジェクトを指定しています。

「open()」については別の記事で扱います。

int_value = 12345
str_value = 'あいうえお'
boolean_value = True

# open()を利用してエンコードにutf-8を利用する「outputFile.txt」と
# それに対する書き込み用のオブジェクトを返します。
file_obj = open("outputFile.txt", "w", encoding='utf-8')
# print()のfile引数に上で作成したオブジェクトを指定します。
# これによって「outputFile.txt」への出力が行われます。
print(int_value, str_value, boolean_value, sep='\n', file=file_obj)
# 開いたファイルをファイルオブジェクトのメソッド「close()」を利用して閉じます。
file_obj.close()

実行結果

「outputFile.txt」が作成されてファイルの中に「print()」で指定した*objectsが出力されていいます。

print(*objects, flush)での利用

ここでは、少しだけですが、open関数も利用しています。

「print()」では「flush」で即時出力の有無を指定します。「True」の場合はすべての文字列が集まらなくても出力を行い、「False」の場合はすべての文字列が集まるまで出力を待ちます。

# バッファリングに時間がかかる状況を仮作するために
# timeモジュールのsleepメソッドを利用します。
import time

# open()を利用してエンコードにutf-8を利用する「outputFile.txt」を
# 開き、それに対する読み込み用のオブジェクトを返します。
file_obj = open("outputFile.txt", "r", encoding='utf-8')

# 変数「lines」に「outputFile.txt」から読み込んだテキスト内容(文字列)を紐づけます。
lines = file_obj.read()
# for文を利用して文章の改行コードごとに文字列を区切りながら、変数「i」へ紐づけます。
for i in lines.split('\n'):
    # 紐づいた各行をprint()で出力します。
    # このとき、end引数に改行以外を指定してprint()の処理が一行で継続されるように設定します。
    # 今回は「タブ(\t)」を指定しています。
    print(i, end= '\t', flush=True)
    time.sleep(1)
# 開いたファイルをファイルオブジェクトのメソッド「close()」を利用して閉じます。
file_obj.close()

実行結果

1秒間隔に得た文字列データを即時出力します。続けて「flush」を「False」に変更すると全ての文字列データが揃った段階で出力が行われます。

「flush」が「False」の場合の実行結果

「組み込み関数」の「input()」の利用方法

「input()」には、引数に指定した文字列(prompt)をコンソールに出力した後、今度はコンソールからの入力を待ちます。コンソールから入力が行われると入力された値をプログラム側に返します。

input(prompt)

引数名意味
prompt表示したい文字列を入力します。

引数 prompt が存在すれば、それが末尾の改行を除いて標準出力に書き出されます。次に、この関数は入力から 1 行を読み込み、文字列に変換して (末尾の改行を除いて) 返します。 EOF が読み込まれたとき、 EOFError が送出されます。例:

https://docs.python.org/ja/3/library/functions.html#input

組み込み関数「print()」のリファレンスはこちらから

input(prompt)

「input(prompt)」では引数に指定したprompt(文字列)をコンソールへ表示します。その後コンソールからの入力を受け付け、入力された一行を値として返します。

input('ここに好きな文字列を入力してください。--->:')

実行結果

入力が受け付けられるので数値や文字列を入力できます。

入力した値はすべて文字列で返されるので数値を入力した場合もプログラム側での扱いは文字列となっています。

「12345」と入力してEnterキーを押しています。このとき、「12345」はプログラム側に文字列として返されています。

値はプログラム側に返されていますが、変数や処理の中で値を利用していないため何も起こりません。

ファイルを次のように編集して再度実行するとinput()で返された値が利用されているのが分かります。

input_value = int(input('数値を入力してください。--->:'))
print(input_value ** 2)

実行結果

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST