とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

WindowsでPython その3(文字列について学ぶ)

Pythonの学習 3限目


とうとう来た。3日連続の更新。(3時間程度だが・・・)
ブログを開設して8年目。初めてではないか。

とはいえさっきまでX-MENアポカリプスを見てたので、非常にやる気がない。
ほらね、さっそくですよ。

そんなやる気の無さの中、今日はレベルアップする気はない。
どんなプログラム言語にも必須の"文字列"について、Pythonではどうか?
確認する程度の気持ちです。

とはいえ文字列の扱いは非常に大切で、どんなプログラム言語でも「何か」を表示する時には必ず文字を使う。
文字列はだいたい。"aaaa" こんな感じでダブルクオーテーションで括る事で表現できる。

しかし!それだけ覚えていれば最低限。
文字列を表現する方法はいくつもあり、これを知っているか否かで、コーディングのストレスが全然違う。
プログラムを少しカジッた人ならなんとなく分かるはず。

というわけで、今日は文字列の表現方法についてテキトーに確認していくぞ。

Pythonにおける文字列の表現


どんなプログラムも、だいたいは「"aaaa"」ダブルクオーテーションで括るか
「'aaaa'」シングルクォーテーションでくくるかすると、文字として認識される。

PythonはどっちでもOK!

20170527_001.png

"aaaaa" OK
'aaaaa' OK

文字列の中でそれぞれのクオーテーションを表現したい場合は

シングルクォーテーションでくくってる場合は ' ' の中に 「"」を打てばいいし、
ダブルクォーテーションでくくってる場合は " " の中に 「'」を打てばいい。

でも混在させるとコードがきちゃなくなるので、どっちかに決め打ちしておくのが吉。

私はC#を使ってるので、基本的には""で括ろうと思う。

本来はそのプログラム言語の一般的なコーディング規約に従うべきであるが、まだそんなのは見ていない。
よってこのブログをみた人からの指摘待ちです。

""の中でも"を表現したい場合は、エスケープシーケンス「\」を使う。

文字列中に「\」を使うと、""で括ってる中で"を表現できる。

文字列中で表現できる特殊な文字色々


改行
文字列中に改行したい場合は、「\r\n」と打つ。
これはお決まりだし、特に深く考えること無いです。お決まりの言葉。
\r\n (えんあーるえんえぬ)と打てばいい。OSがWindowsの場合ね。

Linuxの場合は\n だけでいいです。
20170527_002.png

三重引用符(\r\nを使わない改行)
文字を三重引用符、ダブルクオーテーションを3つ繋げたもので括る。

""" こんなん """

これは、C#で例えると @"こんなん" と同じです。

文字は""で括るけど、エンター押して改行を入力するとエラーになります。
エンター押して改行入れると、それがそのまま認識されるのが三重引用符。

20170527_003.png

20170527_004.png

三重引用符で括って改行するのをさらに無視したい場合は、
エスケープシーケンス「\」を打って改行する。
そうすることで、改行が無かった事になる。

エスケープシーケンス
ちなみにエスケープシーケンスって何?ということだけど、
これは、「その文字を無視する言葉、または、特殊な文字」程度に考えればOK
考えるな、感じるんだ!

画像にある「バックスラッシュは・・・」のくだりは、エスケープシーケンスのつもりで打った文字「バックスラッシュ」が「\」と間違えただけです。

変数使ってたらバグった



次に、変数に文字を突っ込んで、画面に表示させようとしてたらエラーが発生した。

Pythonでは、文字と文字を合体させて、一つの文字にしたい場合は文字列同士を「+」でつなぐ。
そしてPythonにはstr()っていう関数がある。これは文字ではなく、数値を文字列に変換する命令です。

例えば 「お会計は500円です」
と表示させたくて

"お会計は" + 500 + "円です"

って書くとエラーになる。

500は文字じゃなくて、数値だからね。

正しくは"お会計は" + "500" + "円です" ってやらんとダメ。

str(500) って書くのと、 "500"って書くのとは同じです。

で、画像のようにstr に文字列を突っ込んで、strを使おうとしたらエラーになった。

strという命令が、変数になったんだね。エラーにしてくれよ・・・

というわけで、変数の削除は del を使って消してみたらちゃんと動いた。

これは罠になるでー!

20170527_005.png

文字列の練習おしまい


他にも色々文字の表現はあるんだけど、多分書いたものぐらいしか使わんだろう。
全部覚える必要はないです。
自分ルールがあればいいのだ。

ちょっとだけプログラミングぽいこと



さて、文字列はだいたいわかった。(何か一つプログラムしてる人向けなので十分だと思ってます・・・)

最後に、ユーザーから入力を受け取って、その入力を使うコードを書いてみる。
うりゃ。

input関数

コマンドラインじゃなく、ファイルに作りました。
input関数はユーザーの入力を受け取り、変数に保存するもの。
ちょっとだけプログラミングぽいですね。

20170527_006.png
20170527_007.png

姑息にも\r\nとか使ってみた。
これはユーザー入力を受け取り、それを変数に入れて画面に出してます。

今日は終わり!


1時間経ったので終わります。

でもね、しょうもない内容と思うかもしれないけど、文字列操作って本当に大事なんだ。
いくつかの表現方法を知ってるだけで全然レベルの違うコードが書けるんだよ。ほんとだよ。
今日、Pythonにおける文字列表現を学んだ事で、きっといつか役に立つはず・・・そう信じたい。

デスクトップアプリ作るならなおさら、そう思いたい。

そろそろ、予め引数を受け取ってそれをゴニョゴニョする方法を勉強したいな。。。その4か5あたりでできればと思います。

ではまた。



★Python の記事一覧★
▼この記事を読んだ方は、こんな記事も読んでいます。▼

スポンサードリンク

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dalmore.blog7.fc2.com/tb.php/163-7853e62a
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad