回答(全8件)
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
17
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
Rubyistの私がPythonの良さを語ってあげましょう。
Pythonの良さがいまいちわからないとの事ですが、それは他の言語を知らないからです。Pythonしか知らなければPythonで当たり前のことがプログラミング言語の当たり前のことだと思うかも知れませんが、それは違います。世の中にはどうしようもなく駄目な言語がたくさんあります。たとえば、PH...うわなにをするやめr
失礼しました。では、取り上げていたPythonの良い面を補足説明しましょう。
- Python は対話的にプログラミングができるからいい。
対話的な機能はREPL(read–eval–print loop)と言うものでプログラミングの動作を確認するのに最適です。ある関数について学んだとき、それがどのように動くか確認したいとします。たとえば、print()
関数について、print("a", "b")
と二つ引数を渡すとどうなるか?print(1)
と数字を渡すとどうなるか?疑問に思いますよね? もしREPLが無い場合は、わざわざプログラムを作成して実行する必要があります。でも、Pythonなら、pythonとただ実行した後に、上の関数を書くだけで動作が確認できます。これは言語を学習しているときだけで無く、後からも大変役に立つ機能です。知らないライブラリを使おうとしたとき、簡単にその動作を確認できるからです。
REPLは全ての言語が標準で備えている機能ではありません。別途用意されている場合もありますが、インストールが複雑だったり、出来ることに制限があるなどPythonのように簡単に色々できるものは少ないです。
また、REPLを電卓代わりに使っている人もいます。下手な関数電卓より、かなり高機能です。
- Python は、いろいろ使えるしライブラリーが豊富、海外でもユーザーが多い。
ライブラリが豊富にあることはとても重要です。Pythonは特にディープラーニングやビッグデータなど今最も熱い分野のライブラリが他の言語よりも豊富と言われています。こういった計算ライブラリ以外にもやがて必要になるだろうWeb系やGUI等の一般的なものであればほぼ全て揃っています。もしこれらのライブラリが無かった場合は、自分でライブラリを作らないといけません。それは大変手間ですし、かなりの知識が必要になります。
また、ライブラリのインストールも使い方も簡単です。
pip install パッケージ名
だけで依存関係を含めて自動的にインストールできます。あとはPythonのソースで
import パッケージ名
とするだけで、ライブラリに含まれる豊富な関数を使うことができます。他の言語ですと、圧縮ファイルをダウンロードして、展開し、指定された場所に手動で配置する必要があったりします。言語によっては、依存しているライブラリを先に入れる必要があったり、ソースから手動でコンパイルをしたり、インストールプログラムを動かしたりする必要があります。場合によっては、その方法が統一化されておらず、ライブラリによってやり方が異なると言うこともよくあります。
残念なことですが、ライブラリの多くは英語でしか説明がありません。しかしながら、これは他の言語も同様です。これからプログラミングを学び、その技術力を高めるには、技術英語が読めることは必須の技能です※。英語だからと言って敬遠せずに慣れてください。しかし、多くの人が使っている有名なライブラリであれば日本語で使い方が書かれたサイトがあります。Pythonは日本でも多くのユーザーが使用していますので、情報はすぐに見つかると思います。
※ 英語が読めないとプログラマーになれないというわけではありません。ただ、単価が安い誰でも出来る仕事しか来なくなるだけです。
- Python は、インストールも簡単だから初心者もOK、Linuxを使ってるひとならコマンドで...
Windowsであってもインストーラを実行するだけです。またChocolateyというツールを入れているのであれば、コマンド一つで入ります。なお、LinuxやMacでは通常であれば最初からPythonが入っています。
一般的なWindowsユーザーにはコマンドプロンプトが馴染みが無い物に思えますが、それは一般ユーザーで終わる人だけの話です。プログラマーだけで無く、IT関係の技術者にとってコマンドプロンプトなどテキストベースであるCUIの操作は当たり前のものであり、その操作は一般的です。今のうちにこれも慣れてください。
言語によってはコマンドプロンプトなどのCUIを一切触らずにプログラムを完遂できるものもあります。ですが、それだけで出来ることは限界があり、せいぜい型が決まったデスクトップアプリぐらいしか作れるようになりません。
- Python でTweepyを使うなら、pip から簡単に...
pipはPythonのパッケージ管理ツールです。ライブラリを簡単にインストール、アップデート、アンインストールが出来ます。Pythonでは3.4から標準で入っています。
このパッケージ管理ツールですが、あると効率が全然違います。言語によっては標準で用意されていなかったり、用意されていても問題が多くて使い物にならなかったりします。はじめから有用な管理ツールが用意されている言語は少ない方で、言語によってはパッケージ管理ツールが乱立し、何を使っていいのかわからないというのもあります。
以上になりますが、少しは良さが伝わったでしょうか?
最後に、これからPythonを学ぶのであれば、一つだけ注意点があります。それはバージョンです。Pythonには現行で2系と3系の二つのバージョンがあります。2系はいずれ保守が終了しますので、これから学ぶのであれば3系を学ぶことをお勧めします。そして、本やサイトでPythonを学ぶときは2系なのか3系なのかを必ず確認してださい。2系と3系は一部互換性が無い部分が有り、2系のサンプルコードを3系で動かそうとしてもそのままでは動かないことがあります。特に古い本やサイトは更新されずに2系のままの場合がありますので、3系と明示されていない限りは参考にされないことをお勧めします。
Rubyはどうかって?あんな国産言語どうでもいいよね。
2016/01/30 20:45 投稿
コメント(3)
2016/02/01 13:12
raccyさん
さっそくコメントいただき誠にありがとうございます。詳しく書いてくださり感謝です。
しかし、非常に申し訳ないのですがコメントにたいする知識すら持ち合わせていないわたしですので理解できませんでした。申し訳ございません。。もう少し学習したうえでコメントを拝見させていただきたいと思います。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
3
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
他の回答者と同意見なので、蛇足ですが。
私がPythonを使ってて楽だなあと思う点は
- リスト内包表記
- アンパック
- デコレータ
(アンパックはRubyとかにもあるけど)
Pythonは文法が平易で可読性に優れ、書いててとても気持ちがいいと思います。
嫌いな点は、初心者が文字コードでハマりやすいことと、 lambda と書くのがめんどくさいことです(←IDEを使え)
2016/01/30 21:31 投稿
コメント(1)
2016/02/01 13:08
Lhankor_Mhyさん
さっそくコメントいただき誠にありがとうございます。
おっしゃるように、Pyhon の文法は確かに分かりやすいと思いました。
あと、リストなどは確かに便利だなと思いました。
アンパック、デコレータはまだ学習不足なのか、なんの機能なのか分かりません。
みなさんがPyhonは書いてて気持ちがいいとか、楽しいというのですが文法的な明快さが理由なのでしょうかね。
わたしはC++やC#を使っていたのですが、型を指定しないとか、中括弧{}をつけないとかはまだ慣れません。むしろ気持ち悪さを感じてしまいます笑。こわいというか。
もう少しpython になれる必要はありそうですね。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
2
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
python歴1年と短いですが何かの参考にはなると思います。
Python は対話的にプログラミングができるからいい。
→プログラミングって対話的にやってる人いなくない??
対話モードは初心者だからこそあると便利だと思います。
今自分が打ったコードが即座に実行されてすぐに結果が返されるのでわかりやすいです。
他には「これってこれであってるかな?」という時の簡単な確認に使っています。
Python は、いろいろ使えるしライブラリーが豊富、海外でもユーザーが多い。
→ライブラリの使い方がわからない。海外にユーザー多くても英語で読めないので結果使えない。そもそもAPIの説明書を見てもよくわからない。
ライブラリの使い方がわからないことや英語がわからない問題はpythonに限らずどの言語も同じだと思います。
この言語ならライブラリがわかりやすい!というのは聞いたことがりませんし、日本語の文献がいくら豊富でも最新の情報やより深い理解には英語の文献にあたる必要が出てきます。
そもそも、初心者レベルでしたら日本語で十分文献があると思います。
Python は、インストールも簡単だから初心者もOK、Linuxを使ってるひとならコマンドで...
→そもそも初心者ってLinux 使ってるのか? コマンドって黒い画面(コマンドプロンプト)から初心者はやらなくない??
コマンドラインに関しては確かに初心者には分かりにくいとは思います。
ただ、pythonで使うコマンドライン上の作業は少ないので初心者の学習の障害になるという問題はないと思います。
またwindowsは専用のインストーラがあり、macはlinuxと同じ方法でインストールできます。
Python でTweepyを使うなら、pip から簡単に...
→pip ってなに?
Pythonのパッケーシ管理システムです。
これを使えばpythonのパッケージを簡単に管理できます。
https://ja.wikipedia.org/wiki/Pip
2016/01/30 21:14 投稿
コメント(2)
2016/02/01 13:01
Musashi13zさん
さっそくコメントきただき誠にありがとうございます。
また、それぞれ疑問についてコメントいれてくださりありがとうございます。
ライブラリーがどれも難しいというのを聞いて安心しました。そういうものなんですね。
わたしはネイティブなプログラマーではないのでCUIやコマンドなどにはうといので、出だしのインストールや環境づくりに、このあたりを多様するのがつまづいたきっかけなのかなと思いました。
もうすこしPython のやり方を学ぶ必要がありそうですね。
2016/02/02 14:37
横から失礼いたします。
> 今自分が打ったコードが即座に実行されてすぐに結果が返されるのでわかりやすいです。
これは、実は強力なことです。いろいろな場合に役に立ちます。まずは、「こんな文は Python 的に正しいんだろうか?」というのを即チェックできる点です。それから、これはちょっと発展なんですが、今作っているプログラムを途中まで読込んで、特定の場所で動作を一時停止してその状態で別の命令文を実行させるなど(デバッグ)の作業も簡単です。
最初は苦痛に感じることばかりだと思います(私はそうでした)。ですが、徐々に CUI などの利点は判ってくるのではないかと思います。(CUI 自体は、とても古くさいインターフェースではありますが・・・)
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
2
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
Pythonのいいところは他の方が書いてくださっていますが、他の言語を知らないと納得・安心できない面もあるかと思います。簡単なコード(関数)をいくつかの言語で書いてみると違いがわかりますが、プログラミングを始めたばかりだとそれは大変ですよね。
なので、色々な言語で同じ処理を書いているサイトで見比べてみるといいと思います。複数種類の言語のベンチマークを公開しているところだと、簡単な処理を異なる言語で書いていて、コードも公開されていたりします。
また、英語のサイトですが、RossetaCodeには本当にたくさんの言語で様々な処理のコードが公開されています。英語ですが、言語名を調べてコードを見比べるだけなら難しくないと思います。例えば、httpでwebサーバからデータを取得するコードなどはここにたくさんあります。
pythonのコードを引用すると、下記の二行です。
import urllib.request
print(urllib.request.urlopen("http://rosettacode.org").read())
この二行をPythonの対話環境で実行してみて下さい。(URLはそのままだと失敗するみたいなので、好きなURL、例えばhttp://www.google.com/
などに変えてみてください。)webページの情報が取得できているのが確認できると思います。
では他の言語はどうかというと、例えば有名なC言語だと
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
int
main(void)
{
CURL *curl;
char buffer[CURL_ERROR_SIZE];
if ((curl = curl_easy_init()) != NULL) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.rosettacode.org/");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, buffer);
if (curl_easy_perform(curl) != CURLE_OK) {
fprintf(stderr, "%s\n", buffer);
return EXIT_FAILURE;
}
curl_easy_cleanup(curl);
}
return EXIT_SUCCESS;
}
・・・長いですね。しかも対話環境がないので、一旦ファイルに保存し、コンパイルしてから実行する必要があります。よく見ると libcurl というライブラリも必要なようです。このライブラリも用意して使えるようにしなくてはなりません。pythonならpip ライブラリ名
でインストールできるのに、C言語だと・・・書いててちょっと気が滅入ってきました。
C言語はさすがに極端な例ですが、JavaScriptやRuby、PHPなどもあるので、良ければ見比べてみてください。(このあたりの言語は、このくらいの処理だとあまり違いがわかりませんが)
また、Pythonの強みの一つは、標準ライブラリが非常に豊富なことです。先ほどの例でも標準ライブラリのurllibを使用しています。しかも標準ライブラリのドキュメントはほとんど日本語に翻訳されています。始めたばかりだと使い方がわからないかもしれませんが、ちょっとした処理なら標準ライブラリでだいたいなんとかなります。
最後に、参考になるサイトを。公式サイトの日本語ドキュメントが実は非常によく書かれているのでおすすめです。ちょっとした参考書よりずっと量があるので、始めたばかりだとどこから読んでいいかわからないと思いますが、参考書で少し勉強したらチュートリアルを眺めてみてください。基本的な機能が簡潔に(少し簡潔すぎて他言語の経験者向けの嫌いもありますが)紹介されています。
また、言語の基本的な部分が理解できたら、標準ライブラリの2. 組み込み関数や4. 組み込み型をざっと眺めてみると、ライブラリ無しでできることが色々書かれていて勉強になります。例えば、「リスト」というデータ構造が参考書で出てくると思いますが、リストの機能(メソッド)はここに網羅されています。書かれていることは非常に多いので全て覚える必要はありません。ただ実際にプログロムを書いてみて、リストでこんなことしたいなー、と思った時に、forループで頑張る前にさっとここを眺めると実は必要な機能が組み込まれていたりするので、いきなり読むというよりは、辞書的なものとして存在を知っておくと便利です。
長々と失礼しました。少しでも参考になれば幸いです。
2016/02/01 21:37 投稿
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
1
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
私は Pythonista と言えるレベルではないですが、業務でも趣味でも Pytho でコードを書いたことがあり、好きな言語です。ちなみに、書いたことのあるプログラミング言語は 50 種類以上だと思いますし、10,000 行以上書いた言語も 20 種類くらいはあると思いますが、中でも Python は好きです。書いてて楽しいのが大きいです。逆の例でアレですが、業務でけっこう書くことのある PHP は書けますが、書いてて苦痛です。楽しくないので。
という私の話はさておき、Python を始められたとのことですが、プログラミングを始めようと思ったのはなぜなのでしょうか。そこが重要だと思います。
なんとなくプログラミングというものを学びたい、というのであれば、私のおすすめは Excel VBA と JavaScript です。
Excel は統合開発環境としてかなりよくできています。Excel を普段から使っている人にとっては、実際に役立つちょっとした機能を追加していけますのでモチベーションのアップにもなります。マクロの記録機能で手作業でやりたいことをやったものを記録し、そのコードをいじればすぐに汎用的なマクロが組めます。ネット上にも情報が多いのも強みです。
WEB アプリ系を考えるなら JavaScript もいいと思います。Google Chrome のデベロッパーツールなどを使えばデバッグも用意ですし。楽しみながら覚えるには JQuery も使うといいかな、と思います。
ご質問に直接答えていませんが、どうでしょう。
2016/01/30 19:01 投稿
コメント(2)
2016/02/01 12:51
unauさん
早速コメントいただき誠にありがとうございます。
50種類以上もの言語を習得された方が、Python を気に入っているとは Python の学習意欲がわきました。ありがとうございます。
unauさんがおっしゃるようにJavaScriptはいいかもしれませんね。最近いろいろできるといわれていますし。
わたしが Python を使いたかったきっかけは、 Cython を使いたいと思ったからで高速で動作するC言語をPythonの簡単さで使えると聞いたからです。
もともとC#を使っていたのですが、Pythonのほうが簡単そうでしたしいろいろな事に使えそうだなと思ったのが学び始めたきっかけです。
たしかに、目的を明確にするのは重要そうですね。それによって言語を切替えるみたいなこともあるかも知れないですし、なんとなくやっても良さを実感しにくいかもしれませんね。
2016/02/01 16:05
プログラミング初心者であれば、「高速に動作する」言語の選択は、最初あまり意識しないほうがいいのかな、と思いました。最初のうちの遅さの原因は処理系よりもデータ構造やアルゴリズムに依存することが多いでしょうし、最近のパソコンを使うのであれば相当重いデータを扱うとかむちゃくちゃ計算量の必要な処理とかでなければ遅くて困るということもないと思いますので。
「自分が使って役に立つものを作りたい」 and 「英語は勘弁」ということであれば、Python は難しいのかもしれません。「プログラミング自体を楽しみたい」というのであれば Python はよいと思います。
そういえば、今は Electron とかもありますし、JavaScript でデスクトップアプリも、という選択肢もありますね。私自身、ちょっと手を付けてみたいと思っています。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
0
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
【結論】Pythonの良さは?→「ハッカーが使う言語」という部分
pythonは「ハッカーが使う言語」というのを見たことがあります。
「ハッカー」という単語だけで使いたくなります。
「ブラッディーマンデー」という漫画・ドラマのハッカー(主人公)もpythonを使っていたそうです。
2016/02/01 22:17 投稿
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
0
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
ロボットを動かすのにPython使ってます。Raspberry Piという基板を中心にした組み立てキットが売ってて、PythonのAPIが用意されているので、楽しんでいます。写真は、実際に組み立てたロボット。対象年齢は13歳以上と書いてあったので、見た目の印象よりは難しくなかったです。
ココから取り寄せて購入。
http://www.dexterindustries.com/gopigo/
センサーだけなら秋葉原とか国内の通販で手に入る。
http://akizukidenshi.com/catalog/g/gK-09168/
2016/02/01 22:40 投稿
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
0
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
(曖昧な回答で大変失礼します)
具体的な良さは、質問者の方がお調べになっている本の記述や、こちらの回答に実に良く述べられていると思います。しかし、それでも、「でもそれって何が良いのさ?」とお考えになるお気持ちも、わかります。
スタートポイントとしての言語は、実はどのようなものを選択してもそれほど大きな影響はないのかもしれません。実際、私は Ruby からプログラミングを始めて、大学の研究テーマでの必要性から今は専ら Python を使っていますが、正直、どちらからスタートしても今の結果になったろうなぁと考えています。
強いて言えば、Python という処理系のもつ強力さもさることながら、メリットは、その文法の厳密さにあるかもしれません。Ruby や Perl ではこう書いても動いたのに、という文法の数多くが Python では通りません。誰が書いても同じようになるように (There's Only One Way To Do It)、というスローガンが言語の設計の背景にあるからです。
自分の体験なので一般化/断言はできませんが、コーディングスタイル(プログラムの書き方の作法に近いものと私は捉えています)に関する面白い利点もあります。それは、読みやすく明快なコードを意識して Python でコーディングを進めていけば、自然にその流儀を他の言語に応用できるようになっていくということです。私の例では、あまり習熟していない Java 言語を読み書きする必要に迫られたことがあったのですが、Python ではこう書く、という流儀が頭に思い浮かんだときに、それを素直に Java の文法 (型制約などは追加で考えなくてはならないですが) に置き換えたところ、(自分では)後から読んでも読みやすいコードを書くことができました。
正確さ・明快さというものを大切にしながらプログラミングに慣れ親しんでいきたいという方に、Python はお勧めできるのではないかと思います。
・・・要約すると、「Python でプログラミングを練習すると、自然に他の言語でも読みやすいコードを書けるようになる(かも)」ということですね。
2016/02/02 14:19 投稿
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
関連した質問
-
受付中
読んでおいたほうがいい本
エンジニアならこれは読んでおけ みたいな本を教えてください。
ほかにも読んですごく良かった本などでも知りたいです。

アルゴリズムの本や正規表現、TCP/IPなどなど
お願いします
-
受付中
どのようにOSなどの勉強をしたらいいですか?
1年ほど前からubuntuを使い始め、分からないながら色々やっていたのですが、1年たっても初心者から脱出ができません。

最近パソコンのシステム内部がどのようになってるか知りたくな
-
解決済
tensor flowのインストール
tensor flowをインストールしようと思っております
以下のページを参考にしているのですが
http://dev.classmethod.jp/machine-learnin
-
受付中
tensor flowのインストール
tensor flowをインストールしようと思っております
以下のページを参考にしているのですが
http://dev.classmethod.jp/machine-learnin
同じタグがついた質問を見る
- Python
492questions
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。
- Python 3.x
158questions
Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。
unau
2016/01/31 00:21
惚れ惚れするような回答ですね。