こんにちは、まさです。今日は『退屈なことはPythonにやらせよう』の第6章「文字列操作」です。この辺まできて、「あれ、これ学んで教員として意味あるのかな」というささやきが聞こえてきましたが、まあ気長に、プログラミングの仕組みをしる程度のために続けていきます。
➤文字列において、エスケープ文字というものがあり、これによって普通の方法では
文字列に入れられない文字を使うことができる。例えば改行には \nを用いる。3連
クオート(''' ''')を使うとエスケープ文字を使わないでも、改行できる。
➤文字列メソッドにはupper(),lower()などがある。ただし、これは元の文字列を変
更するものではない。
spam.upper()では元の値は変わらない。spam=spam.upper()とかく必要がある。
➤ isX系のメソッドは、ユーザー入力検証に便利。
➤ 引数(ひきすう)はargumentの訳らしい。ん?「因数」の方が漢字的にまだ訳としてあうんじゃないか?引数という言葉そもそもの意味が分からなくなったので、検索。この方の説明がわかりやすかった。https://wa3.i-3-i.info/word1442.html
➤プロジェクトのパスワードロッカーやってみました。コードがこれです。
打ち込むのは、python pw.py [アカウント名]で、いれるとそのパスが表示されます。打ち込んだのが、「python pw.py 英検」で、実行するとこういう感じです。
これ[アカウント名]のところに入れるのは、名前だけであって、[ ]いらないですからね。私はそれわかるのに1時間費やしています。
で、思ったように動作はしましたが、コードを理解したかといえば、ううー、よくわかりません。input はいらないのという疑問、sys.argvが何をしているのかという疑問。またわかったら追記します。
追記:コマンドライン引数について、2時間かけてなんとなくわかったので、説明してみます。(違ったらすいません)。
コマンドライン引数のポイントは、ファイルを実行する時に、引数を渡せるということでしょうか。Pythonでファイルを実行する時、
python folder名.py
で、実行しますよね。このときに、
python folder名.py 英検パス 定期パス
とか適当にくっつけられるわけです。このくっつけたのがコマンドライン引数。
で、くっつけるとどういう効果があるかというと、実行してファイルを開いた時に、これを使えるというわけです。そこででてくるのが、sys.argv[ ]関数。これは何をしてくれるかというと、さっき実行のときに後ろにつけた「英検パス」「漢検パス」を上から引っ張ってきてくれるのです(だから引数なのか)。
sys.argv[0]はファイル名
sys.argv[1] は英検パス
sys.argv[2]は定期パス
になります。
つまり、このパスワードロッカーでいえば、
folder名.py アカウント名
でこのアカウント名が、sys.argv[1]にあたるわけで、例えば
folder名.py 英検パス
といれれば、ファイルの中で「英検パス」を使えるということなのです。
素人、文系感満載の説明になりました。いかがでしょうか。
(間違っていたらすいません)。
一応自分的には納得です。
ではまた次回。
➤文字列において、エスケープ文字というものがあり、これによって普通の方法では
文字列に入れられない文字を使うことができる。例えば改行には \nを用いる。3連
クオート(''' ''')を使うとエスケープ文字を使わないでも、改行できる。
➤文字列メソッドにはupper(),lower()などがある。ただし、これは元の文字列を変
更するものではない。
spam.upper()では元の値は変わらない。spam=spam.upper()とかく必要がある。
➤ isX系のメソッドは、ユーザー入力検証に便利。
➤ 引数(ひきすう)はargumentの訳らしい。ん?「因数」の方が漢字的にまだ訳としてあうんじゃないか?引数という言葉そもそもの意味が分からなくなったので、検索。この方の説明がわかりやすかった。https://wa3.i-3-i.info/word1442.html
➤プロジェクトのパスワードロッカーやってみました。コードがこれです。
打ち込むのは、python pw.py [アカウント名]で、いれるとそのパスが表示されます。打ち込んだのが、「python pw.py 英検」で、実行するとこういう感じです。
これ[アカウント名]のところに入れるのは、名前だけであって、[ ]いらないですからね。私はそれわかるのに1時間費やしています。
で、思ったように動作はしましたが、コードを理解したかといえば、ううー、よくわかりません。input はいらないのという疑問、sys.argvが何をしているのかという疑問。またわかったら追記します。
追記:コマンドライン引数について、2時間かけてなんとなくわかったので、説明してみます。(違ったらすいません)。
コマンドライン引数のポイントは、ファイルを実行する時に、引数を渡せるということでしょうか。Pythonでファイルを実行する時、
python folder名.py
で、実行しますよね。このときに、
python folder名.py 英検パス 定期パス
とか適当にくっつけられるわけです。このくっつけたのがコマンドライン引数。
で、くっつけるとどういう効果があるかというと、実行してファイルを開いた時に、これを使えるというわけです。そこででてくるのが、sys.argv[ ]関数。これは何をしてくれるかというと、さっき実行のときに後ろにつけた「英検パス」「漢検パス」を上から引っ張ってきてくれるのです(だから引数なのか)。
sys.argv[0]はファイル名
sys.argv[1] は英検パス
sys.argv[2]は定期パス
になります。
つまり、このパスワードロッカーでいえば、
folder名.py アカウント名
でこのアカウント名が、sys.argv[1]にあたるわけで、例えば
folder名.py 英検パス
といれれば、ファイルの中で「英検パス」を使えるということなのです。
素人、文系感満載の説明になりました。いかがでしょうか。
(間違っていたらすいません)。
一応自分的には納得です。
ではまた次回。
No comments:
Post a Comment