色々あってPythonをつらつらとお勉強しています
せっかくなので備忘を兼ねて記事を書いていきましょう。
IDE(統合開発環境)をローカルに用意してお勉強しようと思っていたのですが、いかんせんGoogleにすべてを捧げている私は、自宅にWindows7のファイルサーバ化した化石マシンしかありません。
(HDDとメモリは一度ずつ交換していますが、8年選手なのでさすがに色々とまずい。そもそもWindows7なのがまずい)
iPad miniとかmotoZ2playとかPixelbookとかはありますが、一般的なIDEは入れられない。そりゃそうですよね。(Chromebookには色々とあるようですが、外国語に弱い私向けにベストなものはあまり無さそうです。もう少し日本にChromebookが浸透すればよいのですが…)
と、いうことでSurfaceLaptopを購入しました!!
初めて趣味感覚以外でWindowsマシンを購入しました。
新しいもの好きの端末変態である私が、SurfaceLaptop2がリリースされているのにもかかわらず、初代を安く購入するという衝撃的な選択です。
いや本当はこれすごく妥当なんです。いい選択です。軽く触れておきますが、
・初代と2ではCPU以外の性能差が無い。
⇛外観含めて。性能は本当にcoreの世代が違うのみです。カラーラインナップが変わってるとかはあるかもですが、どうせシルバーがほしい私には意味なし。
・SurfaceGo(SurfaceProのmini版/お手軽版)が発売された直後だから
⇛安くなってます。そしてSurfaceGoの需要は著しく狭い(端的にいうとあんまり売れないと思ってます)です。まあOfficeなりWindowsOSなりをあそこまでコンパクトに持ち歩けるというのはいち魅力でしょうが、このOSでキータッチがやりにくいというのは非常に大きいマイナスポイントなので、コーディングのお勉強をしたい私は絶対に買わない。そんなもの買わない。
こんな感じで、初代SurfaceLaptopを購入しちゃいました。新品未開封を某フリマサイトでunder10万で購入。届いたら一応レビューします。(性質上、ぶっちゃけ単なるクラムシェルなWindows10だと思ってますけど)
ほんでも、まあ、最低限コーディングルールくらいはクラウドの環境でも全然不自由なくできるので、Pixelbookにて既にお勉強は開始しております。最終的に作りたいのはWebサービスですし、IDEがローカルにあるだけではあまりよろしくないなあという思いも(全然具体的でも的確な話でもないんですけど)あって。ちょっと色々とやっっています。
使用しているのは”GoogleColaboratory”というサービスです。
GoogleDriveと連携できるので素敵。詳しくはググってみてください。
一応すぐに出てくる素敵な記事を。↓
さあここからがメモ書きです。
HelloWorldくらいはggrksとして、再帰関数を作ってmod計算をするようなコードを書いてみました。
a = int(input())
b = int(input())
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x%y)
print (gcd(a, b))
実行するとこんなんなります。
Pythonってめちゃくちゃ高級な言語で、javaとc(とマクロとCOBOL)くらいしかまともに触ったことない身としては、コンパイル(解釈?)がんばってんな〜という感じ。
変数宣言もしない、forもifもdefineもインデントだけで範囲解釈して、コーダーの入力文字数を減らそう減らそうとしてくれていることがよく伝わってきます。
大学時代に画像処理の研究でMatlabというソフトウェアを使用していましたが、なんだかそういう次元です。
その分、大抵のことは勝手に理解してくれるんだろうなと思って高をくくっていたら、 input()のところで躓きました。
当たり前っちゃあ当たり前ですが、キー入力させる関数で外部から値を拾ってきているので、入力値は文字列型になっちゃってます。受けた際には int型にすぐさま直してから変数にぶち込む必要があるそうです。(こんなことで20分くらい格闘しちゃいました)
いやあ、でももしかしたらy==0とか出してるから死んだだけで、当該値(aとb)を使用して単純な計算を実行するのであれば、勝手に「おっとこれはint型だな」とかやってくれるんでしょうか。さすがに期待し過ぎかな…。
今回はこのへんで。
また粛々とPythonの変な話があれば更新します。もしくは何かサービスを作っちゃったらその時に。
でも直近だとSurfaceLaptopかなあ。