くだすれPython(超初心者用) その26at TECH
くだすれPython(超初心者用) その26 - 暇つぶし2ch400:デフォルトの名無しさん
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()で簡単なルーターを作るところから勉強しようと思います

709:デフォルトの名無しさん
15/08/11 10:00:55.94 z0h2VMWZ.net
40x + 300 = 4100
この一次方程式を解くライブラリってありますか?

710:デフォルトの名無しさん
15/08/11 10:33:58.70 v


711:443SNvd.net



712:デフォルトの名無しさん
15/08/11 10:59:40.44 VmWDUo2S.net
>>> import sympy
>>> x = sympy.Symbol('x')
>>> sympy.factor(x**2 - 4)
-(2 + x)*(2 - x)
>>> sympy.solve(40*x + 300 - 4000, x)
[185/2]
>>> sympy.solve(40.*x + 300 - 4000, x)
[92.5000000000000]
>>> sympy.solve(40*x + 300 = 4000, x)
SyntaxError: keyword can't be an expression
>>> orz

713:デフォルトの名無しさん
15/08/11 20:22:36.51 XnkwOBLj.net
scipyとnumpyだけの専門スレが合ってもいいと思うんだけど立ててもいい?

714:デフォルトの名無しさん
15/08/11 20:39:49.20 BYbKL/Wt.net
いいんじゃね、といいつつ…
どんなスレ立てても大なり小なり叩かれると思うが
科学技術計算総合スレとでもしておいた方が、叩かれる度合いは少ないだろう
Rスレあったんだ
検索しづらいわ!

715:デフォルトの名無しさん
15/08/11 20:40:52.49 7cQT55t3.net
matplotlibとか欲しいし、
もうちょっと広く、「pythonで科学技術計算」とかなら良いかな?
他の人の意見も聞いてね

716:デフォルトの名無しさん
15/08/11 20:42:57.00 7cQT55t3.net
>>689
言語が混ざるとつばぜり合いを始める馬鹿がいるので、
python専用にして欲しいと思う

717:デフォルトの名無しさん
15/08/11 20:56:01.90 flESq3IS.net
個人的にはnltや機会学習系の話がしたい

718:デフォルトの名無しさん
15/08/11 23:46:00.42 mq4pk2ON.net
Matplotlibはいちおうスレがあるよ
自然言語処理や機械学習も言語を限定しないスレはあるね

719:デフォルトの名無しさん
15/08/12 09:32:49.05 +VWy6X24.net
>>688
過疎板だしIDついてるし
このスレでやった方が混乱は少ないと思う

720:デフォルトの名無しさん
15/08/12 10:57:41.33 I5afDcIY.net
a = set([4, 3, 1, 2, 5])
b = set([1, 2,])
print(list(a - b)) # [3, 4, 5]
print(list(b - a)) # []
setに変換して引き算すると順番が狂っちゃうので
[4, 3, 5]って順番をキープした結果を返せる引き算の方法を教えてください

721:デフォルトの名無しさん
15/08/12 11:10:39.20 RQEQ2Cbc.net
list(a - b) でリストにしてるのはなぜ?

722:デフォルトの名無しさん
15/08/12 11:16:11.95 tORyfhyI.net
>>695
A = [4, 3, 1, 2, 5]
B = [1, 2]
diff = set(A) - set(B)
result = [n for n in A if n in diff]

723:デフォルトの名無しさん
15/08/12 11:18:07.92 RQEQ2Cbc.net
>>> a = [4, 3, 1, 2, 5]
>>> b = [1, 2]
>>> reduce(lambda n, m: a.remove(m), b, [])
>>> a
[4, 3, 5]

724:デフォルトの名無しさん
15/08/12 16:55:12.14 k8XljSWZ.net
name1, name2, name3・・・といった風に名前を生成してその中に要素を代入したいのですが上手くいきません
たとえば、
list = [x,y,z]
for i, j in enumerate(list):
"name" + i = j
といった感じです
勿論上記のやり方では上手くいきませんが、イメージとしてはこんな感じでlistの中の要素を番号付けされた名前の変数に入れたいのです
どうしたらいいんでしょうか?

725:デフォルトの名無しさん
15/08/12 17:31:42.13 7eD+gktf.net
>>141-142のglobal使いましょう

726:デフォルトの名無しさん
15/08/12 17:53:05.65 tORyfhyI.net
>>699はグローバルよりargparseみたいにnamespace使った方が便利じゃない?
class Namespace:
    pass
ns = Namespace()
L = [10, 20, 30]
for i, j in enumerate(L):
    setattr(ns, 'name'+str(i), j)
print(ns.name0)

727:デフォルトの名無しさん
15/08/12 18:43:45.34 i7Ce6lvW.net
>>699
URLリンク(stackoverflow.com)
URLリンク(www.php2python.com)


728:wiki/function.extract/



729:デフォルトの名無しさん
15/08/12 18:43:56.83 k8XljSWZ.net
ありがとうございました!

730:デフォルトの名無しさん
15/08/12 20:08:36.40 6qYgwLU5.net
list は予約されている。
>>> list
<class 'list'>
なので、
list = ?
という書き方をしては駄目。
あと、dict使っても出来ます。
>>> L = ["x", "y", "z"]
>>> d = {}
>>> for i, x in enumerate(L):
... d["name" + str(i)] = x
...
>>> d
{'name2': 'z', 'name1': 'y', 'name0': 'x'}

731:デフォルトの名無しさん
15/08/12 22:04:11.18 zuppFPQO.net
質問1
a = {1, 2}
print(a[0])
これエラーなんですけどどうやって1の値を取得できますか?
質問2
a = {"0":1}
print(a["0"])
これもキーを指定するとエラーなんですけどどうやってでキーを指定したらいいんですか?

732:デフォルトの名無しさん
15/08/12 22:10:12.72 PF0ET0RY.net
>>705
質問1
setはindex指定できないのでリスト使う
>>> a = [1, 2]
>>> print(a[0])
1
質問2
普通にできるけどなんてエラーでる?

733:デフォルトの名無しさん
15/08/12 22:43:30.21 zuppFPQO.net
あ、すみません
質問2は
print(a[0])だとKeyError: 0ってでました
print(a["0"])だとでませんでした
文字列で指定したので取れなかったようです
質問1のはよくわかりません
a = {1, 2}
print(a)は{1, 2}って表示されますが、どうしてキーを指定しなかった場合だと個別に取り出せないんでしょうか?

734:デフォルトの名無しさん
15/08/12 22:53:11.50 YIqOZZQS.net
# -*- coding: utf-8 -*-
num_1 = 0
def hoge():
print(num_1)
# これでnum_1は参照はできるが、
def hoge_1():
num_1 += 1
print(num_1)
# これだと参照はできるが、代入はできない。なので
def hoge_2():
global num_1
num_1 += 1
print(num_1)
# このように関数内でnum_1のグローバル宣言をする。そうすると
# num_2に代入できる。

735:デフォルトの名無しさん
15/08/12 23:02:21.27 PF0ET0RY.net
>>707
a = {1, 2}
だとset型を指定していることになるけど,setは順序を持っていないので,indexを指定して要素を取り出すことはできない
中身を取り出したいならfor文にかけるか
>>> a = {1, 2}
>>> for i in a:
... print(i)
...
1
2
いったんリストに変換する
>>> l = list(a)
>>> l[0]
1
とか

736:デフォルトの名無しさん
15/08/12 23:59:18.78 ZEyNhv4C.net
「キーを指定しなかった場合だと個別に取り出せない」って何を言ってんのか分かんなくて悩んだけど
{"0":1}
の、キーを指定しない版が
{1, 2}
っていう認識かいな
確かに同じ記号を使ってて分かりにくいよな
他に記号なかったんかいって俺も最初思ったわ

737:デフォルトの名無しさん
15/08/13 00:15:08.98 Anx3mf6Z.net
>>> l = [0, 1]; l
[0, 1]
>>> l += []; l
[0, 1]
>>> l += [2]; l
[0, 1, 2]
#[] で増えないのは仕様ですか?

738:デフォルトの名無しさん
15/08/13 00:40:20.39 Pv/NYKUJ.net
仕様じゃなかったら何なんだ。
それが聞きたいことか?

739:デフォルトの名無しさん
15/08/13 01:27:49.35 B5UxQ5Jz.net
空なんだから増えるわけ無いじゃん
こうだろ
l += [[]]

740:デフォルトの名無しさん
15/08/13 11:26:21.50 xmv8N9p/.net
夏だな

741:デフォルトの名無しさん
15/08/13 13:02:41.78 dWSY8J7e.net
scipyの日本語マニュアルがほしい

742:デフォルトの名無しさん
15/08/13 19:57:26.86 PEz63Oz9.net
pycon2015だけどチケット高いよ
つうか日本で著名なカンファレンスで金取るのpyconぐらいしか知らないんだけど
収入をスタッフで分けあってるんじゃないだろうね
金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け

743:デフォルトの名無しさん
15/08/13 20:26:30.03 zypo+673.net
>>716
10000円とか高すぎワロタ

744:デフォルトの名無しさん
15/08/13 21:08:18.66 UOPmO2ID.net
著名なカンファレンスって具体的には何だろう
著名って道端でインタビューしても半分以上知ってるとかそういう意味じゃないよね

745:デフォルトの名無しさん
15/08/13 22:07:09.04 7307l9+I.net
太いスポンサー付いてんだから会場費も賄えるだろ
ひょっとしてけちなスポンサーなのかw

746:デフォルトの名無しさん
15/08/13 22:46:05.03 zYX1bnGl.net
yapcは金取るよ
5000円
俺はyapcに行くけどpyconは行かない
役に立った試しがないから

747:デフォルトの名無しさん
15/08/13 23:18:38.29 XFGl8RYP.net
超初歩的な質問なんですけど
if __name__ =‘’__main__‘’
よ意味がイマイチ分かりません。
どういう意味か教えてください。

748:デフォルトの名無しさん
15/08/13 23:43:50.03 mALeQvK5.net
>>721
URLリンク(docs.python.jp)
特に「if __name__ == "__main__"」の件は
URLリンク(docs.python.jp)

749:デフォルトの名無しさん
15/08/13 23:53:08.79 XFGl8RYP.net
>>722
なんとなくわかった
ありがと

750:デフォルトの名無しさん
15/08/13 23:59:00.58 5Zf3S51H.net
>>721
実行結果の違いを自分で理解しましょう。
$ cat a.py
print("a1: __name__ is \"{}\"".format(__name__))
if __name__ == "__main__":
print("a2: __name__ is \"{}\"".format(__name__))
$ cat b.py
print("b1: __name__ is \"{}\"".format(__name__))
import a
if __name__ == "__main__":
print("b2: __name__ is \"{}\"".format(__name__))
$ python3 a.py
$ python3 b.py

751:デフォルトの名無しさん
15/08/14 01:26:08.78 7t8/l02p.net
ランダムな文字列を特定の文字数から分割することはできるんでしょうか
例えば"abcde"や"12345"を3文字目から分割して、"abc", "de"や"123", "45"にするといった感じです

752:デフォルトの名無しさん
15/08/14 02:12:20.51 55h31pll.net
スライス使う
s = 'abcde'
n = 3
s[:n], s[n:]

753:デフォルトの名無しさん
15/08/14 07:31:24.74 qjotB1DM.net
いい加減に自分で調べようぜ
ここはお前の家庭教師じゃないんだ

754:デフォルトの名無しさん
15/08/14 08:13:18.68 UfQw/EAV.net
漂う一年生の夏休み臭
まぁでもこんなとこで聞いて答え探してちゃあ冬の宿題は無理だろうな
情報科学系は大企業でもない限り学歴は関係ないし、向いてないと思ったなら大学やめるか転科、転部してもいいと思うけどな

755:デフォルトの名無しさん
15/08/14 10:02:58.72 7t8/l02p.net
>>726
ありがとうございました

756:デフォルトの名無しさん
15/08/14 13:16:29.76 Q/AtP1Be.net
スレタイ通りに進行している良スレ

757:デフォルトの名無しさん
15/08/14 17:20:25.77 LobgVTtd.net
ここ質問スレなのに説教してるバカなんなの
ちょちょい回答側も適当なこと答えてるし何様なんだろう

758:デフォルトの名無しさん
15/08/14 18:05:30.80 qjotB1DM.net
一冊本読めば分かるような質問されても

759:デフォルトの名無しさん
15/08/14 18:34:20.95 UfQw/EAV.net
>>731
俺様だよ
Pythonのような動的言語の得意な事の一つにメタプログラミングつってな
プログラムを生成するプログラムを作るような生産手段がある。
つまりプログラムの前にプログラムは始まってるんだよ
Pythonを究めればつまり、十年後、二十年後にプログラムするおまえ自身をプログラムすることだってできる
わかるか?説教なんかじゃねーよ
メタプログラミングだ

760:デフォルトの名無しさん
15/08/14 18:40:34.94 55h31pll.net
質問馬鹿、世話焼き馬鹿、煽り馬鹿
馬鹿どもの需要を満たす良スレです
でもエスパー向け質問は勘弁な

761:デフォルトの名無しさん
15/08/14 18:47:50.96 1qaFTc/3.net
ググったら大量にあるような質問とか4ねよと思うかも知れないが
>>725のような質問から分かることは質問者がプログラミング初心者であることだ
複数のプログラミング言語の経験があれば例えばJavaScriptのsubstringみたいなのはどうやるんだろうみたいな疑問から「python substring」でぐぐれば答えにたどり着ける
>>725に必要なことは経験なんだよ
経験を積めば答えの探し方も自ずとわかってきてクソ質問をする回数も減ってくる
さいしょはそういうものだ

762:デフォルトの名無しさん
15/08/14 19:16:08.06 kkHnja52.net
技術書は


763:高いからなあ 疑問一つ解決するにはネットが一番



764:デフォルトの名無しさん
15/08/14 19:18:02.42 KhWLzGMo.net
高説は垂れ終わりましたかねクソたれの諸君

765:デフォルトの名無しさん
15/08/14 20:24:45.10 RT/486IQ.net
必要最小限の努力で最大限の効果を発揮する回答をするのが腕の見せ所だろ

766:デフォルトの名無しさん
15/08/14 22:13:36.03 LobgVTtd.net
>>735
そうそうググり方がわかんないんだよね初心者は
なんか一つでも言語かじってれば検索語がすぐ浮かぶし基本質問しなくて済むんだけど
そういう事すら想像できないで説教してる奴はプログラムは書けるかもしれないけど年収低そう

767:デフォルトの名無しさん
15/08/14 23:19:56.73 OD8R+FZZ.net
「文字列 分割」で検索すれば一発だろ
っていう想像すら出来ないのか?

768:デフォルトの名無しさん
15/08/15 00:09:06.75 xP2G+OJc.net
>>740
君は恵まれているんだよ
「知りたいことの調べ方を教えられずとも知っている」というのは、ある意味超人なのだから

769:デフォルトの名無しさん
15/08/15 00:11:59.43 ijAlKA58.net
>>740
splitがヒットする

770:デフォルトの名無しさん
15/08/15 04:47:08.17 Yk3bSSFS.net
python始めたころ
'hoge'.length
'hoge'.length()
'hoge'.len()
とかやって途方に暮れたのは良い思い出

771:デフォルトの名無しさん
15/08/15 13:23:11.13 Ul7UCeMQ.net
ここで一から聞くよりも
チュートリアルを一通りやってから聞いたほうが効率がいい

772:168
15/08/15 13:40:31.23 n2MIk9XB.net
たしかに超低レベルだけど、ここそういうスレだもんね。
なかよし学級みたいなものだよ

773:デフォルトの名無しさん
15/08/15 13:41:20.37 vqznTC4Z.net
変数に複数行の文字列が入っていて
それを各行の先頭に&があったらそこでsplitをしたいのですが、
シンプルな形でするにはどうしたらよいでしょうか

774:168
15/08/15 13:50:48.77 n2MIk9XB.net
>>746
str.split(″¥n&″)

775:デフォルトの名無しさん
15/08/15 14:00:32.15 vqznTC4Z.net
>>747
あざす

776:デフォルトの名無しさん
15/08/15 19:34:44.25 4G4yaXTm.net
スーパー初心者です
EclipseにPydevというものを入れたいんですが
Unable to read at repositlyみたいなエラーメッセージがでます。
Eclipseかjavaのバージョンがおかしいのでしょうか?
Eclipseは最新java 1.7.045です

777:デフォルトの名無しさん
15/08/16 00:21:57.41 AC1P33gf.net
Unable to read at repositly
この英文はスペルも間違っているし、
文法的にもおかしい
正しいエラーメッセージで、検索しろ
eclipse Unable to read ~

778:デフォルトの名無しさん
15/08/16 00:35:10.95 Eim8BKO0.net
ソフトウェアが動かない時はOSも書いてもらわないと回答に困る

779:デフォルトの名無しさん
15/08/16 10:16:12.86 UepVPRcb.net
>>749
みたいなエラーじゃエスパーしか回答できないな

780:デフォルトの名無しさん
15/08/16 10:47:06.87 lDaj3UMn.net
input.txt
というファイルに
URLリンク(codepad.org)
のように文字列が並んでいます。
このファイルを読み込んで、
同じ内容の行がn個以上
(nは事前にわかる定数)
出現する場合に、
その文字列の一覧を取得し表示したいのですが、
どのように書けば良いでしょうか。
この例でいうとn=3の時
"2015年7月17日"
などが該当します。
よろしくお願いいたします。

781:デフォルトの名無しさん
15/08/16 10:55:57.16 8LWqlGmF.net
二次のリストにして[行の中身、出た回数]でひとまとめにする。
あとはeachで毎行すべての行の中身と比較して、一緒なら出た回数+1
最後に出た回数が定数以上なら行の中身を出すeach
効率がマックスではないやろけど充分やない?

782:デフォルトの名無しさん
15/08/16 10:57:59.55 lDaj3UMn.net
なるほど、ありがとうございます。

783:デフォルトの名無しさん
15/08/16 11:03:26.16 O32Kimu0.net
はいよ。
import sys
from collections import defaultdict
if __name__ == "__main__":
n = int(sys.argv[1])
print("n is {}".format(n))
path = "tech752-input.txt"
dd = defaultdict(int)
with open(path, "r") as f:
for _line in f:
line = _line.strip()
dd[line] += 1
for k, v in dd.items():
if v >= n:
print("{:>11s} は {} 回出現しました。".format(k, v))

784:デフォルトの名無しさん
15/08/16 11:06:02.80 0tax/iFh.net
宿題の季節ですね

785:752
15/08/16 11:14:57.83 lDaj3UMn.net
>>756
ありがとうございます。
collections
ってやつですか、使ったこともありませんでした。
>>757
宿題でなく、業務の補助です。
コンピューター系の仕事じゃないんですが、
excelファイルの一行目で重複しているものをさがさねばならない状況で
あまりにたくさんあって、手動じゃ厳しい状況でした。

786:デフォルトの名無しさん
15/08/16 11:46:46.26 UepVPRcb.net
この丸投げ依頼、ランサーズで見かけたな

787:デフォルトの名無しさん
15/08/16 11:52:01.60 0tax/iFh.net
excolの整理するならwin32com使うともっと捗る

788:752
15/08/16 12:58:02.61 lDaj3UMn.net
>>760
ありがとうございます。
ただ汎用性の高い方法が知りたかったので
Python単独にしました。

789:デフォルトの名無しさん
15/08/16 20:54:41.00 qIQbKUMb.net
エクセルファイルってpythonの標準モジュールでいけるん?

790:デフォルトの名無しさん
15/08/16 21:50:03.91 LFerq79m.net
フォーマットを理解していて自分で解析するなら標準ライブラリでいけると思うよ
解析を自分でやりたくないなら標準ライブラリでは難しい、PYPIから探して用途に合ったものを入れて使う

791:デフォルトの名無しさん
15/08/16 22:35:19.49 e2KUFoWx.net
csvでええやん(適当

792:デフォルトの名無しさん
15/08/17 00:19:47.15 cHfxWEIf.net
いまどきエクセルとか時代遅れ。
Windowsがメインの時代は終わった。

793:デフォルトの名無しさん
15/08/17 01:35:46.62 yvTEFZww.net
確かにメソッドをバインドしてるはずなのに XXX instance has no attribute xxx って出る時はどうしたらいいんですか?
class Main:
def __init__(self):
self.XXX = XXX()
self.test = Test(self.XXX)
class Test:
def__init__(self, XXX)
self.XXX = XXX
def hoge(self):
self.XXX.xxx()
class XXX:
def __init__(self):
pass
def xxx(self):
pass
大分省略してますが、大まかな流れはこんな感じでエラーはないはずなんですが・・・

794:デフォルトの名無しさん
15/08/17 06:14:35.27 wMu/qLyK.net
実行すると同じエラーが発生するコードを載せないと的を得ないアドバイスになるよ
とりあえずTestクラスに構文ミスがある

795:デフォルトの名無しさん
15/08/17 06:46:37.95 XZr/R9DQ.net
>>765
Google Apps の Spreadsheet はまだ使いにくいんだわ
慣れ鴨試練けど

796:デフォルトの名無しさん
15/08/17 08:35:05.25 yvTEFZww.net
>>766
自己解決しました
Testクラスの初期化でバインドする前に別の命令でXXXを呼び出していたのが問題でした

797:デフォルトの名無しさん
15/08/17 08:40:08.19 yvTEFZww.net
>>767
ありがとうございました

798:デフォルトの名無しさん
15/08/17 11:53:45.23 jAoOCpIM.net
pythonのメモ化ってサードパーティライブラリを使わない場合はどうやるのかおしえて

799:デフォルトの名無しさん
15/08/17 12:03:41.24 HKx5lNza.net
サードパーティライブラリの
ソースコード読め

800:デフォルトの名無しさん
15/08/17 12:39:02.37 hnwd1zgq.net
>>754 >あとはeachで毎行すべての行の中身と比較して、 >一緒なら出た回数+1 行の内容を、キーにして、 辞書・連想配列(dic, map)を使えば、効率的



802:デフォルトの名無しさん
15/08/17 14:15:45.35 wMu/qLyK.net
>>771
標準ライブラリのデコレーターfunctools.lru_cache()を使う

803:デフォルトの名無しさん
15/08/17 16:33:43.57 3iVEaaDQ.net
ブラウザのクッキーのように、ローカルにデータを保存してキーで呼び出す簡単な仕組みがほしいのですが
ありませんでしょうか
ファイル名をキーにできなくもないですが、ファイル名だと制約が多そうなので
専用の仕組みがないか知りたいです

804:デフォルトの名無しさん
15/08/17 16:50:29.97 wMu/qLyK.net
>>775
標準ライブラリのdbm(シンプル)やsqlite3(多機能)を使う
データが少量ならjson(多言語対応)やpickle(Python特化)で一気に読み書き

805:デフォルトの名無しさん
15/08/17 16:57:29.22 3iVEaaDQ.net
>>776
いろいろあるんですね、標準から順番に試してみます。

806:デフォルトの名無しさん
15/08/17 17:31:22.68 BpXeI8EH.net
具体的に何のデータを呼び出すの?
普通はデータベース(上の人が書いてるsqlite3とか色々)
テキストでも数値でも画像みたいなバイナリでもなんでも保存できる
そこまで大げさじゃなかったらdictにしてローカルへの永続保存にはpickleとか

807:デフォルトの名無しさん
15/08/17 17:49:25.09 XZr/R9DQ.net
>>775
memcached

808:デフォルトの名無しさん
15/08/17 17:53:32.11 BpXeI8EH.net
いやそれじゃローカルへの永続保存できないじゃん
揮発していいんならそもそもdictでいいわけだし

809:デフォルトの名無しさん
15/08/17 17:55:31.75 7xSphxbU.net
>>775
python関係ないなスレチ
localstorageかindexeddbでぐぐれ

810:デフォルトの名無しさん
15/08/17 18:00:59.30 BpXeI8EH.net
>>781
CookieみたいにキーバリューっぽくPythonでデータをやり取りできる簡易ストレージありませんかってことでしょ
localstorageとか全然関係ない


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