【ページ更新日:2020年10月2日】
毎日Pythonでは、毎日簡単なPythonのプログラムコードを紹介していきます。
今日のプログラムは「Python問題集」のコードをもとにしております。
多くの問題がプログラムコードと共にまとめられておりますので、初学者の方にオススメです。
今日のプログラム
コードは次の通りです。
どのようなプログラムか考えてみてください。
a = open('text.txt').read().split() a.sort() for i in a[::-1]: print (i)
Pythonはインテンド(行頭のスペース)がズレるだけでエラーの原因になります。
コピペする場合は次のコードからしてください。
コードのURLはコチラです。
text.txtファイルの内容は次のとおりです。
1 4 7 2 3 9 6 8 5
今日のポイント
- opne( )
- read( )
- split( )
- sort( )
- a[ : : -1 ]
今日の出力
今日の出力は次の通りです。
今日のコードの説明
まず、今日のポイントについて説明します。
open( )
- open は、ファイルを読み書きする関数です
- 組み込み関数なので、モジュールなどを読み込まなくても使えます
- 組み込み関数とは、Pythonにもともと入っている関数のことです
- 次のコードのようにすると、ファイル「text.tet」が読み込まれます
a = open('text.txt')
- open は、ファイルオブジェクトを返します
- つまり、変数 a には text.txt のファイルオブジェクトが入っています
- ファイルオブジェクトは、ファイルそのものだとイメージしていいと思います
read( )
- read は、ファイルオブジェクトから指定サイズのデータを読み込みます
- 読み込んだデータを文字列で返します
- 解説用に、次の text.txt を用意します
1 4 7 2 3 9 6 8 5
- この text.txt 対して、以下を実行します
a = open('text.txt').read(10)
- すると、変数 a には [ 1\n4_7\n2_3_ ]という文字列が入ります
- 「\n」は改行を表す文字、「 _ 」はスペースをスペースを表すために使用しました
- この結果は、ファイルオブジェクトから10文字を読み込んだためです
- 読み込む文字数をreadメソッドの引数に渡します
- ちなみに、readメソッドはファイルオブジェクトが持つメソッドです
- つぎのコードのように、readメソッドに引数を渡さないとすべての文字を読み込みます
a = open('text.txt').read()
- この結果、変数 a には [ 1\n4_7\n2_3_9\n6\n8___5 ]という文字列が入ります
- 「\n」は改行を表す文字、「 _ 」はスペースをスペースを表すために使用しました
split( )
- split は、文字列を区切ってリストで返します
- split は、文字列型(strクラス)が持つメソッドです
- split の引数には、どの文字で区切りたいかを渡します
- 引数がない場合は、空白文字で区切られます
- 空白文字とは、スペース、改行、タブのことです
- つまり、今日のコードでは・・・
a = open('text.txt').read().split()
- ファイルが開かれ、文字列として読み込まれ、改行とスペースで区切りられリスト化されます
- つまり、変数 a には、[ '1', '4', '7', '2', '3', '9', '6', '8', '5' ] というリストが入ります
- 参考ページ
sort( )
- sort は、リストは昇順または降順にソートします
- sort( )とすると昇順にソート
- sort(reverse=True)とすると降順にソート
- 参考ページ
a[ : : -1 ]
- [ : : -1 ]は、リストをリバースする
- スライスについては他にも多くの設定方法がある
- 参考ページ