くだすれPython(超初心者用) その26at TECH
くだすれPython(超初心者用) その26 - 暇つぶし2ch302:デフォルトの名無しさん
15/06/28 02:53:32.39 x9WH9E/Z.net
forループ内で加工したpandasのdfをすべて行で連結していきたいのですが
どうやればいいのでしょうか?
for i in range(0,10):
...
print(df)
で出力されるdfをそれぞれ連結させていくイメージです

303:デフォルトの名無しさん
15/06/28 03:48:54.20 n02SzJDq.net
URLリンク(ideone.com)
StringIOでも良かろう

304:デフォルトの名無しさん
15/06/28 08:54:24.66 zKGg/T0h.net
私の日本語力では>>292が何がしたいのかわからないのでそれっぽいの貼っていきますね
URLリンク(pandas.pydata.org)

305:デフォルトの名無しさん
15/06/28 09:18:15.12 x9WH9E/Z.net
>293
うまくいかないため、すみませんがもう一度お願いします。
以下で得たい出力を得るにはどうしたらよいでしょうか?
data = {'A':[0,0,0],'B':[4,5,6],'C':[7,8,9]}
df = Dataframe(data)
for i in range(0,3):
df['A'] = 1*i
print(df)
得たい出力
A B C
0 0 4 7
1 0 5 8
2 0 6 9
0 1 4 7
1 1 5 8
2 1 6 9
0 2 4 7
1 2 5 8
2 2 6 9
実際の出力
A B C
0 2 4 7
1 2 5 8
2 2 6 9

306:デフォルトの名無しさん
15/06/28 09:30:12.24 x9WH9E/Z.net
>>293
あれ、スペースが抜けてしまいました
df['A'] = 1*i
の前にスペースです
forを抜けた後で得たい出力を使いたいです

307:デフォルトの名無しさん
15/06/28 10:50:57.03 zKGg/T0h.net
import pandas as pd
data = {'A': [0, 0, 0], 'B': [4, 5, 6], 'C': [7, 8, 9]}
frames = []
for i in range(3):
 data['A'] = i
 frames.append(pd.DataFrame(data))
print(pd.concat(frames))
これでいいのかな
全角スペース入れたから直してね

308:デフォルトの名無しさん
15/06/28 11:00:55.00 zKGg/T0h.net
import pandas as pd
data = {'A': [0, 0, 0], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
frames = []
for i in range(3):
 df['A'] = i
 frames.append(df.copy())
print(pd.concat(frames))
pandas上で加工するならこっちか

309:デフォルトの名無しさん
15/06/28 11:15:31.30 x9WH9E/Z.net
>>298
できました!
ありがとうございます!!

310:デフォルトの名無しさん
15/06/28 17:53:46.47 5QGv7jmz.net
ライブラリのosとos.pathって何が違うんですか?
osをimportしてもos.path使えますよね
os.pathってなんのために分かれてるんですか?

311:デフォルトの名無しさん
15/06/28 18:40:22.51 n02SzJDq.net
歴史的な経緯

312:デフォルトの名無しさん
15/06/28 20:58:44.00 92vB0cyt.net
os.walk/os.path.walk
みたいにはっきりしてほしい

313:デフォルトの名無しさん
15/06/28 21:00:42.00 Y74sbUOE.net
PythonでWebやりたいんだけど、どのフレームワーク?ライブラリ?を使えばいいの?
MySQLとかも使いたいんだけど

314:デフォルトの名無しさん
15/06/28 21:02:44.67 I4CbUbOX.net
聞く前に作ってみたほうが早いんじゃね?

315:デフォルトの名無しさん
15/06/28 22:13:06.89 92vB0cyt.net
Dja
いや
なんでもない

316:デフォルトの名無しさん
15/06/28 23:01:49.82 WE2Gt4yN.net
python3まったくわかんないです 助けて

317:デフォルトの名無しさん
15/06/29 06:06:28.45 um2QSBwJ.net
2は分かるのかよコラァ

318:デフォルトの名無しさん
15/06/29 06:15:48.27 PjeoFJ6W.net
ここのひとか
スレリンク(php板)

319:デフォルトの名無しさん
15/06/29 15:57:57.09 06ru4abg.net
windowsのbrackets使っているひといませんか?
設定で教えて欲しいのですが
flake8 lintの設定ができなくて
defaultPreferences.jsのpathを変えてみたのですが
うまく表示されません。
わかるかたがいれば教えて下さい。

320:デフォルトの名無しさん
15/06/29 17:22:56.95 rbxhDT3n.net
>>303
スレリンク(php板)l50
専用スレが合ったのであっちで回答しました

321:デフォルトの名無しさん
15/06/29 18:37:37.37 mk7+9Q5S.net
>>310
トンクス

322:デフォルトの名無しさん
15/06/29 23:40:20.99 WnsvTum+.net
>>303
BottleとSqlalchemyで基本を掴んだらPyramidかDjangoへ。

323:デフォルトの名無しさん
15/06/30 00:11:30.42 3BrZHobQ.net
python2のドキュメントに関する質問です
ドキュメントに載っていないようなコンストラクタの引数はどこで見つけているのでしょうか?
例えばasyncore.dispatcherにキーワード引数で、
sockという引数がコンストラクタの引数として指定できるようなのですが、
ドキュメントには書いてありません
このような引数はソースコードを直接読む以外に見つける方法はないのでしょうか

324:308
15/06/30 01:14:19.91 U4iTFw9A.net
bracketsをやめて正式版がでたatomに移行しました。
atom-beautifyでautopep8も動くし
linter-flake8でflake8も使えるようになりました。
ただautocomplete-plus-python-jediをインストールしたのですがエラーで動きません。
これが動くといいのですが

325:デフォルトの名無しさん
15/06/30 01:16:51.36 BpE3E8n5.net
自分で定義した関数は取得できるが組み込みの引数はできない
ソースコードを読むしかない

326:デフォルトの名無しさん
15/06/30 01:17:54.51 BpE3E8n5.net
>>314
何をどうしたのか
何のエラーがでたのか
こういう情報をきっちり書いてもらわないと無視されるよ

327:デフォルトの名無しさん
15/06/30 02:54:11.78 FzvalkoK.net
>>306
「みんなのPython 第3版」を読む

328:313
15/06/30 09:03:30.25 YGccIQHd.net
>>316
すみません。
atom-beautify
autocomplete-plus-python-jedi
file-icons
japanese-menu
linter
linter-flake8
linter-jshint
minimap
script
のパッケージをインストールして
補完機能が働くたびに
Uncaught Error: This socket has been ended by the other party
events.js:141
View Issueを押すと
URLリンク(github.com)
に飛びます
URLリンク(github.com)

329:デフォルトの名無しさん
15/06/30 12:53:01.89 j2uh7iS9.net
atom使ってないから知らないけどプラグインがatomの正式版に対応してないんじゃないの?
Emacしか知らないからそんなクソみたいなエディタ使ったことないから知らないがソフトウェア板で聞いたほうが早いんじゃないのか
スレリンク(software板)l50

330:デフォルトの名無しさん
15/06/30 12:56:33.08 j2uh7iS9.net
あとjedi開発者のreadmeに載ってたけどURLリンク(atom.io)とか他のプラグインを試してみるとか

331:317
15/06/30 14:21:31.34 YGccIQHd.net
>>319-320
ありがとうございます。
他のインストール時にバージョンが対応してない表示がでるのもあるので
インストール時に警告はでていないので大丈夫だと思います。
autocomplete-pythonも入れてみたのですがこちらも動きません。(エラーはなし)
ATOMの方で聞いてみます。
パッケージインストール時にすごく重くなるので
それが原因かもしれません。

332:317
15/06/30 14:33:09.56 YGccIQHd.net
autocomplete-plus-python-jediの設定にある
Complete Arguments for Functions
This will cause the suggestions for functions to include their arguments
のチェックを外してみるとエラーなく使えました。

333:デフォルトの名無しさん
15/06/30 21:36:46.13 yag52Vu+.net
例えばなんですが
テキストエディタ上で選択されている文字を取りだして
加工してテキストエディタに戻す
このようなことはpythonで可能でしょうか?
可能ならヒントなどを教えていただけると助かります。
よろしくお願いします。

334:デフォルトの名無しさん
15/06/30 22:03:09.99 w+OVDF0x.net
これ使え
Zim - A Desktop Wiki
Developing custom tool scripts
Remove line breaks custom tool
URLリンク(github.com)

335:デフォルトの名無しさん
15/06/30 23:11:52.70 yag52Vu+.net
>>324
ありがとうございます。
試してみます。

336:デフォルトの名無しさん
15/06/30 23:25:45.78 heQlMeyV.net
>>323
Pythonで出来るのは「文字列を加工する」部分だけだな。
「テキストエディタ上で選択されている文字を取りだしてPythonに渡す」
「加工した文字列をPythonから受け取ってテキストエディタに戻す」
この部分は使ってるOSとテキストエディタの機能に依存する。
俺の使ってるOSとテキストエディタでは出来る。
あなたの使っているOSでもできる筈だがあなたの使っているテキストエディタでそれができるかどうかはわからない。

337:デフォルトの名無しさん
15/06/30 23:52:35.57 yag52Vu+.net
>>326
レスありがとうございます。
325さんのOSは何でしょうか?
自分はmacなのですが、
OS付属のAppleScriptというスクリプトでは可能で
AppleScriptとPythonを組み合わせて使うことが出来ることまでは
ネットで調べてわかったのですが
Python単独でもできないのかなと質問してみました。

338:デフォルトの名無しさん
15/07/01 00:19:56.04 1d/Huarr.net
>>327
俺もOS Xですよ。
俺が使ってるのはCotEditorというテキストエディタで、
これはAppleScriptだけでなくPythonやRuby、Perlといったスクリプトと直接文字列をやり取りすることができます。
他にもJedit XっていうテキストエディタだとAppleScriptで同様のことができるので、
その場合だとあなたのおっしゃる通りAppleScript経由でPythonを実行することになりますね。
俺の知ってるエディタだとそれぐらいですが、他にも同様のことできるテキストエディタはあると思いますよ。miとか。
あと以前使っていたコンテキストメニューのプラグインにシェルスクリプトを実行できるのがあったので、
これ使ったらテキストエディタの種類に依存せずに、文字列を選択→右クリックからスクリプトを実行、ていうのができるんじゃないかな。
ただこれは何年も使ってないので今のOSでも使えるかどうかわかりません。興味あれば調べてみますが。

339:デフォルトの名無しさん
15/07/01 01:30:21.19 ftDlylXp.net
プログラミングに使えるテキストエディタならプログラム実行機能ぐらいはついてる
vimでもemacsでもsublimetextでも

340:デフォルトの名無しさん
15/07/01 03:52:02.49 Wf/LILTy.net
python2.7でコーディングしてます
vimになれるためとりあえずはプラグインなしで書いてましたが、そろそろもう少し便利な機能�


341:ヘないものかと辛くなってきました。 pythonを書く上でおすすめのプラグインはありますか?



342:デフォルトの名無しさん
15/07/01 07:22:47.74 WrSpGcQO.net
>>326
Pythonで出来るのは「文字列を加工する」部分だけだな。
「テキストエディタ上で選択されている文字を取りだしてPythonに渡す」
「加工した文字列をPythonから受け取ってテキストエディタに戻す」

MS Word なら win32com で全部 python で桶

343:デフォルトの名無しさん
15/07/01 09:26:39.82 M4xoLOwL.net
>>328
詳しくありがとうございます。
普段Jedit+AppleScriptを使っていて
Pythonを使えないのかなと考えたんですけど
環境に環境次第なんですね。
CotEditor面白そうですね。試してみます。
コンテキストメニューは自分で調べてみます。

344:デフォルトの名無しさん
15/07/01 10:33:09.71 1/FsmcZH.net
>>330
jedi

345:デフォルトの名無しさん
15/07/01 20:47:17.26 20mfxfYF.net
>>330
Vundle
vim-indent-guids
nerdtree
nerdcommenter
gruvbox
jedi-vim
syntastic + flake8
プラグイン入れたり消したりするなら、Vundleみたいなプラグイン管理系のプラグインいれとくと楽

346:デフォルトの名無しさん
15/07/01 20:54:11.62 NJjcaf84.net
クラスのインターフェイスってやらないのがpythonの流儀ですか?

347:デフォルトの名無しさん
15/07/01 22:12:53.39 jqzDD9Cy.net
流儀というか
ダックタイピングの言語でやる価値はあまりないような
抽象クラスなんかは普通に活用するが

348:デフォルトの名無しさん
15/07/01 22:26:13.45 byy0SjFx.net
コードにインターフェースを定義するか
ドキュメントにインターフェースを定義するかの
違いだからね。
俺としてはコードに書きたいんだが、
書いた所で守らないこともできるし、
そこら辺は実装は仕様を守らないとダメよという
ルールを強制させられる方がいいな。

349:デフォルトの名無しさん
15/07/01 22:46:32.23 HevIhCYT.net
class Test:
__def show(self):
____print(100)
obj = Test()
これを
o['show']()
みたいにしてアクセスする書き方を教えてください

350:337
15/07/01 22:51:59.18 HevIhCYT.net
訂正
class Test:
__def show(self):
____print(100)
このクラス名を変数nameに格納して、nameからTestクラスのオブジェクトを作成する方法を教えてください
name = "Test"

351:デフォルトの名無しさん
15/07/01 22:52:10.14 jqzDD9Cy.net
__getitem__を定義してshowメソッドを返せばいいのでは

352:デフォルトの名無しさん
15/07/01 22:53:22.46 jqzDD9Cy.net
全然意味違うじゃねーか
原型とどめてねえ物を訂正というのかお前の出身地では

353:337
15/07/01 22:53:30.96 HevIhCYT.net
PHPだと
$obj = new $name()でいけるんですが
pythonで
name = "Test"
obj = name()
って書いても作れませんでした

354:337
15/07/01 22:54:30.23 HevIhCYT.net
>>341
すみませんorz

355:デフォルトの名無しさん
15/07/02 00:11:36.17 /Kue2IfO.net
>>342
obj = globals()["Test"]
で、いけないかな?

356:デフォルトの名無しさん
15/07/02 00:37:01.55 P1VXT2gY.net
>>> obj = eval("{}()".format(name))
>>> obj
<__main__.Test instance at 0x0000000002DB9BC8>
>>> exec("obj = {}()".format(name))
>>> obj
<__main__.Test instance at 0x0000000002DBB1C8>

357:デフォルトの名無しさん
15/07/02 00:43:13.14 DrUxfqIB.net
そんな直感的じゃないことしないとできないもんかな
Pythonらしくないな

358:デフォルトの名無しさん
15/07/02 00:45:37.33 P1VXT2gY.net
動的にコード生成するのってきもちわるいよね

359:デフォルトの名無しさん
15/07/02 02:50:01.54 hbh5BBnI.net
>>338-329
わろた

360:デフォルトの名無しさん
15/07/02 03:18:17.47 hbh5BBnI.net
>>342
o = globals()['Test']()
または
mo = __import__('hoge.test', {}, {}, [])
o = getattr(getattr(mo, 'test'), 'Test')[]

361:デフォルトの名無しさん
15/07/02 03:21:07.48 hbh5BBnI.net
なんか変にミスった
>>342
o = globals()['Test']()
または
mo = __import__('hoge.test', {}, {}, [])
o = getattr(getattr(mo, 'test'), 'Test')()

362:デフォルトの名無しさん
15/07/02 15:33:57.81 3bRQFrby.net
ひでえ記事だな
和訳ドキュメントの文章をちょっと変えてほぼ丸コピペしただけじゃん
URLリンク(qiita.com)

363:デフォルトの名無しさん
15/07/02 16:37:28.62 TdrXBmul.net
例え丸コピペだったとしても
お前が文句を言う筋合いは無い
例え丸コピペだったとしても彼が投稿した事で助かる人は居るかもしれないが
2chでウダウダ言って晒して馬鹿にしようとしてるお前の行動で
助かる人は誰もいない

364:デフォルトの名無しさん
15/07/02 17:13:23.00 bMzAU0w9.net
>>351
非情に助かりましたありがとうございます

365:デフォルトの名無しさん
15/07/02 17:27:22.39 WW9VzXPI.net
確認してきたら引用ってレベルを超えて盗作じゃねえかwww

366:デフォルトの名無しさん
15/07/02 17:46:59.14 x/POinmv.net
こういう事があるから翻訳するのだるくなるんだよなぁ

367:デフォルトの名無しさん
15/07/02 22:57:49.71 vUmxObwA.net
最近qiitaひどくなってきてるからな。
内容のレベルは低いし、
どこかのサイトのコピペだし。

368:デフォルトの名無しさん
15/07/03 00:16:24.15 yuhxNbcX.net
噛み砕いてくれてるブログ記事は初心者にとってとはてもありがたいです。

369:デフォルトの名無しさん
15/07/03 00:41:23.15 C6li+8cU.net
どこも噛み砕かれてないという件

370:デフォルトの名無しさん
15/07/03 11:29:24.04 OisPLDc8.net
リストから、特定の文字列を含む要素を抽出する上手いやり方ってありますか?

371:デフォルトの名無しさん
15/07/03 11:38:00.16 ZITOwf17.net
>>359
サンプルがわからないので適当に
data = ['aaa','bbb','ccc','abc','cba']

test = [i for i in data if 'a' in i]

print(test)

372:デフォルトの名無しさん
15/07/03 11:59:35.22 oEEd62YQ.net
[i for i in ...

373:デフォルトの名無しさん
15/07/03 13:18:03.16 2GnRhJxr.net
>>359
data = ['aaa','bbb','ccc','abc','cba']
test = filter(lambda word: "a" in word, data)
print(*test)

374:デフォルトの名無しさん
15/07/03 20:02:37.48 Ms6a58jc.net
>>362
このwordって何?

375:デフォルトの名無しさん
15/07/03 20:18:00.49 Ms6a58jc.net
あ、lambda <引数>:<式>か
ちなみに最後の,dataって何してるの?
"a" in data,data
すると真偽と配列が全部帰ってくるけど、内部でどういう処理が行われてるわけ?

376:デフォルトの名無しさん
15/07/03 20:23:05.96 eeinSX8C.net
あ?調子のんなハゲ

377:デフォルトの名無しさん
15/07/03 21:26:15.70 A29HzBau.net
馬鹿なことを聞いている気がするが教えて欲しい
pypiでclassifier+キーワード検索ってどうやるんだろう?
そもそもできるのか?

378:デフォルトの名無しさん
15/07/03 22:13:42.22 VwEn5rR7.net
xmlrpcのインターフェースはsearchとbrowseで完全に分離されてるよね。
searchではclassifierが使えず、browseでは検索ができない。
なぜこんな仕様にしたんだろう。

379:デフォルトの名無しさん
15/07/03 23:02:34.50 QSBaxiRc.net
import cv2
とだけ書かれたコードを実行しようとすると
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 20: ordinal not in range(128)
と出てしまいます
moduleが見つからないというわけではなさそうなのですが。。。
解決法を御教示していただきたいです

380:デフォルトの名無しさん
15/07/03 23:17:24.97 ONNQmPA2.net
2chにエラーをコピペする前にグーグルでエラーを検索しようとは考えないんだろか
あと質問するときにバージョンすら書かないのはなんでなんだろか
いくらくだスレだって最低限の礼儀っていうかそういうのあんだろ

381:デフォルトの名無しさん
15/07/03 23:36:28.31 KFfcBnqi.net
>>364
自己解決しました
最後の,dataってfilterの第二引数だったのね

382:デフォルトの名無しさん
15/07/03 23:43:56.37 IVmenh/A.net
>>368
ぐぐったら1ページ目にいくつか解決策が見つかったけどもうみたの?

383:デフォルトの名無しさん
15/07/04 23:29:04.76 RxNq2g3r.net
とりあえず2は早く滅びて欲しい
非英語圏の初心者は辛すぎでしょ

384:デフォルトの名無しさん
15/07/05 05:20:08.61 XIvEwRaJ.net
たぶん、0x82 みたいな文字が無くて、
decodeできないのだろう
Rubyや一般的なエディタなどでは、
不明な文字は、? に置き換えられる

385:デフォルトの名無しさん
15/07/06 17:43:18.44 3teVeJk8.net
そうか不明な文字は例外で全部?にすればいいのか

386:デフォルトの名無しさん
15/07/06 21:45:11.64 m90nGVji.net
try使うってこと?いやそれはまずいよ
decode encodeの時点で変換できない文字に対する立ち振る舞いを設定するのがいい
errorっていうオプションあるんでそこでignoreにしたら無視、つまりスルーする
置換したりもできる

387:デフォルトの名無しさん
15/07/06 23:11:52.08 REKKz9Ad.net
"もじれつⅡ"の様な機種依存文字を含む文字列を
%xxの形にエスケープされたものを、urllib.parse.unquoteしようとした時
Ⅱが消えてしまうのですが、消えない様にする方法を教えてください。

388:デフォルトの名無しさん
15/07/07 02:45:51.12 JbsGCfj6.net
UTF-8でないコードでパーセントエンコーディングされてると思われるので
unquoteの第二引数で正しいencodingを指定する

389:デフォルトの名無しさん
15/07/07 07:39:17.88 rV+pZ+JS.net
>>377
もじれつ の部分はeuc-jpでunquoteできているのですが
Ⅱ だけができない。
encoding変えると もじれつの部分さえunquoteできない。

390:デフォルトの名無しさん
15/07/07 08:06:36.04 eOuV1Gqp.net
フォント

391:デフォルトの名無しさん
15/07/07 08:09:35.56 Ge7MDcMZ.net
消えるってどう消えるんだよ
\uFFFEで置換されるはずだろ

392:デフォルトの名無しさん
15/07/07 08:19:26.66 Ge7MDcMZ.net
もし\uFFFEへの置換をさせたくないなら
CodecInfoを定義してcodecs.registerで登録する
あるいはエラー処理関数を定義してcodecs.register_errorで登録する

393:デフォルトの名無しさん
15/07/07 08:22:57.78 Ge7MDcMZ.net
あとはbackslashreplace使えば
表示はできないけど情報は落ちない

394:デフォルトの名無しさん
15/07/07 08:30:53.40 oR9xV2kd.net
pythonって主にどういう分野で使われているんですか?
pythonじゃないと出来ない、或いは他の言語だと書きづらいなどの処理が有るんですか?
昔、私の知合いの超優秀な人がpython絶賛していたので関心有ります。

395:デフォルトの名無しさん
15/07/07 08:42:16.93 JbsGCfj6.net
>>378
それはコードがEUC-JPじゃない
euc_jis_2004かeuc_jisx0213を試してみて

396:デフォルトの名無しさん
15/07/07 09:08:41.41 N/5cXPjN.net
文法にそこまで気を使わなくていいので、
プログラマー以外にも人気。
自分は物理シミュレーションに使用してる。

397:デフォルトの名無しさん
15/07/07 09:55:01.60 Ge7MDcMZ.net
日本でPython使っている奴の98%は統計や言語処理、機械学習などの研究目的
ソースは俺調べ
Web?誰も使ってないよ

398:デフォルトの名無しさん
15/07/07 10:02:38.04 KY0I5Qgs.net
>>383
PerlやRubyの守備範囲に加えて科学技術やデータ分析ライブラリが充実してるので、
研究者に好んで使われるところが一番特徴的だと思う
スクリプト言語なんで計算速度は遅いんだけどnumpyっていうライブラリを通せばCとほぼ等価
これが重要インフラになってて科学技術ライブラリが星の数ほど産まれてる
また可読性高い文法なので理工系学生のファースト言語に選ばれることが多い
C、JAVA、JavaScriptとは守備範囲が違いすぎて比較にならないけど、
RubyPerlPHPが出来ることは


399:全部できた上でアカデミックな方向に突出して強いのがPython



400:デフォルトの名無しさん
15/07/07 10:05:32.86 H29+ArEW.net
たのしいRuby 第4版、2013
みんなのPython 第3版
この2冊を、この順で読んで。
そうすれば、この2つの言語が、
ほぼ同じだと言うことがわかる

401:デフォルトの名無しさん
15/07/07 10:24:52.36 oR9xV2kd.net
>>385,385,386,387
詳しい説明ありがとうございました。
私の知り合いも大学の数学の先生でした。確かに研究者好みなんですね。
最近Webプログラミング勉強中でJavaScriptをある程度習得できたので
次にRuby,Perl,PHP,Pythonのどれかをやってみようと思ったのですが、
Pythonにします。

402:デフォルトの名無しさん
15/07/07 12:18:30.59 NbSxZEiE.net
>>381
replaceした場合でしょ?置換は
ignoreしてるから
ignoreやめると例外が発生する
>>384
これ試してみます

403:デフォルトの名無しさん
15/07/07 12:38:03.08 Ge7MDcMZ.net
デフォルトはreplaceだろうが
ignoreしてるって一言でも断りがあったかボケナス

404:デフォルトの名無しさん
15/07/07 21:11:38.84 NbSxZEiE.net
>>391
失敬

405:デフォルトの名無しさん
15/07/07 21:59:34.86 N4S2iI2W.net
python3.xで日付を与えるとその日が月の何周目か返してくれるってのを探してるんだけど誰か知らない?

406:デフォルトの名無しさん
15/07/07 22:50:53.31 i7XTlt4K.net
月の何周目ってどういう意味
その月の何回目の何曜日っていう意味
それともカレンダー表示した時の何列目っていう意味

407:デフォルトの名無しさん
15/07/07 22:52:32.02 oR9xV2kd.net
>>394
多分後者じゃあないか

408:デフォルトの名無しさん
15/07/07 23:53:42.28 NbSxZEiE.net
euc_jis_2004で解決しました。
ありがとう

409:デフォルトの名無しさん
15/07/08 02:56:45.44 xAyjZhMy.net
後者なら
datetime型のweekdayで、与える日付の月の1日(ついたち)の曜日を取得
→(調べる日+1日の曜日シフト) / 7
でわかるんじゃないかな
1日の曜日シフトってのは、例えば左端が日曜日始まりのカレンダーなら
日曜日なら + 0
月曜日なら + 1
って感じ
割った答え+1で行がわかる
あまりで列がわかる

410:デフォルトの名無しさん
15/07/08 05:21:29.45 Y+kE74C9.net
import calendar

411:デフォルトの名無しさん
15/07/08 15:14:08.50 0vLepN94.net
wxPythonってもしかして3.x系使えない…?

412:デフォルトの名無しさん
15/07/09 00:09:04.93 nypWSsiv.net
URLリンク(docs.python.jp)
このページものすごく大切なことが書いてあると思うんだけど翻訳がおかしい

413:デフォルトの名無しさん
15/07/09 18:45:02.70 wjer6XlU.net
おかしいと感じるほどの英語力とPython力があるのなら
君が翻訳担当になってもいいのよ?

414:デフォルトの名無しさん
15/07/10 04:14:09.67 a8irpPFK.net
>>399だけど、
誰か3.x系で使えるおすすめのGUIのライブラリ?教えてください

415:デフォルトの名無しさん
15/07/10 05:25:43.26 tfwLFx83.net
言語的にアカデミックな方向に特化してるってことは、やっぱりこのスレにはポスドク難民とか高学歴ニートがけっこういたりすんのかね

416:デフォルトの名無しさん
15/07/10 09:37:54.98 kVbIsLFs.net
Python3
数万行のテキストファイルをイテレータで、最終行から1行目方向に
読み出したいんですけど出来ませんか?
メモリーは数十KBしか使えないので、readlinesで読みだして
逆順に変換するのはムリなのです。

417:デフォルトの名無しさん
15/07/10 10:01:49.15 cwv+HnzL.net
seek
setpos

418:デフォルトの名無しさん
15/07/10 10:10:10.14 cwv+HnzL.net
ごめんsetposは忘れて
URLリンク(qiita.com)

419:デフォルトの名無しさん
15/07/10 10:54:04.29 01rWRpTa.net
>>403
ネットワークエンジニアだけど使ってるよ

420:デフォルトの名無しさん
15/07/10 12:17:44.11 0KQmg


421:FVg.net



422:デフォルトの名無しさん
15/07/10 21:27:20.43 tfwLFx83.net
>>407
仕事で使うの?趣味?

423:デフォルトの名無しさん
15/07/10 21:47:28.48 ClCVGawJ.net
>>404
offsetを記録してfseek使ってって思ったけど、
単純には無理そう。
2万個の要素を持つlist, tupleで160kbのmemoryが必要だ。
>>> L = [None] * 20000
>>> L.__sizeof__()
160040
>>> tup2 = tuple([None] * 20000)
>>> tup2.__sizeof__()
160024
C拡張を書いて頑張るしかないんじゃないの?
>>> 4 * 20000
80000
素のPython3では無理。
が、>>404への答え。

424:デフォルトの名無しさん
15/07/10 21:56:08.47 ClCVGawJ.net
>>404
素のPython3では無理だ。
Cで、offsetをmemberに持つ一方向listの構造体作る戦法でいこう。
readlineで読み込む毎にoffset記録していく。
しかないよ。
Cでmemory切り詰めても数十kbのmemoryではぎりぎりだもの。
数十を具体的に言うとどれくらい?10?40?70?

425:デフォルトの名無しさん
15/07/10 21:58:40.63 UloSnGtD.net
>>404
URLリンク(stackoverflow.com)
上から6番目のreadlines_reverseしか試してないけどしっかり動いてそう

426:デフォルトの名無しさん
15/07/10 22:15:23.79 ClCVGawJ.net
>>412
def filerev(somefile, buffer=0x20000):
これか、最後まで一度飛んでおいて、
buffer分、後戻りして読み込んでsplitして、
またbuffer分、後戻りして、、、
の繰り返しでいけるんだ。
勉強になりました。
2chすげーな!

427:デフォルトの名無しさん
15/07/11 13:00:42.51 Evu65U1k.net
>>402
PySideでいいんじゃね。pipでさくっとインストールできるし。
あとどうしても3系でwxPythonがいいならここからダウンロードできる。
URLリンク(wxpython.org)

428:デフォルトの名無しさん
15/07/11 21:56:05.14 rYJP34gT.net
会社のソラリス上のpython2.6でどうしてもほしい機能がある。助言をくれ。
ログ.logってテキストファイルの中身が下記のようだとして
0000000a 11111111 0000000b 22222222
0000000c 33333333 0000000a 11111111
ログ.log ファイルに対して0000000aを指定すると
11111111
11111111
という風にラベルの後のデータだけ抜き出したファイルを作成してくれるスクリプトなのだけど。
python勉強中だがこのスクリプトが急ぎでほしい
教えてくれ

429:デフォルトの名無しさん
15/07/11 22:06:49.82 oXXQGP14.net
sedだけで出来そうな気がするwww

430:デフォルトの名無しさん
15/07/11 22:13:09.76 rYJP34gT.net
>>416
sedって知らなかったありがとう。スクリプトできれば月曜日にほしいから今日明日で頑張って作る予定
今日は家のPCにubuntu入れたよ

431:デフォルトの名無しさん
15/07/11 22:20:06.39 frozGINP.net
0000000a 11111111 0000000a 0000000a
0000000c 0000000a 0000000a 11111111
っていうパターンがあった場合はどこを抜き出したらいいの

432:デフォルトの名無しさん
15/07/11 23:06:47.60 6O+dLUsd.net
>>418
0000000a 11111111 0000000a 0000000a
0000000c 0000000a 0000000a 11111111
なら
11111111
0000000a
0000000c
0000000a
11111111
にする
超単純に、指定した4バイトのパターン(例では0000000a)を見つけたらその直後の4バイトを抽出したい。
建設的な指摘に感謝!

433:デフォルトの名無しさん
15/07/11 23:36:30.53 oXXQGP14.net
ここまで書いたけど後がよくわかーんなーい、しくしく(;o;)
import re
with open('ログ.log') as f:
 l = [re.findall(r'0000000a (\S*)', item) for item in [line for line in f]]
print(l)

434:デフォルトの名無しさん
15/07/11 23:45:58.02 oXXQGP14.net
>>419
あ、>>420は開業後の000000cには対応できんな・・・

435:デフォルトの名無しさん
15/07/12 01:51:01.90 V3tyjNbC.net
# -*- coding: utf-8 -*-
f = open('ログ.log', 'r')
L = [] #ここに出力したいのを入れていく
F = f.read().split() #半角スペースと改行コードで区切ってリストに
for i,d in enumerate(F): #enumerateは何回目のforloopかをiに記録する
 if d == "0000000a": #指定した文字列だったら
  L.append(F[i+1]) #リストの次の文字列が欲しいもの
print(L)
もしlogファイルが相当大きい場合はファイルを2行づつ読むとかやった方がいいかも
4バイトとか欠損データは考慮してない

436:デフォルトの名無しさん
15/07/12 07:26:47.55 ixUGyiXY.net
2行ずつ読むぐらいなら、前の文字列を覚えておく方が楽

437:デフォルトの名無しさん
15/07/12 07:45:02.33 EY9Ri2mE.net
>>420
>>422
ありがとう!
テストしてみる!!

438:デフォルトの名無しさん
15/07/12 07:58:29.04 ixUGyiXY.net
....は空白の代わり
with open('ログ.log') as f:
....last = ''
....for line in f.readline():
........for word in line.split():
............if last == r'0000000a':
................print(word)
............last = word
ファイルを全部メモリに読み込んで良いなら、
with open('ログ.log') as f:
....last = ''
....for word in f.read().split():
........if last == r'0000000a':
............print(word)
........last = word

439:デフォルトの名無しさん
15/07/13 23:26:07.79 bcTxDEgF.net
大変助かりました!
ありがとう!!

440:デフォルトの名無しさん
15/07/14 22:37:05.11 apYZaEjz.net
rubyの[1..10]みたいなのってpythonにはありませんか?
range(1, 11)ってやるのが一番短いですか?

441:デフォルトの名無しさん
15/07/14 23:41:42.95 Iv0YaWuW.net
んだんだ

442:デフォルトの名無しさん
15/07/15 05:03:39.16 W+0V5wr0.net
なんで未満指定なんだろうね

443:デフォルトの名無しさん
15/07/15 08:03:14.49 Es/kK6ei.net
スライスと同じ理由かね
本当のところはguidoに聞かないと分からないけど

444:デフォルトの名無しさん
15/07/15 08:24:23.35 Es/kK6ei.net
ちなみにスライスの理由というのは
>>> s = 'abcdef'
>>> s = s[0:3] + s[3:len(s)]
True
となるようにしたかったという話

445:デフォルトの名無しさん
15/07/15 08:46:24.00 Es/kK6ei.net
よく見ると等号が足りない

446:デフォルトの名無しさん
15/07/15 11:00:07.38 EyOqG4HO.net
単にC言語の感覚と同じにしたじゃんない?
Pythonはあえて残してる部分がちらほら見受けられる
int i;
for (i = 5; i < 10; i++) {
    printf("%d\n", i);
}
for i in range(5, 10):
    print(i)

447:デフォルトの名無しさん
15/07/15 11:20:15.06 PEfcCBMc.net
>>430
rangeは関数だから気に入らなきゃどうとでも出来るから、スライスの方が重要だね。
a=range(4)
a[4:0:-1]
ってやると、不思議な感じになる。
正しくは、a[4::-1]とかa[::-1]

448:デフォルトの名無しさん
15/07/15 14:51:31.70 LSJGAlFE.net
pythonがどういう流れで動くのかを図で解説している記事ありませんか?

449:デフォルトの名無しさん
15/07/15 15:14:18.08 Es/kK6ei.net
流れってなんだ
パソコンはなぜ動くのかレベルの話か?

450:デフォルトの名無しさん
15/07/15 15:14:50.48 PDrqXUBW.net
プログラムはなぜ動くのかって本があったと思う

451:デフォルトの名無しさん
15/07/15 22:29:36.34 n27Ug+NB.net
python で作った web アプリをスマートフォンのストレージに保存して、それを任意のブラウザから実行することは可能ですか?
python で作ったスクリプトをスマートフォンで動かしたいのですが、QPython や SL4A は入れたくないので、上記の発想に至った次第です。
なお、私はそもそも Web アプリが何なのかもよくわかっていないので、トンチンカンな質問をしているかもしれません。ご容赦ください。

452:デフォルトの名無しさん
15/07/15 22:57:36.67 KI5mj/c8.net
解説するのは面倒くさい
無理だと思え

453:168
15/07/15 22:59:26.83 n27Ug+NB.net
>>439
ありがとうございます。
別の方法を考えます。

454:デフォルトの名無しさん
15/07/16 00:05:47.22 A7eEJIoC.net
>>438
ローカルストレージ使うんだったらHTML5とJavascriptでアプリ作るとか?
Pythonは関係ないか

455:デフォルトの名無しさん
15/07/16 04:33:03.68 MREKRM2C.net
brython

456:デフォルトの名無しさん
15/07/16 07:10:05.39 y2OuNFMd.net
スマホでPythonを動かしたいってどんな用途なんだ
Pythonはテキストデータ加工専用言語だと思ってる俺には想像できん

457:デフォルトの名無しさん
15/07/16 07:22:22.31 LIw9URyA.net
馬鹿には無理

458:デフォルトの名無しさん
15/07/16 07:48:07.99 /b6luSAZ.net
>>438
入れたくないならあきらめましょう
入れたくない理由なんてどうせくだらねえ理由なんだろうけど

459:デフォルトの名無しさん
15/07/16 08:11:52.88 6s3Asl9o.net
>>441-442
ご紹介ありがとうございます。
brython より python スクリプトが動くこと、確認できました。

460:デフォルトの名無しさん
15/07/16 16:22:40.86 FwVCRsFY.net
むしろテキストデータ加工にしか使ってない人の方が少ないと思う
多分>>438はDjangoあたりでアプリ作ってサーバーを立てずに
ローカル(スマホ)だけで動かせないか?みたいなことを模索したんじゃない
まあそういうのならブラウザで完結するJavascriptが得意中の得意なのでそっちの方がいいと思うけど

461:デフォルトの名無しさん
15/07/16 16:34:14.78 JsJrinDm.net
awsにでも立てるとか
プログラミングなんて1年以内に90%飽きるから
ほとんどの人間は無料分だけで間に合うはず

462:デフォルトの名無しさん
15/07/16 20:32:50.46 A7eEJIoC.net
プログラミングだけを目的にすると確かに飽きる

463:デフォルトの名無しさん
15/07/16 20:59:08.62 8UcfF16i.net
rubyのbundlerみたいにプロジェクトごとにパッケージを分けたいんですが
venvやvirtualenvだと仮想環境を分けるのでpython本体をアップグレードした時に再度構築し直さないといけないのが面倒です

464:デフォルトの名無しさん
15/07/16 21:01:28.55 8UcfF16i.net
ググって便利なものをみつけました
URLリンク(github.com)

465:デフォルトの名無しさん
15/07/18 02:12:54.65 WgF9+eDU.net
Qpython入れている奴いるのか?
あれ中華アプリじゃないか。

466:デフォルトの名無しさん
15/07/18 07:12:47.04 oDsD2wef.net
>>427-434
Rubyの範囲演算子は、「..」「...」の2つある
3..5 → 3,4,5 (5を含む)
3...5 → 3,4 (5未満)
また負のインデックスは、末尾から数える
0..-1 → すべての要素を表す

467:デフォルトの名無しさん
15/07/18 07:31:19.49 lzEf6NGn.net
>>453
それがどうした?
それは>>427-434の会話に何か有効な知見を加えるのか?

468:デフォルトの名無しさん
15/07/18 07:55:07.39 OXmClLpi.net
他の言語はこんなことができるんだぞ!と書かれてもここP


469:ython スレだしなぁ うんうんそうだねとしか



470:デフォルトの名無しさん
15/07/18 08:00:34.26 jN6NYLvO.net
そんな目くじらたてることかよ…

471:デフォルトの名無しさん
15/07/18 09:04:50.07 OGP7IcNL.net
まあ、ここ3日ほどのkadongo38川上量生と
shi3z清水亮ほど攻撃される理由があるとは思えない

472:デフォルトの名無しさん
15/07/18 11:10:25.55 /T3VXxy+.net
川上さんまたなんかやらかしたん?

473:デフォルトの名無しさん
15/07/18 12:01:42.45 /T3VXxy+.net
自己解決
これが原因か
URLリンク(www.amazon.co.jp)

474:デフォルトの名無しさん
15/07/18 12:29:40.59 /T3VXxy+.net
これは貼れないのか
URLリンク(togetter.com)

475:デフォルトの名無しさん
15/07/18 12:49:43.


476:97 ID:o4iyQyYi.net



477:デフォルトの名無しさん
15/07/18 12:51:37.26 aTAx2eLl.net
あとスレチみたいなので目玉付く前に引っ込みます
URLリンク(anond.hatelabo.jp)
URLリンク(togetter.com)
URLリンク(coresugo.com)
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
ほんとうにありがとうございました

478:デフォルトの名無しさん
15/07/18 12:54:13.58 aTAx2eLl.net
>>461
"{:0" + str(a) + "d}".format(1)

479:デフォルトの名無しさん
15/07/18 12:55:24.44 47zg+pIq.net
("{:0" + str(a) + "d}").format(1)

480:デフォルトの名無しさん
15/07/18 13:11:33.78 o4iyQyYi.net
>>463
>>464
カッコで囲むと望む結果になりました
何でカッコつけたらえらーにならないんでしょうか
URLリンク(docs.python.jp)みましたがこれについて載っていません

481:デフォルトの名無しさん
15/07/18 13:15:31.87 15GkacxM.net
>>461,464
>>> a = 2
>>> '{:0{}d}'.format(1, a)
01

482:デフォルトの名無しさん
15/07/18 16:19:55.60 KW5V467a.net
すいません、pipの環境をつくろうと思い
get-pip.py
を持ってきたのですが、インストールする方法が分かりません・・・
インストールと言う言葉が合っているのかすら不明ですが。。

483:デフォルトの名無しさん
15/07/18 16:51:55.45 KW5V467a.net
pipはどうやら無事入ったようなのですが、以下のように出てしまい、つまづいています・・・
具体的には、youtube-dlというのを走らせたいのですが
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> sudo pip install youtube-dl
SyntaxError: invalid syntax
と、出てしまうのです。。

484:デフォルトの名無しさん
15/07/18 17:24:00.59 iPFcwwwg.net
>>468
Python3か2.7.9以上ならpipはもとからはいってるはずだけど、ディストリビューションによったりするのかな
あと、pipを実行するのはPythonインタープリタ上ではなくコマンドプロンプトとかターミナル
(my_env) C:\Users\Kaji\my_env>pip install youtube-dl
Downloading/unpacking youtube-dl
Installing collected packages: youtube-dl
Successfully installed youtube-dl
Cleaning up...

485:デフォルトの名無しさん
15/07/18 17:31:28.07 KW5V467a.net
>>469
すいません、IDLE ってコレ、エディタであって、実行うんぬんとは関係なかったんですね・・・

486:デフォルトの名無しさん
15/07/18 22:40:17.94 q+K0D9Kt.net
>>468
pythonでやりたいことがyoutube-dlだけならWindows用の実行ファイルが
公式で用意されてるんで素直にそれ使った方がいいよ

487:デフォルトの名無しさん
15/07/18 23:19:23.25 KW5V467a.net
>>471
それを使ってたんですが、使いこなせるように勉強してみようかなぁと思ったんですが
あまりにも難しくて・・・
出直してきたほうが良さそうですねw
とりあえず、YouTube動画を保存する目的は果たしているので、少しずつ勉強してみようかと思います

488:デフォルトの名無しさん
15/07/19 17:43:17.23 qsMi3+rD.net
>>463-465
>"{:0" + str(a) + "d}".format(1)
( )で囲まない場合、"d}".format(1) の部分が、
先に処理されてしまって、エラーになるのでは?

>>472
「みんなのPython 第3版」を読めば?

489:デフォルトの名無しさん
15/07/19 23:26:10.54 Xne2bw2/.net
python のファイル読み込みで
ある文字列が含まれる行から下に6行とって来て処理を施して別ファイルに保存したいです。
(grep -A6 *** >>outputのようなことをしつつ処理を施したい)
うまい方法を教えてください。

490:デフォルトの名無しさん
15/07/20 01:00:04.87 1kLeVcDt.net
>>474
ある文字列が二行連続で出てきた場合、どっから6行とるの

491:デフォルトの名無しさん
15/07/20 04:08:04.78 saoe/X12.net
例えばC言語のソース
----------------------
#include <stdio.h>
int main(void)
{
  int num, i;
  printf("2以上の整数を入力してください\n");
  scanf("%d",&num);
  for (i = 2; i <= num; i++){
    if(i == num){
      printf("%dは素数です\n",num);
    }
    else if((num % i) == 0){
      printf("%dは素数ではありません\n", num);
      break;
    }
  }
  return 0;
}
------------------------
から作ったtest.exeに整数を入力して
test.exe内で出力された文字列を全て取得するみたいなプログラム
はどうやって書けばよいのでしょうか
いまいちsubprocessを使いこなせません
環境はpython2.7,Windows7,VisualStudio2013です
よろしくお願いいたします

492:デフォルトの名無しさん
15/07/20 08:44:00.43 gMPbYmvA.net
python sample.py < test.exe
[sample.py]
# python3
print(input())

493:デフォルトの名無しさん
15/07/20 08:47:19.23 gMPbYmvA.net
subprocessについてはドキュメントにサンプルコードがあるからみろ
URLリンク(docs.python.jp)

494:デフォルトの名無しさん
15/07/20 22:52:39.12 saoe/X12.net
>>478
ありがとうございます
もうひとつ、.communicate()[0]の[0]ってどいう意味なんでしょうか

495:デフォルトの名無しさん
15/07/20 22:56:44.04 mx9ysNLA.net
communicateはstdoutとstderrのtupleを返すので
[0]はstdoutを指す
ただstdoutしか要らないならsubprocess.check_outputを使った方が手っ取り早い

496:デフォルトの名無しさん
15/07/22 00:14:40.34 FJtQ/kTm.net
>>475
ありがとうございます。
取得先のファイルは一種のログファイルで、6行毎に記録される仕様になっています。
なので、もし連続するようなことがあればエラーを返して停止する仕様にします。
素直にgrep 使ってシェル使った方が楽なんでしょうが、シェルはシェルで複雑なことが苦手っぽいので

497:デフォルトの名無しさん
15/07/22 00:46:29.39 8iq/aP4z.net
>>481
文字列を splitlines してループにかけるなり、finditer を使うなりいろいろあると思うけど、なにか試した?

498:デフォルトの名無しさん
15/07/22 07:03:08.97 UgzmRSIV.net
>>474
# 一致した(matched)フラグを初期化する
matched = False
count = 0
# File Open
with open('ファイル名') as f:
# ファイルの先頭から、1行ずつ読み込む
for line in f:
# lines にコピーする
lines = line
if matched:
count += 1
if count <= 6:
lines += line
if count = 6:
# linesをファイルに書き込む
break
# if matched: に対応する else:
else:
# その行に、検索パターンがあれば、
if line.indexof(pattern) > -1:
# 一致した(matched)フラグを立てる
matched = True

499:482
15/07/22 07:14:09.60 UgzmRSIV.net
>>474
>483 を修正
# 一致した(matched)フラグを初期化する
matched = False
count = 0
lines = None
# File Open
with open('ファイル名') as f:
# ファイルの先頭から、1行ずつ読み込む
for line in f:
if matched:
count += 1
if count <= 6:
lines += line
if count = 6:
# linesをファイルに書き込む
break
# if matched: に対応する else:
else:
# その行に、検索パターンがあれば、
if line.indexof(pattern) > -1:
# lines にコピーする
lines = line
# 一致した(matched)フラグを立てる
matched = True

500:デフォルトの名無しさん
15/07/22 11:01:08.40 Iz7cB0cB.net
お前ら暇だね

501:デフォルトの名無しさん
15/07/22 12:54:57.53 4zVzLLkn.net
暇ってのは尊い贅沢だぞ
下々は生きるのに忙しいからな

502:482
15/07/22 14:10:39.80 UgzmRSIV.net
>>483-484
修正します。
ただし、漏れも、Pythonは初心者で、
ソースコードを実行したわけではないので、あしからず


503: >if count = 6: if count == 6:



504:デフォルトの名無しさん
15/07/22 17:00:44.90 Hp3Ht5RA.net
>>474
入力に間違いがない前提
import sys

def getlog(pattern, inp=sys.stdin, out=sys.stdout):
    buf = []
    for line in inp:
        if pattern in line or len(buf) > 0:
            buf.append(line)
        if len(buf) >= 6:
            break
    out.writelines(buf)

with open('input.txt') as i, open('outout.txt', 'w') as o:
    getlog('pattern', i, o)

505:デフォルトの名無しさん
15/07/22 17:01:50.60 W3xYZwPB.net
丸投げくんのことはスルーすけど
>>484改行削除しなくていいのか

506:487
15/07/22 17:02:03.67 Hp3Ht5RA.net
失礼、コピペに失敗した

507:デフォルトの名無しさん
15/07/22 18:56:16.91 NL3fu3kF.net
みんな2chでインデント表現する時って全角スペース?

508:デフォルトの名無しさん
15/07/22 20:12:25.74 GPDjs6+w.net
んなわけねえだろ
ちっとはあたまつかえ

509:デフォルトの名無しさん
15/07/22 20:14:38.92 wGm6aIa7.net
俺はideoneに貼る

510:デフォルトの名無しさん
15/07/22 20:41:58.90 E01nq8P+.net
>>492
頭使えも何も、半角スペースは一文字にまとめられちまうんだから
見た目に空白を維持するなら全角スペースを使うしかない

511:デフォルトの名無しさん
15/07/22 21:01:22.54 Hp3Ht5RA.net
インデントは &160;

512:デフォルトの名無しさん
15/07/22 21:03:13.62 Hp3Ht5RA.net
またミスした &#160;

513:デフォルトの名無しさん
15/07/22 22:29:19.11 TVwdgeFO.net
&lt;てすと

514:デフォルトの名無しさん
15/07/22 22:29:52.69 TVwdgeFO.net
&rm;

515:デフォルトの名無しさん
15/07/22 23:09:04.94 GPDjs6+w.net
馬鹿には無理

516:デフォルトの名無しさん
15/07/23 12:29:56.79 aHQAOynK.net
pythonのとあるプログラムで独自の画像オブジェクトがあり。
これをオブジェクトの入子に複数格納することはできないでしょうか

517:デフォルトの名無しさん
15/07/23 12:43:30.19 ab3XmIzW.net
[obj1, obj2, obj3]
[[obj1, obj2], [[obj3], [obj4, obj5]]]

518:デフォルトの名無しさん
15/07/23 12:50:28.05 aHQAOynK.net
>>501
できましたありがとうございます。

519:デフォルトの名無しさん
15/07/23 12:59:11.20 ab3XmIzW.net
いいのかよ
独自の画像オブジェクトって情報は何か意味があるのかと思ってた

520:デフォルトの名無しさん
15/07/23 13:04:03.50 aHQAOynK.net
>>503
はい、ちゃんとその後の処理でも画像オブジェクトとして機能しましたので
問題ないようです。

521:デフォルトの名無しさん
15/07/23 13:54:21.82 JtElrAyf.net
くらくらするな

522:デフォルトの名無しさん
15/07/23 14:47:38.00 P0N6qRSq.net
オブジェクトの入れ子って3重くらいまでなら常識の範囲内か?

523:デフォルトの名無しさん
15/07/23 15:02:31.50 IBTyWZjg.net
>501 のことなら
入れ子になってるのはリスト構造だけで
オブジェクトの階層は一つしかないぞ

524:デフォルトの名無しさん
15/07/23 15:15:00.12 WUAvzM35.net
意図的にツリーにしてるなら何段でもいいんじゃないの
build.xmlとかpom.xmlは見ると頭痛がするが

525:デフォルトの名無しさん
15/07/23 15:58:49.63 IBTyWZjg.net
クラクラクラクラ

526:デフォルトの名無しさん
15/07/24 19:44:48.05 Sy3v921p.net
class A():
_def __init__(self):
__print('a' in self)
A()
self.aが存在するか調べたいんですが
TypeError: argument of type 'A' is not iterable
ってエラーになります
どうやって調べるのか教えてください

527:デフォルトの名無しさん
15/07/24 19:46:37.27 3P6rWc8H.net
hasattr使え

528:デフォルトの名無しさん
15/07/24 19:49:10.95 h3JVcYsp.net
class A():
_def __init__(self):
__print(getattr(self, 'a', None))

529:デフォルトの名無しさん
15/07/24 19:53:13.65 Z3gsNXcC.net
self.a

530:デフォルトの名無しさん
15/07/24 20:12:48.64 h3JVcYsp.net
例外出ないのか

531:デフォルトの名無しさん
15/07/24 22:27:25.98 Z3gsNXcC.net
出たらいかんのか?

532:デフォルトの名無しさん
15/07/26 03:07:51.49 lUWpyqrt.net
たまに使うことがあるんですが、
a = list(range(1000))
len(str(len(a))) ← こうやってるんですが、
桁数をとるのにいい方法ってあります


533:か。



534:デフォルトの名無しさん
15/07/26 05:03:08.65 FlzLI2sd.net
log10()

535:デフォルトの名無しさん
15/07/26 11:07:42.80 /x7wsywu.net
こことお勉強スレ何でスレ分かれてるのかおしえて

536:デフォルトの名無しさん
15/07/26 11:47:14.12 N2oZlVgp.net
くだすれとは…
多少揺らぎはあるが「くだらない質問はここで聞けスレ」の略
同じ言語で2つ質問スレが立っている場合、
片方は高確率でくだすれを源流としている(ふらっとC#とか)
くだすれが立つとき、本スレは当然くだらない質問で荒れている
荒れているが、その荒れも永遠に続くものではないので
今のように分かれている意味が分からない時期もある

537:デフォルトの名無しさん
15/07/26 13:36:52.96 wxu4sip9.net
モジュールのリロードについての質問なのですが
from mymodule import MyClass
このようにモジュールからあるクラスのみをインポートした場合、
ソースコードを変更した後に再度このクラスのみをインポートするにはどうすればいいですか?
下記の幾つかの方法を試しましたが、いずれも望む結果が得られませんでした。
>>> imp.reload(MyClass)
TypeError: reload() argument must be module
>>> imp.reload(mymodule)
NameError: name 'mymodule' is not defined
>>> from mymodule imp.reload(MyClass)
SyntaxError: invalid syntax
>>> imp.reload(mymodule.MyClass)
NameError: name 'mymodule' is not defined
>>> import mymodule
>>> from mymodule import MyClass
>>> (スクリプトを実行)
(→実行結果はソースの変更が反映されていない)

538:デフォルトの名無しさん
15/07/26 14:01:49.41 FlzLI2sd.net
reload(mymodule)

539:デフォルトの名無しさん
15/07/26 15:31:07.59 wxu4sip9.net
>>521
>>> import mymodule
>>> tmp.reload(mymodule)
>>> from mymodule import MyClass
ですね。ありがとうございました。

540:デフォルトの名無しさん
15/07/26 17:38:46.20 sjjuAaNb.net
こんにちわ、Pythonの超初心者です…
PYCファイルからPYファイルへのデコード(逆コンパイル)の方法をおしえてください
いくつかsetup.pyをダウンロードしてはcmdでやってみたんですがどうしても逆コンパイルでつまづいでしまいます…
お願いします助けてください

541:デフォルトの名無しさん
15/07/26 17:56:10.36 N2oZlVgp.net
超初心者がやるようなことじゃねえと思うがな…
デコンパイルしないと命を失うくらいに、どうしてもそれが必要か?

542:デフォルトの名無しさん
15/07/26 17:58:50.05 sjjuAaNb.net
>>524
どおおおおおしても必要です
一度やり始めたからにはきちんとできたほうがいいですし…
お願いします!
助けてください!

543:デフォルトの名無しさん
15/07/26 18:14:02.03 N2oZlVgp.net
uncomyle2は普通に動いたよ
URLリンク(pastebin.com)
3はためしてないけど、まあ動くんじゃないか

544:デフォルトの名無しさん
15/07/26 18:15:38.65 sjjuAaNb.net
>>526
すいません
やり方軽くでいいんでおしえてください・・・

545:デフォルトの名無しさん
15/07/26 18:30:37.89 N2oZlVgp.net
コンソールのログなんだからやり方も糞もねえだろ

546:デフォルトの名無しさん
15/07/26 18:39:58.48 sjjuAaNb.net
>>528
すいませんぼくwindowsのcmdでやってるもんでLinuxと違ってよくわからなかったです…
今uncompyle2のソースをすべてダウンロードしてcmdで
python setup.py bdist_rpm
python setup.py install
python setup.py install --home=<dir>
という順序で進めていますが
1番目のbdist_rpmで
error: don't know how to create RPM distributions on platform nt
がでてしまいます…
C直下にフォルダを作成してやってるのになんでしょうかね…
おしえてください!

547:デフォルトの名無しさん
15/07/26 18:55:11.11 FlzLI2sd.net
マルチしてるので回答中止な

548:デフォルトの名無しさん
15/07/26 19:15:08.45 C5DOIUuU.net
初心者じゃなくてもそんなことをする機会ってないんじゃないかな
あとWindows使ってるからLinux分かりませんって言い訳にもならない
せっかくサードパーティ製ライブラリを教えてもらったんだからVirtualBoxにLinux入れて試せばいいんじゃないでしょうか

549:デフォルトの名無しさん
15/07/26 19:47:03.10 FlzLI2sd.net
>>531
>あとWindows使ってるからLinux分かりませんって言い訳にもならない
おいおい
そのりくつはおかしい
>Linuxと違ってよくわからなかったです
っつってんだから528の主張はLinuxならよくわかるってことだ
あんたが528本人なら話は別

550:デフォルトの名無しさん
15/07/26 19:50:48.41 N2oZlVgp.net
僕もドザーには厳しく当たることにしてるのでこれ以上は嫌ずら
ドザーは死ね
クソマカーも死ね

551:デフォルトの名無しさん
15/07/26 21:28:05.08 52hX4QEC.net
>>532が言ってることがよく分からなかった
とりあえずマルチ4ネって事で終了

552:デフォルトの名無しさん
15/07/26 21:36:07.12 2fAT+AOZ.net
530は別に変なこと言ってないよ。
Linux環境がないからVirtualBoxにLinux入れて試せってことでしょ。
質問者がLinux分かるって言うのは文章からは読み取れない。

553:デフォルトの名無しさん
15/07/27 01:45:16.54 7QPACxki.net
質問者が命を失うぐらいに必要なんだから、もうちょっと待てば、もう質問してこれないはずだよ。

554:デフォルトの名無しさん
15/07/27 02:09:36.43 /8w8BvTq.net
夏だね

555:デフォルトの名無しさん
15/07/27 02:57:18.10 Yd8xNCrh.net
Windowsで使えないという事は、それだけで弱点と言えます。
NginxをWindowsで運用することはありませんが、それでもWindowsで動きます。
Windowsで動かないという事は、使うなという事を意味します。
NginxがWindowsで動かなかったら、それは使うなという意味ですから、
ここまで広がることは無かったでしょう。
PHPは糞言語と言われつつ、何故ここまで広がったのでしょう。
それはWindowsで動くからです。
Windowsに対応した途端、一気に広まったのです。

556:デフォルトの名無しさん
15/07/27 07:55:28.55 rIdflrhB.net
まだ生きていましたか
仕方がありません
私がとどめを刺してあげましょう

557:デフォルトの名無しさん
15/07/27 08:27:41.20 IMvB71j8.net
>>538
試したけどwindowsでもuncompyle2動くじゃん
ここから導かれる結論は
・あなたのPCにインストールされたWindowsが一般的なものと比較して糞
・あなたのPCは幻覚でPCに見えており、本当はみかん箱か何か
どちらだろう

558:デフォルトの名無しさん
15/07/27 08:37:38.50 q4XoOyft.net
キチガイ荒らしが棲みついてるみたいなので
もれはもぐるわ
しばらく激高した荒らし続くかも知れんが
いなくなるまでしつこい荒らしは当分無視しろよ
スレ過疎っても荒らしのせいだけど
おまいらごめんな

559:デフォルトの名無しさん
15/07/27 08:46:15.97 rCgM2BeH.net
涼しくなった頃にまたおいで。

560:デフォルトの名無しさん
15/07/27 15:12:40.83 JJPg7kwZ.net
class A:
__def v(self):
____print(1)
class B:
__def v(self):
____print(2)
class C(A,B):
__pass
obj = C()
AとBを継承したCクラスでAとBそれぞれのvメソッドを使いたいんですが
obj.v()するとクラスAのvメソッドが呼ばれます
クラスBのvメソッドはどうやって呼び出せますか?

561:デフォルトの名無しさん
15/07/27 15:46:37.89 pS+RQVuM.net
class A:
__def v(self):
____print(1)
class B:
__def v(self):
____print(2)
class C(A,B):
__def v(self):
____A.v(self)
____for i in range(10000000):
________B.v(self)

562:デフォルトの名無しさん
15/07/27 15:54:36.38 JJPg7kwZ.net
>>544
pythonって親クラスに直接アクセスできるんですね
super使う方法を見つけてこれでもいけました
super(A, self).v() # 2

563:デフォルトの名無しさん
15/07/27 20:09:54.88 gGLbTc2k.net
クラスを継承しない場合はobjectを継承しろって言われたことがあるんですが
これって2.7までの話ですよね?

564:デフォルトの名無しさん
15/07/27 20:59:12.30 DdDzdSYJ.net
>>545
むしろAとBが無関係でも動くんだよなぁ、これ
class A:
    def me


565:s(self):         print('class A method') class B:     def mes(self):         A.mes(self) b = B() b.mes()



566:デフォルトの名無しさん
15/07/27 21:30:52.71 C09rWlqr.net
あ、ほんとだなんで????????????????????
class A:
def a(self):
print(1)

class B:
def b(self):
print(2)
A.a(object)
B.b(object)

567:デフォルトの名無しさん
15/07/27 21:35:54.72 WvAcX5y2.net
>>546
全然違う
新スタイルクラスを使うならobjectを継承しろ、だ
しかもPython3に旧スタイルクラスは存在しない
旧スタイルクラスを使わないと殺される場合でもなければ新笥スタイルクラスを使え

568:デフォルトの名無しさん
15/07/27 23:40:42.98 ZHHP3cwX.net
Pythonで作成されたアプリケーション(JETCreator)を使用しようとすると、
TypeError:cannot deepcopy this pattern object
というエラーが出て動作しません。
自分が作ったものでなく、AndroidSDK等にも初めから用意されている者なのでプログラムのエラー
ということはないと思います。(現verのSDKには入ってなく、古いverの方からjetフォルダを戴きました。)

569:デフォルトの名無しさん
15/07/27 23:53:54.90 ZHHP3cwX.net
>>550
詳細
Tracevack(most recent call last);
File"I:\kaken\sdk\tools\jet\JetCreator.py",line 410, in OnsegmentAdd
saveState = JetState(self,jet_file,self,currentSegmentIndex,self,currentEventIndex)
File"I:\kaken\sdk\tools\jet\JetUtils.py",line 95,in_init_
self.jet_file = copy.deepcopy(jet_file)
File"I:\Python27\lib\copy.py",line 190,in deepcopy
y = reconstruct(x,rv,1,memo)
File"I:\Python27\lib\copy.py"line 334, in_reconstruct
state = deepcopy(state,memo)
File"I:\Python27\lib\copy.py"line 163, deepcopy
y = copier(x,memo)
File"I:\Python27\lib\copy.py"line 257, in_deepcopy_dict
y[deepcopy(key,memo)]= deepcopy(value,memo)
File"I:\Python27\lib\copy.py"line 163, in_deepcopy
y = copier(x,memo)
File"I:\Python27\lib\copy.py"line 298, in_deepcopy_inst
state = deepcopy(state,memo)
File"I:\Python27\lib\copy.py"line 163, in deepcopy
y = copier(x,memo)
File"I:\Python27\lib\copy.py"line 257, in_deepcopy_decit
y[deepcopy(key,memo)]= deepcopy(value,memo)
File"I:\Python27\lib\copy.py"line 174, in deepcopy
y = copier(memo)
TypeError: cannot deepcopy this pattern object
です。

570:デフォルトの名無しさん
15/07/28 00:14:18.22 AL/+2NkH.net
>>550 >>551
すみません自己解決しました。荒らしてしまって申し訳ありませんでした。

571:デフォルトの名無しさん
15/07/28 08:56:29.07 m3UChEdn.net
自己解決したならそれを書けよ

572:デフォルトの名無しさん
15/07/28 09:19:38.25 dueMFxCg.net
例えゴミでもゴミから堆肥に昇格する権利くらいはあったのに

573:デフォルトの名無しさん
15/07/28 16:56:02.34 eB7VWbpU.net
./codes/mycode.py
./test/test_code.py
こんな感じで
./test/がカレントディレクトリとします
test_code.pyから../codes/mycode.pyをimportする場合
import os
import sys
sys.path.append(os.path.join('../', 'codes'))
import mycode
こんなふうに書きましたがこれだとPEP E402に違反します
どうやって書き直したらよいですか?

574:デフォルトの名無しさん
15/07/28 17:55:48.59 dueMFxCg.net
わざわざ変な構成にしてるんだから
PEPの文句なんて無視すればいいじゃん
おすすめ構成は以下
/project/bin/entrypoint.py
/project/mypackage/__init__.py
/project/mypackage/mycode.py
/project/test/test_mycode.py
/setup.pyなど

575:デフォルトの名無しさん
15/07/28 18:04:34.02 dueMFxCg.net
間違えた
/bin/entrypoint.py
/mypackage/__init__.py
/mypackage/mycode.py
/test/test_mycode.py
/setup.pyなど

576:デフォルトの名無しさん
15/07/28 18:22:10.22 eB7VWbpU.net
ええええ、/直下に作るんですか?それってありなんですか?

577:デフォルトの名無しさん
15/07/28 18:23:14.73 dueMFxCg.net
プロジェクトルートの意味だと思って貰えれば

578:デフォルトの名無しさん
15/07/28 20:52:02.58 eB7VWbpU.net
ルートのはそういうことか、なるほどわかりました。
でもおすすめしてもらった構成だとぼくの変わらないと思うんですよね
あとPEPで決められたルールもあるので正攻法がある気がするんですよ

579:デフォルトの名無しさん
15/07/28 21:05:11.62 9GgK2udL.net
>>560
Python3 であり正攻法か知らないけれど、
以下の方法はどうでしょう?
import os
abspath = os.path.abspath(__file__)
dirpath = os.path.dirname(abspath)
here = dirpath
parent = os.path.join(here, "..")
libpath = os.path.join(parent, "lib")
print("abspath =", abspath)
print("dirpath =", dirpath)
print("parent =", parent)
print("libpath =", libpath)

580:デフォルトの名無しさん
15/07/28 21:14:05.11 ZRk8WaCe.net
いやPYTHONPATHにパッケージルートを入れるだけだろ
sys.pathが出てくる理由が全く分からない

581:デフォルトの名無しさん
15/07/28 21:24:01.05 9GgK2udL.net
>>562
PYTHONPATH って環境変数でしょう?
環境変数をいじるのは嬉しくないと思う。
それよりは、sys.path.append()使って、
環境変数に触らずにtest_code.pyを実行したい。
というのが>>555の考えなんじゃないの?

582:デフォルトの名無しさん
15/07/28 22:12:14.70 c7bvE2d8.net
setupのtest_suiteでテストパッケージを指定して
setup.pyからテストを実行すればいいんじゃない?

583:デフォルトの名無しさん
15/07/28 22:14:04.86 dzOUJwwo.net
普通にインストールしてからテストすればいいんじゃないの

584:デフォルトの名無しさん
15/07/29 05:39:43.45 qvSRsKX3.net
test$ ln -s ../codes codes

585:デフォルトの名無しさん
15/07/29 18:48:23.87 C31cMPRb.net
def test():
・・
continue
while True:
test()
このような感じで、関数内からwhile Trueに対してcontinueする事はできますか?

586:デフォルトの名無しさん
15/07/29 19:54:32.01 4360Pw2a.net
???
再帰ってこと?
多分、したい事の解決方法が間違ってる。
したい事は、なぁに?

587:デフォルトの名無しさん
15/07/29 20:04:23.92 C31cMPRb.net
イカのような処理で例えばtest1()内のチェックでひっかかった場合、
test2()に移行せずwhile True:のはじめからやり直したいんです
while True:
__test()
__test1()
__test2()
__test3()
SyntaxError: 'continue' not properly in ~~~ となります

588:デフォルトの名無しさん
15/07/29 20:05:23.12 RH5K4X2w.net
こんなんやろ?
class Continue(Exception):
def __init__(self, *values):
self.values = values
def test(i):
if i % 2:
raise Continue(i)
return i * 2
def main():
for i in range(10):
try:
v = test(i)
print('{} => {}'.format(i, v))
except Continue as c:
print('continue: {}'.format(c.values))

589:デフォルトの名無しさん
15/07/29 20:12:57.40 3xGNJCY0.net
>>569
成功したらTrueなりFalseを返して判定
import time
def a():
print(1)
return False
def b():
print(2)
return True
def c():
print(3)
def d():
print(4)
while True:
time.sleep(1)
if a():
continue
if b():
continue
if c():
continue
if d():
continue

590:デフォルトの名無しさん
15/07/29 20:18:01.61 C31cMPRb.net
>>571
やりたいことこれです、ありがとうございます。

591:デフォルトの名無しさん
15/07/29 20:23:40.48 c3o2n8R7.net
pythonってちょっと齧った程度なんですが、c++,JSの経験しかない私には文法が独特な感じがしました。
関数には{}使わないんですよね。

592:デフォルトの名無しさん
15/07/29 22:10:41.56 cW7qEMuX.net
{}使わなくていいのがいいところ

593:デフォルトの名無しさん
15/07/29 22:16:03.57 4YomwHKV.net
インデントで構造を表現してる
この構文は賛否あると思うけど、将来{}が導入される機会は無いとわざわざ実装で表明している

594:デフォルトの名無しさん
15/07/30 15:26:59.50 qxlVlu0T.net
後数ヶ月で3.5がリリースされるのに3.4の機能すらよくわかってない
PHPでいうURLリンク(docs.php.net)みたいな変更履歴ってどこで見れますか?

595:デフォルトの名無しさん
15/07/30 16:04:02.56 Z0rCKaW0.net
日本語はないよ

596:デフォルトの名無しさん
15/07/30 19:31:47.32 cCFC5U/T.net
URLリンク(docs.python.jp)
から各バージョンへのリンクがあるよ

597:デフォルトの名無しさん
15/07/31 00:49:42.33 u6UInjxJ.net
Pythonのインデントは百害あって一利なし

598:デフォルトの名無しさん
15/07/31 07:55:33.34 zxXRNzjs.net
と思う吉宗であった

599:デフォルトの名無しさん
15/07/31 08:33:05.30 709JoO30.net
暴れん坊Python

600:デフォルトの名無しさん
15/07/31 22:48:07.91 wbH0A+JA.net
外部プログラムを監視させたいのだけれど、皆目わかりません。
ヒントだけでも教えていただけませんか?

601:デフォルトの名無しさん
15/07/31 23:20:03.61 hKMcxT/u.net
もう少し具体的に監視って何だ

602:デフォルトの名無しさん
15/08/01 00:28:01.71 ghun761E.net
whileループで一定時間経過後にループを抜けるようにしたいんですが
なにかいい書き方はありますか?

603:デフォルトの名無しさん
15/08/01 00:29:18.18 VbjGDeVR.net
>>584
何でwhile何だよ?

604:デフォルトの名無しさん
15/08/01 00:34:41.58 ghun761E.net
>>585
あ、確かに
forでsleepかませばいいだけですかね?
なんか変にこだわってましたすみません

605:デフォルトの名無しさん
15/08/01 02:03:25.71 VbjGDeVR.net
>>586
男にはこだわりも必要さ。頑張れ。

606:デフォルトの名無しさん
15/08/01 06:31:27.99 ed2n0PXB.net
>>583
証券会社のツールから株価を取得したい。
例えばハイパーSBIで銘柄のコードを入力すると株価が出力されるのだけれど、それをpythonでやる方法がわかりません。

607:デフォルトの名無しさん
15/08/01 07:21:30.49 Ere4YETC.net
spyderでプログラムを起動させると
起動中はコンソールの右上に橙の三角マーク(マウスを当てるとkills the current system~と出る)が普段は出ているのですが
たまにエラーも吐かずにプログラムが途中で停止し、そのマークも緑の再生ボタン(run again~)になってしまいます
まったく同じプログラムを何度か起動しても、止まる場所はその時々でまちまちで、原因がさっぱりわかりません
これはいったい何が起こっているのでしょうか?

608:デフォルトの名無しさん
15/08/01 10:19:03.40 QcdegDsY.net
辞書とかリストとかに要素を追加し続けると動作が重くなるんだけど、これってどうしようもありませんか?
要素数は最大で3万件弱、内容は文字列(40~60byte)をファイルから読み込んで追加していくと
読み込んでいく速度が急激に落ちてすごく時間がかかるんです。

609:デフォルトの名無しさん
15/08/01 10:22:40.87 kwRHUfwj.net
読む速度が遅くなるのか
追加する速度が遅くなるのか
判然としない

610:デフォルトの名無しさん
15/08/01 10:47:46.62 QcdegDsY.net
ファイルは700位あって、順次読み込んで文字列を取り出して追加するのですが
挙動を見ている限り追加する速度が遅くなっているみたいに感じます
最初はリストに追加していたのですが遅いので、辞書にしてみたら更に遅くなりました

611:デフォルトの名無しさん
15/08/01 11:00:01.80 HfST5fY7.net
>>588
HyperSBIは外部プログラムとデータのやりとりをする機能を公開していない
よってPythonに限らずどんな言語でも無理

612:デフォルトの名無しさん
15/08/01 11:00:15.78 VbjGDeVR.net
>>592 python以外のc++などで試してみればどうなん?



614:デフォルトの名無しさん
15/08/01 11:18:26.97 PBQUMraI.net
>>592
now = time.time()
#ここで追加or読み込みなど計測したい処理
print( time.time() - now )
これでどの処理にどれだけ時間かかってるかが出力されるので原因が特定しやすいよ
オレの環境では辞書に100byte*10万件追加しても0.05秒(1件あたりじゃなくて全件で)
pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか
ちなみにリストは巨大化すればするほど


615:後ろの方のデータを読み込むのにどんどん時間かかるけど、 辞書は一定の速度で読み書きできるはず



616:デフォルトの名無しさん
15/08/01 11:41:59.68 AVRmVHoz.net
>>588
スクレイピングでググってください
丸投げではなく自分で1から勉強してください
難しいスキルは不要なので基礎からやりましょう

617:デフォルトの名無しさん
15/08/01 11:43:55.24 AVRmVHoz.net
>>590
必要であればyieldを使うなりデータを分割して処理するなりしましょう
データをファイルに書き出して分割して読み込んでいく方法もあります

618:デフォルトの名無しさん
15/08/01 11:47:08.78 AVRmVHoz.net
>>581
python process 監視でググってヒットした1ページ目を片っ端から読みましょう

619:デフォルトの名無しさん
15/08/01 11:47:26.67 PBQUMraI.net
>>596
おそらくC系で書かれたアプリのデータをpythonで取得するのはスクレイピングとは何の関係も無い
難しいスキルが不要どころか極めて敷居高いですよ
少なくともオレにはできない

620:デフォルトの名無しさん
15/08/01 13:23:00.56 GepW3eXw.net
>>590
データ用途にもよると思うけど、素直にDB使えばいいんじゃね
sqlite使ってまずオンメモリDBを試してみて、ダメならファイルベースにすればいい

621:デフォルトの名無しさん
15/08/01 13:30:55.26 ldei0zHr.net
証券会社のツールってWeb上のことでしょ
データなんてクライアントツールで提供してるとこなんてないよ

622:デフォルトの名無しさん
15/08/01 16:42:52.95 waGA91Tw.net
webで一般公開されてるデータなんて
20分以上遅れてるから使い物にならない

623:デフォルトの名無しさん
15/08/01 16:43:35.87 waGA91Tw.net
>>595
>pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
>読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか
+1

624:デフォルトの名無しさん
15/08/01 17:28:13.97 zsKVeSSI.net
ID:waGA91Twは質問者なの?具体的に説明しないとスルー対象だよ

625:587
15/08/01 17:43:35.94 omn1LlLs.net
>>601-602
ウェブ上で公開されているデータを取得するとしたら
URLリンク(area.autodesk.jp)
が参考になりそうですが、銘柄の範囲と速度を考えると厳しそうです。
ちなみに今はヤフーファイナンス等でリアルタイム株価が取得できます。
あくまで目指すものですが、多くの銘柄の株価を1秒ごとに取得し、スクリーニングをかけたいと考えています。
例えば現在の株価を基準に2、4、6秒後と上がり続けている(=急騰している)→自動で発注させたい。
なんにせよプログラム自体ずぶの素人ですので、ひとまずいろいろ試してみようと思います。
>>593
株価が表示されるということはデータを受信していると認識していました。
>>596
勉強します。

626:デフォルトの名無しさん
15/08/01 18:51:49.22 HjoVMyMH.net
まるで夏休みの課題みたいだな

627:デフォルトの名無しさん
15/08/01 18:52:27.13 PBQUMraI.net
>>605
もちろんソフトがデータ自体を受信してるんだろうけどそれを取り出すのは厳しいよ
CだかC+で書かれてコンパイルされたソフトの仕様を完全に解析しないといけない
これはpythonとは全く無関係の話なのでここで質問しても誰も答えられない
なのでもし既に解析した強者がいて情報を公開してれば真似するしか無いかなあ
webで1秒ごとにちゃんとリアルタイム株価が表示されてるのがあれば簡単(でもそんなの無いよね?)
毎秒そのURLにアクセス(requests)してHTMLをパース(lxml or BeatifulSOAP)して株価を取得できる
括弧内はその時に使える便利なpythonライブラリの名前ね
株式投資のことは無知なので的外れな回答だったらごめん

628:デフォルトの名無しさん
15/08/01 21:56:07.62 FWfS2


629:vhb.net



630:デフォルトの名無しさん
15/08/01 22:46:53.52 Ere4YETC.net
>>589
これをコマンドプロンプトから試してみたのですが
python.exeは動作を停止しましたってウィンドウが別に開きます
こう言う時って何が問題な事が多いのでしょう?メモリ?

631:デフォルトの名無しさん
15/08/01 22:56:02.17 BLDCtSuf.net
すみません、sqlite3である特定のkeyで検索するときに、複数カラムで検索するにいはどうしたらいいでしょうか?
column01~20までありまして。
'select * from table_name where column01, column02, column03 = "%s"' % keyword
また、selectの結果をカウントする方法はありますか?
こちらも調べたのですがわからず。。

632:デフォルトの名無しさん
15/08/01 22:57:53.44 kwRHUfwj.net
sql入門でも読めよ
WHERE句でOR使うだけだろ

633:デフォルトの名無しさん
15/08/01 23:01:35.36 kwRHUfwj.net
>>609
Windowsのそのメッセージは99%アクセス違反
どうせNULLハンドルチェック漏れだろうけど

634:デフォルトの名無しさん
15/08/01 23:08:14.18 BLDCtSuf.net
>>611
ありがとうございます。
そのままかくと冗長化するんですが良い方法ないですか?

635:デフォルトの名無しさん
15/08/01 23:30:08.52 Ejo7uJz3.net
>>613
良い方法を見つけて書くのが腕の見せ所でしょ?
select count(*) ~~;

636:デフォルトの名無しさん
15/08/01 23:34:37.56 kwRHUfwj.net
愚かなスキーマでRDB使おうとしているんだから
愚かなコードを書かなければならなくなるのは全く不思議ではない

637:デフォルトの名無しさん
15/08/02 00:25:45.12 vRy1WZiH.net
>>588
そういう情報は、Amazon・FaceBook・楽天などのように、
APIとして公開している会社で、この言語を使って、
こういう具合に作るなど、丁寧に作り方を教えている場合のみ、
ユーザーでもプログラムを作ることができる。
例えば、Googleの地図APIなど
APIを公開していない場合、自分でそのデータ形式を分析して、
プログラムを作るのは、まず無理
>>589
ソースコードのあちこちに、print文を書いて、
どこでエラーが起きているのかを、突き止める
それか、PyCharm を使って、デバッグするとか
>>592
700のファイルを開いて、データを読み込んで、
すぐにそのファイルを閉じているかどうかを、
ソースコードを読んで確かめる
ファイルを開き放しにしていれば、ヤバイ

638:デフォルトの名無しさん
15/08/02 03:54:28.60 dTRZmQiN.net
>>615
時代はKVSだよな

639:デフォルトの名無しさん
15/08/02 03:57:09.44 uoA7o0bf.net
新時代へ突入したらこうなる。
愚かなスキーマでKVS使おうとしているんだから
愚かなコードを書かなければならなくなるのは全く不思議ではない

640:デフォルトの名無しさん
15/08/02 11:15:57.62 yYb0hZFV.net
学校の宿題なんですけど
整数N(0〜100)のプラスマイナス3%の範囲をランダムで出力する方法を教えてください

641:デフォルトの名無しさん
15/08/02 11:17:54.35 yYb0hZFV.net
あ、あと出力される値はKで(0≦K≦(N*1.03))です

642:デフォルトの名無しさん
15/08/02 11:45:58.27 UCQE5+8k.net
>>700
違う!それは違うぞ!!!

643:デフォルトの名無しさん
15/08/02 12:49:18.15 +O2Hc9iF.net
700まで5日くらいかかるか

644:デフォルトの名無しさん
15/08/02 12:54:45.24 dTRZmQiN.net
整数 N=0 のプラスマイナス3%の範囲って
0 ≦ 0 ≦ 0
で合ってますか?

645:デフォルトの名無しさん
15/08/02 12:56:11.84 +O2Hc9iF.net
>>618
スキーマレスって「運用でカバー」並だよね
それが許されるのは緊急時だけにして欲しい

646:デフォルトの名無しさん
15/08/02 14:43:31.31 ULysM4NQ.net
>>623
そのとおりであってます

647:デフォルトの名無しさん



648:
from random import shuffle L = range(101) shuffle(L) print '\n'.join('%.2f <= %d <= %.2f' % (n*.97, n, n*1.03) for n in L)



649:デフォルトの名無しさん
15/08/03 00:19:42.59 VCBaRTzn.net
数値が入った大規模list(できればnumpy.array)より、大きい順に10件の数値を取得したいです
sortするとかなり遅いのでもっと効率的な方法は無いでしょうか
pythonリストはともかくnumpyにはそういう処理があるだろうと思ったのですが見つかりませんでした…

650:デフォルトの名無しさん
15/08/03 02:48:06.14 oLPMcLov.net
最大値の index を pop するのを 10 回繰り返せばどうか、と初心者ながらに思ったけど、下手をすると sort よりも遅いのかな。

651:デフォルトの名無しさん
15/08/03 02:53:50.78 TVbEWMpV.net
merge

652:デフォルトの名無しさん
15/08/03 05:34:38.13 MJUDpxg+.net
ソートの計算量は、O(n log n)で、
log n は、nが大きくなるほど増えにくいから、
ただみたいなもの
n = 1,000 = 2^10 のとき、10 = log n だから、
10回popする間に、千個のデータをソートできる

653:デフォルトの名無しさん
15/08/03 07:58:49.48 ocR6jyDi.net
>>627
numpy partial sortでググってみた。
URLリンク(stackoverflow.com)

654:デフォルトの名無しさん
15/08/03 08:10:36.45 mj4jP7t4.net
さすがstackoverflow様は貫禄があるな

655:デフォルトの名無しさん
15/08/03 11:05:55.50 qdkLyF57.net
>>627
bisect を使えば簡単にできました。
m=10は無視できるとして、O(n)で頑張ったつもりです。
len(ary)が2万くらいの時に、
L.sort() と比較すると倍くらい速いです。
import bisect
def get_min_elements(ary, m):
  L = []
  for x in ary:
    if len(L) < m:
      bisect.insort(L, x)
    else:
      if x < L[m - 1]:
        bisect.insort(L, x)
        L.pop()
  return L

656:デフォルトの名無しさん
15/08/03 11:10:27.07 qdkLyF57.net
>>633は、ち、小さい方から10件だったけど、別にいいよね。。。
m=10なので、
bisect.insort(L, x)
の時の
O(m log m)
は無視できるとして、
O(n(=len(ary))
で頑張ってみました。

657:デフォルトの名無しさん
15/08/03 13:32:56.52 J4VhAduO.net
ユニークな値しか含まれてないリストから指定した値を削除したいんですけど
i = value in lst
if i:
____del lst[n]
これいがいのかきかたをおしえtください

658:デフォルトの名無しさん
15/08/03 13:48:07.72 qdkLyF57.net
>>> L = [1, 2, 3]
>>> L.remove(2)
>>> L
[1, 3]
>>> st = set([1, 2, 3])
>>> st
{1, 2, 3}
>>> st.remove(2)
>>> st
{1, 3}

659:デフォルトの名無しさん
15/08/03 14:00:21.61 VCBaRTzn.net
626です 計測してみました
A list.sort
B >>628さんのmax()で10回取る方法
C >>633さんのbisect
D >>631さんのnumpy+bottleneck (ここだけnumpy)
処理にかかった時間比(N = 10**5)
A : B : C : D = 100 : 65 : 50 : 4 でした
Nが100**4以下だとBが一番遅くなるようです
pythonのlistで処理したい時はC、numpyが使える時はDを使おうと思います
大変勉強になりました 皆さんありがとうございます

660:168
15/08/03 14:56:31.14 fmwSGKmS.net
R なら quantile の probs に 1 - 10/n を指定して、そのパーセンタイル点以上の値をとる要素を抽出するかなぁ。
numpy �


661:ヘ percentile で同じことができるみたいね。



662:デフォルトの名無しさん
15/08/03 21:20:25.82 bi4hacJB.net
x = 1
print 1 + x
x = 2
print 1 + x
  ・
  ・
  ・
x = 1000
print 1 + x
というのを簡単に行うにはどうしたらいいんでしょうか?

663:デフォルトの名無しさん
15/08/03 21:35:43.55 gVB3Io0I.net
for x in range(1, 1001):
print 1 + x

664:デフォルトの名無しさん
15/08/04 12:00:37.85 AS8dD+yU.net
def a(n, m):
print(n)
if m > n : a(n + 1, m)
a(1, 10)

665:デフォルトの名無しさん
15/08/04 12:01:17.71 AS8dD+yU.net
def a(n, m):
_print(n)
_if m > n : a(n + 1, m)
a(1, 10)

666:デフォルトの名無しさん
15/08/06 21:40:10.45 UihIPuxy.net
pythonってphpでいうphp.iniのようにファイルで設定する必要はないんでしょうか?

667:デフォルトの名無しさん
15/08/06 21:41:20.84 3aDya5oU.net
~/.pythonstartup

668:デフォルトの名無しさん
15/08/06 23:18:23.30 wkWTZ+KR.net
print(10/2)
print(10>>1)
何で右シフトだと小数点切り捨てになるんですか?

669:デフォルトの名無しさん
15/08/07 01:04:03.51 NNL5NoiN.net
そもそも右シフトはintの演算子でfloatには使えない
>>> 10.0 >> 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for >>: 'float' and 'int'
Python3から除算の演算子が変わった
C言語系のような整数同士の「従来」の除算は//を使う
>>> 10 // 2
5
数学的な演算結果に近づけた「真」の除算は/を使う
>>> 10 / 2
5.0

670:デフォルトの名無しさん
15/08/07 08:06:00.93 3jYJojYP.net
>>645
小数点以下切り捨てと決めているから。
が答えだけど、納得しないでしょう?
だからさ、CPUの原理を勉強しよう。
bit演算について勉強すると良いよ。
あと、右shift演算は、負の整数にしても面白いんだよ。
>>> -1 >> 1
-1
>>> -1 >> 2
-1
ってなったりする。不思議でしょう?
ふふふ。

671:デフォルトの名無しさん
15/08/07 08:08:05.50 3jYJojYP.net
>>647の続き
更には、rotr, rotlなんて命令もあったりする。
bit列を右回転, 左回転させる命令なんだよ。
8bit CPUの例だけど、
rotr(0b10000001, 1)
を実行すると、
0b11000000
が返ってきたりする。
暗号関係で使われたりするよ。

672:デフォルトの名無しさん
15/08/07 16:11:37.82 ncOfWd5+.net
python 2.7なんですけど
print(round(1.05, 1)) # 1.1でOK
print(round(1.55, 1)) # 1.6でOK
print(round(1.65, 1)) # 1.6になるのでNG
何でですか?

673:デフォルトの名無しさん
15/08/07 16:19:19.04 1VN8eSce.net
print(1.65)
してみたらぁ?

674:デフォルトの名無しさん
15/08/07 16:23:15.22 ncOfWd5+.net
それしたら1.65になりますけどもここから何が分かるのですか?

675:デフォルトの名無しさん
15/08/07 16:23:59.53 ncOfWd5+.net
print(round(1.75, 1)) # 1.8になるのでOK
print(round(1.85, 1)) # 1.9になるのでOK

676:デフォルトの名無しさん
15/08/07 18:34:32.46 l3+Klkte.net
公式のドキュメントを読めば理由は書いてある

677:デフォルトの名無しさん
15/08/07 19:28:09.98 EbZJZJ8+.net
>>653
URLリンク(docs.python.jp)
これの事を言ってるなら今回のと関係ない
>>651
0.05が丸め込まれているのに0.05以上である0.06が丸め込まれないのはバグ

678:デフォルトの名無しさん
15/08/07 19:38:55.70 P01jDVzM.net
はいバグ頂きましたw

679:デフォルトの名無しさん
15/08/07 20:35:10.77 tWWYLiGh.net
>>> "{:17.16f}".format(1.05)
'1.0500000000000000'
>>> "{:17.16f}".format(1.55)
'1.5500000000000000'
>>> "{:17.16f}".format(1.65)
'1.6499999999999999'
>>> "{:17.16f}".format(1.75)
'1.7500000000000000'
>>> "{:17.16f}".format(1.85)
'1.8500000000000001'
URLリンク(docs.python.jp) のノートにある 2.675 はこうなる。
>>> "{:17.16f}".format(2.675)
'2.6749999999999998'

680:デフォルトの名無しさん
15/08/07 23:01:29.54 3jYJojYP.net
>>649
ここに書いてある。
URLリンク(docs.python.jp)
注釈
浮動小数点数に対する round() の振る�


681:曹「は意外なものかもしれません: 例えば、 round(2.675, 2) は予想通りの 2.68 ではなく 2.67 を与えます。 これはバグではありません: これはほとんどの小数が浮動小数点数で正確 に表せないことの結果です。詳しくは 浮動小数点演算、その問題と制限 を参照してください。



682:デフォルトの名無しさん
15/08/07 23:07:52.39 eSh4n7lV.net
>>650
>>653
なんでこういう馬鹿にした&遠まわしな書き方しかできないのかね、ここ初心者スレでしょ
しかもprintしろとか結局間違ってるし
ちなみに>>656みたいな現象はPythonに限ったことじゃなくて、
floatの値をを使って分岐処理やif文を書くときは気をつけないとバグ作り込むので注意

683:デフォルトの名無しさん
15/08/07 23:19:24.80 3jYJojYP.net
>>649
URLリンク(www.pastebin.ca)
これをC言語で実行してみて下さい。
以下のような結果を得る事が出来ます。
x=1.6499999999999999111822, ndigits=1
x=1.650000, ndigits=1
...
r = 1.6000000000000000888178
r = 1.600000
1.65
と書いても、CPUが解釈するとどうしても誤差が生じてしまって、
1.6499999999999999111822
と解釈してしまうんです。
round(1.6499999999999999111822, 1)
の正しい結果は、
1.6
ですよね?
計算機の勉強が必要だと思います。

684:デフォルトの名無しさん
15/08/07 23:28:16.44 3jYJojYP.net
>>659は、
python3.3 で実際にround()を実行している箇所で主要な部分を抜き出したcodeです。
Python-3.3.0/Objects/floatobject.c
で、double_round を検索したら実際に処理を行っている部分の挙動が分かります。
初心者の方っぽいので一応使い方を書いておきます。
>>659を持ってきてa.cに名前を変更して、
$ gcc a.c -o a -lm
$ ./a
とすると実行できます。

685:デフォルトの名無しさん
15/08/07 23:50:19.38 3jYJojYP.net
>>660の続き
詳しい説明は出来ませんので、きちんと理解したいのなら、
浮動小数点数 誤差
で検索してご自分で勉強なさって下さい。
>>> data = list(map(decimal.Decimal, "1.05 1.15 1.25 1.35 1.45 1.55 1.65 1.75 1.85 1.95".split()))
>>> for x in data:
... print(round(x, 1))
...
# bug っぽい挙動
URLリンク(docs.python.jp)
URLリンク(www.edu.cc.uec.ac.jp)

686:デフォルトの名無しさん
15/08/08 02:40:51.72 pFFZvIq1.net
浮動小数点(IEEE754)は2進数で、正確に表現できない。
指数部は、2^n のものしか表現できない
0.5 = 2^-1
0.25 = 2^-2
0.125 = 2^-3
上記を組合せたものは、表現できる
0.25 + 0.125 = 0.375
0.1などは、どの組合せでも作れないので、
循環小数となり正確に表現できない
誤差があるから、「0.1 == 変数」のように書けないので、
範囲を持たせて、以下のようにする
0.1 - a < 変数 < 0.1 + a
a は非常に小さい値
IEEE754 を参照

687:デフォルトの名無しさん
15/08/08 12:37:55.43 6UCmRx7v.net
round(1.65+0.000001, 1)

688:デフォルトの名無しさん
15/08/08 16:54:45.36 7XDpIYnB.net
>>649
decimal module 使っても、
>>> from decimal import Decimal as D
>>> round(D("1.65"), 1)
Decimal('1.6')
となりました。
これは、bugという事で、pythonのdecimal module developper
が対処するはずです。
近日中に対応してくれると思いますので、しばしお待ち下さい。

689:デフォルトの名無しさん
15/08/08 17:55:37.35 bskJYfyR.net
>>664
Decimalの丸めはこうな
Decimal("1.65").quantize(Decimal("0.0"), decimal.ROUND_HALF_UP)
無知なのに意地はんなや

690:デフォルトの名無しさん
15/08/08 18:15:35.74 wzG7wbxY.net
しかしDecimalはホント冗長で使いづらいな
もっと何とかならなかったのか

691:デフォルトの名無しさん
15/08/08 18:52:22.52 bskJYfyR.net
ネイティブの少数表記が浮動小数点数なのだから、混乱を避ける為にある程度使いづらくなるのは仕方なかろ。
Decimal("0.1") + 0.1
とかが普通に実行出来てしまったら、>>649のような不幸な初心者が量産されてまうわ。

692:デフォルトの名無しさん
15/08/08 22:08:47.37 t3Zwjigp.net
PHPだと1.65が1.7になる

693:デフォルトの名無しさん
15/08/08 22:15:21.63 7XDpIYnB.net
穴があったら入りたい。

694:デフォルトの名無しさん
15/08/09 00:30:28.91 dl726Wch.net
そこに穴はあるじゃろ

695:デフォルトの名無しさん
15/08/09 06:09:40.90 T7+WUh22.net
このスレで質問するような人が気づいてることなんて皆とっくに気づいてるんだから安易にバグ認定するのはあかん

696:デフォルトの名無しさん
15/08/09 22:42:00.68 POd8P+xe.net
r"aaaa"
このrってなんですかマニュアルのどこのページを見て学べますか

697:デフォルトの名無しさん
15/08/09 23:03:20.00 LxR15rBc.net
>>672
どうぞ。
URLリンク(docs.python.jp)
正規表現パターンに Python の raw 文字列記法を使えばこの問題を解決できます。'r' を前に付
けた文字列リテラル内ではバックスラッシュを特別扱いしません。従って、"\n" が改行一文字の
入った文字列になるのに対して、r"\n" は '\' と 'n' という二つの文字の入った文字列になります。
通常、Python コード中では、パターンをこの文字列記法を使って表現します。

698:デフォルトの名無しさん
15/08/09 23:03:50.16 SZbKyl18.net
URLリンク(docs.python.jp)

699:デフォルトの名無しさん
15/08/10 00:26:16.45 1trpq2mO.net
raw文字列は確かに分かりにくいね。
俺は意味理解できなくてなんとなく使ってる。

700:デフォルトの名無しさん
15/08/10 02:33:45.82 xpOq7lBh.net
raw文字列はWindows環境でパス記述するときには便利。
\で終わるディレクトリ記述しようとするとはまるけど。

701:デフォルトの名無しさん
15/08/10 04:55:41.13 joKVIITR.net
久々にスレ伸びてると思ったら
python全然関係ない話題だったでござる

702:デフォルトの名無しさん
15/08/10 10:08:21.10 A4JvqZRL.net
def a():
pass
f = 'a'
変数fから関数a()を実行する方法を教えてください

703:デフォルトの名無しさん
15/08/10 10:14:01.63 Y9npztmj.net
>>> def a():
... print 'This is a A'
...
>>> f = 'a'
>>> locals()[f]()
This is a A
>>>

704:デフォルトの名無しさん
15/08/10 10:21:00.93 R47cdcnQ.net
globals()[f]()
eval(f)()
exec(f + '()')

705:デフォルトの名無しさん
15/08/10 10:29:09.95 +1c20aQZ.net
Pythonなら書き方は一つ(キリっ

706:デフォルトの名無しさん
15/08/10 12:24:34.24 A4JvqZRL.net
できましたありがとうございました
今bottleのソースコードを見ながら勉強してるんですけど
ソースコードでlocals()とglobals()をググっても見つかりませんでした
bottleではどうやってコントローラーを実行しているのかわかりませんか?

707:デフォルトの名無しさん
15/08/10 13:16:50.78 R47cdcnQ.net
「Pythonなら書き方は一つ」で検索しても、それらしいページはヒットしない
煽るならzen of pythonから引用してしほしい
>>682 importlibやgetattrでモジュールの動的なインポートを利用していると思われる

708:デフォルトの名無しさん
15/08/11 00:51:44.04 Kibzp2Ye.net
importlibとgetattrとglobals()とlocals()で簡単なルーターを作るところから勉強しようと思います


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch