- 1 名前:デフォルトの名無しさん [2019/04/30(火) 08:34:23.34 ID:sH/UeeJ6.net]
- ★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止 ☆「Ruby では」「Rubyでは」をNGワード登録推奨 ◆エラーを解決したいときはエラー表示と 環境(Pythonのバージョン・OS・IDEの種類とバージョン)をシッカリ書く ◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので ↓にあげてるような、ソースコード用サイトに貼ってきてくだしあ (スクリーンショットをimgurうp等の横着をしない) ttp://ideone.com/ 推定最大手。デフォ設定がCなので、Pythonするには選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう。 ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#) ◇Pythonオフィシャルサイト www.python.org/ ◇まとめwiki ttp://python.rdy.jp/ ●関連スレ● くだすれPython(超初心者用) その43【Ruby禁止】 mevius.5ch.net/test/read.cgi/tech/1555397061/ 〇前スレ Pythonのお勉強 Part59 mevius.5ch.net/test/read.cgi/tech/1552194662/ 次スレの建立は>>985が挑戦する
- 403 名前:デフォルトの名無しさん [2019/06/03(月) 12:05:51.45 ID:0DERidol.net]
- >>369
なんでJulia使わんのやろ。
- 404 名前:デフォルトの名無しさん [2019/06/03(月) 12:08:30.44 ID:0DERidol.net]
- >>390 >>363
pythonは遅い。なんでJuliaを使わんのやら。
- 405 名前:デフォルトの名無しさん [2019/06/03(月) 12:18:00.58 ID:ZJy6OnVg.net]
- Juliaは実質FORTRANやな
FORTRAN陣営から見たらJuliaなにそれ美味しいの?だし Python陣営から見たらJuliaなにそれ美味しいの?なんだな
- 406 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 12:22:29.73 ID:561P/qAZ.net]
- ルーピーの後はJulia廚か。 誰も使っていない言語を国の金で教育するメリットはない。
- 407 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 12:47:09.94 ID:WJCzotn8.net]
- Matzも呆れとったわ
何のためにJIS規格にしたのかと …本当にJIS規格が役に立つと思ってたんかな〜?
- 408 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 13:01:42.14 ID:561P/qAZ.net]
- >>404 Juliaは言うほど早くないぞ。 素因数分解したらPythonの方が早い。
- 409 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 13:11:57.98 ID:4oSq2JT3.net]
- AI教育という目的になってしまったから
ぶっちゃけRubyは出る幕ない
- 410 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 19:44:59.60 ID:IhVV+kPx.net]
- >>407
> Matzも呆れとったわ > 何のためにJIS規格にしたのかと アホみたいに言語仕様変えまくった奴が何を言ってるんだよ…
- 411 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 20:09:43.71 ID:3/CobnB+.net]
- どうせ主要なライブラリの中身はcなのにjulia速いとかバカなんじゃねーの?
- 412 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 03:47:40.02 ID:Z4hatvZh.net]
- Pythonもコンパイルすれば早くなるんじゃないの
- 413 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 05:43:24.04 ID:/ArpXH0n.net]
- >>412 それが Cython 。 JIT にするのがNumba
その内何もしなくてもJIT で動き始めるんじゃないのかな。
- 414 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 09:15:34.73 ID:/ArpXH0n.net]
- >>413 PyPy がJIT コンパイル機能を持ってるみたいだな。
4倍早いみたい。 だんだんとこちらが中心になっていきそうな気がする。
- 415 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 09:18:40.01 ID:DYrvoZh+.net]
- 10倍速くてもCモジュールの方が速いから無理
- 416 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 09:22:45.77 ID:DYrvoZh+.net]
- そもそもPyPyはCモジュールが遅くなる時点でお呼びではない
- 417 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 09:31:14.75 ID:/ArpXH0n.net]
- >>416 誰と誰が喧嘩してるんだ? PyPy が4倍早いというのは、Cで書かれたCpython と比較しての話なんだけど?
- 418 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 09:57:50.55 ID:jFAGFsyF.net]
- Cythonは実質Cコードを吐き出すだけじゃないの
- 419 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 10:09:41.48 ID:/ArpXH0n.net]
- >>418 CPython は、全てCで書かれた本家のPython インタプリタ。 これが標準とみなされ Python といったらこれのこと。
Cython は、(特殊な)python コードをCに落としてコンパイルするコンパイラ。
- 420 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 10:15:33.01 ID:/ArpXH0n.net]
- >>416 Cモジュールが遅くなるってどういう意味だ?
Cで書かれたライブラリのことか? そのまま使えばいいじゃん。
- 421 名前:デフォルトの名無しさん [2019/06/04(火) 10:48:29.61 ID:uvNmGZET.net]
- 翻訳されて 生の C になるからって言っても
PyObject * 毎回生成して getattr して call しまくる C に変換されてるだけなら そんなに劇的な速度差無いぜ 結局 numpy みたいなの使う方が速いし全体的にも効率的
- 422 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 11:04:17.89 ID:3AilBL3g.net]
- 【速報】金券五百円分とすかいらーく優侍券をすぐもらえる
https://pbs.twimg.com/media/D8I_z1eVsAEQacJ.jpg @ スマホでたいむばんくを入手 A 会員登録を済ませる B マイページへ移動する C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き) 今なら更に4日18時までの登録で2倍の600円の紹介金を入手 クオカードとすかいらーく優待券を両方ゲットできます。 数分で出来ますのでご利用下さい
- 423 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 13:00:09.35 ID:5lBlAjbk.net]
- >>419
なぜそれを>>418にコメントしたのか
- 424 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 13:24:15.00 ID:Pe5eEJ+g.net]
- >>422
QUOゲット
- 425 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 13:30:16.42 ID:0rQoK8jG.net]
- ありがとう
- 426 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 15:34:05.65 ID:oF2K+2cj.net]
- >>421 だから、numpy ならそのまま使えばいいじゃんと言ってるんだけど、話が噛み合わないな。
CPython のことを言ってるのか? 誰となんのために喧嘩してるんだ? <>423 >>417 で、CPython の話をしてるのに、Cython の話を持ち出してきたからさ。 その前はPyPy の話題。 よくわからんから好きなもの使えば。
- 427 名前:デフォルトの名無しさん [2019/06/04(火) 15:59:44.40 ID:XXr8i2SB.net]
- >>422
一万請求されたぞふざけんな!
- 428 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 16:09:43.04 ID:jFAGFsyF.net]
- numpy使うのが最速だよな
cuPy入れれば勝手にGPU使って速くなるし もはやCUDAの知識もいらない AIエンジニアといってもライブラリ使うマンに成り下がってる自分に腹がたつ
- 429 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 17:36:41.49 ID:JjymHpsL.net]
- >>420
ガイジは喋んなくていいよ
- 430 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 18:30:42.03 ID:5jXXyAl7.net]
- >>428
まあ仕方ない。。 自分の慣れた道だったとして相手がF1ドライバーとかだったらほぼ勝ち目なしだし。。
- 431 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 18:36:50.86 ID:Jyr2dHH9.net]
- Python使って自動運転させればF1ドライバーに勝てるんじゃ無いのか
AIだったら命知らずでぶっ飛ばせるしw
- 432 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 00:39:05.49 ID:8Be+XBy4.net]
- >>431
問題点 車体価格
- 433 名前:デフォルトの名無しさん [2019/06/05(水) 02:34:51.47 ID:L0nmYMGT.net]
- Python初心者です。質問の仕方や書き方など間違っているかもしれませんが、よろしくお願いします。
Python2.7を使っております。 .datのバイナリデータの検索と該当箇所を置き換えをやりたいのですが open read replace またバイナリデータの格納や表示などWEBで見てトライしましたがうまくいきません。 Test.dat の 01 00 01 00 01 00 を 00 01 00 01 00 01 に書き換えるにはどういう記述方法になりますでしょうか?
- 434 名前:デフォルトの名無しさん [2019/06/05(水) 02:39:40.49 ID:L0nmYMGT.net]
- 上記はhexedit などで見たところの16進数の表記のつもりで書かせていただいてます。
- 435 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 03:39:08.62 ID:pJvQ51Lo.net]
- まずどう上手く行かなかったか書こう
エラーメッセージや途中経過重要
- 436 名前:デフォルトの名無しさん [2019/06/05(水) 10:33:18.23 ID:L0nmYMGT.net]
- f = open(test.dat,rb)
data = f.read() f.close() print data @<?>などのバイナリファイルをテキストエディタで開いた時の文字化けのような表示 (ここまでしかできません) Aこれを16進数などに変換して該当箇所を任意16進で書き換え Bバイナリファイルとして書き出し or 元データを上書き のように考えております。よろしくお願いします。
- 437 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 11:04:22.91 ID:TJpsnTe7.net]
- https://stackoverflow.com/questions/4599835/simple-edit-to-a-binary-file-in-python
このへん読んでみては
- 438 名前:デフォルトの名無しさん [2019/06/05(水) 11:57:22.22 ID:L0nmYMGT.net]
- ありがとうございます。早速見て見ましたが英語が苦手で訳しながらやったのですが
うまくいきませんでした。 .dat の read() を行なった後、dataに変数に入れて表示される<?>文字列?化け? のようなものを16進数に変換する方法がわかりません。 data = [ f.read() ] にすると ['¥x00¥x00¥x00¥x00¥x00¥x00¥x00¥x00'] に表示できるのですが
- 439 名前:デフォルトの名無しさん [2019/06/05(水) 12:30:21.89 ID:SxBZ5bvb.net]
- 馬鹿には無理
- 440 名前:デフォルトの名無しさん [2019/06/05(水) 12:45:38.14 ID:L0nmYMGT.net]
- すいませんでした。鬱病が原因で学校を辞めて
なんとかプログラミングのスキルを身につけて社会に出ようと努力してみたのですが やはり、なかなか難しいです。 ありがとうございました。
- 441 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 12:47:43.39 ID:KKGqCSfk.net]
- 英語が苦手とか致命的では?
中学校からやり直した方が良いと思う
- 442 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 12:49:59.68 ID:ETZz2j+d.net]
- Pythonは情報系の大卒以上か理系院卒以上でないと仕事ないよ
- 443 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 13:11:20.66 ID:TKKYwlvh.net]
- その目的ならjavaかphpの方がいいな
- 444 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 13:17:04.05 ID:zgKRHSoo.net]
- >>440
学校辞めたのなら、余計にプログラマー無理だろ
- 445 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 13:33:28.47 ID:iseE4LCd.net]
- openの引数ってクオートしなくて良いの?
- 446 名前:デフォルトの名無しさん [2019/06/05(水) 13:35:00.88 ID:Cxh3OVbN.net]
- ネタでしょ
初心者はふつうバイナリデータいじらん、しかもPython2て
- 447 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 13:35:18.79 ID:Oo3xyqZm.net]
- pythonでバイナリデータとか日本語扱うのはかなり面倒だよ
初心者は絶対ハマる
- 448 名前:デフォルトの名無しさん [2019/06/05(水) 13:36:18.80 ID:L0nmYMGT.net]
- import subprocess
import glob File_Path = (glob.glob("*/test.dat")) for i in range(len(File_Path)): print File_Path[i] file = open(File_Path[i],'rb') data1 = [file.read()] data2 = data1[0].replace("\x01\x00\x00\x00\x04\n\x00", "\x00\x00\x00\x00\x04\n\x00") .replace("\x02\x00\x00\x00\x00\x00\x00\x00", "\xf4\t\x00\x00\x00\x00\x00\x00") file.close() file = open(File_Path[i],'w') file.write(data2) file.close() 一ヶ月前からプログラミングはじめて書き方もよくわからないのですが、上のコードで一応動くようになりました。 修正御指南お願いします。
- 449 名前:デフォルトの名無しさん [2019/06/05(水) 13:37:06.11 ID:L0nmYMGT.net]
- >>446
ネタじゃありません
- 450 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 13:58:54.05 ID:zgKRHSoo.net]
- >>448
学校に行けよ
- 451 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 15:22:10.72 ID:Vxwz5LZ9.net]
- 出来てるんじゃないの?
バイナリファイルを表示して確認出来ないってこと? ならバイナリエディタ使うとかLinuxならhexdumpで表示するとか? バイナリとテキストの違いはわかるよね?
- 452 名前:デフォルトの名無しさん [2019/06/05(水) 15:41:23.09 ID:L0nmYMGT.net]
- 一応動きましたが、納得いきませんで
> data1 = [file.read()] data1をリスト格納によって \x00 \x00 \x00 \x00 \x00 の表示取り扱いができるようになり、replaceも動くようになりました。 しかしリストに格納する意味は無いですし ***(data1)関数などで、表示できれば良いなと。調べてもわかりませんでした。
- 453 名前:デフォルトの名無しさん [2019/06/05(水) 15:52:30.66 ID:d0W0ZGzg.net]
- プログラミングに向いてないというより人間を名乗らない方が良い
出来の悪いAIです くらいにしとけ
- 454 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 16:03:53.07 ID:jOdpsPyG.net]
- ひでぇ
- 455 名前:デフォルトの名無しさん [2019/06/05(水) 16:25:46.98 ID:Ge2qACax.net]
- もしかして成長したアイちゃんでは?
最近見なかったが戻ってきたのか。
- 456 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 16:28:59.29 ID:9wg8020H.net]
- Pythonを極めればAIエンジニアとして生きていけると思うのは大きな勘違い、色んな言語を組み合わせる必要がある、と自称玄人は素人に良く言う
素人は他の言語もPythonもできないのにそんな事をわざわざ言ってどうなる まずPythonだけでも勉強させてやれよ
- 457 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 17:35:44.64 ID:Oo3xyqZm.net]
- やる気あるのは良いことじゃね
独学でも挫折する人多いわけで
- 458 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 17:48:23.37 ID:iU7KKE1l.net]
- DEBUG=0っていうグローバル変数のあるモジュールをシェルから実行するときにこれをDEBUG=1にして実行する方法はありますか?
例えばmake DEBUG=1みたいな感じで。
- 459 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 18:00:53.41 ID:qR/LRS8W.net]
- >>458
自作のモジュールか何かで編集可能かつbashの場合 DEBUG=${DEBUG:=0} と定義して呼び出すときに上書きできる もし編集不可能ならそんな方法はないのでsedやawkで置き換えることになる
- 460 名前:デフォルトの名無しさん [2019/06/05(水) 18:25:45.12 ID:L0nmYMGT.net]
- わかりました
うらみます
- 461 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 18:30:47.47 ID:BqK4nqSF.net]
- >>433 なんかよくわからないんだけど、
s1 = 0x01020304 を 0x02010403 にしたいと言う事かな?
- 462 名前:デフォルトの名無しさん [2019/06/05(水) 18:32:40.92 ID:3XxRby7F.net]
- >>448
https://ideone.com/BCfi7E に自分のセンスで書いた 採点すると ・不要なimportはしない ・globはファイルが複数ない場合は使わない ・[file.read()]の大カッコは不要 ・変数名の大文字小文字の使い方がおかしい
- 463 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 18:33:31.82 ID:iU7KKE1l.net]
- >>459
ありがとうございます。 やっぱりソースを書き換えるしかないんですね。
- 464 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 18:37:49.49 ID:BqK4nqSF.net]
- >>460 落ち込まなくても良いよ。 2ch なんていろんな人間がいるから。 バカもいるが、優しい人もいる。
質問してるうちに何が大事なのかがわかってくると思うから、めげずに質問を続けてみたら? >>463 や、>>465 は、少し反省しろ。 病気を乗り越えようと頑張ってる人をけなすなんてお前たちは最低だよ。
- 465 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 18:54:50.98 ID:kn0vanX8.net]
- 申し訳ない
- 466 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 19:44:33.90 ID:vL5jkg3Y.net]
- まじで病気だったなら5chなんかに来ないでスクールとかに通えよ
https://www.cyber-u.ac.jp/subject/python.html タダで懇切丁寧に教えてもらおうとか頭おかしい
- 467 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 19:53:05.76 ID:lJmEqgzT.net]
- >>466
教えたくない人は黙っていればいいんじゃないかな
- 468 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 20:01:24.12 ID:kn0vanX8.net]
- プログラミングの経験自体がないっぽいから
とりあえずはWebに転がってるサンプル入力して 結果を見て出来た!ってニヤけることから始めるべきかと。 数こなすことで出来ることと出来ないことが何となく分かってくる。 出来ないことをあれこれ考えて、出来る単位で作っていくのがプログラミング。
- 469 名前:デフォルトの名無しさん mailto:sage [2019/06/06(木) 00:46:39.08 ID:Qxsak61t.net]
- >>452
Python には、Ruby のpack/unpack みたいなのは、無いのか? pack : 配列 → 文字列 unpack : 文字列 → 配列
- 470 名前:デフォルトの名無しさん mailto:sage [2019/06/06(木) 03:21:45.18 ID:3ui/AiH2.net]
- >>468
初心者用ブログにのってるコードをコピペでもいいからまずは自分で動かしてみるってのは良いよね この値を変えたらこう動くだとか、このコードとあのコードを組み合わせたら、こう言う動きが出来るかもしれないなど組み立てる能力にも繋がるし
- 471 名前:デフォルトの名無しさん [2019/06/06(木) 05:33:20.19 ID:dTLpbEEC.net]
- 画像の中から特定の画像(拡大や縮小をされてても対応可能な)
見つけ出すコードを下さい。
- 472 名前:デフォルトの名無しさん mailto:sage [2019/06/06(木) 08:54:18.57 ID:agV0OMSj.net]
- >>463
sys.argvでググれ
- 473 名前:デフォルトの名無しさん mailto:sage [2019/06/06(木) 11:21:44.80 ID:NTWs7n2j.net]
- >>469 自分で調べもしないで聞くな。
r=['A','B','C'] rs=''.join(r) ir=[1,2,3] irs = ''.join(map(str,ir)) print(rs ,irs , list(rs), list(map(int,irs))) #OUT ABC 123 ['A', 'B', 'C'] [1, 2, 3]
- 474 名前:デフォルトの名無しさん mailto:sage [2019/06/06(木) 11:34:48.14 ID:3EP1W6m+.net]
- >>469
今のRubyがどうなってるんだか知らないけれど、pythonではバイナリ(bytes)と文字列(str)は違う型 で、pack/unpackは普通バイナリと数値や文字列の変換で使うやつだと思うが、 この目的なら pythonには struct.pack / struct.unpack がある >>952 repr("\x00") で行けるんじゃないかな
- 475 名前:デフォルトの名無しさん mailto:sage [2019/06/06(木) 12:45:35.43 ID:cdOVZaEX.net]
- >>469
そのものズバリならstructパッケージを使う 型がプリミティブ(intやfloat)ならnumpyでも可能 ファイルからならnumpy.fromfile バイナリ配列ならnumpy.frombuffer 文字列ならnumpy.fromstring dtypeでエンディアンも指定できる
- 476 名前:デフォルトの名無しさん [2019/06/06(木) 16:46:27.74 ID:MmdtfHnB.net]
- 安価の番号が違ってても気付かずにレスしまくってるのが
数名(見かけ上は)居るようだが気付いていないところを観ると SCで自演しまくってるんだろうな
- 477 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 14:17:21.06 ID:DCcV1WZ2.net]
- >>476
dat壊れてない?
- 478 名前:デフォルトの名無しさん [2019/06/07(金) 16:19:03.36 ID:JkNsgHeN.net]
- paizaのプログラミング問題みたいなやつでお勉強はじめたんだけど、Aランク問題になるとタイムアウトしまくる
whileや再帰をforに変えるとか色々やったけど通らないしアルゴリズムが問題なんだろうな とはいえ模範解答もないし、色々模索しているが挫折しかけているよ… ただ、こういった高速化のための考え方 みたいなものを学ぶのもきっといつか役立つのかなとも思う
- 479 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 16:29:20.63 ID:QdXw6XxC.net]
- >>478 何か一つアップしてみたら?
- 480 名前:デフォルトの名無しさん [2019/06/07(金) 17:22:37.11 ID:JkNsgHeN.net]
- >>479
paizaの問題は転載ダメなんだ、すまん
- 481 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 18:52:53.64 ID:17VMMr+p.net]
- 探索問題?
- 482 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 19:29:15.98 ID:t7F5nOi/.net]
- なんとなくソートっぽい
- 483 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:16:55.97 ID:wtNNzOUb.net]
- 計算量を落とす基本は、n^2 を、n log(n) の形にする事!
2^10 = 1,024 だから、2^20 = 百万。 ここで、データ数が百万の場合、百万 * 20 = 2千万になる! 一方、n^2 = 百万 * 百万 = 1兆 だから、log(n)の部分は、せいぜい、20〜50ぐらいだから無視できる! つまり並べ替えて、ソートを使うのが速い! だから、単純な2重ループになっていたら、ダメ! ループの内側に、優先度キュー・2分ヒープなど、何らかのソートを使っていないと、ダメ!
- 484 名前:デフォルトの名無しさん [2019/06/07(金) 22:27:46.33 ID:iFZF9YQL.net]
- 関数の中でグローバルな変数にアクセスするのはglobal宣言が必要ですが
リスト変数の場合はappendなどの操作をすると 宣言なしでグローバルなリスト変数にアクセスします これを禁止するにはどうしたらいいでしょうか? グローバルな変数にアクセスするときはすべて関数の引数として 渡して意図せず引数にないリストにアクセスしてしまうことは避けたいんです
- 485 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 23:07:12.51 ID:iFZF9YQL.net]
- main 関数に相当するものを作ることにしました
- 486 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 02:05:30.81 ID:9yqPu4ja.net]
- 何をなさる
- 487 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 08:27:06.81 ID:5drHbnb0.net]
- Pythonって継承ってライブラリの作者しか使わないんじゃね?って思った
抽象クラスの概念ないしポリモーフィズム簡単だし
- 488 名前:デフォルトの名無しさん [2019/06/08(土) 11:41:57.09 ID:ryWt2Gls.net]
- abstractなクラスも作れる
何ならinstance化禁止にも出来る
- 489 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 12:20:56.35 ID:9vptTvmT.net]
- >>488
それって言語仕様じゃないでしょ?
- 490 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 12:39:59.66 ID:sdBs9egv.net]
- 標準ライブラリで実装されていることが言語仕様に入らないとか言い出すとasync awaitも言語仕様に文法は存在するけど何もしないコードになる
- 491 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 12:59:07.72 ID:JxaHk6L1.net]
- pythonでなくても最近は継承は否定的に見られてるだろ。
- 492 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 13:07:52.88 ID:T9GDbnq/.net]
- 継承無いと、オーバーロード擬きの判定がダックになって面倒この上ない
- 493 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 14:18:21.59 ID:JxaHk6L1.net]
- なるほど、人の迷惑になりそうなクソな書き方をしたい人か。
- 494 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:19:29.84 ID:g6YzXvGd.net]
- 勝手に風潮作らないで
- 495 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:36:25.60 ID:wPg0m4E0.net]
- ヤバイくらいに言葉が足りてないなw
継承を悪用したアホな設計が蔓延した結果、継承は悪用されやすいので別の代替手段が模索されているという感じだ 例えばjavaは多重継承を禁止した結果、extendsに加えてimplementsなんてものがある 全部implementsでいいんでは?と昔ながらに思ったものだ
- 496 名前:デフォルトの名無しさん [2019/06/08(土) 19:03:56.74 ID:CdSbqwtc.net]
- そしてdefaultメソッドとか作る始末
- 497 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 01:20:04.97 ID:rn4C+nSw.net]
- 継承は、Ruby on Rails とか、フレームワークの作者が作るもの。
それを使う方は、そのクラスを継承させて使う フレームワークの作者以外が、継承を前提にしたクラスを書くのは、滅多にない
- 498 名前:デフォルトの名無しさん [2019/06/09(日) 11:04:45.99 ID:V8qyq4Ge.net]
- 多くはないのは同意するが
滅多にないは言い過ぎ 訂正汁
- 499 名前:デフォルトの名無しさん [2019/06/09(日) 12:40:55.08 ID:BmQn1SBQ.net]
- baka niiha muri
- 500 名前:デフォルトの名無しさん [2019/06/09(日) 13:28:49.95 ID:0qCJsaBL.net]
- importについて教えてください。
現在作成しているプログラムはこのような構造になっています。 hogehoge ┣ db ┳ models.py # DBのスキーマを管理するモジュール。rds.pyをインポートしている ┃ .┃ rds.py # DBのセッションを管理するモジュール ┃ .┗ __init__.py ┗ app.py # Webサーバを起動するモジュール (1)最初に事前準備として手動でmodels.pyを実行する事でDBの作成を行います。 # python db/models.py (2)その後Webサーバを起動してプログラムの利用が始まります。 # python app.py ここで質問なのですが、models.pyの中のimport文の書き方によって(1)と(2)のどちらかでエラーが発生します。 (1)でうまく動く時は import rds (2)でうまく動く時は import db.rds どうしてこのような挙動になるのか、(1)と(2)のどちらでも動くようにするにはどうしたら良いのかご教示ください。 よろしくお願い致します。
- 501 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 13:46:58.29 ID:Gi1Jt9cY.net]
- pythonに限らず相対パスの話で
models.py自身から見りゃそりゃrdsは同じフォルダにある、 app.pyからrdsを見ると\db\rdsにある
- 502 名前:デフォルトの名無しさん [2019/06/09(日) 14:03:14.07 ID:0qCJsaBL.net]
- >>501
ありがとうございます。 どちらの場合でもエラーはmodels.pyから出るのですが、 app.pyで実行した場合はmodels.pyの中のrds.pyへのパスもmodels.pyから見たものではなくapp.pyが基準になるという事ですか? なんてこったどうすればいいんだ・・・
- 503 名前:デフォルトの名無しさん [2019/06/09(日) 14:07:25.86 ID:V8qyq4Ge.net]
- from . import rds
これだけでいけるはず 必要があれば __init__.py にも何か書く
|

|