Python

毎日Python_11日目


【ページ更新日: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 ]は、リストをリバースする
  • スライスについては他にも多くの設定方法がある
  • 参考ページ

  • この記事を書いた人
  • 最新記事

Maita Tomoya / yone

2020.4~Webアプリケーションエンジニアとして都内の企業で働き、空いている時間でブログを運営している29歳男です。本ブログは情報の整理をするため、文章を書く機会を作るために始めました。1記事でも多く「誰かのためになる記事」を書けるように頑張ります!転職前は地方の高校で働いていました。教育関係の記事も定期的に書いていきたいと思います。

-Python