組み込み関数(Python_14)

この連載では、Pythonについて色々な形で再学習に取り組んでいます。前回の記事はこちらになります。

hirocom777.hatenadiary.org

前回は、反復可能オブジェクトと、その他のデータ型についてまとめてみました。

今回は、関数についてです。

関数とは

そもそも関数とは何なんでしょうか。学校の数学では、関数とは何かの入力値から値を返すものです。Pythonで関数とは、入力値に対して何らかのまとまった処理を施し、その結果を返す機能になります。

これまでご紹介した関数の中に、print関数があります。print関数は指定された値を出力するだけで、何も値を返していないように見えます。しかし実際には値を返しています。以下を実行してみましょう。

a = print('print関数が返す値は',end=':')
print(a)

結果は以下のようになります。

print関数が返す値は:None

この様に、print関数は「None」という値(以下Noneオブジェクト)を返しています。Pythonでは値がないことを明示するためにNoneオブジェクトを使用します。つまり、値がないという値を返しているということです。

関数は以下のように使用します。値を渡すには関数名の後にカッコでくくって値を記述します。

変数 = 関数(引数1, 引数2, ・・・)

前述の通り、値を返さない、または返してきた値を使わない場合は、変数への代入をせずに直接記述することもあります。

つまり関数の用途は

  • 値を受け取ってまとまった処理をする
  • 処理結果の値を返す

の2点になります。まとまった処理を関数にしておくと、スクリプトの記述が容易になります。

組み込み関数

Pythonには関数を記述する機能があるのですが、よく使う基本的な関数についてはPython側であらかじめ用意されています。これを「組み込み関数」と呼びます。今まで出てきた組み込み関数を、以下に整理してみます。

  • print
    引数で指定した値を出力する関数です。今までも頻繁に出てきたと思います。以下のように記述します。
  print(*objects, sep=' ', end='\n')

「*objects」で出力する値を指定します。値はカンマ区切りで複数指定できます。「sep」は複数の値を表示する際に、間に挿入される文字データ(省略時は半角スペース)。「end」は表示終了後に挿入される文字データ(省略時は改行)を指定します。

他にも「file」,「flush」といったオプションの指定があるのですが、ここでは割愛します。

  • type
    引数で指定してた値のobjectの型を返します。

  • id
    引数で指定した値のオブジェクトIDを返します。

  • range
    整数のシーケンス(rangeオブジェクト)を生成します。以下のように記述します。

  range([start,] stop [, step])

for文で使用する方法は、すでにご紹介しました。その他に連続した番号のリストを作成する場合に、使ったりします。出力結果を後述するlist関数で変換します。

  • len
    文字列の文字数や、リストなどのオブジェクトの要素数を返します。

  • str,list,tuple,set,dict
    オブジェクトを、それぞれ文字列、リスト、タプル、集合、辞書に変換します。

その他の組み込み関数(基本的なもの)

これまで出てこなかった基本的な組み込み関数も、この機会にご紹介しようと思います。

  • max,min
    maxは引数に指定された複数の値から、最大のものを返します。イテラブルを指定した場合には、オブジェクト内要素の最大値を返します。複数のイテラブルが指定された場合は、要素の左から順に比較して、大きな要素があったほうのイテラブルを返します。minは逆に最小値を返します。

  • sum
    引数に指定された複数の数値の合計を返します。イテラブルの場合には、要素内の数値を合計した結果を返します。

  • bytes
    0~256の値を示す、bytsオブジェクトを返します。

  • int,float
    引数で指定された値を変換します。intは整数の値を示すintオブジェクトを、floatは浮動小数点の値を示すfloatオブジェクトを返します。引数には数値、もしくは数値を表す文字列を指定します。

  • input
    文字データの入力を促します。引数には入力時に表示したい説明文(プロンプト)を指定します。

  • abs
    引数で指定された値の絶対値を返します。

  • round
    引数で指定された値を、指定の桁で丸めた値を返します。以下のように記述します。

  round(number, ndigits=None)

ndigits(桁指定)が省略されたりNoneの場合には、もっとも近い整数を返します。四捨五入ではなく、偶数への丸め処理を行うので注意が必要です。

次回も関数

いかがでしょうか。Pythonには他にもたくさんの組み込み関数がありますので、追々ご紹介していきたいと思います。次回は関数を記述する方法について取り組みます。お楽しみに!!

hirocom777.hatenadiary.org

Python再学習のまとめはこちら!!

決算整理2/3_2(簿記の学習_13)

簿記3級を学んでいこうという連載の13回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

この連載ではふくしままさゆき先生の動画を使って簿記3級の勉強をしていきます。

前回は「決算整理」の2回目でした。「固定資産の減価償却」について学びました。

今回は「決算整理」の3回目です。前回に引き続き、以下の動画で学んでいきたいと思います。

youtu.be

この動画では以下の2点について説明されています。

このうち今回は「貸倒引当金の設定」(12:50から)について学んでいこうと思います。

貸倒引当金

貸したお金は必ず返ってくるか、ツケ代金は必ず回収できるかというと、そういうわけではありません。相手が倒産してしまったり、夜逃げしてしまったりすることがあります。これを「貸し倒れ」といいます。

簿記会計では、過去の経験から発生する貸し倒れの割合を予測して、これを決算で仕訳します。これを「貸倒引当金」といいます。

貸し倒れの処理

まずは「貸し倒れの処理」について学んでいきます。仕訳の例を見ていきましょう。2月12日にA社に2,000円の商品を掛販売したときの仕訳は、

(借)売掛金 2,000(貸)売上 2,000

その後、同年2月20日、A社が倒産し、上記売掛金が貸し倒れとなった場合

(借)貸倒損失 2,000(貸)売掛金 2,000

売掛金がなくなって(資産の減少)、貸倒損失という費用が発生しました。これが貸し倒れの処理です。

貸倒引当金の設定

3月31日(期末日)が終了し、はじめての決算で売掛金の残高が100万円とします。このうち3%は回収できないと見積もられたとします。この際、決算整理仕訳で貸し倒れの費用を計上します。

(借)貸倒引当金繰入 30,000(貸)貸倒引当金 30,000

貸倒引当金は負債っぽいのですが、実際にはマイナスの資産です。貸倒引当金繰入は費用になります。この仕訳を「貸倒引当金の設定」といいます。

貸し倒れに備えて、今のうちに資産を減額して費用を計上する(貸し倒れに対して心の準備をしおく)ということです。日本の会計基準では、費用は「発生主義」なので、この仕訳が必要です。

発生主義とは、金銭のやり取りの有無に関係なく取引が発生した時点で、費用と収益を計上するという考え方です。

同年4月10日得意先A社が倒産し、A社に対する売掛金が回収不能となった。A社に対する売掛金は5,000円で、上記100万円に含まれている。

(借)貸倒引当金 5,000(貸)売掛金 5,000

この場合、借方は貸倒損失にはなりません。すでに貸倒引当金繰入として費用に計上してあるので、貸倒引当金になります。貸倒損失として費用計上することはありません。

2年目の論点 決算をまたぐ場合

3月31日(期末日)が終了し決算となりました。このとき売掛金の残高が200万円だったとします。このうち3%は回収できないと見積もられました。貸倒引当金の残高は5万円だとすると

(借)貸倒引当金繰入 10,000(貸)貸倒引当金 10,000

用意したい貸倒引当金は200万円の3%で6万円ですので、差額の1万円を計上します。

この時、貸倒引当金の残高が8万円だとすると、差額の2万円を戻します。

(借)貸倒引当金 20,000(貸)貸倒引当金戻入 20,000

貸倒引当金戻入は収益となります。貸倒引当金は6万円になります。

貸倒処理した債券が、後日回収できた場合

貸倒処理した債券が、後日回収できた場合を見てみましょう。

3月1日に、A社に500円の商品をかけ販売した場合

(借)売掛金 500(貸)売上 500

同年3月10日、A社が倒産してしまいました。

(借)貸倒損失 500(貸)売掛金 500

ところが同年3月20日に、A社から500円現金で回収できたとします。この場合

(借)現金 500(貸)貸倒損失 500

となります。

この日付が同年4月1日の場合、つまり決算を挟んだ場合

(借)現金 500(貸)償却債権取立益 500

となります。償却債権取立益は収益となります。

決算を挟むと貸倒損失を計上していないので、貸方に貸倒損失と記載できません。また、3月31日時点で、A社に対する売掛金は(貸倒処理済なので)帳簿上にはありません。よって、貸倒引当金の設定対象にもなっていません。

次回は決算整理3/3

いかがでしょうか。「決算整理2/3」はボリュームが多いので、「固定資産の減価償却」と「貸倒引当金の設定」の2回に分けてまとめてみました。次回は「決算整理3/3」です。「商品売買原価の算定」、「利益の会計計上」について学びます。お楽しみに!!

hirocom777.hatenadiary.org

簿記3級_学習記録のまとめはこちら

Gitハンズオン

HiroCom777です。1月から始まったノンプロ研の技術ライティング講座の講師をしています。

技術ライティング講座の第7回は、「Gitによるバージョン管理」です。デジタルドキュメントの版数管理ツール「Git」について学びました。

Gitとは何か

Gitとは、テキストデータ、プログラムのソースリスト、その他のデジタルデータの変更を管理(バージョン管理)をするためのツールです。実は、過去にGitについて追及していたことがあります。

hirocom777.hatenadiary.org

繰り返して覚える

でも、結局一連のやり取りをやってみないと、Gitに対する理解がは深まらないですよね。 そこで僕がおススメするのは、以下のGitの操作を繰り返して覚えるというものです。

最初の準備

最初に準備をしましょう。

以下、斜体(イタリック)文字はGitBashの入力、それ以外はVScodeによる操作です。

  • VScodeでフォルダーを作成する
  • フォルダーをGitBashで開く
  • ファイル「File_01.md」を作成して保存する
  • git init
  • ls -a
  • git status

これで作業するフォルダーとリポジトリ、ファイルが作成されました。

ファイルのステージングとコミット

上記で作成したリポジトリにファイルを登録します。

  • git add File_01.md
  • git status
  • git commit
  • コミットメッセージファイルをVScodeで編集して保存
  • git status
  • git log

「git add File_01.md」でファイルをステージングします。「git commit」でリポジトリに登録、「git status」と「git log」で状態を確認します。

ブランチの作成と切り替え

mainブランチで作業するのはリスクが伴います。作業用のブランチを作って切り替えます。

  • git branch
  • git branch sub
  • git branch
  • git checkout sub
  • git status
  • git log

これで作業用ブランチ「sub」で作業する準備ができました。

ファイルを編集してコミット

作業用ブランチでファイルを編集して、変更内容をコミットしてみます。

  • 「File_01.md」をVScodeで編集して保存
  • git status
  • git add File_01.md
  • git status
  • git commit
  • コミットメッセージファイルをVScodeで編集して保存
  • git status
  • git log
  • git log --oneline

ファイルを追加してコミット、コミット間の差を見る

新しくファイルを追加して、さらにコミットしてみます。

  • ファイル「File_02.md」を追加作成する
  • ls -a
  • git add .
  • git commit
  • コミットメッセージファイルをVScodeで編集して保存
  • git log --oneline
  • git diff コミットID_1 コミットID_2

「git diff」で2つのリポジトリを比較します。コミット_IDは、「git log --oneline」でリポジトリの先頭に表示される7文字を指定します。

mainブランチに切り替えてマージ

mainブランチに切り替えて、subブランチの変更内容をmainブランチに反映させます。

  • git checkout main
  • git merge sub
  • git status
  • git log --oneline

コミットIDを使って移動してみる

コミットIDを使って、任意のリポジトリに移動してコミットの内容を確認してみます。

  • git reset --hard コミットID
  • git reset --hard ORIG_HEAD

確認後は、必ず元に戻しましょう。

ブランチを切って確認する

mainブランチ上で過去のコミットと行き来することは、あまりおススメしません。確認用のブランチを切って、確認しましょう。

  • git branch temp
  • git branch
  • git checkout temp
  • git branch
  • git reset --hard コミットID

確認終了後、確認用ブランチの削除

確認後はmainブランチに戻って、確認用のブランチは削除しておきます。

  • git checkout main
  • git branch
  • git branch -D temp
  • git branch

繰り返し練習しましょう

いかがでしょうか。上記の内容を繰り返しながら、ファイル、リポジトリの内容を確認していくと、Gitについて理解が深まっていくと思います。

それではまた!!

反復可能オブジェクトのまとめ(Python_13)

この連載では、Pythonについて色々な形で再学習に取り組んでいます。前回の記事はこちらになります。

hirocom777.hatenadiary.org

前回までで、リスト、タプル、集合、辞書について学びました。

これらは反復可能オブジェクト(イテラブル)と呼ばれます。文字列型のデータも反復可能オブジェクトです。

反復可能オブジェクトの概要

今回はこれらについて、まとめてみようと思います。まずはそれぞれの概要から見ていきましょう。

文字列

文字通り、文字列を扱うオブジェクトです。他のプログラミング言語と違って、Pythonではインデックスを使って特定の文字を取り出すことができるので便利です。スライス機能を使えるのも便利ですね。

リスト

僕の感覚では、リストがイテラブルの基本です。最初にリストについて徹底的に学ぶと、その後のPython学習がはかどるのではないのでしょうか。ミュータブルで、インデックスを使ってデータを取り出せて、スライスや内包表記も使えるので、一番使うデータ形式だと思います。

タプル

タプルはイミュータブル(修正できない)リストといった感じですが、実際には関連するデータグループを扱う場合に使うようです。「tuple」とは「複数の構成要素からなる組を総称する概念」を意味するそうです。辞書のitemsメソッドを使ってリストに変換すると、リストの要素はキーと値のタプルになるのも、この道理でしょうか。また、タプルはイミュータブルなので、リストなどと違って辞書のキーにも使えます。学習を進めていくと、関数とかモジュールから帰ってくる値はタプル形式が多いようです。

集合

複数の集合から、内部の値がどのように所属しているかを簡単に確認できます。他のプログラミング言語には、見かけませんね。リストから集合に変換して値を確認、結果をリストに変換するといった使い方が多そうです。1つの集合内に値の重複を許しません。重複して指定すると、重複部分は削除されます。この性質を使えば、リストの要素の重複部分を削除できたりします。また、要素順序が保持されない点などは注意が必要です。

辞書

キーで管理するデータの集りです。リストやタプルはインデックスに整数を指定して値を確認できましたが、辞書ではインデックスにキーを指定します。キーは重複を許しません。また、キーはイミュータブルでなければなりません。Python3.7以降では辞書内のキーの順番が保持されるようになったので、使いやすくなりました。

まとめ

以上、反復可能オブジェクトの概要でした。簡単にまとめると以下のようになりますね。

特性 文字列 リスト タプル 集合 辞書
ミュータブル
イミュータブル
要素に順序がある 〇※
要素の重複 キーの重複は✕。値の重複は〇。
要素の種類 文字 任意 任意 任意 キーはイミュータブル。値は任意。
スライス
内包表記

※Python3.7以降では辞書内のキーの順番が保証されるようになりました。

また、これ以外にrange関数で生成されるrange型も反復可能オブジェクトです。range型は指定された条件と範囲で整数を順番に返します。主にfor文で使います。

その他のデータ型

その他の代表的なデータ型についても、ここで見ていきたいと思います。ここでご紹介するデータ型は、すべてイミュータブルです。

int

整数型。整数を扱います。

整数型でも「オブジェクトID」が割り当てられますが、 -5~256までの整数はオブジェクトの配列が保持されていて、その範囲でintをつかうと既存のオブジェクトIDが返されるそうです。よく使う値だからということだと思います。

a = 1
b = 1
print(id(a)) # 140727071773480を返す
print(id(b)) # 140727071773480(同じID)を返す

a = 257
b = 257
print(id(a)) # 1848968008432を返す
print(id(b)) # 1848968008784(違うID)を返す

この様に、-5~256以外の整数では異なる挙動を示します。この他にも一部の文字データなどは、既存のオブジェクトIDを返すようです。

float

浮動小数点型。小数点の部分を持つ数値を扱います。

bool

真偽型。TrueかFalseの値を取ります。if文やwhile文でよく使います。

次回は関数

いかがでしょうか。反復可能オブジェクトと、その他のデータ型についてまとめてみました。次回から関数に取り組みたいと思います。お楽しみに!!

組み込み関数(Python_14) - HiroCom777の学習記録

Python再学習のまとめはこちら!!

ブログの書き方ご紹介

HiroCom777です。1月から始まったノンプロ研の技術ライティング講座の講師をしています。

技術ライティング講座の第6回は、「Webライティング」です。Webで公開される記事の書き方を学びました。

Webライティングとは

昔は紙に筆やペンで文章を書いていました。一度書いたものを修正するのは大変な作業で、長い文章ならなおさらでした。記録する方法も書いたものを棚に保管するなど、方法は限られていました。過去に書いたものを見返そうとしても、膨大な量の紙から目的の文章を探し出すのは大変です。

デジタル化した現代では、長い文章の修正も容易になりました。一度作成した文章の構成を変えることも簡単にできます。保管する場所も、記録装置の大容量化やクラウド上での保管など、便利な手段が増えました。大量の文章からの情報検索も容易です。

そしてネット環境の発達で、そうした文章を一般の人たちが容易に公開できる様になりました。誰もが世界に向けて発信できるのです。

この恩恵を受けない手はありません。つまりWebライティングは現代において、とても重要なスキルなのです。

ブログの執筆手順

SNSでの書き込み、やり取りも発信の1つです。でも、ある程度まとまった文章となると、やはりブログになると思います。ここで僕のブログ執筆手順をご紹介したいと思います。

  • プラットフォーム
    このブログをご覧の方はすでにお分かりだと思いますが、僕は「はてな」を使っています。 www.hatena.ne.jp

    最近は「note」が人気の様ですね。お手軽なのがいいようです。 note.com

    技術系に特化するならば「Qiita」でいいでしょう。 qiita.com

    メジャーなところであれば、どこでもいいと思います。気が合いそうなところで始めましょう。複数で始めるのもアリです。

  • 準備
    まずはブログを書くフォルダーを作ります。原則1記事1フォルダーです。フォルダーの下には原稿のテキストファイル、画像ファイル、そのほかの資料ファイルなどが置かれます。連載記事の場合には連載様のフォルダーを作って、その下に記事のフォルダーを作ります。

  • 下書き
    次にテキストベースで下書きを作ります。書式はMarkdownを使っています。Markdownは「はてな」、「note」、「Qiita」でも使えます。色々な表記方法を簡単に記述できます。下書きとあわせて、記事に使用する画像、その他のデータを集めていきます。

  • ツール
    下書きのテキストデータは「VS code」で作成、編集します。上述のMarkdownにも対応していますし、拡張機能も豊富で便利です。 フォルダーを指定して開くと、フォルダー内のファイルを俯瞰できて便利です。連載用のフォルダーを開くと、連載記事全体を俯瞰できて、一括検索などもできます。

    また、以下のショートカットを使うと編集が捗ります。

    • 「Ctrl + Enter」下に空行を入れる
    • 何も選択しないで「Ctrl + C」行コピー
    • 何も選択しないで「Ctrl + X」行切り取り
    • 「ALT + 上下カーソルキー」行の移動
    • 「SHIFT + ALT + 上下カーソルキー」行の複製
    • 単語を選択して「Ctrl + D」単語を複数選択
    • 「Ctrl + G」指定行に移動
    • 日本語入力時に「Shift+スペース」半角スペース入力
  • プラットフォームに転記
    下書きが終わったら、この内容をプラットフォーム(はてな)に転記します。転記した後は、画像の挿入、リンクの記述、その他を設定します。

  • 公開
    以上が完了したら公開です。公開が完了したらX(旧Twitter)に書き込みを行います。

以上がブログの執筆手順の概要です。決まった手順を繰り返していくと、執筆効率が上がっていくと思います。

ネタはどうするか

執筆手順はわかったのですが、ブログを書くにはネタが必要です。このブログは「学習記録」なので、学んでみようと思ったことがネタの基本になります。ブログを開設するにあたって、テーマを決めておくとネタに困らなくなるかもしれません。

次に書くネタを思いつく時なのですが、僕の場合はブログの記事を書いているときが多いですね。そもそも書く内容が決まってから書くというよりも、書きながら学びを進めていくといった感じです。

ブログを書き進めながら学んでいくという手法は、僕に合った学習方法だと実感しています。

自分に合った執筆方法を

今回は、僕のブログ執筆手順について振り返ってみました。こうしてみると、始めたころに比べてかなりスマートになってきたなと思います。最初のうちは、色々試行錯誤の繰り返しでしたね。文章の書き方やMarldown、その他ツールの使い方も、少し洗練されてきたのではないかと思います。

このスタイルは僕のスタイルであって、皆さんは皆さんに合ったスタイルがあるはずです。継続して書き続けていると、自分に合ったスタイルが見つかると思います。

それではまた!!

辞書_2(Python_12)

この連載では、Pythonについて色々な形で再学習に取り組んでいます。前回の記事はこちらになります。 hirocom777.hatenadiary.org 前回は、辞書について学びました。辞書はリスト、タプルとは少し違った特徴がありますね。

今回も、辞書について学んでいきたいと思います。

辞書の内包表記

辞書はfor文を使って作ることができます。以下は辞書の作成例です。

d_1 = {}
l_1 = ['A','B','C','D']
for key in l_1:
    d_1[key] = l_1.index(key) + 1

print(d_1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}を返す

辞書も内包表記があります。以下の様に記述されます。

{キーの算出式: 値の算出式 for ループ変数 in イテラブルなオブジェクト}

辞書内包表記を使うと、上記のif文の例は以下のようになります。

l_1 = ['A','B','C','D']
d_1 = {key:l_1.index(key) + 1 for key in l_1}

print(d_1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}を返す

少しシンプルになりました。

辞書の型変換

辞書型のデータをリストやタプル、集合に変換すると、どうなるのでしょうか。変換してみましょう。

d_1 = {'A':1,'B':2,'C':3}
print(list(d_1)) # ['A', 'B', 'C']を返す
print(tuple(d_1)) # ('A', 'B', 'C')を返す
print(set(d_1)) # {'B', 'C', 'A'}を返す(順番は保証されない)

それぞれキーだけのオブジェクトに変換されました。keysメソッドを使用して「d_1.keys()」としても同じ結果が出ます。

値を取得したい場合はvlauesメソッドを使って「d_1.values()」とします。

d_1 = {'A':1,'B':2,'C':3}
print(list(d_1.values())) # [1, 2, 3]を返す
print(tuple(d_1.values())) # (1, 2, 3)を返す
print(set(d_1.values())) # {1, 2, 3}を返す(順番は保証されない)

それでは前回ご紹介したitemsメソッドを使用するとどうなるでしょうか。結果は以下のようになりました。

d_1 = {'A':1,'B':2,'C':3}
print(list(d_1.items())) # [('A', 1), ('B', 2), ('C', 3)]を返す
print(tuple(d_1.items())) # (('A', 1), ('B', 2), ('C', 3))を返す
print(set(d_1.items())) # {('C', 3), ('B', 2), ('A', 1)}を返す(順番は保証されない)

それぞれの要素が、キーと値のタプルとなって変換されました。

辞書への型変換

辞書はキーと値を要素に持つので、数値や文字といった要素しか持たないリストなどから変換することはできません。上の結果から考えると、タプルでキーと値を渡せば変換できそうです。変換にはdict関数を使います。

# 以下はすべて{'A': 1, 'B': 2, 'C': 3}を返す
print(dict([('A', 1), ('B', 2), ('C', 3)]))
print(dict((('A', 1), ('B', 2), ('C', 3))))

以上のように変換できました。キーと値の受け渡しは、タプルをリスト、集合でも変換可能です。ただし集合の場合キーと値が入れ替わる可能性があります。

集合の場合はどうでしょうか。

# {'A': 1, 'B': 2, 'C': 3}を返す(順番は保証されない)
print(dict({('A', 1), ('B', 2), ('C', 3)}))

やはり変換できましたが、順番が保証されません。型変換に集合の使用は避けたほうが良いようです。

辞書の連結

算術演算子「+」を使った辞書どうしの連結はできません。エラーになってしまいます。 辞書同士の連結は、演算子「|」を使用します(Python3.9以降)。

d_1 = {'A': 1, 'B': 2}
d_2 = {'C': 3, 'D': 4}

# print(d_1 + d_2) # エラーになる
print(d_1 | d_2) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}を返す

重複するキーがある場合は、右側の値で上書きされてしまいます。この方法は、2つの辞書を併せて新しい辞書を作ります。前回ご紹介したupdateメソッドは、辞書に要素を追加する方法です。違いに注意しましょう。

次回は関数

いかがでしょうか。辞書に関する理解が深まったかなと思います。今まで文字列、リスト、タプル、集合、辞書と反復可能オブジェクトについて見てきました。次回は、それらをまとめてみようと思います。ほかのデータ型についてもまとめてみましょう。お楽しみに!!

hirocom777.hatenadiary.org

Python再学習のまとめはこちら!!

よい文章を書くには

HiroCom777です。1月から始まったノンプロ研の技術ライティング講座の講師をしています。

技術ライティング講座の第5回は、「文章を書く技術_2」です。よい文章とは、どんな文章なのか考えていきます。

よい文章とは何か

そもそも「よい文章」とは何なんでしょうか。これは何とも難しい問いであり、「正解はない」というのが実際でしょう。技術ライティング講座は、正しい答えというものがありません。

ここでは、「いかに価値を提供を提供できるか」を焦点に「わかりやすい文章」を書く方法について考えてみようと思います。

わかりやすい文章を書くポイント

わかりやすい文章を書くポイントとして、講座では以下の項目があげられています。

  1. 一度に1つのことを
    いざ書こうとすると、色々なことを詰め込んで伝えたくなりますが、それでは難解になってしまいます。伝えたいことを絞って書きましょう。また、次に移る前に内容はすべて回収したのかを確認して結論付ける癖を付けましょう。

  2. 明確にする 回りくどい言い方は極力避けましょう。主語と述語の関係は明確にしましょう。また、必要な情報を省略していないか常に確認しましょう。必要に応じてメタ情報(情報を説明するための情報 - Range「オブジェクト」など。)を使用するのも手です。

  3. ガイドする 文章と文章の関係を補足するために、適切な接続詞の使用が大切です。その他にも適宜、図、表、メモ、囲み表記などで情報を追加していきましょう。

  4. 見た目をやさしく 適切な頻度で句読点を入れると、読みやすくなります。極端に難しい漢字は使用を避けた方が無難です。また、文章の流れや進め方によって、適度に空行を入れたりインデント(字下げ)を使用しましょう。

  5. 一貫性をもたせる 表記方法にはある程度の一貫性を持たせて、前後との比較がしやすいようにしましょう。必要に応じて、箇条書きなどを使うのも効果的です。また、固有名詞の揺れにも注意が必要です。正しい表記で統一しましょう。

  6. 適切な密度で プログラミングの場合、情報密度の高い用語を使用することで、わかり易く伝えることが必要です。もちろん、必要に応じて事前に用語の説明が必要となります。また、既出の情報について何度も繰り返し書くことは避けましょう。

  7. 自然な構造にする 内容によって、伝える順番の検討が必要です。時間単位、階層単位、理解の順番など並べたり、適切な単位でグルーピングしたりして、自然な構造の文章にしましょう。

以上、主なポイントを挙げてみました。どれも重要ですが、人によってどのポイントが優先されるのかも変わってくるのではないのでしょうか。

読み返すこと

上のポイントをおさえれば、まぁわかり易くなるとは思うのですが、それだけでは少し足りないかな・・・と思います。

そもそも、注意しすぎで執筆が進まなくなっては本末転倒です。まず、あまり細かいところを気にせずに書いてから、上のポイントに注目して修正していけばいいと考えています。昔は紙に筆で書いていたわけで、簡単に修正することはできませんでした。

でも、テキストデータを簡単に編集できるようになった現在では、積極的に修正していくとが大切だと思います。わかりやすく修正していく過程で、本当に書きたいことが見直せます。また、わかりやすい文章に直していく過程で理解も深まると思います。

書いた直後に見直すことも大事ですが、1~2日程度置いてから見直すと新しい発見があると思います。

わかりやすい文章をめざして

今回は、よい文章として「わかりやすい文章」を書くにはどうするかについて考えてみました。わかりやすい文章が書けるということは、その内容について深く理解している証拠だと思います。僕自身も書き進めていくうちに、自分の理解がいかに浅かったかを痛感することが多いです。

単純にアウトプットという点からだけではなく、理解度の確認と推進につながると思います。そういった意味でも「わかりやすい文章」とは何なのか考え続けることは大切ですね。

それではまた!!