さて、計算問題とかもプログラムに書けるようになりました。
それから文字列を表示させる事も出来ました。
細かい文法とかは、やりながら覚えていきますかね~!
しかしながら、今回はなんて言いますか~!
人とコンピュータは違った感性を持っているのだなぁ~っと思わされましたね。。。(-_-;)
なんとPython君、計算オカシクない?
私ね、こう見えて計算速いです。
魚屋だったからね、暗算とかやってましたから。
今回の表題なんですがね。
いきなりの事でちょっと戸惑いましたよ。。。(;^ω^)
18+18って貴方も計算できるでしょ!
そう、答えは36ですよね。
それがですよ!
例のIDLE(インタラクティブシェル)でね。
>>>18+18ってのと~
>>>’18’+’18’ってのをやったのです~
そしたらね。
上の計算は36であってました。
(さすがコンピュータ!!って感じ)
けれども下の式なんですよね。問題があったのが。。。
なんと’1818’になっちゃうんです~!
人は「18」だろうが「’18’(シングルクォーテーション付き)」だろうが
どちらも数字なんで頭の中で足したり引いたりは出来ますよね。
でも、Python君には出来ないみたい。。。
「’(シングルクォーテーション)」や
「”(ダブルクォーテーション)」で囲む数字は文字だろ~!
って事になるみたい。。。
「文字は数字じゃあないんだから計算なんか出来る筈もね~!」
って事らしいですね。。。(-_-;)
でも、これって人の頭の中ではどちらも見るからに数字。
こんな事も分からんのは。。。(案外Python君も。。。(-“-)私並みなのか???)
’善光’+”善光”を計算して数字で答えろって言ってる訳じゃあなく~
18という数字(人にはこれは文字であり数字)と18という数字を足しなさいっといってるだけなのに~
それから「+(プラス)」ってコマンドもなんか紛らわしい。。。ものの様ですね~
18+(プラス)18は36ってなりますよね。
この時には「+」の意味は人にとっては「足す」という意味。
でもpython君、’18’+(プラス)’18’は’1818’になる。
(Python君とは意見が合わないようですなぁ~(-“-))
これは2つの文字列を「つなげる」という事をやってる様ですよね。
これでは「+(プラス)」の意味が「足す」では無いのでね~
人とはすれ違いですね~!
「’」とか「”」で囲まれている時には
「+(プラス)」の意味は「くっ付ける」とか「つなげる」
って意味じゃないですか~!
(なんかこの辺りが人とコンピュータの感性の違いなんですかね。。。)
同じ記号を使うから分んなくなちゃうんですよ~!
(若い人はすんなりと受け入れて使いこなしてしまうのでしょうが、
我々老人は。。。(ってか、私だけ?))
まあ、決まっている事はもう変える事は出来ないからどうしようも無いのでね。
諦めて使っていくしかないのですが。。。
今回の事で
文字は文字、数字は数字とキチンと分けてプログラミングをしないといけないって事と
↓↓↓↓↓↓ pythonのデータ型についても調べてあります~
もう少し詳しくって方はご覧になってくださいませ。↓↓↓↓↓↓
「+(プラス)」の意味は
数字を使って計算をする時と文字列を扱う時では
働きに違いがあるって事が分かりました~
そんでね、また、疑問が湧きましたよ~!
「’18’+18ってのはどうなるのかなぁ~?」ってね!
そうです単語と数字を「+(プラス)」したらどうなりますかね?
やはり、「つながり」ますか?
IDLEでね、確認です~
>>>’18’+18
Traceback (most recent call last):
File “”, line 1, in
’18’+18
TypeError: can only concatenate str (not “int”) to str
そしたらエラーが出ましたね~!
なるほど~
Python君は文字と数字はくっ付けられないんだ~!(変なの~!)
文字と文字は「つなげて」くれるものの、文字と数字は「つなげて」もくれない。。。
やはり、機械なんですなぁ~!(決まった事しかやれないのですね~)
(なんか変に「追い越されなさそう」な安心感が。。。(;^ω^))
そんでね、このあたりは機械と人の「思っている事」の食い違いって事が生まれた場所なんで~
私ね、その思い違いを無くすのはどうしたらいいのか?
こんな解決策を考えました~!!!
やりたい事は言葉を変えて使う~!
先程の「+(プラス)」はね計算の時には「足す」でしょ!
そして、新しく単語や文章を作りだす時には「つなげる」ですよね!
だから人も機械も同じことを思う為には
私の方が使う言葉を変えていかないとダメですよね。
これ、私の経験則なんですがね。
若い人とうちら年寄では「同じ言葉でも意味が違う」ってのがある
って知った時からやってるのですが~
コンピュータ君にも使える様ですなぁ。
18+18を言葉にすると「18足す18」。
’18’+’18’を言葉にすると
「18という単語と18という単語をくっ付けて一つの単語を作り出す」って事になる。
だから、あらかじめ頭の中でね、
「数字の計算」なのか「文字列の編集」なのかを良く自分で把握しておく。
自分は計算がやりたいと思っているなら「足す」という言葉を使い、
新しく文字列を作り出したいと思っているなら「くっつける(つなげる)」っていう風に
自分の言葉を変えてやればいいのですよね~
そうすれば相手に間違って伝わる事は無くなる。。。(筈。。。)
んんん~
若い人とのコミュニケーションと同じと思えば少し気楽に思えてきました~!
まあ、大人の余裕ってやつでPython君ともコミュニケーションしていきますかね~
(うふふっ!(^^)!)
っという事で
今回はこの辺にしておきます~
多分、今回の「+(プラス)」だけではなくって他のコマンドにも
勘違いをし易いものがきっとあるのだと思います~
できるだけ間違いの無い様に自分の意志をpython君に伝えられる様になりたいですね。
頑張りまーす!!!
ここまで読んで頂きまして誠に有難うございました。
嬉しい楽しいついてます。
感謝
泉水善光
↓↓↓↓↓↓↓↓↓↓↓↓一難去ってまた一難。。。老人は将来に不安を感じました。。。
python(パイソン)ってpythonをインストールしていない人には使ってもらえないのか???