くだすれPython(超初心者用) その41【Ruby禁止】
: デフォルトの名無しさん [] 2019/02/04(月) 21:22:10.08:9MrdxUVg ★当スレにRubyのソースコード類を書くことを禁ず ☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは 辺りで 前スレ くだすれPython(超初心者用) その40 ttp://mevius.5ch.net/test/read.cgi/tech/1542874174/ "> ttp://mevius.5ch.net/test/read.cgi/tech/1542874174/ ◆PythonのHome Page ttp://http://www.python.org/ ◆まとめwiki ttp://python.rdy.jp/ ◆Pythonのソースコードをそのまま5ちゃんにコピペすると インデントが崩れるので こういうところ↓にはってきてください ttp://ideone.com/ Pythonするにはぷち手間あるのがめんどうかなぁ ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数を長めに指定しる。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#) −−−−天麩羅ここまで−−−− : デフォルトの名無しさん [sage] 2019/02/04(月) 21:24:34.59:Ly7rB5Pz 乙。スレタイ有能。死にさらせRubyキチガイ! : デフォルトの名無しさん [] 2019/02/06(水) 13:58:59.09:VRrkIzS/ test ttp://https://qiita.com/inoory/items/f431c581332c8d500a3b : デフォルトの名無しさん [sage] 2019/02/06(水) 16:12:14.30:259i/glJ 別スレでeel紹介してた人? 便利だね。サンクス。 : デフォルトの名無しさん [] 2019/02/06(水) 16:20:03.84:kcXvzDdu 使いどころが判らんな htmlというかブラウザ側で動くのと サーバー側で動くのがどっちもpythonで使えるのか? main.pyとmain.htmlのように同じPC上にないとだめなんか? : デフォルトの名無しさん [sage] 2019/02/06(水) 17:00:02.78:yKKjSk+N 乙.py : デフォルトの名無しさん [sage] 2019/02/06(水) 18:12:04.91:259i/glJ 単にデスクトップアプリのuiにhtmlcssjs使うデスクトップアプリ製作フレームワーク。 electronと一緒だって記事にも書いてあるじゃん。 electronではnodeで機能足せるのがpythonになってるの。 : デフォルトの名無しさん [] 2019/02/06(水) 18:27:41.22:kcXvzDdu アーナルほど : デフォルトの名無しさん [sage] 2019/02/07(木) 13:00:45.97:9upH9Gef ちょっと興味があってぐぐってみたけど、わしも使いどころが解らんかった。 普通にtkinterとかwxとかpyqt使ったほうが単純じゃないか?と思った。 「JavaScriptが好きでHTMLでui書き慣れててwxもqtも嫌い」って場合以外は、 デスクトップアプリ作るのには意味ないかなと思った。 違ってたら申し訳なし.... : デフォルトの名無しさん [sage] 2019/02/07(木) 13:37:35.24:9WOIINk0 廃止予定:Python 2.7は、2020年1月1日に寿命が尽きます。Python2.7は、それ以降は保守されないため、Pythonをアップグレードしてください。 pipの将来のバージョンはPython 2.7のサポートをやめるでしょう。 2.7、あと一年で本格的に終わるのね お疲れ様 : デフォルトの名無しさん [sage] 2019/02/07(木) 13:45:45.15:4+rWYqni 仕方ないから2.6に戻すか : デフォルトの名無しさん [] 2019/02/07(木) 15:24:05.72:GcZVZFC2 +1 禿同 QtでのQMLみたいな面倒臭さを感じる : デフォルトの名無しさん [] 2019/02/07(木) 15:26:41.81:GcZVZFC2 サポートは止めてもいいけど pip install とかは2.7でももうしばらく動くようにしておいて欲しいな : デフォルトの名無しさん [sage] 2019/02/07(木) 15:33:06.82:rayKezsC redhatが2024まで2系をサポートするというのをどこかで見たな : デフォルトの名無しさん [sage] 2019/02/07(木) 15:59:01.34:WgEqFIwz json とかJavascript の描画アプリを使い慣れた人にとっては使いやすいんだろう。 HTMLアプリと考えた方が早いかも。 HTMLを作成できる人間は履いて捨てるほどいるから誰かに画面を作らせておいてチョコチョコとプログラムを乗せる感じかな。 : デフォルトの名無しさん [] 2019/02/07(木) 18:17:16.79:uA3OyGbS vscodeでpythonをつかっていて pythonターミナルで選択範囲を実行とかREPLを起動とかしたときになんか長いアドレスが表示されてそのあとに>>>とかでてくるとおもいます これをすっきりするのは -------------------- REPLとかpower shellでプロンプトにながいアドレスが表示されるのを消すのは C:\Users\???\Documents\WindowsPowerShell ここに Microsoft.PowerShell_profile.ps1 こういう名前のファイルをつくって function prompt () { " > " } 中にこれを書き込んで保存するとアドレスを消すことができました : デフォルトの名無しさん [sage] 2019/02/07(木) 19:01:01.31:0OqEFMu2 RHEL7がメンテナンスサポート終了する2024年まではサポートやめられないわな : デフォルトの名無しさん [sage] 2019/02/07(木) 19:12:39.70:9WOIINk0 redhat linuxだっけ?CentOSかなんかだったような・ oython2.xに3.xのアップデートを掛けて延命するって情報があったね : デフォルトの名無しさん [sage] 2019/02/07(木) 21:23:41.01:FOK6sArX redhatのソースでcentosできてるんだから同じ事じゃないか? : デフォルトの名無しさん [sage] 2019/02/07(木) 21:31:05.87:THO4TdjW オイソンて何 : デフォルトの名無しさん [sage] 2019/02/07(木) 21:31:09.45:9WOIINk0 あ、そっかw アホな事いった、すまん : 工学部生 [] 2019/02/07(木) 23:21:03.17:ghrPTIJv このスレに、検索エンジン自作できる人いますかね? phpとかweb系の知識とpython正規表現の連携が出来ないといかんけど。 : デフォルトの名無しさん [sage] 2019/02/08(金) 00:17:05.96:pxF4wnXP いやElasticsearchとか使うでしょ : デフォルトの名無しさん [sage] 2019/02/08(金) 15:43:50.58:p2edXzAx プログラムはまあまあの経験はあるが、全く初めてPython に触れる人向けのオススメ本は何かな? 1週間くらい前からネットの超入門あたりを見て、ちょろちょろと動かして感触はつかめたが、まだ文法自体全く見ていない。 必要なところだけ検索してサンプルプログラムを動かしてる段階。 たまたま見つけた武庫川女子大学の先生(中村 勝則)が描いてる、これで始めようかなと思ってる。 なんか題名が仰々しいが頭の方を眺めた感じ良さそうだった。 Python3 入門 Kivy による GUI アプリケーション開発, サウンド入出力, ウェブスクレイピング 第 0.94.5 版 ttp://https://qiita.com/KatsunoriNakamura/items/b465b0cf05b1b7fd4975 : デフォルトの名無しさん [sage] 2019/02/08(金) 20:56:34.17:gsD2xyia ブログラム経験はまあまあ あるなら自分で考えろやバカ : デフォルトの名無しさん [sage] 2019/02/08(金) 21:12:58.20:LXek31WR オライリージャパンの入門python3あたりでいいんじゃないか? ちょっと古いかもしれないが 公式ドキュメントが充実してるからネットでそっち見るのもいいけどな : デフォルトの名無しさん [sage] 2019/02/08(金) 23:15:40.97:T40Tl9cE >あるなら自分で考えろやバカ 笑ったが、ゆとり教育を受けたゆとりはともかく他人に(クレクレと)尋ねる人間なる で、一度染みついたゆとり教育行動は一生続ける行動になる。 あと、自分で考えて(見て)中村 勝則でまぁ良いんじゃねと目下なっている まぁ、タダと言うのが選んだ大きな要因な気がするが >これで始めようかなと思ってる なら、それでやれば良いんじゃないのか : デフォルトの名無しさん [sage] 2019/02/08(金) 23:24:26.33:LXek31WR 初心者スレでイキりすぎだろこいつら : デフォルトの名無しさん [sage] 2019/02/08(金) 23:34:15.62:T40Tl9cE ここは超初心者スレ。 初心者でも並みの奴からすれば激しくレベル低い奴のスレだからな 俺、工学部生、ルビー君のような超変な奴(基地外、超ゆとり、超低脳)がいっぱい。 そんな奴はちょっとしたことで激イキりたくなる : デフォルトの名無しさん [sage] 2019/02/08(金) 23:34:46.44:LXek31WR 天開司「おでんと冷やの間を行き来するのがいいんだよ 反復横跳びみたいにな つまみ回の体力測定だな」 なんか前のおせち回を思い出して不安になってくるんやが : デフォルトの名無しさん [sage] 2019/02/08(金) 23:35:12.10:LXek31WR 誤爆しちゃったテヘペロ : デフォルトの名無しさん [sage] 2019/02/08(金) 23:38:28.21:LXek31WR やれやれ 学生と社畜プログラマは大変だな 俺たち日曜プログラマーはティック・タック・トーでも作ってキャッキャさせてもらうぜ : デフォルトの名無しさん [sage] 2019/02/09(土) 00:18:44.25:cZknnG+A が提示した本は大学生向けだろ。 大学生向けでも良いって奴ならどの入門書でもOKだろ。 普通、このスレでおすすめ本教えてと尋ねられた場合の本は小学生レベルの本だし : 24 [sage] 2019/02/09(土) 00:22:05.58:VrkeVQvn 色んなご意見ありがとうございます。 とにかく先ずはやってみます。 久しぶりに文法書を見ると面白そうですね。 旧式の言語なのかと思ったら、しっかり最近の思想も入ってて。 1週間くらい前にPythonの人気ランキングが上がってると言う記事を見て興味を持ち調べ始めたところです。 取っつきやすいのは抜群ですね。 昔々のBASICを思い出しました。 しかし奥が深そう。 暇なので、70の手習いを始めました。 : デフォルトの名無しさん [sage] 2019/02/09(土) 10:17:29.38:COL94ClU pandasをインストールして下記コードを実行したところエラーになりました ・コード import pandas as pd df = pd.read_csv('test.csv') ・エラーメッセージ 'parsers.pyx'を開くことができません: ファイルが見つかりません (file:///d:/(略)/pandas/_libs/parsers.pyx) このメッセージでググりましたが同様の症状は見つけられませんでした parsers.pyxというファイルはPC内に無いようなのですがどうすれば良いんでしょうか : デフォルトの名無しさん [sage] 2019/02/09(土) 10:51:27.42:vFLtltfz インストールに失敗してそう ディスク容量が足らないとか : デフォルトの名無しさん [sage] 2019/02/09(土) 10:58:51.69:COL94ClU pip --no-cache-dir install -I というのでpandasを再インストールしてみましたが変わりませんでした なおPython36フォルダはC直下にあるのですが、Cドライブは60GBの空きがあります : デフォルトの名無しさん [sage] 2019/02/09(土) 11:36:44.62:O6W3Dl2k CドライブにPythonディレクトリがあるのにモジュールはDドライブを見に行ってるみたいだが : デフォルトの名無しさん [sage] 2019/02/09(土) 11:37:53.32:O6W3Dl2k os.path上にpandasとかいうディレクトリがあってモジュールとして認識されてんじゃないの : デフォルトの名無しさん [sage] 2019/02/09(土) 11:39:25.75:O6W3Dl2k でもその場合はimportエラーかread_csvがメソッドじゃないってエラーになるか じゃあ違うな : デフォルトの名無しさん [sage] 2019/02/09(土) 19:50:32.61:NkGmKmjK 70だと… : デフォルトの名無しさん [sage] 2019/02/09(土) 20:30:57.71:cZknnG+A >file:///d:/(略)/pandas/_libs/parsers.pyx >parsers.pyxというファイルはPC内に無いようなのですがどうすれば良いんでしょうか parsers.pyxをネットから持ってきて、そこに入れれば良いんじゃないのか : 24 [sage] 2019/02/09(土) 21:04:21.27:GcgAqiym 結構まだいけるよ。 ただ記憶力は衰えてるからなんでもメモして検索してるけどね。 検索が無かったら多分何もできなくなってただろうな。 経験のプラスと記憶力のマイナスでそこそこもう少し遊べるかなと。暇だもん。 久しぶりに勉強する事でアドレナリンが吹き出してきた。 : デフォルトの名無しさん [sage] 2019/02/09(土) 23:34:09.13:vFLtltfz work aroundとしてはありかも知れないが 普通にインストールしたら起こらないエラー出してる時点でインストールから見直すべきだなぁ そもそものWindowsのpythonはどうインストールしたんだろうか : 24 [sage] 2019/02/10(日) 01:21:19.18:OTf+aZMg 文法書を読み始めたところだが、fraction なんて目から鱗みたいな概念だな。 あって当たり前だったと思うが、初めて見た。 分子、分母共に整数で取り扱うから桁数の制限ないし。 : 35 [sage] 2019/02/10(日) 01:32:10.98:LUYrGpOP Githubのpandasページからparsers.pyxをDLしてきて 問題のpyファイルのあるディレクトリにpandasフォルダ、その中に_libsフォルダを作成し その中に配置して実行したところ、今度はparsers.pyxの中でUnicodeDecodeErrorとなりました ただ、こういったやり方(pyファイルのあるディレクトリにフォルダを作って外部ライブラリが必要とするファイルを配置する)って あまり一般的では無いように思うのですが、pythonでは普通なのでしょうか? python公式から落としてきた3.6.5をインストーラ使用でインストールしました コーディングはVSCodeです python本体はC:\Python36に、VSCodeでコーディングしているファイルはDドライブ配下に保存してます : デフォルトの名無しさん [sage] 2019/02/10(日) 01:35:52.26:LUYrGpOP 追記です インストールしているpandasのバージョンは0.24.1です : 24 [sage] 2019/02/10(日) 01:39:19.26:OTf+aZMg print('abc\ndefg') print("abc\ndefg") このエスケープシーケンスの改行が効かないんだけどなんで? jupyter : 35 [sage] 2019/02/10(日) 01:47:44.38:LUYrGpOP 何度もすみません 自己解決しました どうもtest.csvの文字コードがShift-jisだったことが原因ぽいです UTF-8にして保存しなおしたらエラーは出ず、print()で中身の出力もできるようになりました でエラーとなったparsers.pyxが無くても大丈夫でした : デフォルトの名無しさん [sage] 2019/02/10(日) 10:39:30.06:cu5Yhqfv 行ごとにある文字列と一致する要素の数を数え上げるコードをかきたいです。 ttp://https://note.nkmk.me/python-pandas-count-condition/ を参考に(そのままに)して次のようなコードを書いてもエラーがでます。 以下で使用するsample_pandas_normal.csvファイルのURLは ttp://https://raw.githubusercontent.com/nkmk/python-snippets/df339a7fdbc65d1a7a310103a0f4a795dc3321a5/notebook/data/src/sample_pandas_normal.csv です。 ---------- import pandas as pd df = pd.read_csv('./sample_pandas_normal.csv') df_bool = (df == 'CA') print(df_bool) ---------- 実行すると TypeError: Could not compare ['CA'] with block values とでます。csvファイルはきちんとフォルダの中に入れてあります。 上にあげたサイトではきちんと実行できているようなのですが、 どこが間違っているのかわかりません。教えてください。 : デフォルトの名無しさん [] 2019/02/10(日) 16:50:44.55:25jgEgQt 馬鹿には無理 : デフォルトの名無しさん [sage] 2019/02/10(日) 17:25:24.08:cXpJ+uYj いいんじゃない : デフォルトの名無しさん [sage] 2019/02/10(日) 18:12:21.68:L/vUvPOU df_bool = (df['state'] == 'CA') : 50 [sage] 2019/02/10(日) 21:14:19.67:Y9k8mhjm 自分がやろうと思っている処理は複数列に 'CA' がでてきて それを行ごとに何度でてくるかを数え上げるプログラムを書こうと思っています。 df_bool = (df['state'] == 'CA') とすればうまくいくことはわかっていましたが、それでは1列しか処理できないので 不適当です。のwebサイトには df == 'CA' でやっていたので いけるはずだと思っていたのですが、うまくいきませんでした。 結局forループと転置を使って1列(1行)ごとに処理していくことにしました。 : デフォルトの名無しさん [sage] 2019/02/10(日) 21:33:05.31:L/vUvPOU 普通にできるはずだからエラーをそのまま貼れない? : デフォルトの名無しさん [sage] 2019/02/10(日) 21:35:40.54:dMPfr/mY バイオリンダンスロボットダンスええやん : デフォルトの名無しさん [sage] 2019/02/10(日) 21:35:58.69:dMPfr/mY 誤爆 : デフォルトの名無しさん [sage] 2019/02/10(日) 21:49:45.76:L/vUvPOU あ、上にエラーあったね pandasのバージョンが古そうだ 少なくとも0.23.4では問題はないよ : デフォルトの名無しさん [sage] 2019/02/10(日) 21:52:17.40:QHXP4+rK Ruby では、gem, bundler のprivate install で、 各プロジェクトのプロジェクトフォルダ内にのみに、インストールできる 一方、global install では、Windows・Ruby 2.4 では、 c/Ruby24-x64 以下のRuby 環境に入る。 例えば、 gem "sqlite3" で、Ruby リポジトリから、以下の共有ライブラリをダウンロードして入れてくれる c/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.4/sqlite3_native.so Ruby のbundler, Node.js のnpm, yarn などは、global・private install を切り替えられるシステム。 Python にも、同様のパッケージマネージャーがあるかどうかは、わからないけど : デフォルトの名無しさん [sage] 2019/02/10(日) 22:00:17.41:2rmZRARw 何それ? 楽しそう! : デフォルトの名無しさん [sage] 2019/02/10(日) 22:04:17.41:scT3207q 5ちゃん住人のrubyへのヘイトが貯まりまくってどんどんrubyユーザーが減っていくね。おめでとう、君の活躍のおかげだよ : デフォルトの名無しさん [sage] 2019/02/10(日) 22:14:03.23:Z3H3Tv4Q スレタイ嫁 : デフォルトの名無しさん [sage] 2019/02/10(日) 22:17:30.83:KoYwv+8z わかんねーなら黙ってろポンコツ : デフォルトの名無しさん [sage] 2019/02/11(月) 00:11:44.05:f3xbC2Z2 仕様変更が原因と言うことかな? : デフォルトの名無しさん [] 2019/02/11(月) 05:48:35.50:hBL+nG4l pycharm利用ですが、shift+f10が反応しません。alt+shift+f10は使えるのですが。 windows10,pcはlenovoです。 : デフォルトの名無しさん [sage] 2019/02/11(月) 07:54:41.81:3Jv7Z+yl 捨てろ : デフォルトの名無しさん [sage] 2019/02/11(月) 10:17:13.46:QKPibkAC pythonってOSSのパッケージを使わなきゃゴミみたいな印象なんですが こんなすごいパッケージがあるぞ的なことはどこで勉強してるんですか? : デフォルトの名無しさん [sage] 2019/02/11(月) 11:19:21.82:orvgrbQL 知らね : デフォルトの名無しさん [sage] 2019/02/11(月) 11:42:03.69:rLkbUlEC 何か目的があってそれに必要なパッケージはググればすぐに見つかると思う むしろ目的なくpython流行ってるからで始めてしまうとパッケージ難民になる : デフォルトの名無しさん [] 2019/02/11(月) 12:02:56.85:itY+kGJR その基準だとRubyもCもゴミだな : デフォルトの名無しさん [] 2019/02/11(月) 12:29:36.90:CcePy3Nj 目的ありきでやってると調べるうちに自然と辿り着く : デフォルトの名無しさん [] 2019/02/11(月) 12:33:52.27:itY+kGJR 出会いが無ければ御縁が無かったということだ : デフォルトの名無しさん [sage] 2019/02/11(月) 12:42:06.89:QKPibkAC 最初から目的ありきならそれでいいかもしれませんが必ずしも目的があるとは限りません パッケージが出来ることからビジネスにつなげる逆方向のパターンも世の中には存在するからです : デフォルトの名無しさん [sage] 2019/02/11(月) 12:52:03.92:fMjwAL+6 >必ずしも目的があるとは限りません これただの暇人じゃん : デフォルトの名無しさん [sage] 2019/02/11(月) 13:10:11.15:kQCK5fGz コンピュータゲームを作ったのはその暇人たちだったな : デフォルトの名無しさん [] 2019/02/11(月) 14:58:51.45:CcePy3Nj ゲームを作るっていう目的を持ってるやん : デフォルトの名無しさん [sage] 2019/02/11(月) 15:18:59.57:kQCK5fGz 初期のコンピュータゲームは大学の研究用のコンピュータを勝手に使って暇つぶしの一環として作られた 数年前に死んだAI研究者マーヴィン・ミンスキーが発見したミンスキートロンに代表されるPDP-1のディスプレイハック それに魅了された「のろすけ」ラッセルが本業そっちのけで作り出し、他のハッカーたちが面白がって機能を追加していったのが 最初期の対戦型コンピュータゲーム「宇宙戦争」ってわけだ プログラミングっていうのはぶっちゃけそう大したものじゃない 暇つぶし程度でいいんだよ : デフォルトの名無しさん [sage] 2019/02/11(月) 17:19:02.28:gC4YDX1g ニートならそれでもノープロブレムだろうけどさ デベロップメントはビジネス上のイシューからスタートしないとプロダクトアウトになって ソリューションのセールスがナイトメアになるのよボーイ : デフォルトの名無しさん [sage] 2019/02/11(月) 17:31:49.74:OKO2G8Ao ルー大柴はどっかいけ : デフォルトの名無しさん [sage] 2019/02/11(月) 19:39:43.56:rLkbUlEC ニーズとシーズのマッチングってやつかなぁ そのコンセプトでいうならパッケージという細かい概念じゃなくて、Pythonはどんな事が得意ですか、と聞くべきだなぁ : デフォルトの名無しさん [] 2019/02/12(火) 02:23:03.62:xDY2FToe Pythonって機械学習とセットで勉強しないとあまり意味がない? 特につくりたいものがあるわけじゃなく就活時に役立てたいっていう理由で学ぼうとしてるんだけど : デフォルトの名無しさん [sage] 2019/02/12(火) 02:29:06.75:xM7yD0R2 分かってないなぁ Pythonはあくまで何かしらの専門領域のライブラリを使うためのホスト言語であって。 Pythonそのものを学ぶなんて笑っちまうわwww 言語には胸襟ただして学ぶような小難しいとこないじゃんwww : デフォルトの名無しさん [sage] 2019/02/12(火) 02:34:05.82:sv506HrS 何の分野に進むかによる プログラマ以外がpythonを使うことはない それよりもエクセルとvba覚えておと普通に役に立つ 後はjsを使えるとスクレイピングで役立つことがある 自己アピールで使いたいなら機械学習がキャッチーでいいかもな コード書かなくてもモデルやら作れるサイトがあるから、そういうの触っておくと話のネタぐらいにはなるかも知れない しかも微妙に特殊なのがねぇ ぴゃーって書くならC#でゲームでも作ったほうが良いし、 phpでwebサイト作る方が短時間で成果が出る : デフォルトの名無しさん [sage] 2019/02/12(火) 07:19:51.84:EEP8zHaj と思ったキモオタであった : デフォルトの名無しさん [sage] 2019/02/12(火) 09:03:12.80:FKAIOJhy 就活時に役立てるとしたら 使ったこともない言語をゴミ呼ばわりしてしまう口の悪さを治すことかな 自分の知らない事を全部見下してそう : デフォルトの名無しさん [sage] 2019/02/12(火) 09:45:33.70:n9nKxlWw そもそもその程度も自分で判断できないような奴は メダカの学校の先生くらいにしかなれねえよ : デフォルトの名無しさん [sage] 2019/02/12(火) 10:28:51.51:eC1lEXzI カナヅチだから無理。 : デフォルトの名無しさん [] 2019/02/12(火) 11:27:38.96:8lolhehX 88 : 工学部生 [] 2019/02/12(火) 12:33:05.90:rvJokjFw >何の分野に進むかによる プログラマ以外がpythonを使うことはない JPモルガンやゴールドマン…投資銀行がトレーダーに「Python」を教える理由 ttp://https://japan.zdnet.com/article/35132512/ : 工学部生 [] 2019/02/12(火) 12:35:46.21:rvJokjFw 問題 l = [ [ 1,3,2,7,4 ], [ 4,7,2,4,9 ], [ 8,0,6,1,9 ] ] なお、このリストは各要素ごとに一行ずつのデータとし、全部で3行のデータとする。 各行ごとに5つづつのデータで構成される。 hint 1) 保存される CSV ファイルは下記のようになる。 1,3,2,7,4 4,7,2,4,9 8,0,6,1,9 次に、"test.csv"を読み取り、CSVファイルから数値情報を抽出しなさい。 さらに各行ごとの合計を出力しなさい。(注: 保存前のリストによる合計ではない。) hint 2) 17 26 24 の3つの数値が得られる。 hint 3) 保存されたデータは文字列になっているので、足し算をするために数値化する必要がある。 : 工学部生 [] 2019/02/12(火) 12:36:54.61:rvJokjFw の答え #解答欄 l = [ [ 1,3,2,7,4 ], [ 4,7,2,4,9 ], [ 8,0,6,1,9 ] ] # l を CSV ファイルに保存する with open("test.csv", "w") as f: for x in l: f.write(",".join([str(a) for a in x]) + "\n") # CSV ファイルからデータを取り込み、各行の合計を表示する with open("test.csv", "r") as f: for x in f: each = x.strip().split(",") sum = 0 for y in each: sum += int(y) print(sum) : 工学部生 [] 2019/02/12(火) 12:38:43.95:rvJokjFw f.write(",".join([str(a) for a in x]) + "\n") each = x.strip().split(",") このあたりがわかりません。 : デフォルトの名無しさん [] 2019/02/12(火) 13:08:13.97:8lolhehX これで充分 ','.join(str(a) for a in x) : 工学部生 [] 2019/02/12(火) 13:34:12.44:rvJokjFw ワシのプログラミング授業歴 1浪→今の私大工学部電気系に入る→ 1年目で1留→プログラミング前期はなんとか単位を取るも、プログラミング後期を 再再履修し、Cの応用プログラムが理解できずに死亡していた 泣きっ面に棚から牡丹餅で、プログラミング講師「今年からプログラミング後期はPythonやります」 と天の救いがあった。留年とかした甲斐があったというものだ。 でpythonはCみたいなどうしようもない難解とは違い、 「やればやっただけ上達する」ような感触を受けた。 今回は落ちたかもしれないが、次は必ず仕留める。 : 工学部生 [] 2019/02/12(火) 13:40:34.21:rvJokjFw それに書き換えてみましたが、 実行結果が184 となり 下の答えとは違ってきました。 17 26 24 : 工学部生 [] 2019/02/12(火) 13:45:24.25:rvJokjFw +"\n"をそのあとに付けたらつまくいきました。 []は無駄なようですね。ありがとうございます。 : デフォルトの名無しさん [sage] 2019/02/12(火) 15:06:06.19:QzLgc2xe 書き込みを全般的に見てて思うけど、小さい単位に分割して実験する事を覚えた方が良いかな カッコの中だけ実行する、演算子の片方のみ実行するとかね 例えば f.write(",".join([str(a) for a in x]) + "\n") が分からない場合には print (",".join([str(a) for a in x]) + "\n") を試して、次に print (",".join([str(a) for a in x])) を、試して、さらに print([str(a) for a in x]) を追加して実験してみる 聞く回数も減るし理解も早いと思う : デフォルトの名無しさん [] 2019/02/12(火) 15:09:35.02:JhZhtSe3 独学プログラマー読んでるけどtwitterで翻訳者がつぶやいててうざい たかが翻訳しただけなのにまるでじぶんが書いたみたいに反応してる 勘違いしてるよね 翻訳がすごいから売れたんじゃないの 勘違い翻訳者うざすぎー : 工学部生 [] 2019/02/12(火) 15:52:05.30:rvJokjFw 貴重なアドバイスありがとうございます。 : デフォルトの名無しさん [sage] 2019/02/12(火) 15:56:19.85:sv506HrS なっちゃんって偉大な翻訳家がいてな・・・ 翻訳にも上手い下手はあるんだよ 少なからず売上も左右するだろう : 工学部生 [] 2019/02/12(火) 16:03:02.03:rvJokjFw プログラムを入力するときはロックを組み立てていくが、 エラーを解析するときはブロックを崩していくというイメージか。 : デフォルトの名無しさん [] 2019/02/12(火) 23:21:44.95:0srnSPAN Multiprocessingを使った処理をしたいと思ってごくごく簡単な例文をコピペして動かしてみたのですが,期待される出力がコンソール上に出ません. 一方,すこし複雑な(いくつかのプロセスを平行させても1秒ぐらいかかるような処理)例文を動かすと,出力は出ませんがCPUの稼働率的にはすべてのコアが均等に働いているようでした. Multiprocessing自体はうまく働いているものの,なんらかの理由で個々のプロセスがコンソールに出力するのが制限されているような挙動ですが,これを出力させるにはどうすればよいでしょうか? 環境はPython3.6.1で,標準のIDLEを使っています.CPUは4コアの6700Kです. よろしくおねがいします. : デフォルトの名無しさん [sage] 2019/02/12(火) 23:41:25.12:1FBNx7PM multiprocessingで並行処理させてる関数内からprintしたときは 直後にsys.stdout.flush()しないと反映されない : デフォルトの名無しさん [] 2019/02/12(火) 23:51:39.90:0srnSPAN ありがとうございます. それ自体では解決しませんでしたが,関連事項でググったらIDLEが悪いということが分かりました. : デフォルトの名無しさん [sage] 2019/02/13(水) 09:52:03.63:ik/h3+HJ 初歩的な質問なんですが 画像の顔部分の切り出しをしていて分からない部分があります 以下簡単な例に置き換えたものになります import numpy as np test = np.array([1, 2, 3, 4, 5]) print(test[1:1 + 3]) >>>[2, 3, 4] と表示されます これはどういう考え方をすれば良いのでしょうか print(test[1:1]) では何も表示されませんが+3する事で表示されているのが良くわかりません : デフォルトの名無しさん [sage] 2019/02/13(水) 10:19:47.85:FsWI4s/7 pythonの仕様 このあたりを参照するといいよ。 ttp://http://d.hatena.ne.jp/yumimue/20071205/1196839438 : デフォルトの名無しさん [] 2019/02/13(水) 10:23:11.88:M8PJWiFY test[m:n]はm〜n-1番目までを切り出す : デフォルトの名無しさん [sage] 2019/02/13(水) 11:33:48.61:0cDEleYh [1,2,3,4,5] の要素は [0]~[4] print(test[1:1 + 3]) は print(test[1:4]) は [1] ==2 から [4-1]==4 まで >>>[2, 3, 4] : デフォルトの名無しさん [sage] 2019/02/13(水) 11:36:12.68:0cDEleYh もし先頭だけをprintしたいのなら print(test[0]) または、print(test[0:1]) : デフォルトの名無しさん [sage] 2019/02/13(水) 11:36:56.12:N2s3vUnw スライスの開始値は含めるけど終了値は含めないという指定は、最初違和感あったな : デフォルトの名無しさん [sage] 2019/02/13(水) 12:44:57.49:pbkwul76 俺もいまだに違和感ある a=['お','ま','ん','こ']でa[0,2]だと['お','ま','ん']にして欲しいよな。 確か、数直線で考えるらしい..... 0 1 2 3 4 +ー+ー+ー+ー+ お ま ん こ で、[0:4]だと「お〜こ」になるとのことだった。でもa[4]はエラー.... : デフォルトの名無しさん [sage] 2019/02/13(水) 14:58:46.57:os3OGdBG ゼロベース配列という事で、i以上j未満はポインタ演算を考えると自然 (j-i)個の切り出し、終端ポインタ-先頭ポインタは何要素といった具合 : デフォルトの名無しさん [sage] 2019/02/13(水) 15:03:23.54:kDMwAzYp IoTやるのがPythonなのって理由ある? Cじゃダメなのv : デフォルトの名無しさん [] 2019/02/13(水) 15:09:37.55:MhIfo+Ct ポインタとか使う言語だと、そもそもendじゃなくて個数指定になってるじゃん。 : デフォルトの名無しさん [sage] 2019/02/13(水) 15:20:36.92:ik/h3+HJ です 回答頂いた方ありがとうございます test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか 演算子が入ってるのを初めて見たので計算した上で扱うとは思いませんでした : デフォルトの名無しさん [] 2019/02/13(水) 15:49:18.21:R/LRwZLt 「1番目から始めて3文字取り出す」という事を明示するために敢えて1+3と書いたんだろう : デフォルトの名無しさん [sage] 2019/02/13(水) 16:03:01.37:hD8BupCP トッポい著者だなぁw : デフォルトの名無しさん [sage] 2019/02/13(水) 16:03:03.58:0cDEleYh 初心者からプロまで使える科学技術計算の新定番 IoT時代にPythonをオススメする理由 ttp://https://interface.cqpub.co.jp/wp-content/uploads/interface/2016/10/if10_012.pdf/wp-content/uploads/interface/2016/10/if10_012.pdf PythonだけではIoTできない理由 - ウィリアムのいたずらの開発日記 ttp://https://blog.goo.ne.jp/xmldtp/e/ab0c195ea5a20a1549c13587d13a952d <<しかし pythonでも Cythonを使えばCでコンパイルしてくれる <<Raspberry Pi なら素のpython も使えるしセンサーもアクセスできる PICと楽しむ Raspberry Pi活用ガイドブック ttp://https://gihyo.jp/book/2017/978-4-7741-8919-2 最低限必要なLinux・Pythonの知識まで収録しています。 IoTを使って畑を監視する ttp://https://tech.recruit-mp.co.jp/iot/farm-monitoring-with-iot/ TwilioとAWS IoTボタンを使った子供のトイレ訓練 ttp://https://postd.cc/iot-poop-button-python-twilio-aws/ この場合 IOSやAndroidから電話をかけてボタンを操作している : デフォルトの名無しさん [sage] 2019/02/13(水) 16:21:24.81:kpYtZ0RT AIカーが来てる! 自動運転でラジコンカーを走らせよう! ttp://https://weekly.ascii.jp/elem/000/000/422/422742/ おもちゃの自動車がAI で動く時代。 これもRaspberry Pi とpython で学習して自動運転してる。 AI と言ったらpython : デフォルトの名無しさん [] 2019/02/13(水) 18:26:41.20:QnNf1eu6 test[1:-1] test[:-1] test[1:] 違いを説明汁 : デフォルトの名無しさん [sage] 2019/02/13(水) 23:08:42.70:5Y5rGgZv >test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか 俺も超初心者だからお前が疑問に思っていることがなんとなくわかる 1 + 3の+は演算子。で、[x:y:z]の:は何なんだと? ひょっとして :も演算子? でもって、[1:1 + 3]の時、:と+どっちが優先順位高いんだ?わかんね。 で、レス見ると、どうも+の方が優先順位高いと。つまり、優先順位を明示した[1:(1 + 3)]になると。 : デフォルトの名無しさん [sage] 2019/02/13(水) 23:35:56.49:Fldw1X0G :は演算子じゃなくて区切りだろ そんなもん実験すればわかる : デフォルトの名無しさん [] 2019/02/13(水) 23:43:48.56:5Y5rGgZv そうなのか? 俺は勝手に俺命名してスライス演算子とか言っているが で、スライス演算子は算術演算子の+より優先順位が低いと : デフォルトの名無しさん [sage] 2019/02/13(水) 23:49:32.46:jwc/pNVH slice notation スライム記法 : デフォルトの名無しさん [sage] 2019/02/13(水) 23:51:50.74:os3OGdBG リファレンスではデリミタとされる、Pythonでは代入が文なのでそれもかな ttp://https://docs.python.jp/3/reference/expressions.html#evaluation-order : デフォルトの名無しさん [sage] 2019/02/13(水) 23:55:22.49:jwc/pNVH 代入が単独で文なのって何か故あってのことなの?わりと珍しいよね? : デフォルトの名無しさん [sage] 2019/02/14(木) 00:02:35.62:xnVOqrv0 スライスって言葉がすぐに出てこない、当然なが関数のslice()も出ないって 超初心者の俺ららしいよな ttp://https://stackoverflow.com/questions/31501806/what-does-the-slice-function-do-in-python : デフォルトの名無しさん [sage] 2019/02/14(木) 00:18:16.01:RyxU72PZ いわゆるペンタックスソルトってやつか。 : デフォルトの名無しさん [] 2019/02/14(木) 08:02:20.55:NaDvAh4C 3.8から代入式も使えるようになるらしい : デフォルトの名無しさん [sage] 2019/02/14(木) 09:03:20.99:wJ5vrran シンタックスシュガー 糖 衣 構 文って奴か シンタックスシュガー 糖 衣 構 文を使うと超初心者にはわかりやすくなるけど シンタックスシュガー 糖 衣 構 文の裏側で実際どのような挙動をしているのかわかりにくくなるのが欠点だよな シンタックスシュガー 糖 衣 構 文はかしこく使っていきたいと思った : デフォルトの名無しさん [] 2019/02/14(木) 13:23:14.58:b/dX4O0G pandasとかnumpyの[:;:]使うともっと混乱する : デフォルトの名無しさん [sage] 2019/02/14(木) 18:52:34.90:/0O1t9cs いや、昔の言語はそれが普通 C言語辺りから代入文が値を持つような言語が増えた : デフォルトの名無しさん [] 2019/02/14(木) 23:06:52.19:Qyh3gh4h 初めて見た時は驚いた : デフォルトの名無しさん [] 2019/02/15(金) 04:14:44.86:aMcTHSTs A=B=C=0 みたいな : デフォルトの名無しさん [] 2019/02/15(金) 11:55:58.42:Lyn3hfe5 pipってPythonのidleからうごかせないからいらいらしてたんだけども teratailっていうサイトでpipはコマンドプロンプトでうごかすような仕様ですって説明あったからあたまのなかがすっきりした : デフォルトの名無しさん [sage] 2019/02/15(金) 12:13:07.08:vj4wf1O1 Python はとっつきやすいが、奥が深いな。 一通りの文法をある程度使いこなせるようになるまでどのくらいの時間がかかるんだろう。 2〜3か月と書いてるサイトが多い様だが 例えば、 Python チュートリアル (原文の電子書籍版は120ページだった) ttp://https://docs.python.jp/3/tutorial/ の全て Python 標準ライブラリ ttp://https://docs.python.jp/3/library/index.html#library-index の1〜16 を読み込むだけだとどのくらいの時間? Python 言語リファレンス ttp://https://docs.python.jp/3/library/index.html#library-index は必要に応じて参照。 と思ったが、言語リファレンスを見るとset だけでもかなり奥が深いな。 チュートリアルではほんのさわりしか触れていない。 このチュートリアルだけでは本当の入り口入門だな。 でもこのレベルをまず理解しないと挫折してしまうだろうな。 言語リファレンスに書かれたすべてについて書かれたチュートリアルは有るのだろうか? 膨大なページになるだろうが。 オライリーの Pythonチュートリアル 第3版 も入門用みたいだな。 (260ページ) 無料で読めるデータ分析に役立つ Python の電子書籍まとめ ttp://https://qiita.com/ynakayama/items/8ed2854bcc3c3633345b Dive Into Python 3 日本語版 ttp://http://diveintopython3-ja.rdy.jp/index.html これは少し踏み込んでいるね。 プログラミング経験者向けのPythonの入門書 495ページ の Python3 入門 は 241ページ ttp://https://qiita.com/KatsunoriNakamura/items/b465b0cf05b1b7fd4975 : デフォルトの名無しさん [sage] 2019/02/15(金) 12:56:54.47:vj4wf1O1 ttp://https://docs.python.jp/3/tutorial/introduction.html#strings ここでは test[1] はインデックス test[1:4] はスライスと書いてるね。 :はデリミッタ(区切り符号)の中の一種 下記の文法書では、 : がある場合をスライスとしている。 class slice(start, stop[, step]) 要は range(start, stop[, step]) と同じ だから、test=[1,2,3,4,5] の時 test[1:6:2] は [2, 4] と2つおきのステップもとれる test[0:6:2] は [1, 3, 5] ttp://https://docs.python.org/ja/3/reference/expressions.html?highlight=%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9 文法書 こちらだと、3.7.2も選べるね。 6.3.3. スライス表記 (slicing) スライス表記はシーケンスオブジェクト (文字列、タプルまたはリスト) におけるある範囲の要素を選択します。 スライス表記は式として用いたり、代入や del 文の対象として用いたりできます。 スライス表記の構文は以下のようになります proper_slice ::= [lower_bound] ":" [upper_bound] [ ":" [stride] ] lower_bound ::= expression upper_bound ::= expression stride ::= expression とあるから数値には式も許されている。 [] は省略可を示す <略> 適切なスライスは、スライスオブジェクト (標準型の階層 参照) に変換され、その start, stop および step 属性は、それぞれ指定した下境界、上境界、およびとび幅 (stride) になります。 式がない場所は None で置き換えられます。 : デフォルトの名無しさん [] 2019/02/15(金) 13:07:54.03:TNDmXWGM 文法だけなら3日で済ませろ : デフォルトの名無しさん [sage] 2019/02/15(金) 14:14:26.18:BPLAFoWk ifが閉じないのが違和感ありすぎるんだよな endをpass扱いで使えればいいのに tab非推奨とか、mainがインデントできないとか : デフォルトの名無しさん [] 2019/02/15(金) 14:28:19.26:TNDmXWGM endってRuby信者かよ うざいだけです : デフォルトの名無しさん [sage] 2019/02/15(金) 15:29:10.41:6n1ig9NM 1からcに勉強しなくても基本的なスクリプト分かればパッケージで何かできるようになるから教育の手間が省けるし使い物になるまでの時間が短い。ポインタみたいな話は逐一調べれば何とかなるし : デフォルトの名無しさん [sage] 2019/02/15(金) 16:08:39.95:PR4djPv7 逆 米国では特に理由がない限りはスクリプト言語といえばPythonなの もちろん機器を大規模に展開する段階ではCで書き直すこともありうるけど、その前のPoC段階では手っ取り早く動かすことを重視してスクリプト言語を選択することが多い そして世の中のほとんどのIoT(笑)プロジェクトはPoC止まりである : デフォルトの名無しさん [sage] 2019/02/15(金) 17:40:54.87:fQG3bb7R 最後の行メッチャ同意w : デフォルトの名無しさん [sage] 2019/02/15(金) 19:12:24.12:FTe5u0N/ 2〜3ヶ月では無理だろ オライリーの「Fluent Python」読んだら程々で止めといた方がよいと分かる 特にデコレータとかスライスオブジェクトとか完全な理解までは時間も手間も掛かる それにライブラリ有ってなんぼの言語だからその辺を当たるのも手間が掛かる : デフォルトの名無しさん [sage] 2019/02/15(金) 21:40:16.03:phBQxiAY そんだけ説明するなら Cpy = OreObj[:]でコピーの話してくれれば良いんだが これもsliceがやってくれているのか? : デフォルトの名無しさん [sage] 2019/02/15(金) 22:13:07.97:nnYj1Xkq シーケンスオブジェクトに対して有効なんだから、文法エラーが起きなければ、OreObjはシーケンスオブジェクトで有り!スライス表記が有効なんだろ。 : デフォルトの名無しさん [sage] 2019/02/16(土) 01:03:35.23:3MiMTZ5E print(type(OreObj)) とやってみれば良いよ。 というかわからずに作ってる方もどうかと思うが。 : デフォルトの名無しさん [] 2019/02/16(土) 01:22:05.09:pkeahHEi Python3エンジニア認定基礎試験を受験しようと思ってるんだけど認定教材がオライリーのpython3 チュートリアル第3版だよね? ドキュメントがあるんだけど ttp://https://docs.python.org/ja/3/tutorial/index.html 本よりURL先の方が新しいからこっちで勉強すべきなんか本買った方がいいのやら : デフォルトの名無しさん [sage] 2019/02/16(土) 02:04:33.57:3MiMTZ5E 自分もまだ、どれをもとに勉強しようか悩んでるんだけど、試験を受けるんだったら、オライリーので勉強した方が良いんじゃないのかな。 出題範囲がそれからと決まってるみたいだし。 そのpython.org のチュートリアルは本当に基本的なことしか書いてないみたいだし。 それを見る場合は他の標準ライブラリーにも目を通す必要があるけど、そちらについてのチュートリアルはないからね。 : デフォルトの名無しさん [] 2019/02/16(土) 02:15:08.35:cp9NCj1N BDFLの有り難いお言葉 ttp://http://python-history.blogspot.com/2013/10/why-python-uses-0-based-indexing.html コメント欄含めて細かく1-/0-ベース、閉区間/半開区間のメリットデメリットが議論されてる 要素の間を指す、という記憶術の落とし穴も : デフォルトの名無しさん [sage] 2019/02/16(土) 02:27:49.37:Vy31NZNk そのURLで良いんじゃないのか。 金出してオライリー買って勉強したって通らない奴は通らないだろうし。 で、URLでやっても通る奴は通るだろ : デフォルトの名無しさん [] 2019/02/16(土) 05:33:47.13:ytOkList 奥の深いのはまるで量子力学みたい。 : デフォルトの名無しさん [sage] 2019/02/16(土) 10:08:53.50:13Z91cw1 >>> "あ\\\"あ" 'あ\\"あ' >>> print("あ\\\"あ") あ\"あ \の数が変わるのはなぜですか? : デフォルトの名無しさん [sage] 2019/02/16(土) 10:34:05.43:3MiMTZ5E pdf があった方が良いと思うよ。 検索や見出しの頭出しなどが楽だから。 英文のpdf はあるけど、日本語はない。 ttp://https://docs.python.org/3/download.html コピペ、書き込みはできる。 オライリーのにはpdfがあるから便利ではある。 ただし、コピペできないから注意。 amazon のレビューも参考にしてみたら。 【python入門者向け】おすすめPDF教材3選 ttp://https://web-camp.io/magazine/archives/16214 自分は、この中の2番目の大学の先生が書いてるやつで始めた。 コピペは勿論書き込みとかできる。 : デフォルトの名無しさん [sage] 2019/02/16(土) 10:46:44.65:3MiMTZ5E \ は、エスケープ文字と言って、次の1文字をそのまま使うことを指示する。 だから、\そのものを使うことはできない。しかし \\ で\ をそのまま使う指示をすれば、\ 1文字として扱われる。 同じく \” \’ は、” ‘ そのものを扱うこもができる。 文字列の中にこう言う特殊文字を入れたい時に使う。 或いは、文字の中で改行したい場合には、\n を使う。 予め決められた文字をエスケープシーケンスと言う print(‘abc\ndef’) abc def エスケープシーケンスには他にタブ \n とか色々ある。 print(‘abc\n\tdef’) abc def エスケープシーケンス ttp://https://www.javadrive.jp/python/string/index2.html : デフォルトの名無しさん [sage] 2019/02/16(土) 12:21:40.15:LDsTH0lF bs4のスクレイピングで 〈dd class='a'〉bbb〈span class='c'〉ddd〈/span〉〈/dd〉 のときにbbbだけ取り出すにはどうすればいいですか? : デフォルトの名無しさん [] 2019/02/16(土) 13:46:48.84:lF7O1vpr linux流行る→linuxの試験立ち上げ ruby流行る→rubyの試験立ち上げ python流行る→pythonの試験立ち上げ 常に後手後手だな経産省は : デフォルトの名無しさん [sage] 2019/02/16(土) 13:49:19.24:ZA7pE0Rj 役所にitの世界でリードしろと言う方が無理がないか(´・ω・`) : デフォルトの名無しさん [] 2019/02/16(土) 14:13:56.53:0EgtbNFo 二次元のエロ画像って、どうやって分類するの? 教えて!エロい人!? : デフォルトの名無しさん [sage] 2019/02/16(土) 14:25:52.61:LemtF0up まず自力で集める えろくない画像も集めておく それを教師データにしてエロい・エロくないを学習させる : デフォルトの名無しさん [sage] 2019/02/16(土) 15:05:30.24:HHnqLgqK そりゃニーズがないものを試験するのは無駄。 : デフォルトの名無しさん [] 2019/02/16(土) 17:34:44.82:mSqP7pCT フォルダを分ける ●永久保存 ●たまに観たい ●あとで観る ●即消し フォルダ毎にランク数値化してベイズ学習して 新しい画像が来るたびにまたフォルダ分け (自動化するが人間によるチェックも必要なのでいきなりフォルダに入れず それぞれのフォルダ毎に保留バッファを用意して人間が承認して正式にフォルダ移動とともに再学習) これで問題になるのは「即消し」フォルダにある画像も消したくても再学習のために消せないんじゃないかということ : デフォルトの名無しさん [sage] 2019/02/16(土) 21:35:51.99:cOF81sF3 pythonで開いたファイルを完全に閉じるにはどうしたら良いんでしょうか? closeしたあとにshutil.moveで移動しようとしても、ファイルが使用中とエラーがでてしまいます。 : デフォルトの名無しさん [sage] 2019/02/16(土) 22:09:05.36:/KIqi5pj 本当にPythonがハンドルを掴んでるのかまず確認しろ 「さっきまで開いてたから」は根拠にならない : デフォルトの名無しさん [sage] 2019/02/17(日) 00:00:34.97:Hg63DdMm Ruby では、 str = "あ\\\"あ" p str #=> "あ\\\"あ" print str #=> あ\"あ p では全体を、" " で囲んでいるように、文字列の内部表現を見ている。 一方、print では、文字列を外部に表示したもの : デフォルトの名無しさん [sage] 2019/02/17(日) 00:30:33.10:Hg63DdMm jQuery 子要素を含まない text() が欲しい時 ttp://https://qiita.com/Urushibara01/items/7b44a3de5cc40d8a10be elem.children().empty(); で一旦、すべての子要素を削除してから、 elem.text(); で、テキスト部分を取得している つまり一旦、<span> の部分を削除してから、テキスト部分を取得する。 でも実際に、DOM が削除されてしまうのは、都合が悪いかも知れない 他にも「jquery text 直下」で検索して、探してみれば? : 166 [sage] 2019/02/17(日) 00:46:15.18:Hg63DdMm scrapyでよく使うxpath, cssのセレクタ ttp://https://python.civic-apps.com/scrapy-xpath-css/ 直下の子要素指定でフィルタの所に、xpath, css で、 <div>aaa<div>bbb</div></div> で、aaa だけを取得する方法が書いてある : デフォルトの名無しさん [sage] 2019/02/17(日) 01:19:40.29:p7gH0RbB >文字列の内部表現、文字列を外部に表示 なんか良い表現だな 自分の言葉でこんな表現出来るルビ基地は頭は悪くないんだろうから、 基地外精神を直せばいい奴になるのにな。 俺らが気にするのは文字列を外部に表示のほうだからな >>> "あ\\\"あ" 'あ\\"あ' なら >>> len( "あ\\\"あ" ) は4なのか5なのか : デフォルトの名無しさん [sage] 2019/02/17(日) 08:16:33.30:WySC1FKQ 試したら4だったよ : デフォルトの名無しさん [sage] 2019/02/17(日) 09:55:44.57:yxjz1BDw 確認しました。 掴んでるのはpython.exeだけでした。 : デフォルトの名無しさん [] 2019/02/17(日) 13:41:35.73:7mUUrd8D 違うものを閉じようとしてるんじゃね : デフォルトの名無しさん [sage] 2019/02/17(日) 14:08:27.77:+S0MQzvf なんで python スレに Ruby の解説を持ち込まないといけないんだよ。 python をさわれないなら黙って見てろ。 python で説明するなら、 str = "あ\\\"あ" rstr = r"あ\\\"あ" # raw string print(str,rstr) #あ\"あ あ\\\"あ l : デフォルトの名無しさん [sage] 2019/02/17(日) 14:23:35.65:+S0MQzvf raw string は、正規表現関係の検索文字列で使われる。 : デフォルトの名無しさん [sage] 2019/02/17(日) 14:32:37.51:+S0MQzvf 普通は解釈(代入)段階でエスケープされるけど、raw 指定された場合は、エスケープしないだけで、結果としてできた文字列はどちらも str 属性のまま。 : デフォルトの名無しさん [sage] 2019/02/17(日) 15:01:00.41:+S0MQzvf tab 非推奨って本当? サンプルコードを拾ってくると確かにタブは使われていない。 でもそれを修正して使おうとするとタブが入るから、エラーとされる。 合わせるのが大変なんだけど、みんなどうしてんの? : デフォルトの名無しさん [sage] 2019/02/17(日) 15:09:57.38:2Zsn/By5 yesタブ非推奨 正規表現できるエディタ(秀丸エディタとか、sakuraエディタ)で \tを「 」(半角スペース4つ)に一斉置換でおk : デフォルトの名無しさん [sage] 2019/02/17(日) 15:13:46.38:naWxhgEk ルビ厨に構うなよ… : デフォルトの名無しさん [sage] 2019/02/17(日) 15:27:26.15:yxjz1BDw すいません、解決しました、 文法がRubyとごっちゃになってcloseに()が付いてませんでしたorz エラーにならないから全然気づかなかった… : デフォルトの名無しさん [sage] 2019/02/17(日) 15:39:19.93:yfMLX38R 一括変換はどのようにしてもできるんだけど、コピペして動かそうとして修正するときに面倒。 利口なIDEなら両方を調整してくれても良さそうなものだけどな。 まだ、IDEをどうするのか決めてないし、とりあえずEclipseに入れるつもりだけど、なんか途中でつまづいてる。 : デフォルトの名無しさん [sage] 2019/02/17(日) 15:49:18.49:naWxhgEk 大抵のIDEでTabキーでスペース挿入とかできるはずだが? : デフォルトの名無しさん [sage] 2019/02/17(日) 17:18:58.04:OPCV5npO with open構文使えばそんなことで悩むことなかったのに : デフォルトの名無しさん [sage] 2019/02/17(日) 17:29:14.69:+S0MQzvf IDEはまだ使っていないって、pythonista やjupyter で練習中 ただ、IDEでスペース挿入できたって、コピペしたやつとスペースの数が違えばダメだろ? 大抵は一括変化できるだろうけど。 それでもjupyter などで使おうとするとやはり苦労するよね? : デフォルトの名無しさん [sage] 2019/02/17(日) 17:50:07.52:+S0MQzvf 質問(1) ‘__main__’ in globals() や、 2 in [1,2,3] がTrueになるのはなんで? 定数 in 集合は、定数を取り出せと言う意味なのかな? i in [1,2,3] が許されないのは何を取り出すのわからないからかな? 質問(2) print( [i for i in [1,2,3] ] ) が許されて print( (i for i in [1,2,3] ) ) が許されないのがわからない。 : デフォルトの名無しさん [sage] 2019/02/17(日) 17:56:47.88:T3+WXnTJ 質問(1)は自己解決 まともな文法書を読み始めて2日目で、ようやくたどり着いた。 《in演算子によるメンバシップ検査》 書き方: 要素 in リスト リストの中に要素があればTrue,なければFalseを返す.要素が含まれないことを検査するにはnot inと記述する : デフォルトの名無しさん [sage] 2019/02/17(日) 18:15:18.83:naWxhgEk グダグダ言う暇あったらテキトーなIDE使ってみなよ スペースの数とかも指定できる そもそも他の開発者がいちいち一括変換とかして苦労してるわけ無いだろ : デフォルトの名無しさん [] 2019/02/17(日) 19:09:07.40:9eEjpIke 質問(2)について 二つ目が「許されない」と言う意味が分からないが、少なくとも文法的には間違いではない (i for i in [1,2,3] ) はジェネレータ内包表記といいgeneratorオブジェクトになる ジェネレータはnext関数に渡すと次々に値を返す。最後まで到達するとStopIteration例外を出す >>> gen = (i for i in [1,2,3]) >>> gen <generator object <genexpr> at 0x7fb1b1a86ba0> >>> next(gen) 1 >>> next(gen) 2 >>> next(gen) 3 >>> next(gen) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration : デフォルトの名無しさん [sage] 2019/02/17(日) 19:20:42.25:glILnxtO ビートセイバーの通常プレイってなんだかんだで斬る方向も指定されるから いまいち魅せプレイには向いてないんよな めめめにダースモールプレイでくるくるしてほしいンゴ ttp://https://www.youtube.com/watch?v=e-m09N_HtRk : デフォルトの名無しさん [sage] 2019/02/17(日) 19:20:57.80:glILnxtO 誤爆 : デフォルトの名無しさん [sage] 2019/02/17(日) 19:31:52.09:+S0MQzvf 有り難う。 同じような形なのになんでprint ができないのかと言う疑問だった。 print( (i for i in [1,2,3] ) ) は、ジェネレータから取り出してしないからと言う理解で良いの? : デフォルトの名無しさん [sage] 2019/02/17(日) 19:51:22.25:OPCV5npO Pythonの分かりにくいところだよね 同じ記号を別の意味で使っている [1,2,3] リスト。集合は可変 (1,2,3) タプル。集合は不変 if 2 in [1,2,3] リストの中に2が含まれるか判別 for i in [1,2,3] リストの要素で繰り返し [i for i in [1,2,3]] リストの要素で繰り返した結果を演算しリストとする (i for i in [1,2,3]) リストの要素で繰り返した結果を演算するgeneratorを返す 普通に考えたらgeneratorではなく演算結果をタプルで返すように思うよね : デフォルトの名無しさん [sage] 2019/02/17(日) 20:07:17.70:U9IIuCB3 内包表記でタプルは作れない(ジェネレータになる)だけで一貫してるだろ それに for i in イテラブル じゃなくて i for i in イテラブル だし : デフォルトの名無しさん [sage] 2019/02/17(日) 20:25:38.62:WySC1FKQ 「まともな文法書」が何かを記していただければ、このスレの住民には助かると思います : デフォルトの名無しさん [sage] 2019/02/17(日) 20:31:16.29:tKx1WgvG in単体なら演算子だけど、forではそれ含めて文だからねぇ 文脈によって解釈が変わるのはC/C++でも英語でも同じ そしてタプルを作るのは丸括弧ではなく「,」である : デフォルトの名無しさん [sage] 2019/02/17(日) 20:33:32.71:U9IIuCB3 というか「(1,2)はカッコがあるからタプル」は偽だから (x for x in [1,2,3])がタプル返す義理はないな まぁその辺のサイトみたら軒並み「タプルはカッコでくくってつくる」って書いてあるのはそうだけど ドキュメントにはそうは書いてない : デフォルトの名無しさん [] 2019/02/17(日) 20:39:37.47:9eEjpIke 確かにカッコ使わずに a =1,2,3 でもタプルになるしな : デフォルトの名無しさん [sage] 2019/02/17(日) 20:42:19.07:OPCV5npO カンマで区切ればタプルにるけどさ、タプルの出力は必ずカッコで括られるんだから、直感と違うわけだよ : デフォルトの名無しさん [sage] 2019/02/17(日) 20:44:17.06:GfPZMs79 カッコつけてるだけだよ : デフォルトの名無しさん [sage] 2019/02/17(日) 20:46:20.17:4CukteGI リストはイテラブルなオブジェクトでイテレータではないらしいけど、なんで最初からリストをイテレータとして使えるようにnextメソッドを実装しておかないんや : デフォルトの名無しさん [sage] 2019/02/17(日) 20:47:29.51:glILnxtO practicality beat purity(実用性は純粋さに勝る)だぜ ジェネレーターにすれば途方もない数も扱えるわけだし デフォでジェネレーターになるのはしょうがない range()がリストではなくイテレーターを返すようになったようにな : デフォルトの名無しさん [sage] 2019/02/17(日) 20:47:49.01:p7gH0RbB だよな (1)は整数の1、でも、(1,)は整数の1を持つタプル ()だけではタプルを生成することにはならないからな これは俺でも知っている超超入門レベル知識だからな (x, for x in [1,2,3])とかならタプルを生成しなんだろうが : デフォルトの名無しさん [sage] 2019/02/17(日) 20:50:48.52:U9IIuCB3 (x, for x in [1,2,3]) はシンタックスエラー ((x,) for x in [1,2,3]) ならタプルを3つ返すジェネレータができる : デフォルトの名無しさん [sage] 2019/02/17(日) 21:11:43.56:GfPZMs79 (x,)っていかにも要素2つありそうな見た目だけど要素数1のタプルなの?w : デフォルトの名無しさん [sage] 2019/02/17(日) 21:19:41.54:OPCV5npO 公式のチュートリアルにもUglyと書いてあるだけあってなんだかなぁとは思う : デフォルトの名無しさん [sage] 2019/02/17(日) 21:55:32.99:nNpu08PZ 益々訳ワカメになってきた。 : デフォルトの名無しさん [sage] 2019/02/17(日) 22:00:38.59:p7gH0RbB (x, for x in [1,2,3]) がエラーなのは分かっている でも、なんかタプルの(1,2,3)を作ってくれそうな感じだろ { n:str(n) for n in [1,2,3] }で辞書を作れるんだから : デフォルトの名無しさん [sage] 2019/02/17(日) 22:08:56.80:nNpu08PZ ((x,) for x in [1,2,3]) ってどんな意味があるのかわからん。 print(list ((x,) for x in [1,2,3]) ) #[(1,), (2,), (3,)] (1,) ってどんな意味があるの? : デフォルトの名無しさん [sage] 2019/02/17(日) 22:15:21.52:glILnxtO (1,)とか(2,)っていうのは「要素がひとつだけのタプル」を示す : デフォルトの名無しさん [sage] 2019/02/17(日) 22:56:02.90:nNpu08PZ やっぱチュートリアルをちらっと読んだだけじゃ、基本的なことがわからないな。 言語設計者の開発秘話みたいなものが聞けると面白いと思うんだけど。 : デフォルトの名無しさん [sage] 2019/02/17(日) 23:03:18.87:Hg63DdMm Ruby で言えば、File.open にブロックを付けると、 ブロックを抜けるときに、例外時にも自動的に、開いたファイルを閉じてくれる 自分で例外処理、finally・ensure などに、file.close を書いたのと同じこと コンテキスト・マネージャー。 Python にも、同じものがあるはず : デフォルトの名無しさん [sage] 2019/02/17(日) 23:20:56.32:glILnxtO pythonの基本方針はimport thisで読める False == False == FalseがTrueになるとか面白いよな : デフォルトの名無しさん [] 2019/02/17(日) 23:51:24.85:9eEjpIke True+Trueが2になるとかな : デフォルトの名無しさん [sage] 2019/02/18(月) 00:38:39.85:9Y7UoWyl ますますわからなくなってきた。 タプルと言うのは、複数の数値の羅列だと思ってたのに、一つでなんでタプルになり、一つのタプルにどんな効果が出てくるの? そう言う文法だからと言えばそうなんだろうけど、 1 in 1 をエラーにして、1 in (1,) をTrue にする意味があるんだろうか? 1 in (1) と区別が付かんと困るからかな? ただのカッコ()とタプルの区別を カンマの有無で区別すると言うことか。 : デフォルトの名無しさん [sage] 2019/02/18(月) 00:42:35.27:SjVwlNp1 「1 in 1 をエラーにして、1 in [1] をTrue にする意味があるんだろうか?」 : デフォルトの名無しさん [sage] 2019/02/18(月) 00:54:13.98:Tb62uZUC 「数値1つ」と「数値1つだけを含んだ集合」は別のものだ。 1つの要素しか含まないリストを作ることもできるし 1つの要素しか含まない辞書も作ることができる タプルができない理由はない まぁプログラミングというか論理学の話になるけどな 1 in 1でエラーが出るのは当然 1と1は同値であり、1の中に1が含まれているわけではないのだから : デフォルトの名無しさん [sage] 2019/02/18(月) 00:56:36.72:9Y7UoWyl import this があるなんて面白いね。 プログラマが持つべき心構え (The Zen of Python) ttp://https://qiita.com/IshitaTakeshi/items/e4145921c8dbf7ba57ef The Zen of Python, by Tim Peters ちなみに、"Zen"は日本語の「禅」です。 1 in 1 を許さないのは禅問答になるのかな? 悟りを開くしかないのかな? : デフォルトの名無しさん [sage] 2019/02/18(月) 01:02:08.73:9Y7UoWyl リストやタプルは集合体だから何かの入れ物の中に入ったもので。 1 in 1 は、入れ物がないから取り出せないと言う感じかな? じゃ、リストやタプルは現実社会のどんなものに対応するんだろう。 : デフォルトの名無しさん [sage] 2019/02/18(月) 01:18:45.55:Tb62uZUC 「1つの要素」と「要素ひとつだけを含む集合」は 「弾丸一発」と「一発だけ弾が残った弾倉」と同じくらい違う 「書類1枚」と「1枚だけ書類を挟んだファイル」と同じくらい違う 風来のシレンで言うと 「アイテムひとつ」と「アイテムがひとつだけ入った壺」と同じくらい違う pythouの内部的にはリストやタプルには「複数の要素を扱うための機能」がついてる 単一の要素整数にはそれがない だから単一の要素にinを使ってもそもそも「その要素が含まれているかどうか」を確認することができない : デフォルトの名無しさん [sage] 2019/02/18(月) 01:29:08.54:SjVwlNp1 JavaScript「呼んだ?」 1 == [1] //=> true : デフォルトの名無しさん [sage] 2019/02/18(月) 01:36:54.94:Tb62uZUC これがあるから===しか使いたくない : デフォルトの名無しさん [] 2019/02/18(月) 08:12:09.71:7eiXgP3l int[] a = { 1, 2, 3, 4, 5, 6 }; int sum = 0; for(int i = 0; i < a.Length; ++i) { sum += a[i]; } int b = sum / a.Length; Console.WriteLine(b); とあるんですがsum/a.Lengthは何割何で計算してるんですか? 配列の計算原理が本ではいまいち分からないので教えて下さい; : デフォルトの名無しさん [] 2019/02/18(月) 08:41:37.17:tx9DPBTs for文による繰り返し処理を勉強してください : デフォルトの名無しさん [sage] 2019/02/18(月) 08:45:07.32:JBcAVpfH そいつぁC#で合計÷要素数=平均じゃないの? int同士で端数が切り捨てられる事を聞きたいの? : デフォルトの名無しさん [sage] 2019/02/18(月) 09:46:20.06:qsq8EO4j Ruby 2.6 では、 ary = [1, 2, 3] ary.sum #=> 合計は、6 平均値は、合計を要素数で割る。 mean = ary.sum / ary.length : デフォルトの名無しさん [sage] 2019/02/18(月) 10:44:29.19:1FoQC5sv 死ね : デフォルトの名無しさん [sage] 2019/02/18(月) 12:18:05.03:NoNskV/l 荒らし : デフォルトの名無しさん [sage] 2019/02/18(月) 12:38:24.20:qDhO0A3F 計算結果や変数内の値はprintで表示できる そんなことが説明なされない本なんて売っぱらちゃいな : デフォルトの名無しさん [sage] 2019/02/18(月) 14:05:11.71:7eiXgP3l - for文は理解できているのですが、a.Lengthこれが何の数値に化けるのか分からないです… 要素数というのはつまリ6になるということですか? : デフォルトの名無しさん [sage] 2019/02/18(月) 14:06:00.10:mU1u6kNH そう python だと、 a = [ 1, 2, 3, 4, 5, 6 ] sum = 0 for i in range(len(a)): sum += a[i] b = sum / len(a) print(b) print('配列内の合計=',sum,'割る','配列長=',len(a),'答は',b) #3.5 #配列内の合計= 21 割る 配列長= 6 答は 3.5 222.5万、税、都税 : デフォルトの名無しさん [sage] 2019/02/18(月) 14:12:48.12:fpnGWm5B 何の数値に化けるのか分からなかったら、 print(a.Length)してみればいい。 : デフォルトの名無しさん [] 2019/02/18(月) 14:40:05.59:oU/NFgq1 分けないとマルチプロセスで困るだろ : デフォルトの名無しさん [] 2019/02/18(月) 14:46:31.19:oU/NFgq1 pythonは a=[1,2,3] で a.len とか a.Length とか取れないのはきもいな : デフォルトの名無しさん [sage] 2019/02/18(月) 14:54:14.63:7eiXgP3l 完全に理解できました! ありがとうございます(・ω・)ノ : デフォルトの名無しさん [sage] 2019/02/18(月) 15:01:26.05:Tb62uZUC a.__len__() : デフォルトの名無しさん [sage] 2019/02/18(月) 16:14:05.74:mU1u6kNH どちらも同じみたいだね。 Python チュートリアル 第 3 版 ttp://https://books.lifewithpython.com/books/58/ Python の作者である Guido van Rossum 氏が書いた Python の入門書です。 尚、この書籍と同じチュートリアルに対する日本語訳がウェブ上でも公開されています(ウェブ上の翻訳と本書の翻訳は異なります)。 好みに応じて好きな方を選ぶとよいでしょう。 Python チュートリアル ― Python 3 ドキュメント ttp://https://docs.python.jp/3/tutorial/index.html 個人的には、他の言語でプログラミング経験のある方が Python を始めるときにはよいのですが、プログラミング自体が初めての方にとっては本書は少し難しいのではないかと思います。 プログラミングが初めての方でこの本を読みたい方には、一度中身をチェックしてみてから購入するかどうかを決めることをおすすめします。 Guido 氏が書いたチュートリアルということで、プロの Pythonista なら誰しも一度は読んだことのある一冊でしょう。 : デフォルトの名無しさん [] 2019/02/18(月) 16:25:56.30:OhspBoh0 Pythonのええとこは何でも特殊メソッドに委譲するとこやね マジで何でもできる、おもちゃに最適 : デフォルトの名無しさん [sage] 2019/02/18(月) 16:41:09.54:3yKPK3LO Python の理解度確認をするために「Python チュートリアル 第3版」を読んだ Python 本 オライリーから出版 ttp://https://kakakakakku.hatenablog.com/entry/2019/01/13/140726 オライリーから出版されている「Python チュートリアル 第3版」を読んだ. 読者対象として「Python 入門者のための」と書いてあるけど,そこそこ難しい内容もあり,中級者でも楽しめる内容になっている. 本書の最初に載っている「訳者まえがき」にも,理解度によって読む方法を変えて良いと書いてあった. 今回本書を読んでみて,勉強になった部分を整理しておこうと思う. なお,本書は「Python 3.5.1」をサポートしている.さらに付録もあり,特に「付録E」と「付録F」は面白かった. : デフォルトの名無しさん [sage] 2019/02/18(月) 17:20:44.97:3yKPK3LO ttp://https://kakakakakku.hatenablog.com/entry/2019/01/14/000300 模擬試験(無料) 認定スクール「DIVE INTO EXAM」から無料で提供されている模擬試験がある.まだ β であると記載されているけど,計80問あり,試験同様に計40問出題される. 模擬試験の受験回数に制限はなく,何度も何度も繰り返し受験できる.少なくとも1度は受験しておくと良いと思う. : デフォルトの名無しさん [sage] 2019/02/18(月) 19:22:55.51:W9szlA1+ .lengthとかcountってのは大概その集団の要素の数だと認識しておけば良い。定石のようなものだ。 : デフォルトの名無しさん [sage] 2019/02/18(月) 19:52:34.04:mU1u6kNH しかし、最初python って簡単じゃんと思ったけど、なんか混乱する。 () [] {} add append extend del discard とか、 最初理解できないのは、何がオブジェクトなのか? : デフォルトの名無しさん [sage] 2019/02/18(月) 20:45:21.68:9P3l8zH4 このスレで連投されてる内容の答えはすべて公式ドキュメントに書いてある たとえばなら for i in a: sum += i でもいいし(というかそれが普通) だいたい総和はsum(a)で、平均値はstatistic.mean(a)で一発で出る : デフォルトの名無しさん [sage] 2019/02/18(月) 20:45:59.87:9P3l8zH4 statistics.mean(a) のミス : デフォルトの名無しさん [] 2019/02/18(月) 22:13:42.80:EFaetCEP クロージャーとかデコレータとか覚えれへんわ : デフォルトの名無しさん [sage] 2019/02/18(月) 22:34:44.93:F+QeAL77 のまともな文書には、print( [i for i in [1,2,3] ] ) が許される理由が書いてあると思うんだが。 許される理由が分かれば許されない理由もなんとなくわかるだろ。 先ずまともな文法書でprintを読め と言っても、低脳すぎてまともな文書を読むのに四苦八苦だから尋ねているのかもしれないが (まぁ、まともな文書、許されるって素敵な言葉を使うぐらい超優秀な脳だから、この可能性は低いか) 超簡単にまとめると class AA : pass class AAA : def __str__(self): # 僕を文字列で表す要求来た時、こう紹介します return "AAA" print(AAA()) #許される print(AA()) #許されない : デフォルトの名無しさん [] 2019/02/19(火) 00:12:01.46:1Fqwt8so del使うシーンは滅多にないな 全く無い訳じゃないけど : デフォルトの名無しさん [] 2019/02/19(火) 00:13:06.83:1Fqwt8so それは今君に必要が無いということだ 必要があって使ってれば勝手に覚わる : デフォルトの名無しさん [] 2019/02/19(火) 00:17:12.07:x5yxwCIo Python3エンジニア認定基礎試験って模擬試験と同じ問題出るわけないわよね : デフォルトの名無しさん [] 2019/02/19(火) 00:46:31.87:x5yxwCIo てか模擬試験の解答見にくいなあ : デフォルトの名無しさん [] 2019/02/19(火) 00:49:41.46:c2xVE4LG 試験のためにpython勉強してんのか? あほやん : デフォルトの名無しさん [sage] 2019/02/19(火) 01:56:10.83:UOhpPyGI やんやん : デフォルトの名無しさん [] 2019/02/19(火) 02:50:12.73:fH1K3jOo 何食ってたら初心者スレでこんなに上から目線で不快な文が書けるんだろう : デフォルトの名無しさん [sage] 2019/02/19(火) 03:19:28.34:UOhpPyGI 自分より弱い者に憎しみを抱くはずがないでしょう 抱くのは哀れみ : デフォルトの名無しさん [] 2019/02/19(火) 06:23:45.14:QXXeWHDh うんこ : デフォルトの名無しさん [sage] 2019/02/19(火) 06:26:20.60:hAizIKGb >>print(AA()) #許されない 許されるだろ : デフォルトの名無しさん [sage] 2019/02/19(火) 07:06:55.77:TL2+PvJX オブジェクトって変数+関数みたいなものと理解してる だけど、pythonでlen()みたいな関数が存在してるのはなんでや obj.len()みたいに書く方がオブジェクト指向ぽいのに(´・ω・`) : デフォルトの名無しさん [sage] 2019/02/19(火) 09:35:20.19:snU9lsNN 後付けだから : デフォルトの名無しさん [sage] 2019/02/19(火) 10:11:21.93:SwtNBaDU obj.__len__() : デフォルトの名無しさん [] 2019/02/19(火) 10:37:48.43:ClxsX7KR うーんダンダーキモいな objが__dict__属性もってるなら obj.len = obj.__len__ obj.len() はい : デフォルトの名無しさん [sage] 2019/02/19(火) 11:03:15.41:D8b3v+Fo 必ずしも同じ名前のメソッドで要素数を取得できるとは限らないから Javaの配列の.lengthとコレクションの.size()なんかいい例 : デフォルトの名無しさん [sage] 2019/02/19(火) 17:25:15.51:xAiOFAtZ pdf のキャラクターコードが違っていて、コピペでは、エラーが起きるから、やはり大きなサンプルはソースが提供されていることが必要だな。 2番目の大学の先生の【Python3入門】はサンプルソースも付いている。 math ライブラリーの関数一覧くらいは載せてても良いとは思ったが、贅沢は言えない。入門には必要ないと言えばそうかも知れないが。 : デフォルトの名無しさん [sage] 2019/02/19(火) 17:51:31.05:t+ZZI+Uh vs codeでpythonを実行するときのコマンドはなんですか? ターミナルから実行するのが普通なんでしょうか? : デフォルトの名無しさん [sage] 2019/02/19(火) 17:57:52.58:xAiOFAtZ あまり知らないけど、こんなあたりで良いの? ttp://https://docs.microsoft.com/ja-jp/visualstudio/python/tutorial-working-with-python-in-visual-studio-step-01-create-project?view=vs-2017 : デフォルトの名無しさん [sage] 2019/02/19(火) 18:03:26.75:t+ZZI+Uh あと、vsコードの補完は、pythonエクステンションに含まれているのですか? : デフォルトの名無しさん [sage] 2019/02/19(火) 23:26:35.02:xISlfG0u print() は、わかりやすいが、BASICみたいな ? と言うような自由な記法があっても良いのではと思ってたけど、関数がオブジェクトだから結構自由にできるんだね。 p = print p(111) #111 使い過ぎるとわけわかめになりそうだが。 : デフォルトの名無しさん [sage] 2019/02/19(火) 23:36:01.89:x5gWYD95 vs codeとvsコードの表記の揺らぎを直すところからやってみよう! : デフォルトの名無しさん [sage] 2019/02/20(水) 00:19:50.88:1HzmSa/X 俺、Pythonを実質2週間ぐらいやっているんだけど やり始めてすぐにのような感を覚えた。 それなりの理由があるってことか(ちなみにJavaはさっぱり分からん)。 他の言語同様に、変数、メソッド名をアンダースコア(シングル、ダブルアンダー)で始めるとかで何かしらの意味を 与えていると分かっているんだが、目下あんまり調べてないからな。 プライベート変数がダンダーって見てすぐにわかるから良いと言えばその通りなんだがな : デフォルトの名無しさん [sage] 2019/02/20(水) 00:27:21.38:zgA3z1dT pythonの関数名や変数名のアンダースコアは文法上は何の意味もなかったはず そもそもpythonにはプライベートやパブリックの概念が存在しない 単に人間が見分けやすいようについけてるだけ : デフォルトの名無しさん [sage] 2019/02/20(水) 00:41:35.75:1HzmSa/X >pythonにはプライベートやパブリックの概念が存在しない これ知った時は俺驚いたよ。 privete、public等のキーワード付けて明確にしないのは、 Python教の哲学なんかと。 : デフォルトの名無しさん [sage] 2019/02/20(水) 00:43:10.98:PF1BNO4k こんな記法を見たんだが、どう言う文法からこんなのが出てくるの? 3項演算子みたいなものだが。 短絡評価if と言うらしいけど。 i = 8 print(i%2 and'odd!!!!'or'>EVEN<') #>EVEN< 短絡評価というのは先に成立した(True)方だけを見て後ろは見ないと言う方式みたいだね。 また、if が無くても評価式だけで成立するんだね。 print(0 and 2 or 5) #5 print(1 and 2 or 5) #2 しかし print(1 and 2 ) #2 はなんとなく違和感がある。 そう言えば、3項演算子があってなんで2項演算子みたいなものが無いんだろうと思ってた。 3項演算子なら 2 if 評価式 else 5 が有って 2 if 評価式 が無いのが不思議だった。 評価式 and 値(0以外) がそれに当たるのか。 しかし、 1 and 2 の時どうして後ろの値が有効になるのかな? : デフォルトの名無しさん [sage] 2019/02/20(水) 00:50:35.52:hdPlDSUg True and 2 : デフォルトの名無しさん [sage] 2019/02/20(水) 00:53:32.30:PF1BNO4k 短絡評価自体は理解しやすいんだが。 ttp://https://qiita.com/dinasetiana/items/2b0cb63e91e9511d1c6e True and b のとき何故、bの値を取るのか? 先後に成立した評価の値を取る?何故 True では無くbの値を取るのか? : デフォルトの名無しさん [] 2019/02/20(水) 00:56:34.30:gK0qpGCl 公式DOC>FAQにずばり詳解されてるので見るヨロシ : デフォルトの名無しさん [sage] 2019/02/20(水) 01:30:40.30:DM4qe6j0 FAQ は見つけられなかったけど、標準ライブラリの仕様書にしっかり書いてあった。 FAQの項目を教えてもらうとありがたい。 真理値判定 ブール演算 --- and, or, not x or y x が偽なら y, そうでなければ x (1) x and y x が偽なら x, そうでなければ y (2) not x x が偽なら True, そうでなければ False (3) さっと読み流した時は、and or は単なる論理的な演算だけだと思ってたから、値を取ると言う考えがまるでなかった。 注釈: (1) この演算子は短絡評価されます。つまり第一引数が偽のときにのみ、第二引数が評価されます。 (2) この演算子は短絡評価されます。つまり第一引数が真のときにのみ、第二引数が評価されます。 (3) not は非ブール演算子よりも優先度が低いので、 not a == b は not (a == b) と解釈され、 a == not b は構文エラーです。 : デフォルトの名無しさん [] 2019/02/20(水) 01:36:22.16:R9Rgujjr 一応メソッドやメンバの名前の先頭に__(アンダースコア2つ)を付けると擬似的にプライベートになる(外から参照するとエラー) 実際は __名前 を _クラス名__名前 に置き換えるだけだが : デフォルトの名無しさん [sage] 2019/02/20(水) 03:12:26.13:B2QSVSiS Code Runner という拡張機能で、右クリックメニューから、指定したソースコードの範囲を実行できる。 Ctrl+Shift+P で、Run Code でも同じ Python は、Ruby よりも不自然。 Ruby, JavaScript みたいにメソッドチェーンしにくい Ruby では、メソッド名を、シンボル: で渡せるから、処理の内容が明確 [1, 2, 3].inject( :+ ) #=> 6 : デフォルトの名無しさん [] 2019/02/20(水) 03:15:50.94:P3DZex+Y python資格試験はクラス捨ててもOK? : デフォルトの名無しさん [sage] 2019/02/20(水) 03:18:46.77:W95E7B6+ ttp://https://docs.python.org/ja/3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator 昔の名残。条件式はif文ではないのでelseを省略することは出来ない(値を返さねばならない : デフォルトの名無しさん [sage] 2019/02/20(水) 05:23:08.72:wMUHduDL c#の場合はターミナルからdotnet runで実行だと思いますが、pythonの場合はそういったものはないのでしょうか : デフォルトの名無しさん [sage] 2019/02/20(水) 07:12:57.02:SpCnH/g7 死ね : デフォルトの名無しさん [sage] 2019/02/20(水) 08:33:48.20:PF1BNO4k コンソールから直接ソースを叩けば動くよ。 hoge.py hoge 或いは python hoge.py 要は、exeファイルと同じ動作をする。だから、exploreから .pyをクリックしても起動する。 (ただ、コンソールが見えないとあまり解らないだろうけど。) python は、コンパイルという作業がいらないから、 dotnet run の様にコンパイルの指定が必要ない。 : デフォルトの名無しさん [sage] 2019/02/20(水) 09:06:26.28:DM4qe6j0 だから普通にDOSコマンドの実行と同じprocess.start で良いのでは? 勿論、python が、インストールされている必要はあるが。 ttp://http://ni4muraano.hatenablog.com/entry/2017/07/08/233224 <略> p.StartInfo.Arguments = @"/c python hello.py"; p.Start(); pythonがインストールされていない環境にpython のソースコードだけを渡しても動かないから、その場合は考慮の必要はありそうね。 PythonスクリプトをWindows環境で動くexeファイルにしよう ttp://https://www.sejuku.net/blog/65881 : デフォルトの名無しさん [sage] 2019/02/20(水) 10:30:31.71:wMUHduDL たんにpythonと入れてからパスを指定すればいいだけなんですね あと、右クリからもターミナルで実行ができました : デフォルトの名無しさん [sage] 2019/02/20(水) 10:51:51.66:BBElsiq0 俺、いつもエディタ(geditやGeanyやVS code使ってる)の横にターミナル開いといて、 ソース保存→ターミナルで $ python3 xxx.py→エラー→エディタで編集・保存→ターミナルで再実行(↑&Enter)→ エディタで編集・保存.... てな感じでやってるんだけど、エディタから実行したほうがやっぱり便利なんですか? : デフォルトの名無しさん [sage] 2019/02/20(水) 11:03:36.79:spTGKHkg 煽りとかじゃなくて逆に聞きたいんだけど、 vs code使ってターミナルで実行する意味(メリット)がわからないんだけど。 vs codeのブレークポイントとか利用しないって事? : デフォルトの名無しさん [] 2019/02/20(水) 13:38:56.65:gRk6WtzR YouTubeで北神雄大を検索。 : デフォルトの名無しさん [sage] 2019/02/20(水) 18:06:26.32:uB83dASb python書くエディタとIDEで人気なのは、pycharmとvscodeかね : デフォルトの名無しさん [sage] 2019/02/20(水) 18:08:20.36:ICk0Y2AW Atom...(小声) : デフォルトの名無しさん [sage] 2019/02/20(水) 18:13:40.84:NaL8/JA7 Spyder...(小声) : 瘋癲の錬金術師 ◆cEIL0Ogg4U [] 2019/02/20(水) 18:17:46.89:gK0qpGCl あれええな、組み込みターミナルがqtconsoleでインラインプロットもJupyter同様にできる VSCodeでなんとか使えないかと試したけど無理だった VSCodeが弱いFortranも書くので環境統一のためnvim+qtconsoleにした : デフォルトの名無しさん [sage] 2019/02/20(水) 18:17:47.79:3A0CDvTh Eclipse にインストールしようとして、エラーが出てからほったらかし(超小声) そもそも、venv anaconda eclipse が強調して動いてくれるんかよ。 : デフォルトの名無しさん [] 2019/02/20(水) 19:52:42.43:v7iPz90J 意味はある 継承してみれば判る : デフォルトの名無しさん [] 2019/02/20(水) 19:54:36.31:v7iPz90J and は二つ目の条件も成立するかどうか評価するからな : デフォルトの名無しさん [] 2019/02/20(水) 19:56:21.10:v7iPz90J sejukuはクソだから貼らなくていいよ : デフォルトの名無しさん [sage] 2019/02/20(水) 20:30:34.29:0GDprFxB そういや侍エンジニアの騒動は鎮火したのか? : デフォルトの名無しさん [] 2019/02/20(水) 20:34:51.41:jOZlK4md pythonでのWEBスクレイピングって、過去の更新情報も見れたりするのかな? : デフォルトの名無しさん [sage] 2019/02/20(水) 21:49:50.49:aaH1DDBC 何を浚うか指定できないのか? : デフォルトの名無しさん [sage] 2019/02/20(水) 21:55:37.90:EgtCXVwu Pythonやスクレイピングは魔法でも超能力でもありません : デフォルトの名無しさん [sage] 2019/02/21(木) 02:54:29.18:kxn9bd4Y The camel has two humps (working title) Saeed Dehnadi and Richard Bornat School of Computing, Middlesex University, UK February 22, 2006 : デフォルトの名無しさん [sage] 2019/02/21(木) 05:22:18.25:kxn9bd4Y ttps://i.imgur.com/VCh6cSs.jpg : デフォルトの名無しさん [sage] 2019/02/21(木) 07:26:25.64:8rp9UCEX 初心者スレの内容に合うか分からないけど質問させて 最近は作るときに凝集度とか結合度、クラスの責務とかも気になるようになったんだけどじゃあ具体的にどう作るべきかが分からない 何をどう勉強しようか て状態なんだけどデザインパターンを学べばいいのかな?これも大切だけど自分が学びたい内容とは少しずれてるようで… : デフォルトの名無しさん [sage] 2019/02/21(木) 08:55:18.20:Daclfccm すみません。見え張ってました。VS Codeは数回使ってみだけで、基本的に元通りgedit使っちゃってます。 : デフォルトの名無しさん [sage] 2019/02/21(木) 14:34:58.79:y1fIYiTV NIC(ネットワークインターフェイス)が複数あるPCで、 requestsを実行する際にNICを指定してGETなりPOSTなりをしたいのですが、 方法が分かりません、requests自体にその手のパラメータはなさそうですが…。 どなたかお教えください。 : デフォルトの名無しさん [sage] 2019/02/21(木) 15:19:27.90:YDJO8R6Z 層が全く違うぞ どういう意味だ? : デフォルトの名無しさん [sage] 2019/02/21(木) 15:38:13.68:1URmNQhh NICを指定することはできないんじゃないの? そもそも何をしたいの? 複数のNICが同じLANに出ていけばどちらを経由しても行きつく先は同じだけど。 もしこんなことをやりたいのか? NIC-1 >> LANのIP-1にだけ繋がってる NIC-2 >> LANのIP-2にだけ繋がってる それでIP-2につなぎたいからNIC-2を使いたいとか? だったらNICなんか気にせずに接続しに行けばつながる方にしかつながらない。 : デフォルトの名無しさん [sage] 2019/02/21(木) 15:44:20.15:y1fIYiTV 分かりにくかったらすいません… 例として、PCにそれぞれ別のグローバルアドレスを持ったNICが二つあって(AとB)、 あるWebサーバーへの通信(=最終的にやりたいのはrequestsのGET/POST)はNIC-A経由で通信する、 また、別のWebサーバーへはNIC-B経由で通信する、ということをしたいのです。 かえって分かりにくいでしょうか…? : デフォルトの名無しさん [sage] 2019/02/21(木) 15:46:43.29:y1fIYiTV 説明が足りずすいません、上に書いたとおり、NICはそれぞれ別のグローバルIPを持っていて 且つ、通信先はインターネット上のWebサーバーです。 接続先によってNIC(というかソースIP)を使い分けて通信したいのです。 : デフォルトの名無しさん [] 2019/02/21(木) 15:59:09.52:auY8mpXd 皆の質問の意図を理解できていないよ なぜ、 >接続先によってNIC(というかソースIP)を使い分けて通信したいのです。 わざわざこんな使い分けをしたいのか、その理由を聞かれている 普通はソースIPを分けなくても接続できるから : デフォルトの名無しさん [sage] 2019/02/21(木) 16:40:54.57:yAj8ZZjm 何か理由があってどうしてもやりたいのなら、ルータなりでIPルーティングをすれば出来るけど。 静的ルーティングの設定 - Linux ttp://https://qiita.com/kooohei/items/b0931ae210911cc52adc この場合だとNICの選択もできる。 : デフォルトの名無しさん [sage] 2019/02/21(木) 16:41:32.97:VKoyYoRj そんなもんプログラムじゃなくてもっと下層層でやることや : デフォルトの名無しさん [sage] 2019/02/21(木) 17:21:39.12:y1fIYiTV スクレイピングやWEB-APIを叩くときに、ratelimitが厳しいサイトがあるのでほんの少しそれを緩和したいのです。 ありがとうございます、ルーティングをいじってしまうのは最初に考えたのですが、環境は外部のVPSで(また説明不足ですいません) 基本リモートでいじっているので、そのあたりどうなるのかなぁと、明日また試してみます。 また、調べたところCurlとかだと何かIFを指定するパラがあるようですが、横着ですが今のコードをあまり変えたくなくて。 : デフォルトの名無しさん [sage] 2019/02/21(木) 17:42:34.88:MuHdm1tt じゃ、curl と同じ様にしてみたら? # curl -I --interface eth0 ttp://http://www.yahoo.co.jp/ #python def message_api(request): req = requests.post(' ttp://http://www.yahoo.co.jp/' \ --verbose \ --get \ --interface=‘eth0’ --data 'text=おはようございます' \ --data 'appkey=xxxxxxxxx') print(req) : デフォルトの名無しさん [sage] 2019/02/21(木) 20:41:02.67:Xsa0ee+G pythonで作って学ぶデザインパターンみたいな物がほしいね オブジェクト指向が何となくわかっても使い方がよくわからん(´・ω・`) : デフォルトの名無しさん [sage] 2019/02/21(木) 21:16:21.39:3FyMMC5r 実践 Python 3 : デフォルトの名無しさん [sage] 2019/02/21(木) 22:23:48.06:rZ10GU5L 一回マジでしゃぶってもらえませんか : デフォルトの名無しさん [] 2019/02/22(金) 00:02:47.01:4wGjWw5c 手動で、 Aが来たら有線LAN[A]を繋げて Bが来たら有線LAN(A)を抜いて、有線LAN[B]を繋げる : デフォルトの名無しさん [sage] 2019/02/22(金) 00:57:21.96:tDPXA70g じゃあサブプロセス使ってcurlで実行しちゃえばいいんじゃないの? : デフォルトの名無しさん [sage] 2019/02/22(金) 01:10:21.20:PLvaKLdQ ヒドイw : デフォルトの名無しさん [sage] 2019/02/22(金) 13:47:21.78:no4Nr2T0 NICを指定してrequestsの件、Pythonで出来ました。 requests_toolbeltというmoduleを組み込むことで、ちょっと搦め手ですが、source IPからNICを 指定してmountすることが出来ます。(ここには参考になる人はいなそうですがw) 以上。 : デフォルトの名無しさん [sage] 2019/02/22(金) 21:06:15.39:d1khp6TM ええやん : デフォルトの名無しさん [] 2019/02/23(土) 11:43:34.06:+DV3f+Dk 伊勢の名物 : デフォルトの名無しさん [] 2019/02/23(土) 12:26:45.82:lot8ckD6 国産のRuby叩かれすぎワロタ : デフォルトの名無しさん [sage] 2019/02/23(土) 12:40:42.89:1QjCNYhv このスレに限るなら、叩かれているのはほとんどRubyガイジのせいだろ 目の前をうろうろする羽虫みたいなもんだ : デフォルトの名無しさん [] 2019/02/23(土) 12:48:40.53:+DV3f+Dk 自業自得 : デフォルトの名無しさん [] 2019/02/23(土) 14:39:26.54:lot8ckD6 劇場で数十年ぶりに復活したCity Hunter 冴羽獠の愛銃Python3xxと日本でも流行りのPython3の因果関係 : デフォルトの名無しさん [sage] 2019/02/24(日) 09:29:08.59:iJEnzY0p デスクトップアプリはpythonとjavascriptどっちがいいんでしょうか : デフォルトの名無しさん [sage] 2019/02/24(日) 10:00:32.60:QKZEiFxx C# : デフォルトの名無しさん [sage] 2019/02/24(日) 10:02:11.33:5XYYe3Vz Electronがあるから今の流行りは圧倒的にJavaScript 昔ながらのWinアプリが作りたいんならC# : デフォルトの名無しさん [sage] 2019/02/24(日) 10:23:34.56:iJEnzY0p あっちこち手をつけるのも大変なのでjavascriptでやってみます でもelectronッテメモリ悔いますよねなぜか : デフォルトの名無しさん [sage] 2019/02/24(日) 10:31:16.66:8D34p5sx なぜ32GBモデルにしなかったんだろ俺のバカバカ!ってね : デフォルトの名無しさん [] 2019/02/24(日) 14:53:09.92:YwY0sV++ python : デフォルトの名無しさん [sage] 2019/02/24(日) 15:01:02.77:h7ByRKin VBの一択だな : デフォルトの名無しさん [sage] 2019/02/24(日) 16:35:42.81:57VgR7IR そんなにメモリ喰うの? : デフォルトの名無しさん [sage] 2019/02/24(日) 17:24:23.04:7HrBRrfk win10だと16gだと足りないよ。 ソフトによるけど。 : デフォルトの名無しさん [] 2019/02/24(日) 17:33:29.69:r06CB5Xe 昔ながらのデスクトップPCやサーバー機みたいな拡張とパーツ交換自在な時代なら最初16GBでも後から増設できたのに今時のモバイルなプログラム環境は半田付けされていて購入後に構成変更できないから辛いね : デフォルトの名無しさん [sage] 2019/02/24(日) 17:41:27.91:9Sd/QbRT 交換式にしたらスペース食うからねえ。 モバイルでもメモリとストレージは変更出来るってのも既に過去の話だな。 完全に買った時に全て決まるようになってしまった。 : デフォルトの名無しさん [sage] 2019/02/24(日) 17:51:55.81:+6ZRRI/z 今時のPCでも、スロット数が少ないから、何年かしたらもうボードから買い換えるしか無いよ。 諦める事だな。 (全てが寿命に近づいてるから捨てる。) ただ、買った直後にそのPCで動かないのがあったら、諦めて別の方法を探った方が吉。 : デフォルトの名無しさん [] 2019/02/24(日) 20:14:36.77:r06CB5Xe PCはスマホやタブレット、2 in 1とかにコモディティ化&低価格化してきてるからブラックボックスで使い捨てになるのも仕方ないのかも : デフォルトの名無しさん [sage] 2019/02/24(日) 20:21:36.39:+6ZRRI/z もう何台もPCを自作してきたが、あとで拡張しようと思って作ってても、いざ拡張する時になると時代遅れで結局捨ててしまう。 だってメモリだって新しいメモリは使えないし、新しいCPUは使えないし、何が拡張だ。 ほとんど全てのパーツが寿命に近づいてるから全てを新しくした方が安心できる。 何度壊れて痛い目にあったことか。 : デフォルトの名無しさん [] 2019/02/24(日) 20:26:06.19:iK4D+UQi 横からだが、今時古いメモリやCPUでもそれほど違わん。 (最近はAMDのお陰で急速にコア数増えたが) 物欲抑えれば全然現役で行ける。 (それでも性能追うのが浪漫なのは否定せんが) : デフォルトの名無しさん [] 2019/02/24(日) 20:35:10.14:r06CB5Xe IDEとOfficeとブラウザとテキストエディタとレタッチソフトとiTunesぐらいなら十分すぎるぐらいCPUは進化したけれど 4K以上の動画編集とかVRとかデスクトップ科技計算とかみたいなヘビーユースだとCPUもGPGPUも最先端を追うしかないね : デフォルトの名無しさん [sage] 2019/02/24(日) 20:39:21.47:9Sd/QbRT あるあるだな。 やはり買うときに思い切って買わないといかんな。 モニタやキーボードはタイミングずらす。車検が被らないように増車したりバイク買う感じ。 : デフォルトの名無しさん [sage] 2019/02/24(日) 20:42:46.42:rYs6roSD >ほとんど全てのパーツが寿命 今年思い知った件 ほんとだは : デフォルトの名無しさん [sage] 2019/02/24(日) 22:22:06.63:mG+2Y3tM pythonのクラスメンバへのアクセスのことで質問です クラスのメンバに次の2通りの方法でアクセスしたいのです。 (1)ピリオドを使ってアクセスする (2)辞書のようにアクセスする それぞれ単独では実現できるのですが、両方同時に成立させる ことが出来なくて困っています。 最初に(1)のために次のように実装してみます class Foo(): def __init__(self, x): sel.x = x @property def x(self): return self.x @x.setter def x(self, x): self.x=x これだとエラーになるためxを_xにすると上手くいきます しかしそうすると__dict__がxではなく_xをキーとしてしまうため def __getitem__ を実装してもキーはxではなく_xになるため f=Foo()とすると (1)のアクセスは f.x (2)のアクセスはf["_x"] ということになってしまうのです。 (1)も(2)も同じキーでアクセスできるように出来ないでしょうか? : デフォルトの名無しさん [sage] 2019/02/24(日) 22:28:23.99:mG+2Y3tM 追記ですみません メンバ変数は値を更新した際に自動的に他の処理も呼びたいため setterを必要としています。 : デフォルトの名無しさん [] 2019/02/24(日) 22:34:22.09:dOn5ud/R x.setter()等の仕様がそうだから仕方ないんじゃ? … def __init__(self, x): self._x = x … def get_x(self): self._x = _x x = property(get_x,set_x, del_x) やってないけど : デフォルトの名無しさん [] 2019/02/24(日) 22:39:07.56:dOn5ud/R あるいは中に仕込むか @x.setter def x(self, x): self.x = x self._x = x : デフォルトの名無しさん [sage] 2019/02/24(日) 22:43:09.76:2N6WWWAR うちsandybridgeだけど当面買い換える予定ないぞ グラボは入れ替えたが : デフォルトの名無しさん [sage] 2019/02/25(月) 00:00:08.65:LEqgxgt7 適当に辞書作ってsetattr,getattrをsetitem,getitemにマッピングすればOK Class Foo(): _dic = {} def __setitem__(self, key, val): self._dic[key] = val def __getitem__(self, key): return self._dic[key] __setattr__, __getattr__ = __setitem__, __getitem__ こうすれば f = Foo() f['x'] = 10 f.x でアクセスできる : デフォルトの名無しさん [sage] 2019/02/25(月) 00:10:04.15:PZlQ37TI なんか黒魔術みたいだな。 : デフォルトの名無しさん [] 2019/02/25(月) 00:15:42.13:W+H8OHl9 いや、辞書への挿入で更新もしたいならそれが正しい _xはデバッグ用途と思って更新を考えない簡略版で答えた : デフォルトの名無しさん [sage] 2019/02/25(月) 00:24:18.98:PZlQ37TI 全く始めたばかりで何もわかっていないんどけど、みんながpython の内部を改良していくためには必要な情報だけど、こんな事をpythonユーザーに正式に開放してるの? : デフォルトの名無しさん [sage] 2019/02/25(月) 00:31:37.32:LEqgxgt7 公式ドキュメントの組み込み関数にサンプルコードがあるよ でも自分が学んだのはエキスパートPythonプログラミングという本かな 公式ドキュメントも分かってしまえば分かりやすいけど、無機質な感じがして読みにくい : デフォルトの名無しさん [sage] 2019/02/25(月) 00:32:00.78:uKYGHYXp 「暗示するより明示せよ」 がpythonの設計思想のひとつだからな 別に珍しいことでもない LISPなんかはユーザーが自由に言語設計をいじれすぎて 無数の方言が作られているしな : デフォルトの名無しさん [sage] 2019/02/25(月) 00:38:04.31:SRxcknzj メンドクセーッ! : デフォルトの名無しさん [sage] 2019/02/25(月) 00:40:49.46:PZlQ37TI だよな。 言語仕様としてできないものはできないで良いだろ。 言語仕様じゃ無いんだろ? 黒魔術は闇の世界で使う技術。 : デフォルトの名無しさん [sage] 2019/02/25(月) 02:53:38.38:9+tyf5TU いや、attr系やitem系操作するのは、 他の言語の演算子のオーバーロードと 同じ感じテイストづし、珍しくも無い。 : デフォルトの名無しさん [] 2019/02/25(月) 11:22:12.78:Opp/wdL5 Hoge.__dict__ を作るだけでいける : デフォルトの名無しさん [sage] 2019/02/25(月) 20:13:54.92:+kysiU+6 Python初学者どころかプログラム初学者なのですがそんな人にも使いやすいIDEはありますでしょうか?ググった所PyCharmやアナコンダなどがありましたが皆様の意見もご参考にさせて頂ければと : デフォルトの名無しさん [sage] 2019/02/25(月) 21:07:11.42:Ey4Q/htY 初心者こそpycharmを使うべし タイポも変数のundefinedもpep違反も全部赤ペン先生で指摘してくれる : デフォルトの名無しさん [sage] 2019/02/25(月) 21:36:21.30:dXFOGwmu 有料版使ってる人いるのかな : デフォルトの名無しさん [] 2019/02/25(月) 21:39:49.74:h8G0r/CT PyCharm、VisualStudio : デフォルトの名無しさん [sage] 2019/02/25(月) 21:48:25.21:+kysiU+6 >>560 PyCharmですかありがとうございます入れてみます Visual StudioはVScodeというものですよね?py以外も色々できると聞いて気になってはいたのですがPython3を使うには設定が必要で初心者にはしんどいと聞いて及び腰です、、 : デフォルトの名無しさん [sage] 2019/02/25(月) 21:51:26.82:+kysiU+6 未来にレスしてしまった ありがとう御座います : デフォルトの名無しさん [sage] 2019/02/25(月) 22:51:43.04:Huj6YV9p Visual StudioとVisual Studio Codeは別物 前者がIDE、Codeはエディタ Codeの方は.pyを初回に読み込んだ時にpython拡張インストールした方がいいよと言われるので指示に従えばいいだけ : デフォルトの名無しさん [sage] 2019/02/25(月) 23:50:17.81:+kysiU+6 なるほど別物なんですね vsコミュニティとかもあってややこしいです 教えて頂いたVisual StudioとPyCharmを使えるようになってそれからアナコンダにステップアップして行きたいと思います : デフォルトの名無しさん [sage] 2019/02/26(火) 00:15:19.10:hK50uex+ いやWindowsだといきなりAnaconda入れるのが一番無難で簡単で手っ取り早いぞ そしてAnacondaは開発環境としてVSCodeを推奨してるからVSCodeおすすめ : デフォルトの名無しさん [sage] 2019/02/26(火) 00:26:09.34:hKlKYH4W 俺はVSCodeと素Pythonを押すね Anacondaは最初は使わん機能ばっかだし : デフォルトの名無しさん [sage] 2019/02/26(火) 01:03:36.19:6/9JHzaI Winなのに素python+Atomの俺は圧倒的少数者だと分かった : デフォルトの名無しさん [sage] 2019/02/26(火) 01:12:55.28:pkMMAEQe アナコンダはジュピターノートで書くのはわかっていますがセルの仕様が独特、アナコンダ用のプロンプトがあるなどで初心者向けではないよと言われたのですがそうでもないのですか? : デフォルトの名無しさん [sage] 2019/02/26(火) 07:23:43.12:VSDQz9S9 考えるよりダウンロードして簡単なプログラム書いてみなよ。無料なんだし。 少し使ってみて不自由を感じたら他を試せばいい。 : デフォルトの名無しさん [sage] 2019/02/26(火) 09:06:58.73:fq9lYmyM vscodeはjupyterみたいにも使えるしね ブレークポイントつけれたりデバッグ出来るのは初心者には有難い 会社の低スペックPCだとストレス溜まりまくりだからやむなくjupyter使うけど… : デフォルトの名無しさん [sage] 2019/02/26(火) 12:55:41.05:ePz6Ki1y Android用のpython環境をオススメしてください : デフォルトの名無しさん [] 2019/02/26(火) 13:49:43.50:8hsOp8y1 今はvim上でターミナル使えるようになったから、WindowsでもgVim使ってる Pythonは公式で配ってるインストーラで入れて、必要ならvenv使う 管理が楽 : デフォルトの名無しさん [sage] 2019/02/26(火) 15:10:50.48:lleTMO6w 副業で大学教員やってるからPyCharmのPro版を無償で使えてる PyDevやSpyderにイライラして結局vimで書いてたけど乗り換えた 学生さんはPyCharm使うといいよ : デフォルトの名無しさん [] 2019/02/26(火) 15:13:01.67:8+7ktUtN S4A 以前は Windows + Python2 素のインスコで使ってて Python3 に乗り換えたときに (Windows で) Anaconda でインスコして使ってるけど 全然問題無いわ 368 は明らかに事実誤認 : デフォルトの名無しさん [] 2019/02/26(火) 15:13:46.29:8+7ktUtN typo した S4A じゃなくて SL4A : デフォルトの名無しさん [sage] 2019/02/26(火) 15:32:01.94:s53snE6v ない なぜならば、AndroidでPythonを開発しようということ自体がオススメできないからだ : デフォルトの名無しさん [sage] 2019/02/26(火) 17:21:21.96:1yUj9TwU 自分はAndroidを使っていないけど、良さそうじゃん。 Android上でPython3が利用できるPydroid3がスゴイ ttp://http://pineplanter.moo.jp/non-it-salaryman/2018/02/02/pydroid-on-android/ : デフォルトの名無しさん [sage] 2019/02/26(火) 17:27:22.38:1yUj9TwU あまり堅苦しく考えないで良いじゃん。 いつでもどこでも使えるスマホは、練習用としては使えるよ。 解説書を読みながらちょっと試してみるとか。 Google の colab とか使ってWeb で作る手もあるけど、ネットが繋がっていないと使えなかったり、ちょっともたつく気がする。 ローカルで使えるに越したことはない。 : デフォルトの名無しさん [sage] 2019/02/26(火) 17:56:25.83:T0vQDev8 termuxでapt install python : デフォルトの名無しさん [sage] 2019/02/26(火) 19:22:35.54:EZFWpudG 多倍長整数演算を高速化する方法はありますか? numba使うと正しい結果が出ない たぶん内部で浮動小数点数に置き換えてる : デフォルトの名無しさん [sage] 2019/02/26(火) 19:31:36.49:1yUj9TwU やったことないけど、浮動小数点数の桁数を指定するんじゃダメ? : デフォルトの名無しさん [sage] 2019/02/26(火) 20:03:11.69:FOtxANKO 多倍長整数なのに実は浮動小数でやっていましたではオイオイだろ : デフォルトの名無しさん [sage] 2019/02/26(火) 20:37:19.08:EZFWpudG どうも整数の間違いでした 今日、階乗を計算していたんですが 20!までは正しいが21!で失敗します 2^63-1を超えるのが原因でしょう : デフォルトの名無しさん [sage] 2019/02/26(火) 21:08:14.74:IBhh82RD 組み込み関数のmath.factorial()は正しく21!を返すのに… : デフォルトの名無しさん [sage] 2019/02/26(火) 22:44:26.23:4zwtaCfi ありがとう オススメしてもらったpydroid3使ってみたけどエディタで片手でフリック入力出来なかったのとコピペが非常にやりにくかったのです 電子書籍の参考書のサンプルプログラムをコピーして貼り付けする時にやはりどうしてもエディタ画面で両手使うのはしんどかった SL4Aは開発が止まっているようなので 今回はやめといた : デフォルトの名無しさん [sage] 2019/02/27(水) 07:42:07.40:L5IXP2k2 確かにandroidでpythonを開発するのは超初心者には荒行でしかないわな でも、やりたいのはandroidのpythonでの開発だからw : デフォルトの名無しさん [sage] 2019/02/27(水) 09:22:59.83:dPGb0bDo お客さんそんなことしても悟りは得られないよ : デフォルトの名無しさん [] 2019/02/27(水) 14:31:55.97:6BQDuKk1 再帰で書いてない? forで書けば上手くいくはず。 Pythonは多倍長整数だからメモリ一杯になるまで大きな数を表現できるので、再帰でスタックが溢れたと思われ。 : デフォルトの名無しさん [sage] 2019/02/27(水) 15:12:55.08:qFMaDdKD √2× √6= 2√3 みたいに√つけたまま演算できるライブラリないですかね 勝手に小数点付き数字に変えられてうんざり 3π × 2n= 6nπ みたいなのも欲しいです。 : デフォルトの名無しさん [sage] 2019/02/27(水) 15:17:26.74:PApWA4xG そういう処理を自動でしたいがためのプログラミング。 : デフォルトの名無しさん [] 2019/02/27(水) 15:42:22.04:AFI97rHS scipy sympy : デフォルトの名無しさん [sage] 2019/02/27(水) 19:01:19.46:CWPXM8YW Androidの開発環境聞いてきた人と同じひと? それならないかなぁ : デフォルトの名無しさん [] 2019/02/27(水) 20:54:44.82:kap/FwCb djangoで掲示板やら、ブログやら作ってみたんだけど djangoでできることってこんぐらいしかないの? なんかやれることがもっとあると思ってたんど、意外と底が浅かった感じがした djangoでゲームアプリできないの? : デフォルトの名無しさん [sage] 2019/02/27(水) 21:06:17.28:FvpNE2Tw ゲームアプリ作りたいならそれ用のツールを使ったほうが早いんじゃね pythonだとアドベンチャーゲーム作成ツールのren'pyとかくらいしか知らないけど : デフォルトの名無しさん [] 2019/02/27(水) 21:21:26.34:kap/FwCb あとはpygameとかでやるしかないのか : デフォルトの名無しさん [sage] 2019/02/27(水) 21:23:42.28:FvpNE2Tw ツールに合わせて言語を選ぶのもひとつの選択肢だよ pythonでゲームも作れなくはないが UnityとC#を使う方が手っ取り早いと思う : デフォルトの名無しさん [sage] 2019/02/27(水) 22:36:18.56:CtFD2cZF お前の発想力の問題 : デフォルトの名無しさん [sage] 2019/02/27(水) 22:45:24.69:qFMaDdKD Sympy が良さげですね : デフォルトの名無しさん [sage] 2019/02/28(木) 02:17:13.47:DbAr3TBt sympyないわー : デフォルトの名無しさん [] 2019/02/28(木) 02:31:01.44:43+kEwYn Sympyは酷いね…何故SciPyのサイトのトップに掲げられてるのか理解しかねる Deprecatedなnumpy.Matrixクラス依存で、各種ルーチンにshape制限まである 標準Pythonでないが、どうせコード配布するようなものでなし、Sageを薦める : デフォルトの名無しさん [sage] 2019/02/28(木) 07:34:11.13:VZy78oyi maximaからsympyへ移行したけど評判悪いのか。sageは初めて聞いた、けどjupyter上では使えないのかな。 : デフォルトの名無しさん [] 2019/02/28(木) 07:51:36.17:43+kEwYn maximaがバックエンドの一つだよ、拡張Pythonによるmaxima等フリーの各種コンピュータ代数ソフトを詰め込んだ欲張りラッパ つまり機能的には最強であることは間違いない Pythonコードもほぼそのまま書ける : デフォルトの名無しさん [] 2019/02/28(木) 07:55:03.91:43+kEwYn .nbみたいのも見掛けたな、REPLがグローバルインポートですごく使いやすくなってるんで触らんが : デフォルトの名無しさん [] 2019/02/28(木) 11:29:58.64:VA9IyXO4 pycファイルがあると良いことあるんですか : デフォルトの名無しさん [sage] 2019/02/28(木) 11:43:46.54:3raA7S0b >>404 コンパイルするための時間が無くなり早くなる、コンパクトになる。 : デフォルトの名無しさん [sage] 2019/02/28(木) 13:25:46.66:COpOP1tt sympy使ってるけど虚数込みの数式処理で伝達関数を導出しているけど困ってはいない Mathematicaで作った処理を全部試そうとは流石に思わないが、そこそこ行ける : デフォルトの名無しさん [] 2019/02/28(木) 14:37:06.17:VA9IyXO4 ありがとうございます : デフォルトの名無しさん [] 2019/02/28(木) 14:41:29.11:4d6byY1q クラスとか継承とかどうやって覚えたのよ コード書きながら覚えるのが手っ取り早い? : デフォルトの名無しさん [] 2019/02/28(木) 15:04:31.53:4Fcnv2BB つ ttp://https://www.amazon.co.jp/dp/4756100503 : デフォルトの名無しさん [] 2019/02/28(木) 15:49:34.46:4d6byY1q すげえ難しそう : デフォルトの名無しさん [] 2019/02/28(木) 15:53:21.03:4Fcnv2BB 知らない単語が並んでると難しそうに感じたりするが 中身は大した事ない 糞本読んで無駄な時間使うよりマシだと保証 : デフォルトの名無しさん [sage] 2019/02/28(木) 16:03:54.54:K7dGf2QC この辺りは? ttp://https://www.amazon.co.jp/dp/B01N04UBYI/ref=cm_sw_r_cp_awdb_c_.A4DCbDJ4KNEW : デフォルトの名無しさん [] 2019/02/28(木) 16:24:16.52:4d6byY1q 読み放題で無料だから見てみたけどわかりやすいかも : デフォルトの名無しさん [sage] 2019/02/28(木) 18:20:17.96:aNlcuW5k 設計図は出来てるけどどう作ればいいかわからなくて困ってます GUI画面で例えば入力欄Aに10文字Bに10文字A.Bを何文字出すか決める場所(A3なら入力枠Aからランダムに3文字選ぶ)、そしてA出力枠B出力枠にだす ということを目指してるのですがTkinterで出来ますか?これをググれみたいな事があれば教えて頂けると幸いです : デフォルトの名無しさん [sage] 2019/02/28(木) 19:35:45.99:mQj8H4X5 むろんできるぞ 何文字出すか決める入力欄を0.1秒ごとくらいに見張るようにプログラムくめ んで 何か入力されたら出力する あるいは ジェネレートボタンを押したら計算して出力する みたいな : デフォルトの名無しさん [sage] 2019/02/28(木) 19:49:33.86:aNlcuW5k 出来るんですね!ありがとうございます Tkinter検索しても細い入力欄に出力一つ、と単純な物ばかりだったのでこれはちがうのかな?と ほんとに初心者なので見張らせるよりはボタン式にしてみます ちなみtkinterの設計でオススメのサイトはありますか? : デフォルトの名無しさん [sage] 2019/02/28(木) 20:28:35.13:mQj8H4X5 tkinterの「設計」サイトはしらんなー : デフォルトの名無しさん [sage] 2019/02/28(木) 20:29:16.48:iWcjMiIh 数字列をリスト化したいのです。 内包記述使わずに短い記述教えて下さい。 #入力 3 13 24 45 50 #出力 [3, 13, 24, 45, 50] #書いてみました ループ使わない方法が分かりませんでした t_input = input().split() t_time =[] for i in range(0,5): t_time.append(int(t_input[ i ])) print(t_time) #因みに内包表記 t_time = [int(s) for s in input().split()] print(t_time) : デフォルトの名無しさん [sage] 2019/02/28(木) 20:30:19.88:mQj8H4X5 「tkinter python3 ボタン」あたりでggるといいかもしらん : デフォルトの名無しさん [] 2019/02/28(木) 20:32:02.62:SMvRd1sf map(int, input.split()) : デフォルトの名無しさん [sage] 2019/02/28(木) 20:32:12.00:mQj8H4X5 入力は必ず5データぶんなのか? ループ使って書いてるほうほう、それだと長いデータきたさいに対応できなくないか : 418 [sage] 2019/02/28(木) 20:35:59.31:iWcjMiIh とりあえす5個でお願いします。5個以上も対応可能でも良いです。 : デフォルトの名無しさん [sage] 2019/02/28(木) 20:37:14.95:mQj8H4X5 がイイ(・∀・) : 418 [sage] 2019/02/28(木) 20:50:36.95:iWcjMiIh mapって初めて知ったけど柔軟に対応出来るんですね 内包記述だと未だ変換の流れが理解できないです もうちょい頑張ってみます ありがとうございました : デフォルトの名無しさん [sage] 2019/02/28(木) 20:53:26.78:KtyAfxmO 自分も超初心者なので練習 x='1 2 3 4 5' m=map(int, x.split()) print(x) print(x.split()) print(list(m)) # 1 2 3 4 5 # ['1', '2', '3', '4', '5'] # [1, 2, 3, 4, 5] : デフォルトの名無しさん [sage] 2019/02/28(木) 20:57:13.41:mQj8H4X5 はね : デフォルトの名無しさん [sage] 2019/02/28(木) 21:46:53.78:2bTQVOdg なぜ for x in イテラブル とせず for x in range(n) でインデックスを取ろうとするのかがわからない 宗教上の理由でもあるのか : デフォルトの名無しさん [sage] 2019/02/28(木) 21:54:52.10:aNlcuW5k ボタンはなんとかなりそうですけど入力欄から文字拾って指定した数ランダム出力が大変そう、、 頑張ってみます : デフォルトの名無しさん [] 2019/02/28(木) 22:45:24.44:q6d6kpjr python3でmapがジェネレータ返すようになったの未だに慣れない : デフォルトの名無しさん [sage] 2019/02/28(木) 22:56:22.40:DbAr3TBt python2のほうがプログラミング自体の初心者には分かりやすかったよな : デフォルトの名無しさん [sage] 2019/02/28(木) 23:54:03.99:/+wdq6fK イテラブルを知らないからだろ(当然イテラブルであるための条件も知らない) Pythonはclassを使ったオブジェクト指向言語だけど でも、はじめからclassを作ってあーだこーだではなくC言語のように使うんだと最初教え込まれるからな。 C#やjavaのようにhello worldを表示するにもclassが出てくるんではなく Cようにprint(...)ではクラスへの道のりは遠く、で、イテラブルなクラスは 超絶な遠さのところにある感じだからな。 と言うことで、初心者はCのようにfor x in range(n)にしてやるんだぞと教え込まれる。 クラスへまでの道のりは遠いから超初心者スレではクラスの質問はほとんど出ない : デフォルトの名無しさん [sage] 2019/03/01(金) 01:29:34.36:VzgI02J9 自分も超初心者であります! 頑張りまっす!! : デフォルトの名無しさん [sage] 2019/03/01(金) 01:37:09.00:KH61c5UP 関数がオブジェクトなのは比較的こんなのでも実感できるのでは? p = print p(‘Hello World’) # Hello World : デフォルトの名無しさん [sage] 2019/03/01(金) 02:18:07.97:8KTg+fim インデックスでアクセスしようがイテラブルの参照でアクセスしようがプログラマの勝手だと思うけどな Python自体文法の制約でプログラマに自由を与えない思想だから、ルールの押しつけはしょうがないとも思うけど 正直インデントの制約は正気の沙汰とは思えないけどな : デフォルトの名無しさん [sage] 2019/03/01(金) 03:20:06.33:hj2Lx6Rs なら正気の沙汰の言語のスレに行けばいいものを : デフォルトの名無しさん [sage] 2019/03/01(金) 07:00:47.58:OviG+/BX プログラミング言語の設計をしようとする時点で脳のどこかに欠陥を抱えている 正気の沙汰の言語などない : デフォルトの名無しさん [sage] 2019/03/01(金) 07:05:12.14:GYGnZVsf つーかrangeってiterableなんだけど知らないのか? : デフォルトの名無しさん [sage] 2019/03/01(金) 09:21:38.59:VWbcPJmE それなw : デフォルトの名無しさん [sage] 2019/03/01(金) 10:16:21.42:wtu2VuQe さっき初めてPythonのコードを見た初心者なんですが、コピペでインデントずれたら中身読んで手動でインデント直すしかありませんか? : デフォルトの名無しさん [sage] 2019/03/01(金) 11:50:19.46:RkKCNcIA 自分のソースの中に他人のソースをコピーするような場合? それしかない。 : デフォルトの名無しさん [sage] 2019/03/01(金) 11:57:42.41:oRvPnA6O インデントがずれないようにコピペする : デフォルトの名無しさん [sage] 2019/03/01(金) 12:35:18.99:aHTh+udf shift+tab : デフォルトの名無しさん [] 2019/03/01(金) 13:19:46.04:ozM8zBQ9 2ちゃんのスペース表示仕様まで変えてしまった言語がPythonである : デフォルトの名無しさん [sage] 2019/03/01(金) 16:55:36.37:KMRxw/mf スペースを短くする一括変換の方が早いと思うな。 特にいやらしいのはタブ記号の混在。最初にタブが入ってたらスペースに変換。 : デフォルトの名無しさん [sage] 2019/03/01(金) 19:24:25.32:GYGnZVsf だからインデントもまともにできない初心者はpycharm使っておけって ズレてたら教えてくれるから : デフォルトの名無しさん [sage] 2019/03/01(金) 21:29:48.58:5XyBzD+m 誰がずらだコラァ : デフォルトの名無しさん [sage] 2019/03/01(金) 22:18:46.58:8KTg+fim 生え際がシンタックスエラー : デフォルトの名無しさん [sage] 2019/03/01(金) 23:35:13.62:hJuXK+uz つ 座布団一枚 : デフォルトの名無しさん [sage] 2019/03/02(土) 01:41:54.42:0Z7GU3hQ インデントすらまともにできない奴はプログラミングは無理だから 別なことをしろだろ : デフォルトの名無しさん [sage] 2019/03/02(土) 09:15:34.90:c+fDdYHP pythonのソースコードをフォーマットするのには、みんなautopep8を使ってるのかね : デフォルトの名無しさん [sage] 2019/03/02(土) 10:09:48.63:xbKWWazw ほうほう 俺ちゃんはそんなものしらないので 秀丸とsakuraエディタで手作りです : デフォルトの名無しさん [] 2019/03/02(土) 11:49:49.14:nqwTLRnH インデントした区間が終わって一段元に戻るとき テキストファイルのソースだと空行無くても大丈夫なのに インタプリタとかIDEのときは空行入れないといけないのが不満 (理由は判るけど) これなんともならんのかね : デフォルトの名無しさん [sage] 2019/03/02(土) 11:54:02.70:og4HVKiE 便利そうだな。 入れないと損なのか。 ttp://https://githubja.com/hhatto/autopep8 : デフォルトの名無しさん [sage] 2019/03/02(土) 13:44:48.85:A7lhNiPK PyConだかで取ってたアンケではyapfが大半だったと思う 次いでautopep8とBlack : デフォルトの名無しさん [sage] 2019/03/02(土) 15:03:01.69:R507/Kbo ttp://https://github.com/IBM/yaps/blob/master/README.md ここをみて pip install yaps は出来たが、使い方が今一解らん。 : デフォルトの名無しさん [sage] 2019/03/02(土) 15:07:05.06:R507/Kbo 悪い悪い、yapf だったね。 シェルコマンドとしてのコンバータとして動くのか。 : デフォルトの名無しさん [sage] 2019/03/02(土) 15:10:35.42:R507/Kbo eclipse などのIDEだと入力中に自動整形してくれるのかな。 : デフォルトの名無しさん [] 2019/03/02(土) 17:33:58.54:qdo3sOAM sexか? : デフォルトの名無しさん [] 2019/03/02(土) 21:35:47.51:la2Rs48k pythonista3を買ってみたけど文字打ったり補完した後に文字打とうとしたら上書きされたりする 描きにくすぎて辛い : デフォルトの名無しさん [sage] 2019/03/02(土) 21:39:59.70:zLUw08oC flake使ってる : デフォルトの名無しさん [sage] 2019/03/02(土) 23:00:34.12:yB7kTQ7C flakeもフォーマット機能あるんか linterだと思ってた : デフォルトの名無しさん [sage] 2019/03/03(日) 01:13:01.16:vKWKyL5A 意味不明。 print() が出た後に() の中にカーソルは残ってるから描きやすいと思うけどな。 ‘’ を出しても中にカーソルはあるし。 どんな場合? 文字が小さいから特定の文字を訂正したりとか言うときはなかなかカーソル位置を合わせるのがうまくいかないことはあるけどそれはスマホの宿命。 画面が拡大出来ると良いと思うけどな。 : デフォルトの名無しさん [sage] 2019/03/03(日) 01:19:51.31:ffCrW6pd tkinterをいじっていて入力ボックスの文字を command = lambda:test_fanction(txt.get()))で取って def test_fanction(txt): print(random.choice(txt))でランダム一文字ずつだせたはいいんですが ボックス内の文字を一文字ではなく指定したn文字数ランダムに取り出す というのとthinker内でそのn文字も指定できるようにしたいということで悩んでます お力添え願えませんか? : デフォルトの名無しさん [sage] 2019/03/03(日) 01:31:12.61:vKWKyL5A pythonista の中に reformat としてPEP8 が入ってるのに今気づいた。 しかし、PEP8にしろ、yapf にしろ、空白3個と空白4個の混在の場合エラーを出すだけで自動で修正してくれないんだな。 タブサイズは自動的に変更してくれるけど。 : デフォルトの名無しさん [] 2019/03/03(日) 03:05:14.33:YqozNVoh 例えばpと打ったら補完機能で上にprint()とでるじゃないですか? そのprint()を押したら何故かpのとこにカーソルがあってそのままaを押したらpがaに変わってarintになるんです。 そこにカーソルがあると次候補や開業も押せない : デフォルトの名無しさん [sage] 2019/03/03(日) 04:47:35.44:vKWKyL5A そうはならないけどな。() の中にカーソルは来るよ。 壊れてるんじゃないの、消して再ダウンロードしてみたら? : デフォルトの名無しさん [] 2019/03/03(日) 08:56:14.39:RP7OXEaJ )))が3つ以上連なると見にくいから)) )にしたりするな、もちろん見にくさによるけど 慣習より読みやすさ : デフォルトの名無しさん [sage] 2019/03/03(日) 09:06:35.38:R+BaZbTo def test_fanction(txt): ここにnを指定してるボックスからnを取得する命令を書け n = int(n) txt = '' for i in range(n): txt += random.choice(txt) print(txt) あと、どーでもいいことだが、 (txt.get())) ↑ここのとじかっこ一つ余計 : デフォルトの名無しさん [sage] 2019/03/03(日) 09:07:38.78:uQiZZFNH というか素人スギ : デフォルトの名無しさん [sage] 2019/03/03(日) 09:07:55.13:uQiZZFNH fanation w : デフォルトの名無しさん [sage] 2019/03/03(日) 09:09:26.05:R+BaZbTo おおう txtがゲシュタルト崩壊しとった 訂正 def test_fanction(txt): ここにnを指定してるボックスからnを取得する命令を書け n = int(n) hoge = '' for i in range(n): hoge += random.choice(txt) print(hoge) より望ましくは、hogeはcharactarsみたいな、意味を持つ語にしてやってくれ : デフォルトの名無しさん [sage] 2019/03/03(日) 09:11:11.71:R+BaZbTo スレタイを読んでから 美しいお手本回答を見せてくれ : デフォルトの名無しさん [sage] 2019/03/03(日) 09:27:27.29:uQiZZFNH イヤどす : デフォルトの名無しさん [sage] 2019/03/03(日) 09:36:06.45:R+BaZbTo じゃあ とりあえず しゃぶれよ : デフォルトの名無しさん [sage] 2019/03/03(日) 10:06:47.90:uQiZZFNH しゃぶるくらい別にいいけどさ 言っておくがそれセクハラだぞ : デフォルトの名無しさん [sage] 2019/03/03(日) 10:12:44.52:R+BaZbTo いいんだw 「とりあえずしゃぶれよ」は5chのお約束ヤジの一つだわな 現実で言ったらたしかにやばいw : デフォルトの名無しさん [sage] 2019/03/03(日) 10:23:46.84:uQiZZFNH 確かにやばいw が、別にいいんだぜ : デフォルトの名無しさん [sage] 2019/03/03(日) 10:26:05.53:R+BaZbTo じゃあ ケツ貸せよ は・・・? (・∀・)ドキドキ! : デフォルトの名無しさん [sage] 2019/03/03(日) 10:28:10.10:uQiZZFNH それだけは断る! 断じてことわる!! : デフォルトの名無しさん [sage] 2019/03/03(日) 10:28:50.13:R+BaZbTo だめかー ・・・・・・もしかして→ (´・ω・`)ぢぬし? : デフォルトの名無しさん [sage] 2019/03/03(日) 12:07:09.41:CoMPR6UA ありがとう御座います あれからn取得用入力ボックスを作って色々やっていたのですが、test_fanction内でn取得までできるのですか?乞食で申し訳ないのですが書き方を教えて貰っても大丈夫でしょうか? : デフォルトの名無しさん [sage] 2019/03/03(日) 12:41:36.16:CoMPR6UA 連投すいません 自分が考えた事はn取得ボックスsuを作って取得ボックスボタンを作り新しく def suji_fauction(su):を作ってそこに最初と同じくボタンcommand=lambda:suji(su.get())でnをどうにかしてからtest_fanctionに持って行って取ったtxtからランダムn個抜き出すという事でしたが、どうにかするがどうにもならなかったです 見苦しい長文失礼しました : デフォルトの名無しさん [sage] 2019/03/03(日) 12:51:44.12:pC3Iiu0Z 入力されるデータが 1ならx = int(input())いけるんですが 1 1 1とかの時はx = input().split()で毎回使うときにint(x)するしかないのですか : デフォルトの名無しさん [sage] 2019/03/03(日) 13:12:36.69:R+BaZbTo 「ここにnを指定してるボックスからnを取得する命令を書け」の行に インデントに注意して n = su.get() って書いて桶 : デフォルトの名無しさん [sage] 2019/03/03(日) 13:13:49.16:R+BaZbTo がイイ(・∀・)こといってるぞ : デフォルトの名無しさん [sage] 2019/03/03(日) 13:52:46.99:TIqzUsNF がどうでもイイ(・∀・) : デフォルトの名無しさん [sage] 2019/03/03(日) 13:53:53.23:CoMPR6UA ありがとうございますできました 頭良いとこんなにあっさり簡単な書き方でやるんですね、、 : デフォルトの名無しさん [sage] 2019/03/03(日) 14:01:22.48:R+BaZbTo できてなにより Tkinterの .get()についてのとことかもうちょいよくよんだほうがいいとおもうぞ : デフォルトの名無しさん [sage] 2019/03/03(日) 15:05:14.48:Mep2BbSH defの使い方も怪しいので.get()と合わせて読んでみます 勉強させて頂きました : デフォルトの名無しさん [sage] 2019/03/03(日) 15:20:36.94:R+BaZbTo はーい (・ω・)ノ : デフォルトの名無しさん [sage] 2019/03/03(日) 19:50:54.96:VNvwXmTw ひろゆきもpythonやってるらしい。 : デフォルトの名無しさん [sage] 2019/03/03(日) 19:51:23.37:TIqzUsNF あいつにできるのかよw : デフォルトの名無しさん [sage] 2019/03/03(日) 20:12:32.61:dhbLYAZm perlを相当使ってたみたいだからpythonくらい余裕でしょう : デフォルトの名無しさん [sage] 2019/03/03(日) 20:30:57.29:VNvwXmTw 三日で習得して、awsの履修証明賞もらったから相当覚えいいと思う。 : デフォルトの名無しさん [sage] 2019/03/03(日) 20:42:59.22:gg9Mx1QB 恥ずかしくない? : デフォルトの名無しさん [] 2019/03/04(月) 05:10:47.25:DAN4+o0x せいぜいがんがれや : デフォルトの名無しさん [] 2019/03/04(月) 15:35:02.66:OGwzbJO+ ハゲめ : デフォルトの名無しさん [sage] 2019/03/04(月) 17:34:27.74:BFAQ4JyJ ひろゆきプログラミングについて語る ttp://https://www.youtube.com/watch?v=sYWz_bIBVNw : デフォルトの名無しさん [sage] 2019/03/04(月) 18:12:43.10:56/Jbqfw グロ 死ね : デフォルトの名無しさん [sage] 2019/03/04(月) 22:59:17.85:0UjSVc4r ひろゆきにプログラミングできるのかよw : デフォルトの名無しさん [sage] 2019/03/04(月) 23:38:23.95:9d3FcJ2N プログラミングでのし上がった奴だぞ : デフォルトの名無しさん [] 2019/03/05(火) 03:28:01.72:VDry4yCP スレチ イタチ : デフォルトの名無しさん [sage] 2019/03/05(火) 04:21:05.92:6CrjVVG4 老害はとっとと犠牲にして差し上げて : デフォルトの名無しさん [] 2019/03/05(火) 05:20:53.55:QbJvjFwd 北神雄太 : デフォルトの名無しさん [] 2019/03/05(火) 07:33:05.52:zhtHOsGL 質問です。 やりたいこと:画面上で動いたものの検知をしたい ImageGrab.grab().save("frame_pre.png") frame_pre = cv2.imread("frame_pre.png") frame_pre = cv2.cvtColor(frame_pre, cv2.COLOR_RGB2GRAY) while True: ImageGrab.grab().save("frame_next.png") frame_next = cv2.imread("frame_next.png") frame_next = cv2.cvtColor(frame_next, cv2.COLOR_RGB2GRAY) img_diff = cv2.absdiff(frame_next, frame_pre) frame_pre = frame_next という感じにしています。 ですがめちゃくちゃ遅いです。 ImageGrab.grab().save("frame_next.png")で何回も上書き保存しているからだと思いますが 他に方法はありますか? : デフォルトの名無しさん [sage] 2019/03/05(火) 07:35:00.11:Ok/9AxrB よくhogeとか名前つけてる人がいますけどhogeって伝統的なものなんですか? : デフォルトの名無しさん [sage] 2019/03/05(火) 08:07:30.38:0SMIqw+w そうだよ。 日本では hoge 英語だと、foo , bar が使われる。 ttp://https://dacelo.space/net/entry-662.html : デフォルトの名無しさん [sage] 2019/03/05(火) 09:13:58.12:DIrFqE8l hoge fuga piyo foo bar baz : デフォルトの名無しさん [sage] 2019/03/05(火) 09:52:58.71:BXQcWGGg ホゲホゲ : デフォルトの名無しさん [sage] 2019/03/05(火) 10:04:27.98:BMXqmTyM forループのときの「i」とか「j」はなんなんだよ : デフォルトの名無しさん [sage] 2019/03/05(火) 10:34:23.57:DIrFqE8l 文句は数学に言え : デフォルトの名無しさん [sage] 2019/03/05(火) 10:36:52.25:DIrFqE8l それともI(愛)の前にHがある じゃあI(愛)の次に来るJってなんだ? ということか? : デフォルトの名無しさん [sage] 2019/03/05(火) 11:02:11.75:mnGOhC/5 慈愛かなんかじゃねぇの。 自慰とか : デフォルトの名無しさん [sage] 2019/03/05(火) 11:15:27.58:/6VFWsqW 案1. ファイルに書き出さないでBytes.ioを使う 案2. ファイルの書き出す先をRAMディスクにする : デフォルトの名無しさん [] 2019/03/05(火) 11:57:14.36:HwCl8Q1J ファイルじゃなくてメモリ上でやるのはもちろんだし 多少精度は落ちるが 画面をリサイズしてから比較する 予備的に処理入れて 引っかかったものだけ全体比較検査する : デフォルトの名無しさん [] 2019/03/05(火) 11:59:44.40:HwCl8Q1J 愛JKだな : デフォルトの名無しさん [sage] 2019/03/05(火) 12:01:27.76:BXQcWGGg そこに、LなMが : デフォルトの名無しさん [sage] 2019/03/05(火) 16:13:55.69:/w4kwDux oとpするイテレーション : デフォルトの名無しさん [sage] 2019/03/05(火) 18:08:43.40:yUBkGE+g 文字からunicodeを取得したいのですが、うまく行きません。お助け下さい 文字列にdecode属性は無いと言われるのですが、何が問題なのでしょうか ttps://i.imgur.com/XiX7for.png 参考にしたページは以下です >>> 'いろは'.decode('utf-8') u'\u3044\u308d\u306f' ttp://https://qiita.com/megmogmog1965/items/e2f633ac445831568975 : デフォルトの名無しさん [] 2019/03/05(火) 18:21:59.46:Fbwgj3J5 pythonエンジニア認定試験とかいうのを受けるんやけどどうやって勉強しよう 模擬試験1個しかないし過去問に似たような問題とか落ちてないよなあ : デフォルトの名無しさん [sage] 2019/03/05(火) 18:31:55.02:7lWO2Eg6 組み込み関数のord()を使うのが正解 for x in "いろは" : print(hex(ord(x))) で0x3044,0x308d,0x306fが取得できる 単にord(x)だと10進数のやつになる : デフォルトの名無しさん [sage] 2019/03/05(火) 18:32:57.79:fIhIM0AX プログラミング言語の資格なんてクソの役にも立たないから、気楽に受ければいいよ : デフォルトの名無しさん [sage] 2019/03/05(火) 18:37:17.26:yUBkGE+g ありがとうございます!できました! : デフォルトの名無しさん [] 2019/03/05(火) 18:43:39.13:yG+1nA7g ありがとうございます。メモリ上でというのが理想ですが やり方がわかりません。もっと勉強してきます。 : デフォルトの名無しさん [sage] 2019/03/05(火) 18:48:35.51:jEZ1EKzD ‘いろは’ はstr だからだよ。 s = ‘いろは’ b = s.encode() とバイト列などにすれば、 b.decode()は出来るよ。 ただ目的とは違うだろうけど。 UTF-8 はデフォルトだがら指定しなくて良い。 : デフォルトの名無しさん [] 2019/03/05(火) 19:39:23.62:xsrwNvaN 一度保存せずともnp.asarray()でgrabしたのをnumpy配列に変換できるからあとはOpenCVで処理できる : デフォルトの名無しさん [sage] 2019/03/05(火) 20:18:03.67:apIwEZzG m = 1 x = 0.8 print(m,x,m-x) ↑こちらを実行すると 引き算が0.199・・となるんですけど 1 0.8 0.19999999999999996 変数に入れた通りの解答 0.2にするにはどうすればよいのでしょうか? : デフォルトの名無しさん [sage] 2019/03/05(火) 20:41:40.15:7lWO2Eg6 ttp://https://docs.python.org/ja/3/library/decimal.html : デフォルトの名無しさん [sage] 2019/03/05(火) 20:49:10.69:/6VFWsqW ソースコード見る限りImageGrab.grab()がimageを返しそうだから frame_pre = ImageGrab.grab() や frame_next = ImageGrab.grab() として saveの行とimreadの行を削除してみたらどう? : デフォルトの名無しさん [sage] 2019/03/05(火) 20:58:16.68:CbSwC66k f文字列を使ったら? print(x,y, f'{x-y:.1f}' ) # 小数点以下1桁表示 : デフォルトの名無しさん [sage] 2019/03/05(火) 21:03:22.55:yUBkGE+g "%s" % "foo" この%ってprintfみたいな感じと思うのですが、 これはなんというのでしょうか? : デフォルトの名無しさん [sage] 2019/03/05(火) 21:11:42.23:/6VFWsqW の言う通りnp.asarrayでキャストしないとエラー出た つまり frame_pre = np.asarray(ImageGrab.grab()) とする : デフォルトの名無しさん [sage] 2019/03/05(火) 22:16:33.26:fIhIM0AX 廃棄物や老害とでも呼べばいいんじゃないかな Python3で非推奨になった時代遅れの演算子だから今すぐに忘れなさい : デフォルトの名無しさん [sage] 2019/03/05(火) 22:40:50.70:apIwEZzG 奥が深いんですね 考慮しなきゃいけない事色々あって嵌りそう 当面f文字列で対応してみます ありがとうございます! : デフォルトの名無しさん [sage] 2019/03/05(火) 22:43:50.05:yUBkGE+g 非推奨なんですね、ありがとうございます : デフォルトの名無しさん [] 2019/03/05(火) 22:50:11.98:7Yqzn8cc 代わりにformat()使おうね : デフォルトの名無しさん [] 2019/03/05(火) 23:09:19.30:gSGf6yDl a = [d * 2 for d in 'abcde'] print(a) abcdeを5こずつ表示とかってできますか? : デフォルトの名無しさん [sage] 2019/03/05(火) 23:23:03.46:eDzk8k/k abcdeを5こずつ表示って abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde ..... と表示したいってことか? : デフォルトの名無しさん [] 2019/03/06(水) 00:06:23.49:3F/qov+q はいです : デフォルトの名無しさん [] 2019/03/06(水) 00:10:06.28:XQpJaTFA インタプリンタでこれ実行したらFalseなんですけど何をもってFalseと判断してるのか分かりません (1,3,5) < (1,2,7) : デフォルトの名無しさん [sage] 2019/03/06(水) 00:10:39.87:R/1sU7PR 分岐のコメントってifの上か下、どちらが良いでしょうか # 処理内容はxxx if flg # 処理内容はxxx 処理内容… : デフォルトの名無しさん [sage] 2019/03/06(水) 00:55:19.44:oR6mPeK7 そうですか : デフォルトの名無しさん [] 2019/03/06(水) 00:56:10.88:3F/qov+q falseになる理由を教えてください : デフォルトの名無しさん [sage] 2019/03/06(水) 00:59:18.54:PXi0ytZJ 前から順番に比較していって同じなら次を比較し、異なるならそこで結果を返す この場合は3と2を比較して3 < 2 は False となる : デフォルトの名無しさん [] 2019/03/06(水) 01:37:14.91:Wfp2djOX (a,b,c) < (d,e,f) は a<d or b<e or c<f と同じ : デフォルトの名無しさん [sage] 2019/03/06(水) 02:12:47.95:ctS44w1M お前ら嘘ばっか教えるんじゃないよ (1,3,5) < (1,2,7) は 135 < 127の比較、当然 135がデカいからFalse 絶対、信じろ : デフォルトの名無しさん [sage] 2019/03/06(水) 02:23:21.55:Uli2bEJM Ruby なら文字列に、掛け算(*)演算子も定義されているから、これだけ puts "abc" * 3 #=> abcabcabc : デフォルトの名無しさん [sage] 2019/03/06(水) 05:37:29.57:MPL4boGu リスト内を小さい順に並び替えて行く処理を書いてみた。 ttp://https://ideone.com/iK3JYA 上記ソースをリスト内包表現で実現できそうで色々試したりしましたがうまく行きませんでした。 もしリスト内包表現で表現できるならどう書けばよいのかご提示宜しくお願いします。 : デフォルトの名無しさん [sage] 2019/03/06(水) 05:37:46.06:A0Y4tMZt >>> (1,3,5) < (1,2,7) False >>> 1<1 or 3<2 or 5<7 True >>> (1,3,5) < (1,2,7,9) False >>> 135 < 1279 True : デフォルトの名無しさん [] 2019/03/06(水) 07:42:57.04:3F/qov+q ありがとうございます。 理解できました : デフォルトの名無しさん [sage] 2019/03/06(水) 08:25:20.58:bBth0ZZS 正式ドキュメントのチュートリアル 5.8に詳しく書いてある。 要素を最初から辞書的に1つずつ比較。片方の要素がなくなれば終わり。 適切な比較順序がない場合は、インタープリターは TypeError 例外を発生させます。 (1, 2, 3) < (1, 2, 4) [1, 2, 3] < [1, 2, 4] 'ABC' < 'C' < 'Pascal' < 'Python' (1, 2, 3, 4) < (1, 2, 4) (1, 2) < (1, 2, -1) (1, 2, 3) == (1.0, 2.0, 3.0) (1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4) (1,2,3)<(1,'2',4) は、エラーになる。 : デフォルトの名無しさん [sage] 2019/03/06(水) 08:51:37.17:f/NWPYTA 死ね : デフォルトの名無しさん [sage] 2019/03/06(水) 11:29:05.92:R/1sU7PR withってどういう時に使うのが良いでしょうか 明示的に「これを中心にしたブロックです」と言いたいということでしょうか 変数に入れるのではダメですか? : デフォルトの名無しさん [] 2019/03/06(水) 12:44:10.04:qZuvgmSh 例えばファイルの読み書きの時 withを使うとブロックを抜けた時に自動でcloseされる 途中でエラーが出てもちゃんとcloseしてくれる 自前のクラスでも__enter__()と__exit__()を実装しておくとwithに入る時と出る時に呼び出されるので、前処理と後処理を忘れずにしたい時に使える : デフォルトの名無しさん [sage] 2019/03/06(水) 12:47:48.19:R/1sU7PR ありがとうございます これは便利ですね : デフォルトの名無しさん [] 2019/03/06(水) 12:58:50.97:pP8e2GTT >>> [print(f'u{ord(_):04x}') for _ in 'いろは'] u3044 u308d u306f [None, None, None] >>> [print(f'{_:02x}') for _ in 'いろは'.encode('utf-8')] e3 81 84 e3 82 8d e3 81 af [None, None, None, None, None, None, None, None, None] : デフォルトの名無しさん [sage] 2019/03/06(水) 16:16:53.92:w73Hgmg1 C#のusingと理解すればよき? : デフォルトの名無しさん [sage] 2019/03/06(水) 17:10:04.23:+4ROOaYr _ って何を表してるんだろうと思ったら、_ 1文字でも変数名として使えるんだね。 こう言う使い方は良いね。 : デフォルトの名無しさん [sage] 2019/03/06(水) 18:21:37.77:kGjUBYU2 import sys d='abcde' c=0 while 1: sys.stdout.write(d) c+=1 if c % 5 == 0: sys.stdout.write('\n') else: sys.stdout.write(' ') : デフォルトの名無しさん [sage] 2019/03/06(水) 18:57:59.23:2Etc0l5z 何でそんなしち面倒臭いことするの? そもそもstdoutなんて必要ないだろ。 それに無限ループは絶対にダメ。 そんなことするくらいなら、それこそ print(' abcde '*5, '\n ') で済む話。 複数行にしたければお好きなだけループで回せば良い。 : デフォルトの名無しさん [sage] 2019/03/06(水) 19:18:18.39:kGjUBYU2 printつかうと余計な改行はいるだろ : デフォルトの名無しさん [] 2019/03/06(水) 19:22:31.40:nP+qIuYQ print('abcde', end='') とか sys.stdout.write('abcde') とか 面倒なのは許せ : デフォルトの名無しさん [sage] 2019/03/06(水) 19:24:34.96:2Etc0l5z 1つのprint で書けば済む話。 : デフォルトの名無しさん [sage] 2019/03/06(水) 19:30:59.83:2Etc0l5z ヘェ〜、勉強になる。 >>> print(1,end=''),print(2) 12 (None, None) このNone はなんで出るの? なんなの? : デフォルトの名無しさん [sage] 2019/03/06(水) 19:36:11.71:b/S1njE3 「関数」というのは本来「なんらかの計算をして値を返すもの」 だからどんな関数も必ず何らかの値を返す 単に複数の処理をひとつにまとめただけで値を返す必要のないものでもな printは画面に文字列を表示するだけのものなので本来は値を返す必要はないんだが だからってわざわざ関数とは別の仕組みを作るのは面倒臭い だから「None(値なし)を返す関数」という形式で実装されているわけだ : デフォルトの名無しさん [sage] 2019/03/06(水) 19:40:21.23:b/S1njE3 ちなみに一応「値を返す関数」と「値を返さない手続き」を別の枠組みとして扱っているプログラミング言語も存在する VBAのFunctionとSubがそうだ : デフォルトの名無しさん [sage] 2019/03/06(水) 20:04:28.41:2Etc0l5z 勉強になるな。 下手な入門書より2chの方がためになることも多い。 まだ入門書も適当に読み飛ばしてる段階だけど。 2ch の記事は入門者のモチベーションを高めてくれる。 : デフォルトの名無しさん [sage] 2019/03/06(水) 21:04:59.01:XsTs8xzo ふーん : デフォルトの名無しさん [sage] 2019/03/06(水) 21:45:22.45:muSUG44X Pydroid3 : デフォルトの名無しさん [sage] 2019/03/06(水) 23:15:48.67:2MUQBf9Y ツンデレ関数 print() : デフォルトの名無しさん [] 2019/03/07(木) 00:29:00.90:1sghIh7a オライリーのPythonチュートリアル分かりにくいい これを元に資格試験を作ってるんだよね? : デフォルトの名無しさん [] 2019/03/07(木) 00:35:34.48:FPeGgUJ/ 資格試験ってなんだ? 公式サイトの和訳のやつなら Web版が随時アップデートされてるよ : デフォルトの名無しさん [sage] 2019/03/07(木) 00:53:48.36:l1bMfloe Pythonに資格試験なんて存在しません 非公式の資格詐欺は知らんけど : デフォルトの名無しさん [] 2019/03/07(木) 01:01:50.93:1sghIh7a 資格試験って言い方が間違ってたらすまん Python 3 エンジニア認定基礎試験てのを受けるんだけど それの認定教材がオライリーのやつでwebで見てるんやけど 分かりにくいなって思ったそれだけ : デフォルトの名無しさん [sage] 2019/03/07(木) 01:15:05.56:k6ZLJER9 試験範囲がそこから出されると言うだけの話だよ。 公式チュートリアルと変わりない。 それの書き写しがオライリーのだから。 どちらも全くの初心者には難しいと感じるみたいだから、そう言う人は先ずその前に超初心者用的な入門書をいくつか読んだ方が良いのでは? その類は対して読むのに時間はかからない。 ネットに落ちてるものでも十分。 ただし、自分で書いて練習することが重要。 jupyter でもなんでも良いから確認する環境を作ること。 読むだけでは身につかない。 : 572 [] 2019/03/07(木) 01:20:20.63:FPeGgUJ/ 洋書特有の文体だから慣れてないと違和感あるけど 言語のチュートリアルとしては良い方の部類だよ ただ他の言語をマスターしてることが前提のところあるから ガチ入門者なら国産の本を勧める NECがスポンサーの試験か・・・ Pythonに力入れてるイメージはないがどうなんだろ : デフォルトの名無しさん [sage] 2019/03/07(木) 02:47:07.76:7hJ/R58z .,、- ' `´  ̄ ̄` ''‐ 、 ,r'´ .`ヽ、 /. -t‐'''l´ .`l'‐t、 .\ /´. 'lliiiill lliiii!. ヽ, ./ __ i,_,ノ .i, ,! ', な、なんなんですか…? { (´__,) ,..., ~ (`ヽ l .l - 、..,_ .l_ i ,、-"'-、 l ここ、どこですか…? .l `i .l,_ソ f´ .l ', ノ .l, ,' どうして私、こんなとこに貼られてるんですか…? '、 ,.、-' .,' 'i、 ー一 '´ /':, l ヽ, ノ } .l `‐、,_ ._,.-.' ,' l `‐- 、,........,..、-‐'` / .\_ ノ l ,/ `'''ー‐ '´ ヽ、 _, -'  ̄ ̄ : デフォルトの名無しさん [sage] 2019/03/07(木) 02:50:45.25:bl19yUau 殺人ピンク玉は去れ : デフォルトの名無しさん [sage] 2019/03/07(木) 03:49:17.97:9XzeaP/N Decimal で文字列使う ttps://i.imgur.com/QQ0npTS.jpg : デフォルトの名無しさん [sage] 2019/03/07(木) 09:12:07.95:wzWG3iLc 3000円もする専門書買うよりさ、わからないことがあったらネットで調べれば無料で答えがみつかるよ。 英文でも翻訳ソフト使えばいいだけだし。 ネットで調べても答えが見つけられないやつは、そもそもプログラミングに向いてないんじゃないか。 : デフォルトの名無しさん [sage] 2019/03/07(木) 09:42:09.79:E2eXaClF 公式チュートリアルで良いだろ。 Japanese 指定して一括ダウンロードすればPDFが大量にある その中のtutorial 開くと日本語訳 tutorial (pdf版)が入手できる : デフォルトの名無しさん [sage] 2019/03/07(木) 09:50:54.08:IMd+ImAh ソース嫁からググれカスに移行したが今ではググったらカスばっか。 : デフォルトの名無しさん [sage] 2019/03/07(木) 11:38:00.92:Gktreo0e LearnPython.orgやCodeacademyみたいにWeb上でインタラクティブシェル開いて 一つ一つお題を実行させる形式のも良いんじゃない。 読んでるだけじゃなかなか身につかないよ : デフォルトの名無しさん [] 2019/03/07(木) 14:15:07.44:N/cPeE83 そういえば >>> print(1) 1 だとNoneは表示されないのに >>> print(1, end=''),print(2) 12 (None, None) のときだけ表示されるのは変だと思わない? : デフォルトの名無しさん [sage] 2019/03/07(木) 14:31:29.61:E2eXaClF 下はタプルだからだろ。 : デフォルトの名無しさん [] 2019/03/07(木) 15:40:41.57:lgGD2eax None単体の場合は表示されないようにインタラクティブシェルがなってる >>> None >>> : デフォルトの名無しさん [] 2019/03/07(木) 16:03:31.61:aOVGrksh >>> print(1, end='') or print(2) 12 : デフォルトの名無しさん [sage] 2019/03/07(木) 16:38:38.56:UepKFInK 以下のURLを参考に、フォントファイルから画像を描画しようと思っています 指定した文字がフォントファイルにあるかどうかの判定は、どのようにすれば良いでしょうか? ttp://http://d.hatena.ne.jp/nakamura001/20101228/1293522309 それとも一度描画して、真っ白かどうかで判定・・・しかないでしょうか pprintで取得したところ、参照のような感じと思いますが、以下のようになりました。 <PIL.Image.Image image mode=RGB size=256x256 at 0x13FF7DEE2E8> : デフォルトの名無しさん [] 2019/03/07(木) 16:58:16.83:aOVGrksh freetypeならFT_Get_Char_Index : デフォルトの名無しさん [] 2019/03/07(木) 17:01:47.98:aOVGrksh ここも参考になるかな ttp://https://qiita.com/496_/items/f6efb650dcf7e9d2dfe4 : デフォルトの名無しさん [sage] 2019/03/07(木) 17:34:33.92:UepKFInK ありがとうございます 使い方を教えていただけないでしょうか 引数が二個必要とかいてると思うのですが ttp://https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Get_Char_Index 実際に二個設定するとエラーがでます import pprint import freetype face = freetype.Face('C:/Users/a/font/src.ttc') pprint.pprint(freetype.FT_Get_Char_Index(face,"33")) これはエラーになります import pprint import freetype pprint.pprint(freetype.FT_Get_Char_Index("33")) OSError: exception: access violation writing 0x000001CA5F00FF01 お助け下さい : デフォルトの名無しさん [] 2019/03/07(木) 17:49:06.09:aOVGrksh 先にinit呼べ : デフォルトの名無しさん [] 2019/03/07(木) 17:53:31.19:aOVGrksh FreeTypeの使い方 ttp://https://qiita.com/496_/items/6d2540e26d66c9ed5f9a OpenTypeの仕様前編 ttp://https://qiita.com/496_/items/f6efb650dcf7e9d2dfe4 OpenTypeの仕様中編 ttp://https://qiita.com/496_/items/4f8327fe741cf0c87736 OpenTypeの仕様後編 ttp://https://qiita.com/496_/items/02f2d63fe4bd5603e4dc : デフォルトの名無しさん [] 2019/03/07(木) 19:18:41.40:aOVGrksh FONT_PATH = b'mikaP.ttf' ft2 = ctypes.windll.freetype ft2lib = ctypes.c_void_p() ft2.FT_Init_FreeType(ctypes.byref(ft2lib)) face = ctypes.c_void_p() font_path = ctypes.create_string_buffer(FONT_PATH) ft2.FT_New_Face(ft2lib, font_path, 0, ctypes.byref(face)) idx = ft2.FT_Get_Char_Index(face, b'A'[0]) print(f'{idx:04x}') # 0023 idx = ft2.FT_Get_Char_Index(face, ord('あ')) print(f'{idx:04x}') # 07bd ft2.FT_Done_Face(face) ft2.FT_Done_FreeType(ft2lib) 一応動いた : デフォルトの名無しさん [] 2019/03/07(木) 19:21:06.42:aOVGrksh idx = ft2.FT_Get_Char_Index(face, ord('鷗')) print(f'{idx:04x}') # 38c1 idx = ft2.FT_Get_Char_Index(face, ord('𠮟')) print(f'{idx:04x}') # 0000 : デフォルトの名無しさん [sage] 2019/03/07(木) 20:31:42.10:VtililUQ これ何使ってんの? スマホだよね? : デフォルトの名無しさん [sage] 2019/03/07(木) 20:32:20.69:VtililUQ いい本に出逢えばそれに越したことはない : デフォルトの名無しさん [sage] 2019/03/07(木) 21:37:32.00:D1nw//Ty Pythonista 3 iPad, iPhone のアプリ : デフォルトの名無しさん [] 2019/03/08(金) 01:56:52.91:FktPmjXq i = 10 def num(arg=i): print(arg) i = 7 num() iはどちらもグローバル変数ですよね? 関数の中身変えて7の方を出力させることってできますか? : デフォルトの名無しさん [sage] 2019/03/08(金) 02:04:22.64:Nky3or7z def num(arg=None): arg == i print(arg) : デフォルトの名無しさん [sage] 2019/03/08(金) 02:05:04.82:Nky3or7z def num(arg=None): _arg = i _print(arg) の誤り : デフォルトの名無しさん [sage] 2019/03/08(金) 02:15:56.15:5FsfaYFV ttps://i.imgur.com/2LoxSbi.jpg : デフォルトの名無しさん [sage] 2019/03/08(金) 02:20:26.52:5FsfaYFV ttps://i.imgur.com/FNgAPWr.jpg : デフォルトの名無しさん [] 2019/03/08(金) 02:47:32.14:FktPmjXq ありがとうございます でも7になる理由がわかりません。 どういった処理になるのか教えて欲しいです、 : デフォルトの名無しさん [sage] 2019/03/08(金) 06:55:10.03:49yeJutG ありがとー : デフォルトの名無しさん [sage] 2019/03/08(金) 11:24:52.69:enrIbZX0 i = 10 def num(arg=i): print(arg) i = 7 num() この場合は、def を定義するときにarg= でarg のデフォルト値をセットする。 この時の i は 10だろ。 まだ下の行は実行されていないんだから。 i = 10 def num(arg=None): arg == i print(arg) i = 7 num() この時のnum内の実行文は実行されたときに動くんだから、i=7 がセットされた値を参照する事になる。 関数のデフォルト値は関数を定義したときに決定される。 関数内の実行文は実行時に決定される。 : デフォルトの名無しさん [sage] 2019/03/08(金) 11:33:20.13:5FsfaYFV >この時の i は 10だろ。 まだ下の行は実行されていないんだから。 実行されるときの i は7だろ。 : デフォルトの名無しさん [sage] 2019/03/08(金) 12:03:17.67:JVGfVyzo 問題はprint(arg)が実行される時のargの値でしょ? def num(arg=i): の時に、argにはiへの参照が渡されるんじゃ無くて、iの値が渡されるってだけ。 : デフォルトの名無しさん [sage] 2019/03/08(金) 13:20:03.26:enrIbZX0 def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。 つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。 : デフォルトの名無しさん [sage] 2019/03/08(金) 13:35:58.82:5FsfaYFV それこの実行結果の前でも同じこと言えんの? ttps://i.imgur.com/LmkiE6A.jpg : デフォルトの名無しさん [sage] 2019/03/08(金) 13:36:28.88:0Uig+6Kq 仕様ですな デフォルト引数の式は関数が定義されるときにただ一度だけ評価され、同じ "計算済みの" 値が呼び出しのたびに使用されることを意味します。 ttp://https://docs.python.org/ja/3.6/reference/compound_stmts.html#function-definitions : デフォルトの名無しさん [sage] 2019/03/08(金) 13:39:30.34:0Uig+6Kq デフォルト引数じゃないしw 引数渡しちゃってるしw : デフォルトの名無しさん [sage] 2019/03/08(金) 13:57:33.85:JVGfVyzo 真面目にやってんならこれは恥ずかしい。 : デフォルトの名無しさん [sage] 2019/03/08(金) 14:02:30.13:j3nR25S+ ガイガイ音頭踊っとれや…(嘆息) : デフォルトの名無しさん [sage] 2019/03/08(金) 14:12:04.85:1m9JjIZU おもしろかったぞw : デフォルトの名無しさん [sage] 2019/03/08(金) 14:51:41.35:enrIbZX0 デフォルトが解っていないみたいだな。 これとまったく同じことなんだぞ。 def num(arg=10) print(arg) print(num(7)) #> 7 print(num()) #> 10 : デフォルトの名無しさん [sage] 2019/03/08(金) 14:53:37.91:enrIbZX0 printが2重になってたな。 : デフォルトの名無しさん [sage] 2019/03/08(金) 15:17:08.58:E9FXn3JR 勉強になったな! : デフォルトの名無しさん [] 2019/03/08(金) 16:07:05.72:eYLLL/Dr よくはまるのは default=[] にしたとき : デフォルトの名無しさん [sage] 2019/03/08(金) 16:35:59.46:DUow6Thg 二次元配列からの取り出しで、 X = hoge[:, [2,3]] Y = hoge[:, 0] って書かれている時、具体的にどこからどこまで取り出しているのでしょうか? : デフォルトの名無しさん [sage] 2019/03/08(金) 17:17:55.67:54yPjEY7 def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。 つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。 つまり、関数定義時点で、i=10 とデフォルト値が確定する。実行時ではない。デフォルト値が、10から7にころころ変わったりするものか。だから、結果は10なんだよ …ってあれ? : デフォルトの名無しさん [sage] 2019/03/08(金) 17:20:46.97:54yPjEY7 仕様ですな デフォルト引数の式は関数が定義されるときにただ一度だけ評価され、(つまり10と評価)同じ "計算済みの" 値(つまり10)が呼び出しのたびに使用されることを意味します。 ttp://https://docs.python.org/ja/3.6/reference/compound_stmts.html#function-definitions 見事に結果が違うな 下手に言葉でルール説明しなくていいから、インタプリタに動作アルゴリズムをそのまま公開してほしいわ : デフォルトの名無しさん [sage] 2019/03/08(金) 17:41:30.86:SfpbmzlL ちょっと何言ってんだか分かんないw : デフォルトの名無しさん [] 2019/03/08(金) 17:48:01.52:+fF7voFW Xは2列目と3列目 Yは0列目 : デフォルトの名無しさん [sage] 2019/03/08(金) 18:34:43.25:qP6cz7Aj 言語リファレンスは明確に仕様を定義するだけのものだから、理解させるためのものではない。 絶対に間違いがあってはならないから下手な説明はない方が良い。 : デフォルトの名無しさん [sage] 2019/03/08(金) 19:17:40.56:1m9JjIZU >>下手に言葉でルール説明しなくていいから オイオイ、これ以上分かりやすい説明ないだろう。しかも公式リファレンスだよ >>インタプリタに動作アルゴリズムをそのまま公開してほしいわ 意味不明w : デフォルトの名無しさん [sage] 2019/03/08(金) 20:03:58.48:IGhZvnlG 公式の説明と実際の動作が一致しないんじゃなあ : デフォルトの名無しさん [sage] 2019/03/08(金) 20:34:26.69:TVXnQmRl さすがに釣りでしょう : デフォルトの名無しさん [sage] 2019/03/08(金) 21:33:30.47:1m9JjIZU その一致しないってコード貼ってみて : デフォルトの名無しさん [sage] 2019/03/08(金) 21:35:26.18:5FsfaYFV ttps://i.imgur.com/2LoxSbi.jpg : デフォルトの名無しさん [sage] 2019/03/08(金) 21:45:16.90:mz9PUEDs まじかよこいつ… : デフォルトの名無しさん [sage] 2019/03/08(金) 21:47:23.79:JVGfVyzo ‥あの、最後の行でnum()が実行される前に、i=7にして、print(arg) のargに7入れてますよね。。 : デフォルトの名無しさん [sage] 2019/03/08(金) 21:48:50.29:6/VZFxCg まず関数の中ではprintじゃなくてreturn使えよ : デフォルトの名無しさん [sage] 2019/03/08(金) 21:54:12.28:1m9JjIZU クソー、こんなバカでかい釣針に… : デフォルトの名無しさん [sage] 2019/03/08(金) 21:58:20.32:0lCnL4hz レベル高すぎて俺分からんが、へんだとPythonを作っているところに 激しく抗議したほうが良いな。 : デフォルトの名無しさん [sage] 2019/03/08(金) 22:10:29.49:5FsfaYFV def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。 つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。 つまり、関数定義時点で、arg =None とデフォルト値が確定する。実行時ではない。デフォルト値が、None から7にころころ変わったりするものか。だから、結果はNone なんだよ : デフォルトの名無しさん [sage] 2019/03/08(金) 22:38:20.41:5FsfaYFV ttps://i.imgur.com/idkGAYZ.jpg : デフォルトの名無しさん [sage] 2019/03/08(金) 22:44:17.08:5FsfaYFV ttps://i.imgur.com/cVbw05B.jpg : デフォルトの名無しさん [sage] 2019/03/08(金) 22:48:11.06:5FsfaYFV 同じことだよ Def で確定なんかしないんだな ttps://i.imgur.com/InFjQUr.jpg : デフォルトの名無しさん [sage] 2019/03/08(金) 22:51:54.71:5FsfaYFV 要するに この二つで 主力に差がある おかしいだろ 言語仕様的にってこと ttps://i.imgur.com/FNgAPWr.jpg ttps://i.imgur.com/InFjQUr.jpg i がグローバルだとか def で引数確定だとか じゃあ説明つかないわけで : デフォルトの名無しさん [sage] 2019/03/08(金) 22:55:09.64:drDoyyDV 何もおかしくなくね? : デフォルトの名無しさん [sage] 2019/03/08(金) 22:58:43.49:Bv9xm7M7 5FsfaYFVの頭がおかしい : デフォルトの名無しさん [sage] 2019/03/08(金) 23:03:08.61:kqYYM5Yl 何が問題なのかわからん 最初のはnum()に引数渡してないんだから、定義時のarg = 10がデフォルト値と設定されて10が表示される 次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される : デフォルトの名無しさん [sage] 2019/03/08(金) 23:08:02.19:0lCnL4hz 俺ら低脳はおかしくなくねだろうが、高脳は説明つかないわけで になるんだよ。 脳レベルがずっと低い低脳は高脳が言っていることはレベル高すぎて理解できないことがよくあるからな 高脳がすごいことをカキコしても俺らはついていけないからスルー(何言っているの)になってしまう。 超初心者(低脳)スレで言ってもしょうがないから,teratailあたりで、これ説明つかないよね と意見を求めたほうが良いよ : デフォルトの名無しさん [sage] 2019/03/08(金) 23:25:29.70:33ZLM8BT 何言ってんだこいつは? 長々とおちょくってるだけだろ。 何が言語仕様的にだ。言語仕様も理解できないで文句言うな。 言語仕様を100回読め。 : デフォルトの名無しさん [sage] 2019/03/08(金) 23:25:43.90:/RdmhwQH こんな基本的な事がおかしかったらとっくに修正されてる ドキュメントを熟読してnum.__defaults__を確認しなさい : デフォルトの名無しさん [sage] 2019/03/08(金) 23:59:43.59:fVqLi10C >次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される デフォルトは確定だから上書き不可能 : デフォルトの名無しさん [sage] 2019/03/09(土) 00:01:58.96:LldggWB2 この言語仕様がおかしい ttps://i.imgur.com/FNgAPWr.jpg i はグローバル変数なんだから、def で確定させてはいけない それが直感的に正しい記述を目指すPython 的な文法 開発者は即刻インタプリタを修正すべき すぐにだ! : デフォルトの名無しさん [sage] 2019/03/09(土) 00:03:20.04:LldggWB2 黄猿は現行仕様を無批判に教祖のごとく崇め奉る無能者 そんな信者の擁護論をあてにしてはいけない 俺のような人間の言うことを開発者は聞くべき : デフォルトの名無しさん [sage] 2019/03/09(土) 00:04:09.24:JrnVgIXe そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで… : デフォルトの名無しさん [sage] 2019/03/09(土) 00:07:50.33:ScAo2omB 初耳だ、詳しく : デフォルトの名無しさん [sage] 2019/03/09(土) 00:18:40.63:a1Hsl2rh なんかもやもやしてたけどの発言でスッキリした : デフォルトの名無しさん [sage] 2019/03/09(土) 00:31:23.52:ScAo2omB エー、どういうこと? 俺のモヤモヤ晴らしてくれよー : デフォルトの名無しさん [sage] 2019/03/09(土) 00:32:14.31:a1Hsl2rh 前言撤回 numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが 違うのか? : デフォルトの名無しさん [sage] 2019/03/09(土) 00:32:30.46:jmJNTA16 お前が言語を理解していないことがよくわかるな。 デフォルト値は変数ではなくて、固定の値なんだぞ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 00:32:49.42:QFJRtnnZ 普通は i = 10 def num(arg=i): print(arg) じゃなく、 def num(arg=10): print(arg) とするんだろうが、変数を介してデフォルト引数を指定して使う場合って どんな時なんだろうって思うんだよな : デフォルトの名無しさん [sage] 2019/03/09(土) 00:34:24.26:jmJNTA16 何も入れない時に、どう言う値が入ったものとして動くかを決めるのがデフォルト値。 : デフォルトの名無しさん [sage] 2019/03/09(土) 00:46:43.68:LldggWB2 def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。 つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。 : デフォルトの名無しさん [sage] 2019/03/09(土) 00:49:26.21:a1Hsl2rh そうなんだけど 多分は引数のこと理解してないをわかってないんだろ。 デフォルト値を使いたい訳じゃなく、defに数値を渡したいだけじゃないのか? : デフォルトの名無しさん [sage] 2019/03/09(土) 00:51:38.41:LldggWB2 >numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが 不安定になるw なにその情緒論 文法的に不可ならエラー吐けばOK そうでないなら、「何らかの処理」をさせて終わり その処理を場合分けして書いとくのが公式ドキュメントの仕事だろ : デフォルトの名無しさん [sage] 2019/03/09(土) 00:55:39.76:jmJNTA16 def num(arg=i): print(arg) と、 def num(i): print(i) は同じものだと思ってるのかな? 下の場合はまたそれはそれで誤解しそうな要素を孕んでるんだけど。 この場合の i は、ローカル変数となる。外でグローバル変数として使われていてもね。 : デフォルトの名無しさん [sage] 2019/03/09(土) 01:02:30.05:ScAo2omB 誰か俺の疑問にも応えてよ〜 について詳しく知りたいんだよ〜 : デフォルトの名無しさん [sage] 2019/03/09(土) 01:03:05.66:jmJNTA16 もしかして、デフォルトというカタカナ英語が理解できないのかも。 省略した時の値、省略値といってあげれば理解できるのかな? : デフォルトの名無しさん [sage] 2019/03/09(土) 01:03:41.96:a1Hsl2rh そこでなくて def num(i): を呼ぶときに num()にするとエラーが出るよね。 けど、 def num(agr=i) に、するとエラーが出ない!!うまく行った!! けど、思ってた作動しない!なんでや! で騒いでんのと思う : デフォルトの名無しさん [sage] 2019/03/09(土) 01:04:04.19:jmJNTA16 省略値って何をするものか理解したか? : デフォルトの名無しさん [sage] 2019/03/09(土) 01:14:03.06:ScAo2omB どういうことですか? 条件によってデフォルト値を変えるような使い方はまずいんでしょうか? : デフォルトの名無しさん [sage] 2019/03/09(土) 01:16:59.92:jmJNTA16 まずいも何もそんなことはできないし、それは省略値ではない。 省略値は何度も言うように関数を定義した時点で固定されるもので、一度その時に固定された値が後で変わるようなことはあり得ない。 : デフォルトの名無しさん [sage] 2019/03/09(土) 01:19:46.38:jmJNTA16 理解できなければ、デフォルト値には変数は使えないと覚えた方が身のためだよ。 あくまでも固定値なんだよ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 01:31:22.96:gjM9SRoS ttps://i.imgur.com/InFjQUr.jpg > 一度その時に固定された値(10)が後で変わるようなことはあり得ない。 変わってるじゃん 7 に : デフォルトの名無しさん [sage] 2019/03/09(土) 01:33:05.19:ScAo2omB 言い方がまずかったかな 私が言いたかったのは def func(arg=var): のvarの部分に変数を使うっていう意味で言ったつもりだったんですけど : デフォルトの名無しさん [sage] 2019/03/09(土) 01:38:38.47:gjM9SRoS そう言い方がまずいんだよ 日本語の表現力が君には足りない 昨日からしつこく指摘されてようやく理解したようだね 以後は気をつけるように 君は言葉で説明するのはやめとけ みんなが迷惑する 具体的なコード書いて、こうかくとこうなる、こう変えるとこうなる、そう具体的に書いたほうがいい : デフォルトの名無しさん [sage] 2019/03/09(土) 01:48:10.74:a1Hsl2rh やっと言葉が見つかった デフォルト値と引数の引き渡し方を混同してないかい? : デフォルトの名無しさん [sage] 2019/03/09(土) 01:54:11.30:CZjUTyKq 別にいいんじゃないの なんかまずいことでもあるのかな? : デフォルトの名無しさん [sage] 2019/03/09(土) 01:59:58.65:jmJNTA16 そう言うことだな。 は完全に混同してる。 省略値が全くわかっていない。 下の方で i= 7 num(i) で呼んだ場合は、パラメーターとして7を渡したんだから、パラメータは省略されていないんだから省略値が使われるわけがないと言うことを理解しない限りは堂々巡りだな。 num() と言う形でパラメータを渡さなかった場合にだけ、省略値が使われる事を理解しなさい。 なんのための省略値だよ。 呼び出し元がパラメータを渡さなかった場合に使われる値が省略値だよ。 def num(arg=10) であれば、num() で呼べば、num(10) と呼んだのと等しくなる。 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:07:54.61:ScAo2omB ねえねえ、に関してのご教授お願いしますよ : デフォルトの名無しさん [sage] 2019/03/09(土) 02:09:08.25:gjM9SRoS その日本語説明では、 ttps://i.imgur.com/FNgAPWr.jpg が説明できていない : デフォルトの名無しさん [sage] 2019/03/09(土) 02:15:15.17:gjM9SRoS の言いたいことをコードで書くとこうだな ttps://i.imgur.com/iv7Capl.jpg ttps://i.imgur.com/MoZ1uos.jpg : デフォルトの名無しさん [sage] 2019/03/09(土) 02:19:08.39:gjM9SRoS で、言語仕様的問題に戻るとだ。 インデント強制文法で売ってるPython 的には、こういう場合、i は、グローバル変数になるべきなのであって、 i 渡さない場合でも、上のi だけ参照するようなクソ仕様は直感に反するから修正しろということ ちゃんと下の i も見るようにしろと。 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:21:39.74:jmJNTA16 お前は人の言葉を聞いていないだろ。 i=10 def num(arg=i) と書いた時点で、 def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。 その後で、iをどう変化させようが 省略値は変わらないんだよ。 お前わざとおちょくってるだろ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:22:12.05:gjM9SRoS つまり、このコードでも出力は、10じゃなくて、7になるように言語体系を考えて作り込めということだよ。 ttps://i.imgur.com/MoZ1uos.jpg わかったか>PSF : デフォルトの名無しさん [sage] 2019/03/09(土) 02:24:09.75:gjM9SRoS >i=10 >def num(arg=i) と書いた時点で、 >def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。 >その後で、iをどう変化させようが >省略値は変わらないんだよ。 その日本語説明では、 ttps://i.imgur.com/iv7Capl.jpg が説明できないな もうお前日本語使うのやめろ むいてないよ コードで語れ : デフォルトの名無しさん [sage] 2019/03/09(土) 02:24:20.95:jmJNTA16 お前がバカなのはよくわかった。 省略値は変数じゃないと何べん言ったらわかるんだ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:25:17.72:ScAo2omB ねえってばー、荒しの相手してないでボクの疑問に答えてくださいよー : デフォルトの名無しさん [sage] 2019/03/09(土) 02:29:04.29:jmJNTA16 お前も嵐だろ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:30:13.44:gjM9SRoS 試しに置き換えてみた 出力結果を見てみろ 7だぞ 10じゃないぞ >i=10 >def num(arg=i) と書いた時点で、 >def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。 ttps://i.imgur.com/vJPCACP.jpg : デフォルトの名無しさん [sage] 2019/03/09(土) 02:30:23.94:jmJNTA16 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:32:07.70:jmJNTA16 お前がただのバカだと言うことがよくわかった。 小学校は卒業したか? : デフォルトの名無しさん [sage] 2019/03/09(土) 02:33:18.73:gjM9SRoS コードとその実行結果だけが真実だよ 口汚く罵るのは素人の証拠 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:37:03.26:jmJNTA16 ここを100回読んでから出直せ。 ttp://https://docs.python.org/ja/3/tutorial/controlflow.html#default-argument-values 4.7.1. デフォルトの引数値 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:37:28.33:ScAo2omB おいおい荒しと一緒にしないでくれよ 自分の間違えに気が付いたんで逃げるのかw デフォルト値に変数を使えるよねえw i = 3 def sum(x, y=i): print(x + y) sum(2) : デフォルトの名無しさん [sage] 2019/03/09(土) 02:39:33.41:gjM9SRoS このコード見て自分の日本語がおかしいと感じるだろう? ttps://i.imgur.com/vJPCACP.jpg : デフォルトの名無しさん [sage] 2019/03/09(土) 02:39:50.07:jmJNTA16 重要な警告: デフォルト値は 1 度だけしか評価されません。 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:41:41.76:gjM9SRoS だからなに? コードで語れないの? ひょっとしてドキュメント読むだけで、プログラム書いたことないの? : デフォルトの名無しさん [sage] 2019/03/09(土) 02:44:04.32:ScAo2omB 100回読んだけどデフォルト値に変数を使っちゃいけないなんて書いてませんでしたよ の発言の言い訳をお願いしますw : デフォルトの名無しさん [sage] 2019/03/09(土) 02:45:06.52:jmJNTA16 重要な警告: デフォルト値は 1 度だけしか評価されません。 変わらないものは変数とは言いません。 : デフォルトの名無しさん [sage] 2019/03/09(土) 02:47:13.43:gjM9SRoS Def に変数を代入してもOK ttps://i.imgur.com/92NY4Vr.jpg : デフォルトの名無しさん [sage] 2019/03/09(土) 02:47:13.77:EXmOKVNB ガイガイ音頭踊っとれやとは言ったが 夜通し踊れとは言っとらん : デフォルトの名無しさん [sage] 2019/03/09(土) 02:51:29.61:ScAo2omB i = 3 def sum(x, y=i): この i は変数ではないと強弁されるおつもりか? : デフォルトの名無しさん [sage] 2019/03/09(土) 02:53:31.44:WSwBoc7f 実引数を渡したら既定値は参照されないので、頓珍漢な主張 また既定値に変数を使用しても結び付きは変数ではなく実体 定義時に解決された割り当ては些か小細工せんと変化しない : デフォルトの名無しさん [sage] 2019/03/09(土) 03:16:44.80:ScAo2omB 行きがかり上煽りのようになってしまったワケですが… の「そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで…」 という発言になんで間違え?って思ったんですよ これ、「間違いではないけどあまり意味はないよ」くらいの解釈でよろしいんでしょうか? : デフォルトの名無しさん [sage] 2019/03/09(土) 03:47:01.64:WSwBoc7f 元になった変数へ再代入したら仮引数の既定値も変化する事を期待するならば意図した動作にはならない しかし実体を共有したり、ミュターブルなら代入を除く変更を反映させたり、コード次第で普遍的に意味がないという事もない またnum.__defaults__ = (7,)等として既定値の再割り当ても可能ではあるが、これは基本的に与える実引数を変えるべきとされよう : 701 [sage] 2019/03/09(土) 03:52:48.95:WSwBoc7f なぜ長音符が妙な位置に…ミュターブル→ミュータブル(mutable)、変更可能オブジェクト : デフォルトの名無しさん [sage] 2019/03/09(土) 04:26:19.28:ScAo2omB もちろん意図した場合を除いて実引数が変化するなどとは思っておりません 単にデフォルト引数に変数は間違えというのに引っかかったわけで __defaults__は知りませんでした 以前デフォルト引数を使ってオブジェクト指向チックにというお題をやったもんで animal = 'human' # 'dog' になったり 'cat' になったり numeral = '人' if animal == 'human' else '匹' def count(c, n=numeral): ____print(str(c) + n) count(3) # 鶏になった count(3, '羽') どうもありがとうございました : デフォルトの名無しさん [sage] 2019/03/09(土) 06:05:07.57:sGXnYTxg >単にデフォルト引数に変数は間違えというのに引っかかったわけで は、関数の中でデフォルト値上書きしといて何言ってんだ? : デフォルトの名無しさん [sage] 2019/03/09(土) 07:29:28.52:jmJNTA16 そう言う意味合いだけどわざわざ混乱するような書き方は避けるべきだと言う事。 普通はそんな書方したら叱られるレベル。 のように条件でデフォルト値を変えたいなら、def文の中に書いてわかりやすくすべき。 別れて書いたら混乱の元。 この場合も条件によりデフォルトの固定値を変えているだけでしかない。 : デフォルトの名無しさん [sage] 2019/03/09(土) 07:50:08.53:sGXnYTxg 外部の設定ファイル読んでデフォルト値設定、デフォルト値でいいなら引数省略可、とかやる時どうやんの? : デフォルトの名無しさん [sage] 2019/03/09(土) 08:06:27.23:aHKuI1wh どうでもいいが、デフォルトって既定値って言わね?普通 : デフォルトの名無しさん [sage] 2019/03/09(土) 08:26:54.57:IZUVT+2M どうでもいいんなら良いじゃん 日本語か英語かってだけだろ プログラム用語と数学用語はもう和訳するのやめて全部カタカタ英語でいいよな いちいち日本語にす🏝🏝🏝驍ニ無駄に難しく聞こえるんだよ : デフォルトの名無しさん [sage] 2019/03/09(土) 09:29:49.81:1Grnbwgn ええ : デフォルトの名無しさん [sage] 2019/03/09(土) 09:37:13.71:sGXnYTxg from datetime import date from datetime import timedelta def offsetday(offset=0): da=date.today() + timedelta(days=offset) print('%s' % da) offsetday() #引数省略したら今日の日付 offsetday(5) #引数渡したらN日後の日付 便利だねぇ。デフォルト値。 : デフォルトの名無しさん [sage] 2019/03/09(土) 09:51:43.74:sGXnYTxg 今の流れならこうか from datetime import date from datetime import timedelta #どこからからか設定もらう i=getdefnum() def offsetday(offset=i): da=date.today() + timedelta(days=offset) print('%s' % da) offsetday() #引数省略したらもらってきた設定値 : デフォルトの名無しさん [sage] 2019/03/09(土) 10:37:54.51:aHKuI1wh いや、なんかごめんな…(´・ω・`) なぜ一般に既定値って訳されるか、今一度考える機会を皆に与えたかったんだ : デフォルトの名無しさん [sage] 2019/03/09(土) 11:24:51.58:5O+JPpeP 関数の中でデフォルト値上書きしといてってどうういこと? 上書きしてるようには見えないんだけど : デフォルトの名無しさん [sage] 2019/03/09(土) 11:32:05.17:KFikgSMo 俺には難しすぎだよ。インポしてる関数(オブジェクト?)の使い方がわからん。 流れらはずれているが考えてみた。 #値段 pl=1980 def num(tax=8): #税率 print(pl*(1+tax/100)) num() #無指定8% num(10) #税率指定 確かに便利だな : デフォルトの名無しさん [sage] 2019/03/09(土) 11:41:41.60:7R/zU8Sh インぽなおまいはまず日本語の誤字脱字多数修正 : デフォルトの名無しさん [sage] 2019/03/09(土) 12:17:11.83:pRsXet8g 上書きしてないよ すごく分かりやすい例だ : デフォルトの名無しさん [sage] 2019/03/09(土) 13:01:55.81:QD5YmF9d はじめまして初心者です。 Windows10でメモ帳を開いて、メモ帳のウインドウサイズを変更し文字を入力したいのです。 どなたか教えてください>< : デフォルトの名無しさん [sage] 2019/03/09(土) 13:05:39.03:1Grnbwgn そんなんで出来るか : デフォルトの名無しさん [sage] 2019/03/09(土) 13:07:04.99:QD5YmF9d すいません。 をPythonを使って行いたいって意味です。 よろしくお願いします>< : デフォルトの名無しさん [sage] 2019/03/09(土) 13:07:18.08:QFJRtnnZ >#値段 >pl=1980 なんて言うか、値段をplにするって俺ららしいよな : デフォルトの名無しさん [sage] 2019/03/09(土) 13:10:14.35:7R/zU8Sh くらいよめよ 理解できないならまだここじゃなくて PC初心者板での勉強が必要なレベル =Python以前の問題 だぞ : デフォルトの名無しさん [sage] 2019/03/09(土) 13:12:06.66:QD5YmF9d は読みましたが、解決しませんでした>< : デフォルトの名無しさん [sage] 2019/03/09(土) 13:12:14.04:7R/zU8Sh とりあえず↓あたりよめ (Python以前の問題で解決するかもしらん) ttps://support.lenovo.com/gr/ja/solutions/ht118907 : デフォルトの名無しさん [sage] 2019/03/09(土) 13:13:25.44:7R/zU8Sh あるいはレジストリいじって解決するかもしらん ttp://sei.qee.jp/docs/program/hta/sample/memofont.html : デフォルトの名無しさん [sage] 2019/03/09(土) 13:14:31.86:QD5YmF9d 真面目に質問してるので煽りはスルーします。。。 初心者です。優しい方お願いします>< ちなみに20代の女子です。。。 : デフォルトの名無しさん [sage] 2019/03/09(土) 13:40:52.46:QFJRtnnZ ID:WSwBoc7f はなんかこのスレでは珍しい高脳って感じだな の >既定値に変数を使用しても結び付きは変数ではなく実体 が正しいんだろうな 結び付きが変数なら、実引数省略して関数を呼びだしたときの変数が指すオブジェクトが 実引数になるだろうからな。 : デフォルトの名無しさん [sage] 2019/03/09(土) 13:49:46.79:QD5YmF9d です。 どなたかよろしくお願いします>< : デフォルトの名無しさん [sage] 2019/03/09(土) 13:54:33.79:BnoVO+GE RPAを買いなさい : デフォルトの名無しさん [sage] 2019/03/09(土) 13:59:57.56:QD5YmF9d すいません。目的はPythonの学習なのでPythonで解決したいと考えてます。 イケメンでPythonに詳しいあなた達なら良い解決策をお持ちではないですか? : デフォルトの名無しさん [sage] 2019/03/09(土) 14:02:39.34:BnoVO+GE 他のアプリを操作したい系は初心者が誤って足を踏み入れがちな典型的な罠 何の役にも立たないバッドノウハウの塊であり、初心者の学習には全く適さない : デフォルトの名無しさん [sage] 2019/03/09(土) 14:07:00.37:QD5YmF9d では他のアプリとの連携はどうするのですか? : デフォルトの名無しさん [sage] 2019/03/09(土) 14:09:05.45:BnoVO+GE Pythonなら処理結果を一旦ファイルに落とすのが普通です : デフォルトの名無しさん [sage] 2019/03/09(土) 14:14:42.55:QD5YmF9d Pythonでメモ帳を500px×500pxで開きたいのですが それは叶わないのでしょうか? : デフォルトの名無しさん [sage] 2019/03/09(土) 14:22:02.05:t5ksfgQn ttp://https://github.com/asweigart/pyautogui メモ帳を開いてメモ帳のウインドウサイズ変更まではこれ使えばいけそうだ キーボードの操作はできるみたいだけど文字入力までできるかはわからない の言うように一時ファイルに書き込んでからオープンでいいなら可能だよ 初心者にはハードル高いと思うけどがんばってね : デフォルトの名無しさん [sage] 2019/03/09(土) 14:28:22.21:QD5YmF9d お二方ありがとうございます。 私が調べたところPyAutoGUIというライブラリで マウス操作やキー入力は可能でした。 ただ、ウィンドウサイズの変更と移動方法はよくわかりませんでした。 リンク先を見て勉強してみます。 : デフォルトの名無しさん [sage] 2019/03/09(土) 15:04:12.35:lwZTh4qp 解ってるとは思うけど1つの例としては良いんだけど、実際にそんなプログラムは絶対に書くべきでは無いよね。 関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。 同じことをやるなら、パラメータとして渡すべきだろ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 15:28:12.28:o9iMui5S あほか 関数なんてブラックボックスでいいんだよ そういうのはドキュメントを整備しくもんだ : デフォルトの名無しさん [sage] 2019/03/09(土) 15:52:35.69:lwZTh4qp プログラムこそ最高のドキュメントじゃ無いのかな? ルールから外れたブログラミングルールは、決して褒められたものでは無い。 Pythonがなんで、インデントを重視したか? 誰が見ても間違えない様にするためなんだよ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 15:53:19.46:atnduDe4 関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。 お前はエスパーかw : デフォルトの名無しさん [sage] 2019/03/09(土) 16:00:48.16:lwZTh4qp i=1 j=2 k=3 def add(a=i,b=j,c=k): return a+b+c print(add()) # 6 ---- # こんなのより def add(a=0,b=0,c=0): return a+b+c i=1 j=2 k=3 print(add()) #0 print(add(i,j)) #3 print(add(i,j,k)) #6 #こっちの方が100倍マシ。 いくらドキュメントをどこかで作っても誰も読まないよ。 プログラムが大きくなればなるほどプログラムこそ最高のドキュメントなんだよ。 : デフォルトの名無しさん [sage] 2019/03/09(土) 16:37:19.27:WSwBoc7f 自演に思われそうかつ高次脳機能障害みたいな略の持ち上げはYAMETE! 数式的に妥当かは与り知らんけど、Pythonに変数のエイリアスは無いしね 古典的な静的型言語と違い、変数は実体への参照に過ぎないのもハマりがちな所 代入を除く変更ってのも色々語弊が有るな、実体に対する操作と表現するべきか んー…確かにドキュメントではその辺りが欠けているというか正式実装じゃない? 既に他者のPythonコードが読めるなら直接↓を見るとか、helpやpydocに掛けるなり ttp://https://github.com/asweigart/pyautogui/blob/master/pyautogui/_window_win.py 質問に対する愚直な答えは同モジュールのようなctypesでWindows APIを呼び出したりが基本になるだろうけど 既存ライブラリに無い操作を実装するに際しては、Microsoft Docsとかにマクロの具体的な定数が併記されてないと Windows SDKのC/C++ヘッダーも参照する事になるし、最終目標に対し言語や実現方法などが適切かも考えた方が良い : デフォルトの名無しさん [sage] 2019/03/09(土) 17:08:54.75:QD5YmF9d ありがとうございます。 URL参考にさせていただきます。 外部アプリの操作にPythonは向いてないのでしょうか。 私なりに調べたところPythonからpowershellを実行するのが一番簡単そうだと思いました。 何かよい手があれば教えてください。 : デフォルトの名無しさん [] 2019/03/09(土) 17:35:51.96:kfZA3URW ねむくなるねこのすれ : デフォルトの名無しさん [sage] 2019/03/09(土) 19:17:19.14:fMIUxryy 初心者は寝てていいよ : デフォルトの名無しさん [sage] 2019/03/09(土) 19:23:12.70:WSwBoc7f もっと全体的な流れ、具体的な結果に依るので抽象的な回答になってしまうけど メモ帳へ文字入力というのが単にファイルの読み書きで済むなら迂遠だし エディタを機械的に操作したければ何ぞスクリプト対応のアプリを使用するとか 汎用的に外部アプリ全般を弄りたくて起動や開く程度ならsubprocessとかでも十分だけど 細かい所はWinAPIを直接呼ぶ必要が出てきてたり、大半がPowershellで構成されるなら これはもうPythonの学習というより、それらにすり替わり、置き換えられるよねという事 外部アプリ操作≒UI操作なら一般的とは思わないが、シェル代わりや橋渡しとしてはよく使われる Windows APIを呼び出す云々はSDKを使うネイティブ言語よりコンパイル諸々などお手軽な面はある : デフォルトの名無しさん [sage] 2019/03/09(土) 19:38:41.90:GVs3bbIF 例えば、Ruby から、powershell を呼び出して、クリップボード処理もできる。 str = `powershell Get-Clipboard` >でも、メモ帳のウインドウサイズを変更し、文字を入力したいのです 基本的に、他人が作ったアプリは、他のアプリから操作できない。 操作できるためには、操作用のAPI を公開して、その使用方法の文書も書く必要がある powershell は公開されているから、他のアプリからも使えるけど、メモ帳はどうかな? 例えば、君が作ったアプリを、他のアプリから操作できるように、 わざわざ操作用のAPI を公開して、その使用方法の文書を書いたりしないでしょ? 面倒くさいし そういうアプリは当然、他のアプリから操作できない : デフォルトの名無しさん [sage] 2019/03/09(土) 19:44:42.88:C6v7oEvs rubyとかいうゴミ言語はまったく関係ないな powershellを外部コマンドとして呼び出してるだけ これでrubyスゴい!になっちゃうのがrubyキチガイのキチガイたる所以 : デフォルトの名無しさん [sage] 2019/03/09(土) 19:47:45.08:3mUakWGD そんなことよりなんで今更何のためにメモ帳に書くのかな。そっちの方が興味がある。 : デフォルトの名無しさん [sage] 2019/03/09(土) 19:53:19.79:QD5YmF9d subprocessを使えば簡単な操作はできるんですね。 ありがとうございます。調べてみます。 本当は複雑なこともやってみたいと思ってましたが。。。 APIが公開されてないものは基本外部から操作は出来ないんですね。。。 ありがとうございます。勉強になりました。 : デフォルトの名無しさん [sage] 2019/03/09(土) 19:57:06.37:wl/Le+J5 さすがは、チームRWBY 相手の力を利用するとは、なかなかやるね! : デフォルトの名無しさん [sage] 2019/03/09(土) 20:21:03.99:Pn/iQo1s rubyはpycallとか作ってまで生き残りをはかってるからな これほど「始まる前に勝負着いてた」事例があるだろうか : 746 [sage] 2019/03/09(土) 20:40:28.25:GVs3bbIF Ruby では、こういう感じ。 Rubyから、powershell, clip コマンド(子プロセス)を呼び出す。 そして、このスクリプトをbat, vbs から呼び出すようにすれば、ダブルクリックでも起動できる クリップボード内の複数行文字列の、各行の先頭・末尾から、 連続する空白類を除去して、クリップボードに入れる str = `powershell Get-Clipboard` # クリップボードから取得 str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換 ary = str.each_line.map( &:strip ) # 空白類を除去 IO.popen( 'clip', 'w:cp932' ) do | clip | clip.print( ary.join "\n" ) # クリップボードへ書き戻す end : デフォルトの名無しさん [sage] 2019/03/09(土) 21:05:21.70:QD5YmF9d Pythonではできないのでしょうか? : デフォルトの名無しさん [sage] 2019/03/09(土) 21:36:12.11:BnoVO+GE PowerShellすごい! : デフォルトの名無しさん [sage] 2019/03/09(土) 21:51:05.13:Asclh6VQ スレ違い : デフォルトの名無しさん [sage] 2019/03/09(土) 21:52:20.14:QD5YmF9d ここはPythonすれですよw : デフォルトの名無しさん [sage] 2019/03/09(土) 23:13:21.29:QD5YmF9d 皆さん、相談にのっていただきありがとうございました。 SikuliというUI自動化ツールが優秀で思い通りの事ができました。 Pythonのスクリプトも使用できるのでとても満足です。 : デフォルトの名無しさん [] 2019/03/09(土) 23:51:29.47:H6isrNei Ruby禁止のRubyの単語に反応して書き込んでる説 : デフォルトの名無しさん [] 2019/03/10(日) 01:39:40.52:/HGKNCBK 副業解禁で激変する若者世代とマネージャー世代のキャリア観 ttp://http://www.businessinsider.jp/post-107782 フリーランスの職種20個の仕事内容と平均年収をわかりやすく解説 ttp://http://www.proof0309.com/entry/shokushu 時給1万円のバイトも。会社員向きのプチ副業を、“バイト芸人”が教える ttp://http://headlines.yahoo.co.jp/article?a=20190226-00127948-bizspa-bus_all 副業が「会社にバレる人」と「バレない人」の大差 ttp://http://headlines.yahoo.co.jp/article?a=20190303-00268007-toyo-bus_all 正社員の10%以上が副業 中には過重労働で体調崩す人も ttp://http://headlines.yahoo.co.jp/hl?a=20190227-00010000-wordleaf-bus_all 「副業で年2000万円稼ぐ男」に学ぶキャリア戦略 ttp://http://headlines.yahoo.co.jp/article?a=20190221-00266856-toyo-bus_all 加速する「副業社会」正社員の4割が「副業したい」 気になる収入はどれくらい? ttp://http://headlines.yahoo.co.jp/hl?a=20190218-00010001-danro-life おすすめ副業22選を現役フリーランスが解説【在宅も可能】 ttp://http://www.proof0309.com/entry/zaitaku-hukugyou 会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと ttp://http://www.businessinsider.jp/post-165731 フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か ttp://http://toyokeizai.net/articles/-/263055 フリーランス人口は増える!今後は仕事もプロジェクト単位になる!? ttp://http://freelance.mts-career.com/population/ どのくらい稼げるの?フリーランスエンジニアの単価・報酬・年収の話 ttp://http://findy-code.io/engineer-lab/engineer-unitprice-income : デフォルトの名無しさん [sage] 2019/03/10(日) 09:53:19.84:5/+zyaBC 死ね : デフォルトの名無しさん [sage] 2019/03/10(日) 10:33:29.03:YmMiXd1Z ガイジなど世間的には生まれた時点で死んだような存在だろネットでくらい許せ : デフォルトの名無しさん [] 2019/03/10(日) 18:44:45.56:uFsYqTSV ruby禁止は浸透したがpowershellも禁止でおながいしまつ : デフォルトの名無しさん [sage] 2019/03/10(日) 19:04:53.21:w00/E2cH プログラマー40歳限界説 : デフォルトの名無しさん [sage] 2019/03/10(日) 19:42:00.71:XCpNHt+Q ブックマークしてたpowershellのマニュアルのアドレスが変更されたみたいだ 誰か知りませんか? : デフォルトの名無しさん [sage] 2019/03/10(日) 19:50:01.61:eNJkLSXg スレチ : デフォルトの名無しさん [sage] 2019/03/11(月) 02:31:05.67:Q8+quAlB numpyでベクトルの配列の全要素に行列を掛けるにはどうしたらいいでしょ? やりたい事は vec=[[0,0],[1,1],[2,2]...] mat=[[0,1],[1,2]] result=[m & v for v in vec] こんな感じです : デフォルトの名無しさん [] 2019/03/11(月) 05:21:09.87:pTTv+VC9 mat@vec : デフォルトの名無しさん [] 2019/03/11(月) 05:23:59.55:pTTv+VC9 vecの作り方によっては mat@(vec.T) : デフォルトの名無しさん [sage] 2019/03/11(月) 07:42:02.40:R4ZESWdO pythonできればc#もできますか? pythonでゲームと、c#でwindowsのソフト両方を使ってますわ : デフォルトの名無しさん [sage] 2019/03/11(月) 08:49:44.07:Rf81Fxun フォルダを空にしようと思いましたが、うまく行きません shutil.rmtree(args.sample_dir) os.mkdir(args.sample_dir) os.mkdir(args.sample_dir)の部分で PermissionError: [WinError 5] アクセスが拒否されました。: 'test/sample_img' というエラーが出ます ディレクトリが消えているので shutil.rmtree(args.sample_dir) はうまく行っているようです このやり方はあまり良くないのでしょうか? : デフォルトの名無しさん [sage] 2019/03/11(月) 08:50:31.50:IpMePMuQ すみませんミスタイプしてました。求めたい結果は result=[mat@v for v in vec] ですね : デフォルトの名無しさん [] 2019/03/11(月) 12:16:20.15:hfHU2O5u forいらんで : デフォルトの名無しさん [] 2019/03/11(月) 12:19:13.01:hfHU2O5u こういうことかな (mat@(vec.T)).T : デフォルトの名無しさん [sage] 2019/03/11(月) 17:11:44.97:mNeqJkGU os.mkdirは途中に存在しないフォルダがあるとエラーしてしまうので 「os.makedirs()」をつかってみそ : デフォルトの名無しさん [sage] 2019/03/11(月) 17:33:25.52:pvnV5rIH inputした数字をそれぞれリスト化(aリスト,bりスト)したい。 入力(1行目は入力回数) 3 100 2 3 42 52 63 出力 [100, 3, 52] [2, 42, 63] 自分が作成したコードはinputをrangeで回してますが、inputを内包表記で1行で済ませる方法が分かりませんでした。 内包表記・関数でもうすこし短く出来ませんか? cunt = int(input()) a_list = [] b_list = [] for i in range(cunt): a,b = [int(x) for x in input().split()] a_list.append(a) b_list.append(b) print(a_list,b_list) : デフォルトの名無しさん [sage] 2019/03/11(月) 17:36:22.93:mNeqJkGU : デフォルトの名無しさん [sage] 2019/03/11(月) 17:38:42.78:mNeqJkGU とちゅうでおくってしまった がイイ(・∀・)こといってる気がするんだが なんとか利用できないかな : デフォルトの名無しさん [sage] 2019/03/11(月) 19:53:46.76:iNskGddB count = int(input()) temp = [None for x in range(count)] for i in range(count): temp[i] = input().split() else: a_list = [int(x[0]) for x in temp] b_list = [int(x[1]) for x in temp] print(a_list,b_list) というかコードを書く前にcuntを辞書で引け 話はそれからだ : デフォルトの名無しさん [sage] 2019/03/11(月) 19:57:35.25:PGatxMde クリトリスですか?なるほど… : デフォルトの名無しさん [sage] 2019/03/11(月) 20:39:01.91:mSdvFdhb print(*map(list, zip(*[map(int, input().split()) for i in range(int(input()))]))) : デフォルトの名無しさん [sage] 2019/03/11(月) 21:57:53.69:pvnV5rIH セクハラ通り越して放送禁止用語レベルだったんですね こういうループの発想が湧きませんでした 参考にさせて頂きます コレ使ってみます 関数1個1個はナントナク分かりましたが、何重も連なると自分のレベルは難しいです 時間かけて解読してみます 皆さんありがとうございました : デフォルトの名無しさん [sage] 2019/03/11(月) 22:05:12.11:IpMePMuQ ディメンションがちゃうで言われますね つまり座標配列全てにアフィン変換したいって事なんですがnumpyじゃ無理なんかな? : デフォルトの名無しさん [sage] 2019/03/11(月) 23:20:05.55:GdRfR4uu Ruby のArray#zip, transpose で、配列・行列の縦横変換できる。 zip の引数に、幾つかの配列(配列のリスト)を指定できる p [1,2,3].zip([4,5,6], [7,8,9]) # => [[1, 4, 7], [2, 5, 8], [3, 6, 9]] : デフォルトの名無しさん [sage] 2019/03/11(月) 23:38:19.16:qe97t/2K グロ : デフォルトの名無しさん [sage] 2019/03/11(月) 23:54:59.52:0HIo0fVP >コードを書く前にcuntを辞書で引け ゆとり教育では辞書使うなんて難易度の高いことはしない : デフォルトの名無しさん [sage] 2019/03/12(火) 00:08:58.95:KQFIYqiK "アフィン変換 numpy"でググればなんか希望の物が引っかかるんじゃないのか numpyを使ってアフィン変換をするライブラリなんかは誰か作っている気がする : デフォルトの名無しさん [sage] 2019/03/12(火) 01:19:04.31:Tg1PBlZE cunt 辞書ひいた。 笑っちゃったよ。 1. a stupid or unpleasant person 2. -> HUMAN a woman's vagina =sex organ : デフォルトの名無しさん [sage] 2019/03/12(火) 01:43:49.00:Tg1PBlZE 同じロングマンなんだけどなんかニュアンスが違うな。 cunt kʌnt 名 C《タブー》 1 《女性性器を意味する非常に侮蔑ぶべつ的な語》 2 《嫌悪感・怒りを感じる女性に対して用いる非常に侮蔑ぶべつ的な表現》 大辞林 カント 女性の性器。 コトバンク [名]((卑)) 1 たちの悪いやつ;いやなやつ Don't be a silly cunt. くだらんことを言うな. 2 女性器;性的対象としての女性, あばずれ;性交. [オランダ語kunte←フランス語] Oxford vulgar slang 1 A woman's genitals.(性器) 1.1 An unpleasant or stupid person. Origin Middle English: of Germanic origin; related to Norwegian and Swedish dialect kunta, and Middle Low German, Middle Dutch, and Danish dialect kunte. : デフォルトの名無しさん [sage] 2019/03/12(火) 12:29:06.26:Le2Xhtue 引数のイメージなんですが、引数は材料で、材料を関数で調理器にかけるイメージでしょうか? : デフォルトの名無しさん [sage] 2019/03/12(火) 12:30:30.49:F9OOaHwl 戻り値は? : デフォルトの名無しさん [sage] 2019/03/12(火) 12:33:21.35:c3A0Gx7w ひき肉を作る機械のイメージでええんやないの 上に入れる肉が引数、機械が関数、出てきたひき肉が戻り値 : デフォルトの名無しさん [sage] 2019/03/12(火) 12:36:33.66:rf03pH6k 引数に肉しか入れてないのに勝手に台所のコショウが減ったり電気使われたりするのが副作用 : デフォルトの名無しさん [sage] 2019/03/12(火) 12:39:17.36:Le2Xhtue ひき肉が引数、調理器が関数、バーグが戻り値 ありがとうござ : デフォルトの名無しさん [sage] 2019/03/12(火) 12:41:44.81:Le2Xhtue selfの意味ってなんですか? 単に関数を作成したときにデフォルトでついてくる引数という感じでしょうか。 だとしたらなんのためにですか? 読んでみたんですが、イマイチイメージが、、、 : デフォルトの名無しさん [] 2019/03/12(火) 12:52:43.68:uvkzn3tS selfは関数ではなくクラスのメソッドに付ける Javaのthisみたいなもので、メソッドを呼び出したオブジェクト自身を受け取るための引数 メソッド内でメンバ変数を参照したり別のメソッドを呼び出したりする時にself.〜 として使う : デフォルトの名無しさん [sage] 2019/03/12(火) 12:58:27.33:R/A89vkp 横からすいません self、self以外を指定することはあるのでしょうか? : デフォルトの名無しさん [sage] 2019/03/12(火) 13:11:28.09:rdaDEiid 慣例的なもので言語制約ではない、が補完などに影響するかも クラスメソッドではクラスが割り当てられるのでclsが使われる : デフォルトの名無しさん [sage] 2019/03/12(火) 13:16:23.13:rf03pH6k hoge.myMethod(fuga, piyo) myMethod(hoge, fuga, piyo) みたいなイメージ : デフォルトの名無しさん [] 2019/03/12(火) 13:20:45.17:6Uu2j9Xc 馬鹿には無理 : デフォルトの名無しさん [sage] 2019/03/12(火) 13:36:24.76:R/A89vkp ありがとうございます : デフォルトの名無しさん [sage] 2019/03/12(火) 13:58:38.98:c3A0Gx7w そもそも何でメソッドの引数にオブジェクト自身を渡すんやろうか obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに : デフォルトの名無しさん [sage] 2019/03/12(火) 14:09:51.25:R/A89vkp こういう渡し方をする言語、python以外にもあるんでしょうか : デフォルトの名無しさん [sage] 2019/03/12(火) 14:19:35.49:rdaDEiid それはPythonのオブジェクト指向の実装方法とか基本理念によるもの、属性解決については ttp://https://docs.python.org/ja/3/howto/descriptor.html#definition-and-introduction self.meth()とcls.meth(self)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた : デフォルトの名無しさん [sage] 2019/03/12(火) 14:39:35.59:5JRn7Uik perl : 803 [sage] 2019/03/12(火) 14:48:12.21:rdaDEiid selfに対する直接の説明としてはちょっとアンカーが適切ではないか ttp://https://docs.python.org/ja/3.5/howto/descriptor.html#functions-and-methods 「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以 : デフォルトの名無しさん [] 2019/03/12(火) 16:34:54.17:8KtfShI4 tcl : デフォルトの名無しさん [sage] 2019/03/12(火) 16:40:24.68:Le2Xhtue よくわからないけどありがとうひき肉おじさん : デフォルトの名無しさん [] 2019/03/12(火) 17:17:23.48:8KtfShI4 わからないならレスしないでくださいうざいだけです : デフォルトの名無しさん [sage] 2019/03/12(火) 17:19:11.50:Le2Xhtue インスタンス作成っていうのはメモリ上に領域を確保する作業ってことでいいんでしょうか。 : デフォルトの名無しさん [sage] 2019/03/12(火) 17:21:39.56:zkYMqbGV なにそれ 他のコード作業だとメモリを使用しないとでもw : デフォルトの名無しさん [sage] 2019/03/12(火) 17:23:18.47:zkYMqbGV クラス定義内に大量の関数定義を入れると、そのクラスがインスタンス化されたときに、インスタンスに自我意識が生まれます : デフォルトの名無しさん [sage] 2019/03/12(火) 18:13:57.38:rf03pH6k 俺も3食インスタンスラーメンです : デフォルトの名無しさん [sage] 2019/03/12(火) 19:11:13.53:qLQHaQxA selfはあってもなくても、どっちでも よかったかもしらんが、 クラス外の普通の関数でも、いきなり クラスのフレンド関数のようにしやすいといった、 モンキーパッチ的な利点もあるし、 一長一短。 : デフォルトの名無しさん [sage] 2019/03/13(水) 05:29:22.97:Z4mQGBB0 pythonのselfの超簡単なサンプルを教えてください 調べてるんですが、わかりにくくて、、、 : デフォルトの名無しさん [sage] 2019/03/13(水) 06:11:09.78:nAhixTo8 サンプルって…メソッドならインスタンスを受け取るために必須なだけだ 倣うほどの規範は無いと思うけど、オブジェクト指向が理解できてないの? : デフォルトの名無しさん [sage] 2019/03/13(水) 07:18:13.39:zpkiSS8W オブジェクト指向の理解というよりPythonの仕様の気が・・ 横なんですけど、例えばあるクラスを継承したクラスがいくつかあって、それぞれで同じメソッドをオーバーライドしている時、Pythonは渡されたインスタンスを見てどのメソッドを呼び出すか決めているんですか? つまりインスタンスとメソッドは別々に管理されていて、呼び出す時にインスタンスとメソッドは結び付けられるとか。 : デフォルトの名無しさん [sage] 2019/03/13(水) 07:28:44.40:Z4mQGBB0 オブジェクト指向はなんとなく インスタンスを受け取るというのはよくわからないのですが : デフォルトの名無しさん [sage] 2019/03/13(水) 07:44:07.11:zpkiSS8W 私もです、さんのリンクや後付け・・から思うに、 オブジェクト内にメソッドがあるのではなく、メソッドはオブジェクトの外に関数としてあって、その関数に対して「このオブジェクトのメソッドの様に振る舞え」と指示しているのかな、と感じました。 : デフォルトの名無しさん [sage] 2019/03/13(水) 10:42:08.19:Nk0VyZbv 配列hogeを作成し、 print(hoge)を実行した時、[1. 2. 3. 4. 5.]の様に 数字にピリオドがついた時は浮動小数点型の配列なのでしょうか? 浮動小数点型の場合、整数型の配列にする方法はありますでしょうか? : デフォルトの名無しさん [sage] 2019/03/13(水) 10:51:02.04:x5gb1xdG list(map(int,hoge)) : デフォルトの名無しさん [sage] 2019/03/13(水) 11:00:58.72:Nk0VyZbv ピリオドが無くなりました! ありがとうございます : デフォルトの名無しさん [sage] 2019/03/13(水) 11:08:04.74:Z4mQGBB0 class Cat(object): def __init__(self, name, weight): self.name = name self.weight = weight このコードのselfはどういう意味なんでしょうか? 猫というオブジェクトの属性を表現しているクラスのようです : デフォルトの名無しさん [] 2019/03/13(水) 11:19:10.70:Y4yR4bDO 二項演算ならself使うと分かりにくいのでアリ、アプリカンド/アプリケータなど self/other派も居るが 有名ライブラリだとmpmathがctx(計算の文脈、精度とか)渡してるね : デフォルトの名無しさん [] 2019/03/13(水) 11:20:56.58:Y4yR4bDO x/yも見掛けるな 同種同士の同等な二項演算の定義に主体が入り込むのは気持ち悪いと思うよやっぱ : デフォルトの名無しさん [] 2019/03/13(水) 11:34:37.37:imKqJmF7 Cat(‘neko’, 5) などと書くと__init__が呼び出されてselfには作成されたCatのインスタンスが渡される つまり c = Cat(‘neko’, 5) とした時cとselfは同じものを指す : デフォルトの名無しさん [sage] 2019/03/13(水) 12:31:52.80:Z4mQGBB0 selfの意味がいまいち理解できていないのですが、引数の設定されたクラスや関数自身を表すということですよね で、self自体を出力してみました class classname: def defname(self): print(self) s =classname() s.defname() <__main__.classname object at 0x03EE2F30> selfを設定しているのは関数なのですが、これでは関数自身ではなく、クラス自身ではないですか? また、これはどういったときに役立つのですか? 環境はidleです ありがとうございます 読み解いてみます : デフォルトの名無しさん [sage] 2019/03/13(水) 12:44:16.23:Ux8DzXrZ >引数の設定されたクラスや関数自身を表すということですよね うん 5ちゃんでは インデント(連続してる半角スペース)が消えちまうので めんどうでも全角スペース使って書きなおす(半角スペースを全角スペースに置換でおk)か 1に書いてあるような、ソースコード貼る専用のうpろだにうp : デフォルトの名無しさん [] 2019/03/13(水) 13:38:08.75:imKqJmF7 メソッドの中から別のメソッドを呼びたい時にselfが無いと詰む : デフォルトの名無しさん [sage] 2019/03/13(水) 15:00:34.67:Ux8DzXrZ 2系でやったら違う結果になるぞ : デフォルトの名無しさん [sage] 2019/03/13(水) 15:57:20.28:nAhixTo8 はい、いいえ。通常defで定義した関数自身を第1引数が表す事はありませんし ついでにクラスへ定義した関数は、メンバー関数あるいはメソッドと呼びます またクラス(型)も渡されていません、それはインスタンス(実体)です オブジェクトとも呼ばれますけど意味が文脈に左右されるので置いといて クラスメソッド(@classmethod)と修飾したときは、クラスが渡されます 文字列でいうならクラスはstr、'ABC'など具体的な物がインスタンスに相当し その長さなどがインスタンスの属性と言えます(Pythonだと関数で取得するが selfはでも回答されるように他言語の(暗黙的に参照可能な)thisと同等で その宣言の必要性はに対するやの理解…は齟齬が生じる所もあるが 概念的にはメソッドだけども実装的には関数なので、()と呼び出された時ではなく 実体から関数が.で属性参照された時に、結び付けられたメソッドが生成されます 一連のレスからすると、引数が表すものに関数自身(callee)が出てくる辺り メソッド以前に関数の定義・呼び出し自体の理解も怪しいのではなかろうか? 関数の操作対象として構造物というか実体が第1引数に渡されているのだが… : デフォルトの名無しさん [sage] 2019/03/13(水) 16:27:27.93:M+m6pFpm はい(いいえ) : デフォルトの名無しさん [] 2019/03/13(水) 17:46:31.02:h9UFHds/ そやで、ちゃうで : デフォルトの名無しさん [sage] 2019/03/13(水) 17:48:54.93:MhYZY5Aj はいいいえ : デフォルトの名無しさん [] 2019/03/13(水) 18:46:52.20:gkV5NrkZ ちゃうちゃうちゃうんちゃう : デフォルトの名無しさん [sage] 2019/03/13(水) 19:03:05.32:jL6M634A def yes(arg= None): ____print() : デフォルトの名無しさん [sage] 2019/03/13(水) 19:58:39.06:26FDLpbf hoge = "ほげほげ!" if hoge == "ほげほげ": print("ほげほげ!) else: pinrt("げほげほ!") : デフォルトの名無しさん [sage] 2019/03/13(水) 20:00:19.07:Ux8DzXrZ ”がたりてない : デフォルトの名無しさん [] 2019/03/13(水) 20:21:08.59:1Wup6Az1 Pythonはswitch文が無いのが不満だったけど辞書使えば同じ様な事が出来ると最近気づいた 一番はswitchが必要になるロジックを組まない事だろうけど : デフォルトの名無しさん [sage] 2019/03/13(水) 20:32:12.62:Z4mQGBB0 ↑selfについて回答ありがとうございました : デフォルトの名無しさん [sage] 2019/03/13(水) 20:34:50.72:Z4mQGBB0 class className(): def __init__(self, strA, strB): self.str1 = strA self.str2 = strB test = className("Hello", "World!") print(test.str1) print(test.str2) まだselfの意味について理解できていないので教えてください クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います この場合のselfはどんな役割をしているのですか? selfをはずすと動作はしないようです init関数自身とは? : デフォルトの名無しさん [sage] 2019/03/13(水) 20:34:55.83:Z4mQGBB0 class className(): def __init__(self, strA, strB): self.str1 = strA self.str2 = strB test = className("Hello", "World!") print(test.str1) print(test.str2) まだselfの意味について理解できていないので教えてください クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います この場合のselfはどんな役割をしているのですか? selfをはずすと動作はしないようです init関数自身とは? : デフォルトの名無しさん [sage] 2019/03/13(水) 20:41:11.30:Z4mQGBB0 インスタンス変数を使うときにselfをつけることですが、そういうおまじないということですか? : デフォルトの名無しさん [sage] 2019/03/13(水) 20:47:03.94:Ux8DzXrZ を読んでも理解してないということはよくわかった : デフォルトの名無しさん [sage] 2019/03/13(水) 21:14:16.67:nAhixTo8 まず引数を設定しようがしまいがインスタンス化したら初期化のために__init__は呼ばれる selfはselfを書いた関数自身ではなく、メソッドとして属するクラスのインスタンスを表す selfから属性参照しなければstr1やstr2はローカル変数になって抜けたら破棄されてしまう 結果としてtestに代入されるインスタンスを参照するために必要だから書く : デフォルトの名無しさん [sage] 2019/03/13(水) 21:16:12.72:ZMFJ1a5n 俺も初心者だけど、Pythonにはクラスオブジェクトってのがあつて、クラス定義が実行されるとそのクラスオブジェクトってのが作られるらしいぞ。クラス定義が実行させるって何ぞ?と思ったけどそうらしい。 でインスタンスはそのクラスオブジェクトから作られるらしいぞ。 つまりそのinitはコンストラクタというよりクラスからクラスオブジェクトを作るためのinitだったりするかも。 self渡す必要があるってことは、そのinitは他の言語じゃプログラマが意識しない部分の可能性。クラスのインスタンス化の一層下にあるのかな? : デフォルトの名無しさん [sage] 2019/03/13(水) 21:22:48.95:M+m6pFpm シンタックスは def self.__init__(strA, strB): とかではダメだったの? 書いてもないのに第一引数にself入ってくるのと大差なくない? : デフォルトの名無しさん [sage] 2019/03/13(水) 21:27:46.46:ZImJqTUY self が付いているのは、インスタンス変数じゃないの? Ruby では、@ がインスタンス変数 class Cat def initialize( name, weight ) @name = name @weight = weight end end p Cat.new( "bob", 5 ) # <Cat: @name="bob", @weight=5> : デフォルトの名無しさん [sage] 2019/03/13(水) 21:43:36.51:nAhixTo8 Pythonに複合文としてのメソッド定義はなく、クラスに書いた関数がメソッドとして扱われる そのメカニズムはHowToでも記される、参照した属性がクラススコープで定義された関数なら インスタンスと関数が参照されたバウンドメソッドオブジェクトを返し、__call__が呼ばれる : 847 [sage] 2019/03/13(水) 21:53:09.68:ZImJqTUY Ruby では、@ がインスタンス変数で、 self は、クラス直下ではクラスを表し、メソッド内では、インスタンスを表す。 コンテキスト(文脈)によって、self の意味は変わる。 また特異クラスも、よく出てくる class Cat p self #=> Cat def initialize( name, weight ) @name = name @weight = weight p self #=> <Cat: @name="bob", @weight=5> end end Cat.new( "bob", 5 ) Ruby で、オブジェクト指向・関数型をみっちり学んでから、 Python, JavaScript を学ぶ方がよい : デフォルトの名無しさん [sage] 2019/03/13(水) 21:55:25.72:bUFEpZHr >>849 うるっせえな! スレタイ読めねーのかカス!! 死ね!死んで消えろゴミ!! : デフォルトの名無しさん [sage] 2019/03/14(木) 03:27:13.64:4WTRjlYm 相手にするからつけあがるんだよ : デフォルトの名無しさん [sage] 2019/03/14(木) 03:37:18.44:nL4uJ2zh 終わりのないのが『終わり』 それが『RWBY』 : デフォルトの名無しさん [sage] 2019/03/14(木) 08:25:07.71:/JPtJCUD a = 'hoge' type(a) これを実行すると<class 'str'>が表示される これは変数aが指してるオブジェクトの型がstr型という意味でいいんだよね 一方で、文字列はシーケンス型でもあるからインデックスでアクセスしたり、スライスしたり出来る この文字列がシーケンス型というのはpython上でどうやって確認するんや : デフォルトの名無しさん [sage] 2019/03/14(木) 08:34:53.42:lGFaI2Uv シーケンス型の実体は存在しない 失敗しないことを天に祈りつつ勇敢にforに投入する、がPythonの思想的には正しい 厳密にやりたいなら型アノテーションでSequenceあるけど、型アノテーションなんか誰も使ってない : デフォルトの名無しさん [] 2019/03/14(木) 10:12:27.31:QThoqyRe hasattr(a, ‘__iter__’) Pythonではシーケンス型の事をiterableなオブジェクトという forにiterableを渡すと__iter__()が呼ばれるのでこれの有無を確認すれば分かる : デフォルトの名無しさん [] 2019/03/14(木) 10:14:27.51:QThoqyRe それとiterableであることとスライスできるのは別の機能 インデックスやスライスは__getitem__()で実装される : デフォルトの名無しさん [sage] 2019/03/14(木) 11:06:23.42:/JPtJCUD レスありがとう 俺はstr型はシーケンス型を継承してるから、シーケンス型のようにも振る舞うと勝手に思ってたけど違うのね str型はiterableな属性を持ってるから、for文に渡して繰り返しの処理が出来るというのはわかった それなら、str型がsequenceableな属性を持ってるからスライスやインデックスのアクセスが出来るというのなら理解できるんだけど、シーケンス型で属性じゃないのよね なんか混乱してきたわ(´・ω・`) : デフォルトの名無しさん [sage] 2019/03/14(木) 11:16:27.87:r+Z4K3kn IterableもSequenceと同じく、クラスが満たすべき性質がドキュメント上や型アノテーションで定義されているだけの実体のない型だ Pythonではそういう実体のない(ドキュメントや型アノテーションにしか登場しない)仮想的な型のことを一般にプロトコルと呼ぶ Javaのinterfaceに近い概念だが、interfaceとは違ってオブジェクトに付随する型としての実体を持たないという点が異なる : デフォルトの名無しさん [] 2019/03/14(木) 11:26:52.83:RE7f17De pythonの場合、forに渡せるとかの機能は単に__xxx__という名前の特殊メソッドが実装されているかどうかで決まる : デフォルトの名無しさん [] 2019/03/14(木) 11:41:55.90:jNBQt8MR Pythonにはstr、listというオブジェクトは存在するが、sequence というオブジェクトは存在しない だが、str 、listどちらもsequence型である : デフォルトの名無しさん [sage] 2019/03/14(木) 12:41:19.77:r+Z4K3kn だからそう言ってるつもりだが : デフォルトの名無しさん [sage] 2019/03/14(木) 12:47:55.74:YiVNNcx0 じゃあjavaよりgoのが近いんじゃ? : デフォルトの名無しさん [] 2019/03/14(木) 13:23:53.72:jNBQt8MR 適当にアンカーつけてレスしたんよ なんかごめんな : 847 [sage] 2019/03/14(木) 13:28:05.85:tsxAqnNH 参考までに、Ruby では、Array -> Enumerable (子 -> 親) 自クラスに、each を定義して、Enumerable モジュールをinclude すれば、 Enumerable のすべてのメソッドが使える(mix-in)(内部イテレータ) Enumerable とは繰り返しを行なうクラスのための Mix-in。 このモジュールの メソッドは全て、eachを用いて定義されているので、 インクルード するクラスには、eachが定義されていなければなりません each を定義しない場合は、Enumerator というラッパークラスで、Enumerable のメソッドが使える(外部イテレータ) 外部イテレータは、Enumerator.next, rewind などで繰り返しを進めたり・巻き戻したり、制御できる mix-in とは継承ではないけど、呼び出される関数探索の継承チェーンに割り込む機能。 Java のinterface みたいなもの。 Duck Typing と言って、そのメソッドに反応するかどうか 子 -> mix-in -> 親 : デフォルトの名無しさん [sage] 2019/03/14(木) 13:31:58.94:r+Z4K3kn goのは型が明示的にinterfaceを実装していなくても必要なメソッドがあれば受け入れるstructual subtypingという考え方 Pythonは duck typing なので本来はそれに近いのだが、型ヒントがstructual subtypingではなく明示的にクラスがインターフェイスを継承する必要がある よってpythonにおいては型ヒントを考慮すればgoよりJavaに近い : デフォルトの名無しさん [] 2019/03/14(木) 13:52:11.73:q8OuUl64 rubyをdisる訳じゃないけど 初心者でpython学習し始めたところなら rubyと比べない方が良いよ 覚えることが増えるだけでメリット無いから : デフォルトの名無しさん [] 2019/03/14(木) 13:56:28.26:1qhaQ5mP これから試験受けるんだが落ちそう : デフォルトの名無しさん [] 2019/03/14(木) 15:34:12.56:1qhaQ5mP うかったんご : デフォルトの名無しさん [sage] 2019/03/14(木) 16:11:42.58:NTHRrjbg おめでと : デフォルトの名無しさん [sage] 2019/03/14(木) 16:56:04.19:lcXwIoo8 型アノテーションは、関数の出入り口と、 なんの型が分かりにくいローカル変数には つける。 付けることで補完が強化される場合と、 しばしば補完を逆に妨げる場合があるので、 うまく折り合いを付けて付記する感じやな。 : デフォルトの名無しさん [] 2019/03/14(木) 18:13:57.50:1qhaQ5mP あざます : デフォルトの名無しさん [sage] 2019/03/14(木) 18:55:16.95:cYjqrp0Z ありがとうございました : デフォルトの名無しさん [sage] 2019/03/14(木) 19:44:05.42:prpM2HGX 最適化には何の関係もないのよね型指定 : デフォルトの名無しさん [sage] 2019/03/14(木) 19:58:50.87:r+Z4K3kn むしろソースコードのパースの負荷が増えて僅かに遅くなるだろうな : デフォルトの名無しさん [sage] 2019/03/14(木) 21:29:10.91:DYXE/n/d Ruby ←まず名前がダサい Python ←カッコイイ : デフォルトの名無しさん [sage] 2019/03/14(木) 21:37:41.09:Cgb2oqJn pythonだけ見るとカッコイイけど元はモンティ・パイソンなんだよな : デフォルトの名無しさん [sage] 2019/03/14(木) 21:48:50.71:nL4uJ2zh ttp://st.cdjapan.co.jp/pictures/l/04/02/NEOGDS-244522.jpg : デフォルトの名無しさん [sage] 2019/03/14(木) 21:50:35.71:nL4uJ2zh ttps://images.idgesg.net/images/article/2018/07/python-100763894-large.jpg : デフォルトの名無しさん [sage] 2019/03/15(金) 08:57:12.14:Oo+XcCcU pythonのコーディングに少しづつ慣れてきたせいで,のあとに半角スペースを挿入してしまうクセが付いてしまいました 簡単なテストのためダミーでcsv作る際に,後ろにに半角スペース入れるせいでcsvDictReaderで読んでkey指定したときにkeyErrorが出てしまい数十分ですが悩んでしまいました 今後はskipinitialspaceをtrueにして使います ありがとうございました : デフォルトの名無しさん [sage] 2019/03/15(金) 09:55:37.05:LNWMUSed pythonに限らずほぼ全てのプログラミング言語でそういう癖が付くかと思うしそもそも欧米圏の言語でも全てそうだがお前何か言いがかりでも付けたいの? : デフォルトの名無しさん [sage] 2019/03/15(金) 12:49:50.87:zt0rtKct python はビジュアル系スタジオみたいな統合環境は無いの? : デフォルトの名無しさん [sage] 2019/03/15(金) 12:51:57.85:EeWTkT4V ビジュアル系スタジオちょっと好き : デフォルトの名無しさん [sage] 2019/03/15(金) 13:13:04.71:88mLDigX あんたも好きね。 チャーミングなおっぱいがあるよ。 PyCharm : デフォルトの名無しさん [sage] 2019/03/15(金) 13:25:05.27:1iRTQcZ+ pycharm ceがタダで使えるのは助かるなぁ : デフォルトの名無しさん [] 2019/03/15(金) 14:18:08.50:SEjqglYP 最新鋭の望遠鏡で使われてる タイパンがカッコ良かった UKシュミット望遠鏡自体は数十年の年季もんだけど タイパン付けると最新鋭に変身してた : デフォルトの名無しさん [] 2019/03/15(金) 14:21:07.58:SEjqglYP これね ttp://https://www.youtube.com/watch?v=xrumMTsFkPY : デフォルトの名無しさん [sage] 2019/03/15(金) 18:27:46.26:HkVkKV93 オブジェクトをフォルダと考えるのは間違いなのですか : デフォルトの名無しさん [sage] 2019/03/15(金) 18:38:30.61:PFD13TRH 考えてもいいぜ : デフォルトの名無しさん [sage] 2019/03/15(金) 18:58:10.65:8Z2zh4Or Python初心者です。 scikit-learnで学習した学習結果を他の言語(C#)で利用したいと考えてます。 が、どうしたらいいのかわかりません。 どなたかご教授願います。 : デフォルトの名無しさん [sage] 2019/03/15(金) 23:30:46.48:/jMwhNVt 最終的に何をしたいのかをもう少し具体的に書いたほうが良いと思う 個人的に言語は統一した方が楽と思うよ : デフォルトの名無しさん [sage] 2019/03/15(金) 23:48:43.20:8Z2zh4Or scikit-learnでじゃんけんの人間の癖を学習させて、 そこそこの制度で予想できるようになったので、それをスマホアプリとして公開したいという欲が湧いてきました。 Pythonではスマホアプリの開発は難しそうなのでその学習結果をC#に移植したいと考えてるのですが、 そういう事は可能ですか? : デフォルトの名無しさん [sage] 2019/03/16(土) 00:53:29.77:lomlnXfv !? : デフォルトの名無しさん [sage] 2019/03/16(土) 06:12:09.99:MtyeuN+5 可能 pythonに不可能は無い : デフォルトの名無しさん [sage] 2019/03/16(土) 10:56:59.10:Eza8KstC iOS なら、Pythonista で簡単にアプリを作れるぞ。 Androidでもできるだろ。 そもそもiOSだと、C#じゃなくObjective-C やSwift になるからかなり垣根は高いぞ。 因みにPythonista からはObjective-C のライブラリを使うこともできるし自由に呼び出すこともできる。 なお、scikit-learn そのものをPythonistaで使うことはできない。 numpy は使えるが、scipy がインストールできない。 : デフォルトの名無しさん [sage] 2019/03/16(土) 11:10:13.00:INaBYg0f いやC#つってんだからUnityで作るんだろJK あれゲーム作るの簡単だからいいよな〜 : デフォルトの名無しさん [sage] 2019/03/16(土) 11:18:22.65:mXGVm9Ao ありがとうございます。 Androidアプリを作られればIOSには対応できなくてもよいと考えてます。 Androidでscikit-learnを使うのは難しいでしょうか? : デフォルトの名無しさん [sage] 2019/03/16(土) 11:20:10.33:mXGVm9Ao Unityって物理エンジンですよね? scikit-learnのように機械学習もできるのですか? : デフォルトの名無しさん [sage] 2019/03/16(土) 11:31:31.62:Slvebd/s 学習機能は通信を介したサービスとして提供したら scikit-learnはサーバー側で動いてりゃ良いんだし : デフォルトの名無しさん [sage] 2019/03/16(土) 11:44:44.11:+8YpvTs6 そっちの方が良いと思う 機械学習の多言語移植は考えただけで血の気が引く kerasならまだしも、scikit-learnは依存地獄が酷かった。今は大分マシ担ってるとは思うけど : デフォルトの名無しさん [sage] 2019/03/16(土) 11:48:05.65:d/4KgbH7 じゃんけんするのにサーバーと通信するのは草 でもいまどきそんなもんなのか? : デフォルトの名無しさん [sage] 2019/03/16(土) 11:52:33.53:+8YpvTs6 さすがに半分テストアプリだと思うけど、既に超敷居が高い : デフォルトの名無しさん [sage] 2019/03/16(土) 11:53:42.85:mXGVm9Ao 機械学習の移植は難しいものなんですね。 サーバーにPythonを置けばいいのですね。 ありがとうございます。 : デフォルトの名無しさん [sage] 2019/03/16(土) 11:58:21.60:eO5a7zjy 学習からC#でやり直すわけにはいかないの? オブジェクト指向の機械学習ライブラリなんて言語によらず使い方似てるからそっちのが楽じゃない? : デフォルトの名無しさん [sage] 2019/03/16(土) 12:01:14.33:eO5a7zjy 「Unity 機械学習」 でググってもいろいろでてくるし : デフォルトの名無しさん [sage] 2019/03/16(土) 12:05:08.07:mXGVm9Ao C#で機械学習ですか! scikit-learnがすごく簡単だったのでscikit-learnで出来たらと考えてました。 使い方が似ているのならその選択も検討してみます。 ありがとうございます。 : デフォルトの名無しさん [sage] 2019/03/16(土) 12:12:34.74:Eza8KstC せっかくPython の勉強を始めたんだから、Python でゲーム開発までやれば良いのに、じゃんけんアプリなんて簡単でしょ。 どんなPython ゲームライブラリが適切なのかは知らないけど。 : デフォルトの名無しさん [sage] 2019/03/16(土) 12:14:27.10:SlIDoTSl selfについて何度も聞いてるカスなんですが、まだ意味が理解できてません このコードの場合どういった意味を持ちますか? インスタンス自身と言われてもイメージがつきません 記憶領域という説明も見たことがありますが、これはどういう意味でしょうか ttp://http://codepad.org/rOzHcmIX class apple: def __init__(self,price,weight): self.p = price self.w = weight def print(self): print(self.p) print(self.w) s = apple("100yen","300g") s2 = apple("1000yen","1000g") s.print() s2.print() : デフォルトの名無しさん [sage] 2019/03/16(土) 12:15:53.61:SlIDoTSl 訂正です ×このコードの場合どういった意味を持ちますか? ○このコードのようにselfを使うメリットはなんですか? : デフォルトの名無しさん [sage] 2019/03/16(土) 12:24:28.76:Eza8KstC Android ならQpython にはKivy がバンドルされてるらしいし、kivy で良いんじゃないの? : デフォルトの名無しさん [sage] 2019/03/16(土) 12:29:58.42:+8YpvTs6 コードが変なので修正した ttp://http://codepad.org/L0lJBrzg メモリ上のデータをイメージできれば簡単に理解できるんだけどね インスタンスとか言っても逆に分からんだろうな ttp://https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/C++2/09/09-02.html ttp://http://cpp.aquariuscode.com/class-memory-layout : デフォルトの名無しさん [sage] 2019/03/16(土) 12:38:34.92:mXGVm9Ao Pythonは機械学習やディープラーニングを始めたくて最近勉強し始めました。 勉強してくうちにアプリを公開したいと思うようになった次第ですw GUIはC#の方が簡単そうなので2つの言語をうまく連携できればと思ったのですが、 難しいようですね。 もちろんPythonはこれからも使いたいと思います! : デフォルトの名無しさん [sage] 2019/03/16(土) 12:58:16.11:Cc4OYSLe まず自分でクラス書く前にライブラリでクラス使ってみたらわかるだろ pandasのチュートリアルとか何でもいいけどインスタンス作ってメソッド使ってインスタンス変数参照したらself何なのかも見えてくる メモリ上の何とかなんか意識しなくていい : デフォルトの名無しさん [sage] 2019/03/16(土) 13:11:48.23:eO5a7zjy 「入門python3」を一冊買ってやろう。 : デフォルトの名無しさん [sage] 2019/03/16(土) 18:05:24.13:fe/BGgDT vscodeとintellijのpython機能で試したのですが awsのsdk boto3でインスタンス化したクライアントに対してオートコンプリートを働くようにするのってどうしたらよいでしょうか? 以下のようにして変数cを作っても、変数cをBaseClient型としか認識してくれないので、s3関連のメソッドがオートコンプリートで出てきてくれません。 c = boto3.client('s3') もちろん実行時はちゃんとs3の型になるのでコードを動かす事は出来るのですが、オートコンプリート無しはちょっときついので、なんとかして出す方法があれば教えてください。 : デフォルトの名無しさん [sage] 2019/03/16(土) 18:30:45.43:SlIDoTSl ライブラリでクラスを書くとはなんのことですか? c++がわかりません selfはメモリ領域を確保するために必要になるもの、という認識でいいんでしょうか?おそらくインスタンスを作った時点でメモリが確保されるのかと思いますが。 : デフォルトの名無しさん [sage] 2019/03/16(土) 18:36:03.43:YxxaJZky 型アノテーションで変数の型を明示的に指定する : デフォルトの名無しさん [sage] 2019/03/16(土) 18:53:42.59:+8YpvTs6 ・インスタンスを作成 ・メモリ領域を確保 ・self=インスタンス この辺はもう全部イコールで考えても構わない 例外的にstaticやglobalでインスタンス外にメモリ領域を確保することも出来るけど 図で言うとこんな感じ ttps://i.imgur.com/gNRp6HQ.png : デフォルトの名無しさん [sage] 2019/03/16(土) 19:28:51.03:sQCNGdE3 インスタンスを作った時点でメモリが確保は良い。でも確保にselfは関係ない 内部だと__init__より前に__new__が呼び出され、そこでメモリ確保が行われる 語弊を恐れずに言ってしまえば、selfはそのメモリがどこか位置を示すものだ メリットがどうとかじゃない、sとs2は同じ型だが別物だろう、それを区別するために必要なんだ : デフォルトの名無しさん [sage] 2019/03/16(土) 19:33:23.24:1feDyboY 「のタイミング!」 ですか? : デフォルトの名無しさん [sage] 2019/03/16(土) 20:16:22.51:SlIDoTSl ありがとうございます あれ?これってもしかしてポインタというやつなんですか?pythonの場合そういった呼ばれ方は見たことがありませんが ttp://https://wa3.i-3-i.info/word12815.html : デフォルトの名無しさん [sage] 2019/03/16(土) 20:31:38.84:INaBYg0f 山椒 : デフォルトの名無しさん [sage] 2019/03/16(土) 21:47:12.09:+8YpvTs6 似たようなもんで「参照」 ポインタと参照の違い ttp://https://qiita.com/agate-pris/items/05948b7d33f3e88b8967 ttp://http://cocodrips.hateblo.jp/entry/2015/12/08/221722 メモリ上にインスタンスが展開されてるイメージができれば大体ok : デフォルトの名無しさん [sage] 2019/03/16(土) 22:04:48.14:/h3gEsxd C言語使わない人にその教え方はどうなのよ。悪いことは言わないから「入門python3」を買って一通りやろう。 : デフォルトの名無しさん [sage] 2019/03/16(土) 22:11:31.40:431M+yCA 入門python3ってあんまりレビューが良くないね : 847 [] 2019/03/16(土) 23:16:52.98:1E15fsAJ インスタンスや、self がわからないの? オブジェクト指向の基本だよ self は、そのインスタンスを指す。 Ruby では、 class Cat def initialize( name, weight ) @name = name @weight = weight end end p bob = Cat.new( "bob", 5 ) p alice = Cat.new( "alice", 4 ) new で、Cat というひな形から、各インスタンスを作る(実体化) bob は、<Cat: @name="bob", @weight=5> alice は、<Cat: @name="alice", @weight=4> Rubyの、@name = name が、Python では、self.name = name になる。 Rubyではインスタンス変数は、@ で表すけど、pythonではself を付ける インスタンス変数とは、各インスタンスで異なる部分。 一方、クラス変数とは、そのクラス(すべてのインスタンス)で共通の部分。 Rubyでは一々、selfを付けなくても良いように、Rubyの実装を、かなり頑張って作っている。 self.name よりも、@name の方がわかりやすいから! オブジェクト指向・関数型は、Rubyで学んだ方がよい。 Python, JavaScript, Kotlin にも応用できるから : デフォルトの名無しさん [] 2019/03/16(土) 23:27:14.53:DylECkfT > self.name よりも、@name の方がわかりやすいから! アピールポイントそれだけ? @がメンバ変数を表すなんて知らなきゃ分からんし、直感でも何となく察せるself.〜の方が分かりやすいと思うが : デフォルトの名無しさん [sage] 2019/03/16(土) 23:28:24.96:1G1aklbm 自分もPython初心者だけど ttps://www.python-izm.com ここのサイトめちゃくちゃわかり易かったので載せときたす。 : デフォルトの名無しさん [sage] 2019/03/16(土) 23:35:31.32:8PxPizsB さすがクソ記号言語perlの末裔w 一生記号暗記してろ。 そして死ね。 : デフォルトの名無しさん [sage] 2019/03/17(日) 00:17:39.16:oRKycfKe なんでJavaないの? 理解できなかったの? : デフォルトの名無しさん [sage] 2019/03/17(日) 01:42:26.25:ttbbgHOa chromeの拡張機能を自動操作することは可能ですか? : デフォルトの名無しさん [sage] 2019/03/17(日) 02:01:28.71:QLspzkYx ちらっとのぞいてみたが、目次が良くないね。 最初から順を追って進めて行く人にとっては良いかもしれないけど。 : デフォルトの名無しさん [sage] 2019/03/17(日) 02:05:09.07:nMZPqZIX 937に期待 : デフォルトの名無しさん [sage] 2019/03/17(日) 02:05:36.23:pyRBRMBz どこのレビュー?Amazon見る限りは良さそうだけど… : デフォルトの名無しさん [sage] 2019/03/17(日) 05:27:50.39:nAjwMdDd ありがとう : デフォルトの名無しさん [sage] 2019/03/17(日) 07:33:20.83:nAjwMdDd ttp://https://wa3.i-3-i.info/word16070.html こういう説明がわかりやすいのに、、、 : デフォルトの名無しさん [sage] 2019/03/17(日) 07:39:55.25:nAjwMdDd 変数がメモリ上にあって、その変数の場所を渡すのが参照わたし=self ということでいいんですか? : デフォルトの名無しさん [sage] 2019/03/17(日) 08:24:23.53:HhaziKqA 参照渡しがどうこうはとりあえず忘れろ 今までの流れには全く関係ないから : デフォルトの名無しさん [sage] 2019/03/17(日) 08:25:15.86:HhaziKqA 今までの流れってのはselfの話な : デフォルトの名無しさん [sage] 2019/03/17(日) 08:37:05.58:Udd8jK7+ 書き方が悪かったわ 完全な初心者にとっては難しくてレビューが良くないね : デフォルトの名無しさん [sage] 2019/03/17(日) 08:41:05.15:nAjwMdDd えっ?関係ないのですか、、、 : デフォルトの名無しさん [sage] 2019/03/17(日) 11:18:35.50:oeP02mQD Pythonではすべてが値渡しだ そしてすべての値が所謂参照型だってだけ : デフォルトの名無しさん [sage] 2019/03/17(日) 11:41:11.52:R43k4iG5 内部的に参照渡しみたいなもんなんだからメモリの概念教えないと永久に理解できなく内科? : デフォルトの名無しさん [sage] 2019/03/17(日) 11:57:02.77:X1cUtWYO 参照渡しってどこが : デフォルトの名無しさん [sage] 2019/03/17(日) 12:00:59.08:X1cUtWYO 参照渡しについて C#のrefみたいなのを参照渡しと呼ぶ勢と C++のhoge&みたいなのを参照渡しと呼ぶ勢がいるので ややこしい : デフォルトの名無しさん [sage] 2019/03/17(日) 12:08:17.15:iuUxAYpH 一子相伝究極奥義「参照渡し」 : デフォルトの名無しさん [sage] 2019/03/17(日) 12:11:50.92:Udd8jK7+ 値渡しと参照渡しと参照の値渡しがあるんだっけ : デフォルトの名無しさん [sage] 2019/03/17(日) 12:12:20.76:nAjwMdDd 値渡しということはコピーということですかね : デフォルトの名無しさん [sage] 2019/03/17(日) 12:14:55.90:7j/Zhhp5 大地参照も変換できない糞スマホの糞IME : デフォルトの名無しさん [sage] 2019/03/17(日) 12:15:53.60:vfP8HMqf 大地讃頌 : デフォルトの名無しさん [sage] 2019/03/17(日) 12:21:40.62:XvGPMByn C#のrefとC++のhoge&はどちらも変数のエイリアスを渡すから一緒 紛らわしいのは「参照の値渡し」 : デフォルトの名無しさん [sage] 2019/03/17(日) 15:27:46.05:9wVKFPUf いやさ、記憶領域の話をし出すから皆メモリの話をした訳だけど ポインタとか言い出すと、Python上にはポインタは無いけど CPython等の実装は変数が全てポインタで実体に対する参照なの 参照渡しというと普通は変数に対する参照を言うので関係ないし 変数が入れ物とはC言語などのスタック変数を前提としてしまってる そもそも実装以前に、OOPどころか構造体的な概念も分かってないのでは? : デフォルトの名無しさん [sage] 2019/03/17(日) 18:00:19.80:oeP02mQD こういう簡単なクラスで考えてみる class MyClass: def __init__(self, name): self.name = name def getname(self): return self.name コンストラクタで名前を受け取って、自身のnameプロパティにセットする getnameメソッドでは自身の名前を返す簡単なクラス このクラスの使い方は以下 a = MyClass("John") a.getname() // 出力 'John' ただしこういう風にも書ける a = MyClass("John") MyClass.getname(a) // 出力 'John' Pythonのインスタンスメソッドは単なる関数もしくはスタティックメソッドみたいなものだということがわかる a.getname() は暗黙的に MyClass.getname(a) に置き換えられてると考えてもいい : デフォルトの名無しさん [sage] 2019/03/17(日) 18:01:31.22:oeP02mQD さらにselfというものがわかりやすいようにこのクラスを普通の関数と辞書型で再現してみる def MyClass(name): self = {} __init__(self, name) return self def __init__(self, name): self["name"] = name def getname(self): return self["name"] a = MyClass("John") getname(a) // 出力 'John' これでだいたい再現できる 何が言いたいかというとMyClass()という関数が空のインスタンス(ここでは辞書だが)を作成して__init__に引数として渡している たぶんPythonのクラスでも暗黙的にMyClass()という関数が生成されて間接的に__init__を呼び出している つまりself(=MyClassのインスタンス)というのは暗黙的に作られたMyClass()関数内で作られているオブジェクトだと考えればいい Pythonほとんどやったことないから想像で適当に言ってるだけだけどな : デフォルトの名無しさん [sage] 2019/03/17(日) 19:53:26.49:UUXyH29G self.name = name 部分はself変数にnameプロパティがついている状態なんですか? nameのほうが変数名かとおもっていましたが self.nameとすることでnameプロパティを定義している という感じですかね なんのためにあるのかわからないですが : デフォルトの名無しさん [sage] 2019/03/17(日) 21:13:22.59:pWnkPEfA デタラメな回答するの辞めーや : デフォルトの名無しさん [] 2019/03/17(日) 21:52:19.70:oeP02mQD 詳しいなら教えてくれ : 847 [sage] 2019/03/17(日) 22:22:14.14:QeX4wN+m self.name = name Ruby では、@ がインスタンス変数です。 @name = name インスタンスや、インスタンス変数は、オブジェクト指向の基礎。 クラスはひな形で、実体化するには、個々のインスタンスを作らないといけない これがわからないのなら、Rubyをみっちり勉強した方がよい。 Python から始めるのは無理 オブジェクト指向・関数型は、Rubyで学んだ方がよい。 Python, JavaScript, Kotlin にも応用できる : デフォルトの名無しさん [sage] 2019/03/17(日) 22:28:34.62:Ea7K77ki Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww def add(a, b) a + b end def opTwo(a, b, func) func(a, b) end p opTwo(1, 2, add) => Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError) from t.rb:9 プギャーm9(^Д^ ) ちなみにPython: def add(a, b): return a + b def opTwo(a, b, func): return func(a, b) print(opTwo(1, 2, add)) => 3 ちなみにJavascript: function add(a, b) { return a + b; } function opTwo(a, b, func) { return func(a, b); } console.log(opTwo(1, 2, add)) => 3 : デフォルトの名無しさん [sage] 2019/03/17(日) 22:29:45.96:Ea7K77ki def、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、 ==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww : デフォルトの名無しさん [sage] 2019/03/17(日) 22:31:54.89:Ea7K77ki Ruby 初心者スレッド Part 64 ttp://mevius.5ch.net/test/read.cgi/tech/1535797516/658 658 デフォルトの名無しさん sage 2018/10/15(月) 10:09:06.69 ID:r7U1tD/N 擬似コードがそのまま動くのはPythonじゃね 関数型言語なら演算子がそのまま第一級関数であることとカリー化を使って data |> select ((>) 0) みたいに書けたりするね ガチ関数型でなくてもまともなラムダがある言語なら select(x => x > 0) と遥かに見通し良く書ける Rubyの &:: は極めて驚きが大きく醜悪な機能の一つだね : デフォルトの名無しさん [sage] 2019/03/17(日) 22:33:19.32:Ea7K77ki クロージャって何がいいの? [転載禁止]©2ch.net ttp://mevius.5ch.net/test/read.cgi/tech/1415419907/261 "> ttp://mevius.5ch.net/test/read.cgi/tech/1415419907/261 261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、 それについてmatz自身が > それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。 と語っているね ttp://http://www.atmarkit.co.jp/news/200907/24/ruby.html : デフォルトの名無しさん [sage] 2019/03/17(日) 22:50:20.65:vwxCn2J+ 必死すぎるw : デフォルトの名無しさん [sage] 2019/03/17(日) 22:58:46.72:Ea7K77ki Rubyを長く使い続けることを僕がお薦めしない理由を説明します - YouTube ttp://https://www.youtube.com/watch?v=2wfQ3iG08UI : デフォルトの名無しさん [sage] 2019/03/17(日) 22:59:12.36:Ea7K77ki 「Railsは終わった」と言われる理由 ttp://https://qiita.com/klriutsa/items/86ac5e94ec99c0d95b61 : デフォルトの名無しさん [sage] 2019/03/17(日) 23:07:59.19:Ea7K77ki GitHub、2018年の人気プログラミング言語を概観できる「The State of the Octoverse」を発表 ttp://https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/ 日本人が作ったプログラミング言語がランクイン! 誇らしい!! : デフォルトの名無しさん [sage] 2019/03/17(日) 23:13:16.15:Ea7K77ki GitHubのRails離れと、迫りくるMicrosoft ttp://https://yakst.com/ja/posts/5290 : デフォルトの名無しさん [sage] 2019/03/17(日) 23:20:10.39:Ea7K77ki 世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか? ttp://https://gigazine.net/news/20181116-top-programming-languages-2018/ さあ何なのか!?日本の埃、Rubyかな? : デフォルトの名無しさん [sage] 2019/03/17(日) 23:23:45.80:Ea7K77ki Pythonが2018年も人気ナンバーワン言語に - Rubyは13位へ ttp://https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/ >日本生まれのプログラミング言語Rubyの順位は昨年の12位から13位へと一つ順位を落としています。 ttp://https://findy-code.io/engineer-lab/github-programming-language-ranking ↑「衰退するかもしれない言語」のRubyのグラフ凄すぎwww : デフォルトの名無しさん [sage] 2019/03/17(日) 23:24:59.24:Ea7K77ki ttps://i.imgur.com/0YbMsqj.jpg : デフォルトの名無しさん [sage] 2019/03/17(日) 23:39:56.92:vwxCn2J+ この調子で1000まで埋めてくれwww : 956 [sage] 2019/03/18(月) 00:32:48.76:QSJWNz5N なんとなくわかったわ __new__でインスタンス生成して__init__で初期化されてるのはいいとして それらの関数がどこから呼ばれるかが分からなかったけど type.__call__(cls, *args, **kwarg)から呼ばれてるんだな class MyClass: def __new__(cls, name): return object.__new__(cls) def __init__(self, name): self.name = name def getname(self): return self.name a = MyClass("Mike") # これは a = type.__call__(MyClass, "Mike") # これの糖衣構文と type.__call__はざっくり以下のような実装らしい class type: def __call__(cls, *args, **kwarg): obj = cls.__new__(cls, *args, **kwargs) obj.__init__(*args, **kwargs) return obj 一番元になるオブジェクトを生成するであろうobject.__new__()がどういう風に実装されてるのかは分からなかった Cで実装されてるらしい : デフォルトの名無しさん [sage] 2019/03/18(月) 00:34:09.24:GvvOJgHh 破産者マップに出てるぞお前さん : デフォルトの名無しさん [] 2019/03/18(月) 01:21:38.93:HYm9qYKJ Rubyに興味も失ってたが、調べたらRuby3から頑張るっぽいね。 JITは今現在はオンにしてもRails遅くなるっぽい。 型検査はツールの提供と精度向上の方針。 “Rubyは死んだ”のか? まつもとゆきひろ氏が語る「プログラミング言語サバイバル」とRubyの未来 - Part1 ttp://https://logmi.jp/tech/articles/320752 かと思えば、こんな深刻な記事も。 想定してなかったくらい大規模な開発に使われて、つぎはぎ継ぎ接ぎで開発して行ったら行き詰まったって話になるのかな? Pythonも、同類になる可能性はあるが時期が早く来たのはRubyだったと。 Rubyは滅びゆく言語なのか? ttp://https://qiita.com/baban/items/a5a9819a4020f92e27e2 : デフォルトの名無しさん [sage] 2019/03/18(月) 01:32:41.95:TDQy6vox Redmonk言語ランキングがKotlinとSwiftの急上昇を明らかにした ttp://https://www.infoq.com/jp/news/2018/05/RedmonkLanguageRankingsQ118 > Rubyは5位から8位に下がりはしたが、他のトップ10言語はほとんど同じ順位にとどまっている。 独り負けwwww : デフォルトの名無しさん [sage] 2019/03/18(月) 01:33:16.80:TDQy6vox 日本生まれのクソ言語Ruby『最も嫌われているプログラミング言語』堂々ランクイン!! ttp://https://japan.zdnet.com/article/35109803/ おめでとうクソ言語!🎊 おめでとう日本の恥!!www ttps://japan.zdnet.com/storage/2017/11/02/e28392adae17a191547db083133339eb/171106-zdnet-1-01-languages-1-900x675.png : デフォルトの名無しさん [sage] 2019/03/18(月) 01:56:22.04:TDQy6vox Ruby is dead. ttp://https://rubyisdead.science/ : デフォルトの名無しさん [sage] 2019/03/18(月) 02:01:08.34:TDQy6vox Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 ttp://https://postd.cc/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/ : デフォルトの名無しさん [sage] 2019/03/18(月) 07:48:49.96:C9BGuQ42 self.name = name みたいな変数は self変数にnameプロパティを定義しているということなんですか? init内に書かれる事が多いですが、プロパティはどのような使われ方をするのでしょうか : デフォルトの名無しさん [sage] 2019/03/18(月) 11:21:28.47:vyVf53oQ Pythonでアニメーションムビーって作れますか? 教えてエロい人 : デフォルトの名無しさん [sage] 2019/03/18(月) 11:42:29.94:GvvOJgHh 出来るよ このポリゴンアニメもPython で組まれている ttp://https://youtu.be/lU-stMiFESQ : デフォルトの名無しさん [] 2019/03/18(月) 13:43:14.45:+MPRGO7m くだすれPython(超初心者用) その42【Ruby禁止】 ttp://mevius.5ch.net/test/read.cgi/tech/1552884175/ : デフォルトの名無しさん [] 2019/03/18(月) 13:50:09.52:HYm9qYKJ 乙 : デフォルトの名無しさん [sage] 2019/03/18(月) 14:39:32.03:3zrU7iIi Pythonなら音声合成も機械学習でできるよ! : デフォルトの名無しさん [sage] 2019/03/18(月) 14:59:40.24:vyVf53oQ ありがとうエロい人 よろしければおすすめのライブラリ教えてください : デフォルトの名無しさん [sage] 2019/03/18(月) 16:32:01.12:8JXxWTh8 Pythonなら毛糸洗いに自信が持てるよ! : デフォルトの名無しさん [sage] 2019/03/18(月) 17:23:25.93:LuaAQ2Ag それはボールドだろ : デフォルトの名無しさん [sage] 2019/03/18(月) 17:23:44.99:LuaAQ2Ag お、IDがlua永久にアゲだ : デフォルトの名無しさん [sage] 2019/03/18(月) 17:33:08.14:1Gq1ACAN Python(Jupyter)で、複数の行をループさせることって出来ますか? やりたいことはIn[5]〜In[8]を10回繰り返す、みたいな感じです
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。