トップページ⇒tech
1001コメント334KB

くだすれPython(超初心者用) その26 [転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2015/05/16(土) 17:09:30.55ID:QT5s50C8
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その25
http://peace.2ch.net/test/read.cgi/tech/1415173201/l50
関連スレ
Pythonのお勉強 Part50
http://peace.2ch.net/test/read.cgi/tech/1413474092/

◆関連リンク Python の Home Page
ttp://www.python.org/

◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/

◆まとめwiki
ttp://python.rdy.jp/
0002デフォルトの名無しさん2015/05/16(土) 22:55:19.26ID:VKfhfpr8
バカはレスしないでくれる?
個人の主張として批判せず、いたずらにある類として扱うのは極めて恣意的かおバカの批判にあらざる攻撃の特徴。
まあ、その軽蔑すべき発想で返した俺も反省はしてもよいが
はっきり言って精神病とバカの特徴でしかない論法でレスするなよ。
俺はバカと精神病きらいだからな。
おまえら、マジで精神病と思われる宣言的絶対主義の形而上学バカの一味は人類の公的な敵だとおもっているからな。
さしあたりお前らが馬鹿にされていることは科学的認識の健全性をそれなりに示すから喜ばしいがな。

それにしても、単なる知識を披露しあっているだけの時は頭良さそうなふりはできるが、
いよいよ自身の認識を問われる事態になるとここにいる連中、そこの浅さを露呈するやつ多すぎ
所詮、2chだな

精神病君かい?
クズ
0003デフォルトの名無しさん2015/05/17(日) 08:13:12.52ID:azDp/x2p
同じことの繰り返し(コピペ)は痴呆
0004デフォルトの名無しさん2015/05/17(日) 13:47:17.65ID:se+ydSXL
同じことの繰り返し(コピペ)は痴呆
0005デフォルトの名無しさん2015/05/17(日) 15:46:42.29ID:tASFt5zk
python2.7です

webページをDLして解析したいんですがいきなり躓いてます

import urllib2
from xml.etree.ElementTree import *
(略)
req = urllib2.Request(url)
response = urllib2.urlopen(req)
html = response.read()

#解析するよ
root = fromstring(html)

fromstring で xml.etree.ElementTree.ParseError: not well-formed (invalid token) 言われます
レスポンスに手を加えずそのまま解析してるのですが…
0006デフォルトの名無しさん2015/05/17(日) 15:56:55.86ID:wvzPz3Ba
xmlとhtmlの区別は付きますか?(違いがわかりますか?)
parse関数はパーサーオブジェクトをオプションで取ります
パーサーオブジェクトを与えないとXMLParserを使います

HTMLParserを与えてください
0007デフォルトの名無しさん2015/05/17(日) 16:03:15.27ID:wvzPz3Ba
腐ったHTMLだとHTMLParserでも失敗します
そうなったらアキラメロン
0008デフォルトの名無しさん2015/05/17(日) 17:41:57.69ID:tASFt5zk
報告です。

root = fromstring(html, HTMLParser())

としたら、
エラーは無くなりましたがタグを手繰ろうとすると NonType と言われて出来ませんでした。

HTMLParser を派生して

parser = MyHTMLParser()
parser.feed(html)
parser.close()

としたら、タグは読めました。
まだ先は長そうですが、ご教授ありがとうございました。
0009デフォルトの名無しさん2015/05/18(月) 00:08:11.12ID:K8yFRBxU
beautifulsoup使ってみたら?
0010デフォルトの名無しさん2015/05/19(火) 03:49:47.58ID:L8E0K9w8
よろしくお願いします ジェネレータの勉強しています
def gene():
 print(1)
 while True:
  yield
  print(2)
start = gene() #ここで1が表示されて欲しい
next(start) #でもこっちで1になる

「gene()が呼び出された時点でwhileの中にまで進み、yieldの時点で処理がストップする」
こういう挙動だと思ったのですが実際に試してみると違いました
gene()が最初に呼び出された時点でyieldの前のコードを実行する術は無いのでしょうか?
0011デフォルトの名無しさん2015/05/19(火) 15:22:53.43ID:ctmR18NT
def gene_init():

    print(1)

    def gene_body():

        while True:

            print(2)

            yield

    return gene_body()

>>> g = gene_init()
1
>>> next(g)
2
0012デフォルトの名無しさん2015/05/19(火) 15:23:51.57ID:ctmR18NT
ありゃ、コピペ失敗失礼した
0013デフォルトの名無しさん2015/05/19(火) 23:13:22.76ID:L8E0K9w8
>>11
ありがとうございます!期待していた通りの挙動になりました
yieldは使いこなせると便利そうですが慣れるまではちょっと怖いですね
思わぬバグを作り込んでしまいそう
0014デフォルトの名無しさん2015/05/20(水) 05:29:20.44ID:K3ViYaGA
googleのpython exercises終わったー
勉強がミッション化されてて面白かったw
ログファイルから断片化された画像のURLを抽出して、並べ替え、ダウンロードして一つの画像として表示するとか、なんかワクワクしたw
0015デフォルトの名無しさん2015/05/21(木) 01:18:06.15ID:0lqSGmSk
値とインデックスを使いたいときに
for i, v in range(10)
こういうふうにかけたらいいのに何でインデックス取るのに面倒な記述をしないといけないんだろう
このへんはGoをみならってできるように改良してもらいたい
0016デフォルトの名無しさん2015/05/21(木) 02:08:02.38ID:oB9KNLHA
for i, v in enumerate(list):
0017デフォルトの名無しさん2015/05/21(木) 05:29:50.91ID:zzLeh6B9
そうでしたっけフフフ
とでも言って流しておけばいいものを
0018デフォルトの名無しさん2015/05/21(木) 10:57:04.88ID:OSpceEvr
インデックスを使いたいがためにメソッドを呼び出すオーバヘッドが無駄
0019デフォルトの名無しさん2015/05/21(木) 11:16:00.66ID:LF23h3ro
ループを繰り返すたびに呼び出してる訳じゃないからそんなに気にすることはないと思う
自前でインデックスを計算するパターンと比べても遅いわけではない

>>> import timeit
>>> timeit.timeit(stmt='for i, v in enumerate(range(100)):pass')
6.08430373200099
>>> timeit.timeit(stmt='for v in range(100):i+=1', setup='i=0')
9.956800863998069
0020デフォルトの名無しさん2015/05/21(木) 12:00:18.91ID:iv04xADq
enumerateってイテレータ?ジェネレータ?なので
最初に呼び出す時はオーバーヘッドあってもその後ループ内では無いに等しい
って解釈してるんですがあってますかね
0021デフォルトの名無しさん2015/05/21(木) 12:12:51.55ID:oB9KNLHA
rangeだってメソッドちゃんなのに、enumerateはダメなの? スペルが長いから?
処理速度だって同等かむしろ良いくらいだよ
全てメモリに展開せず、逐次ジェネレーターライクな動きするからオーバーヘッドも少ないよ
0022デフォルトの名無しさん2015/05/21(木) 12:25:35.22ID:Tg0bXDwp
この程度のオーバーヘッドが気になるならPython使うなよ^^;
0023デフォルトの名無しさん2015/05/21(木) 17:26:43.43ID:6dtMhhKG
blenderのaddon作成で、python勉強始めたんですが、__init__.pyがエントリーポイントになっていて、そこに、任意のクラスを作ると、クラス内にあるメソッドが呼び出されます。
質問なんですが、__init__.py内にある任意のクラス名をどうやって呼び出しているのでか?
0024デフォルトの名無しさん2015/05/21(木) 18:14:07.06ID:gn4elZ6J
pythonでライブラリ使ったことがあれば分かるはず
ないなら勉強しろ
0025デフォルトの名無しさん2015/05/21(木) 18:39:55.54ID:6dtMhhKG
ライブラリを使うとしても呼び出すクラスなり、メソッド名は分かっててそれを使うと思うのですが、
自分で決めたクラスをblenderは、どうやって認識しているのでしょうか?
モジュール内に定義されたクラス一覧を取得するメソッドでもあるのでしょうか?
また、文字列でクラスを呼び出せるのでしょうか?
0026デフォルトの名無しさん2015/05/21(木) 18:53:06.31ID:gn4elZ6J
両方yesだ

import hoge
print dir(hoge)

と実行してみろ
そんで

instance = getattr(hoge, 'HageClass')()

とやればインスタンスが作れる
0027デフォルトの名無しさん2015/05/21(木) 18:56:11.30ID:iv04xADq
inspect.getmembers(~モジュール~)

こういうことでは無くて?
0028デフォルトの名無しさん2015/05/21(木) 18:58:20.99ID:iv04xADq
ごめんなさい>>26さんの方がいいですね 27は忘れてください
0029デフォルトの名無しさん2015/05/21(木) 19:06:10.14ID:6dtMhhKG
どうもありがとうございます。
なるほどそうやってるんですね。
0030デフォルトの名無しさん2015/05/22(金) 19:25:49.92ID:GdCh1ajU
可変長引数についてはドキュメントのどのページに載っているのか教えてください
0031デフォルトの名無しさん2015/05/22(金) 20:36:14.54ID:j2+sj5Ou
https://docs.python.org/3/reference/compound_stmts.html#function
このへん
0032デフォルトの名無しさん2015/05/22(金) 22:42:40.80ID:GNpfjP2d
http://docs.python.jp/3.4/tutorial/controlflow.html#arbitrary-argument-lists
日本語のチュートリアルだとこのへん
0033デフォルトの名無しさん2015/05/22(金) 22:52:59.58ID:GNpfjP2d
http://docs.python.jp/3.4/tutorial/controlflow.html#unpacking-argument-lists
あと、その次の、4.7.4. 引数リストのアンパックも覚えとくと便利

l = ["hello", "my", "friend"]

lというリストをスペース区切りで表示したいとき、↓でいける
print(*l)

print(" ".join(l))
とかしなくてもいい
0034デフォルトの名無しさん2015/05/23(土) 10:39:29.12ID:884F+n7v
>>31−>>33
ありがとうございます今から読んで学習します
0035デフォルトの名無しさん2015/05/23(土) 16:38:39.10ID:OjkyrBsZ
うおおお 超初心者なんだけどpythonのコンソールでぽちぽちしてたらgmail送れたーーー hello world届いてたーw
なんかすげええ
他の言語でもこんな簡単に送れるものなのだろうか
0036デフォルトの名無しさん2015/05/23(土) 19:02:53.50ID:mBWRn4xp
smtpを標準でサポートしてれば似たり寄ったりでないかな
perlとかrubyはしてると思う
nodeはしてない
0037デフォルトの名無しさん2015/05/24(日) 04:56:53.13ID:C4HQwhye
>>36
そうなんですか! 自分はC言語(の基本)しか習ってなくて、こんな仰々しいコードになるイメージでしたw
http://hatenaclang.blogspot.jp/2014/10/libcurl-gmail.html

それに比べてpythonのこの簡潔さはw クラス定義なんて省いて直接書いたらほんと数行ですよね
http://qiita.com/HirofumiYashima/items/1b24397c2e915658c984
間違っても1行1行その場で怒ってくれるからすぐ直せたし
0038デフォルトの名無しさん2015/05/24(日) 21:20:44.95ID:LHzJ6dIN
>>35
あなたは僕を超えました
そしてあなたは僕の先生となりました
ぜひブログでやり方を書いて紹介してください
0039デフォルトの名無しさん2015/05/25(月) 10:13:00.28ID:H/4xp/af
pyenvで入れた2.7.8を2.7.10にアップグレードしたいんですが
いままで2.7.8を削除して2.7.10を入れて再度pipでパッケージをインストールしてました
同じメジャーバージョンならpipでパッケージを削除する必要ないと思うんですが
pythonのバージョンだけ上げる方法ありませんか?
0040デフォルトの名無しさん2015/05/25(月) 11:01:17.13ID:R3oTKNZR
pyenvにそんな機能はない
0041デフォルトの名無しさん2015/05/25(月) 17:12:28.26ID:XRMIkMF7
>>38 いや、なんか適当にこんな感じで送れました

import smtplib
from email.mime.text import MIMEText

me, dest = '送信元@メールアドレス', '宛先@メールアドレス'

msg = MIMEText( u'行きたくありません', 'plain', 'iso-2022-jp')
msg['Subject'] = u'明日の会議について'
msg['To'] = dest
msg['From'] = me

conn = smtplib.SMTP_SSL('smtp.gmail.com') #portは省略すると465
conn.login( me, 'gmailのパスワード')
conn.sendmail( me, dest, msg.as_string()) #ehloもやってくれる
conn.quit()
0042デフォルトの名無しさん2015/05/26(火) 14:20:34.72ID:JlsMtCsC
何でgithubのcpythonリポジトリにはタグが付いてないんですか?
指定したバージョンのソースコードを手に入れたい時ってどうしたらいいんですか?
0043デフォルトの名無しさん2015/05/26(火) 14:28:14.45ID:fTI4HEOK
公式で配ってるターボールか
Mercurialのリポジトリから拾ってくる
https://hg.python.org/cpython/tags

ミラーされない理由?
Mercurialとgitでタグのセマンティクスが微妙に違うからかなあ
0044デフォルトの名無しさん2015/05/26(火) 15:38:55.32ID:HsCFsvXb
辞書を要素とするリストから、
辞書のキーの値によってある要素への参照を得るには、
どうしたらいいでしょうか。
例えば

mylist = [{'num':1},{'num':2},{'num':3}]

というリストがあるとして、キーnumの値が2である要素への参照を得たい場合、
私が思いつくのは

result = [item for item in mylist if item['num'] == 2][0]

もしくは

for item in mylist:
if item['num'] == 2:
result = item

の2つなのですが、他に方法はないでしょうか?
ここではキーの値に重複はないと考えています。
0045デフォルトの名無しさん2015/05/26(火) 16:02:58.67ID:fTI4HEOK
リストを作ったときに逆参照mapでも作っておけばいいではないですか
0046デフォルトの名無しさん2015/05/26(火) 20:44:53.01ID:BsJ/nx2f
どやぁ(注:初心者)
mylist[mylist.index({'num':2})]
0047デフォルトの名無しさん2015/05/26(火) 21:38:59.86ID:kkyk1kjT
print(1.j)
このjってなんですか?
0048デフォルトの名無しさん2015/05/26(火) 21:46:32.51ID:oqPKm2sI
>>44
全く同じ事を今日やってた 45さんの言う通り逆参照の辞書持つのが一番楽かなと
{}
ただちょっとよくわからないのがそのリストのデータ構造は現実のリストなの?
もし本当にこんなリストだとしてキーの値に重複が無いのなら、
リストを作る時に最初(つまりmylist[0])はNone、値1のものはmylist[1]、
仮にnum:4が無いならmylist[4]=Noneとやっていけば、num=1000はmylist[1000]と保証される
これなら一つのリストで一応管理できる
0049デフォルトの名無しさん2015/05/26(火) 21:56:36.25ID:oqPKm2sI
>>46
確かに一見それで良さそうだけど、それでいけるならそもそも要素をmylistから持って来る必要が無いんじゃないのかな
だってもう手元に{'num':2}ってあるわけだし
お風呂上がりに眼鏡が見つからない何も見えないって言いながら眼鏡かけて眼鏡探してる感じがする

>>47
http://qiita.com/shuhei/items/f5cf6c83fcfb5dd24c2d
print(type(1.j))とやると<class 'complex'>ってなるから複素数らしい
虚部のところにjをつけてやるんだってさ
はじめて知った
0050デフォルトの名無しさん2015/05/26(火) 22:49:00.53ID:HsCFsvXb
みなさんどうもありがとうございます
44です

先に挙げたリストは説明のために極力簡略化したものです
実際はキーに対する値は数値ではあるものの連番ではなく
またリストに追加される順序も不定です
ただし一意であることは保証されています
また実際はこのキー以外にも複数のキーを持っています

このnumキーがリレーショナルデータベースにおける主キーに相当するため
このキーの値でスマートに要素を取り出せたらなと思い質問させていただきました

逆参照mapというのがどのようなものか私にはわからないのですが
ここの例で言うとnumキーの値を辞書のキーにして
その値にリストの該当要素への参照を対応させたものでしょうか

順序は問題にならないのでリストではなく辞書の辞書にすることも考えたのですが
必要であればどのキーを使ってでもすぐにfor ループが回せるという
分かりやすさも捨て難い気がして躊躇していました

48さんのおっしゃる最初からキーの値に対応したインデックスの箇所に収納する方法も確かにありますね
逆参照mapを作る方法と合わせて検討してみたいと思います
0051デフォルトの名無しさん2015/05/26(火) 23:21:56.28ID:BsJ/nx2f
>>49
値じゃなくて、リストのその部分を編集するための参照が欲しいのかなと思ったんです・・・

自分で構造を決められるなら、こんなじゃだめなのでしょうか?

data = {
str(numの値): {他データ},
str(numの値): {他データ},
,
,
,
}

128番の情報が欲しい! → data[str(128)]  みたいな感じで
0052デフォルトの名無しさん2015/05/27(水) 01:16:34.91ID:gIxiSbR2
>>51
それもいいですね
ありがとうございます
ただ今回はリストのフラットなデータ構造のままで
それと同じことが分かりやすくできる方法があればと思い質問させていただきました
0053デフォルトの名無しさん2015/05/27(水) 17:56:08.90ID:4cyo14pp
>>51
余計なことしてたので訂正です
辞書はキーに数字をそのまま使えました・・・

data = {1 : "value1", 2 : "value2", 3 : "value3"}

for key in data:
print key,

>>
1, 2, 3
0054デフォルトの名無しさん2015/05/28(木) 15:38:42.64ID:+K9YB3fm
FacebookのRSSのタイトルを文字化けしないように変換したいのですが
&#xXXXX;を文字に変換するにはどうすればいいのでしょうか

import feedparser, urllib.parse
rssurl="https://www.facebook.com/feeds/page.php?id=xxxxxxxxx&;format=rss20"
fdp = feedparser.parse(rssurl)
for entry in fdp['entries']:

title = entry['title']
link = entry['link']

print(title, link)
0055デフォルトの名無しさん2015/05/28(木) 23:55:25.53ID:PkH09g+t
>>54
import html
html.unescape(title)
0056デフォルトの名無しさん2015/05/29(金) 10:58:53.01ID:qxRvZ9TX
>>55
ありがとうございます。
変換することができました。
0057デフォルトの名無しさん2015/05/29(金) 11:08:33.75ID:RwL0vTGq
3.5から.pycからSTORE_MAPが削除されるとかあったけど
これって3.0〜3.4で作成された.pycを削除してから3.5の環境でスクリプトを実行して.pycを生成し直さないとトラブルになるってことですか?
0058デフォルトの名無しさん2015/05/29(金) 13:24:15.16ID:98Ume5mp
最近リストの内包が書けるようになってきてコードが綺麗になって楽しいです
dictも同様にできるようなんですが、
text = t for t in [a,b,c,d] #a , b , c , dに入ってる文字列を繋いでtextに
setattr(self , k , v) for k , v in dict.values() #selfのプロパティをdictから作る

なんてできたらいいなあと思ってるんですがさすがに無理なのでしょうか
0059デフォルトの名無しさん2015/05/29(金) 13:25:29.87ID:ENr5sicU
>>57
.pycってhoge.cpython-34.pycって感じでPythonのバージョンごとに
作られるから削除の必要はない
0060デフォルトの名無しさん2015/05/29(金) 13:40:11.39ID:g6jbltjH
>>58
1つ目はstr.join()
2つ目はself.__dict__.update()
0061デフォルトの名無しさん2015/05/30(土) 03:08:46.90ID:rJ1AgvvX
class、並びにオブジェクトの表現方法について質問させてください。
「文」とそれを構成する「単語」の関係をclass化したいです。
文はそれぞれの単語を「持って」おり、また全ての単語は必ず文に「属し」ます。

(質問1) 以下のようにSentenceの中の配列にWordを入れることで表現していますが、どうでしょうか?
class Sentence():
 self.words = [Word,Word,Word…] #ここにWordオブジェクトを入れていく
class Word():
 self.sentence = Sentence #ここに自分が所属するSentenceオブジェクトを入れておく

例えば野菜->タマネギのような関係なら継承を使ったりするのでしょうが、文と単語の関係でそれは使えないと思います。
何かうまい表現方法がありますでしょうか。

(質問2)
WordオブジェクトがどのSentenceに属しているか、という情報をWordクラスにうまく持たせる方法は無いでしょうか?
今はself.sentenceというところにSentenceオブジェクトを入れていますが、なんかスマートじゃ無い気がします。

classを最近ようやく理解したばかりなのでこういう使い方でいいのかどうか悩んでます。
本やネットを読んでもたいていは果物->りんご、のような関係で継承を説明してるのであまり参考になりません。
継承ではなく、上位の概念が下位の概念を「持っている」という関係をどう表せばいいでしょうか。
長くてすみません。
0062デフォルトの名無しさん2015/05/30(土) 07:38:13.51ID:Lk3iv4vp
>>61の文と単語の関係はWordが必ずSentenceに属する必要性に疑問を感じます
質問1は複数あるWordの順序を保持する必要からlistを使うのは妥当だと思います
質問2はSentenceの情報はWordに持たせなくていいと考えてます
0063デフォルトの名無しさん2015/05/30(土) 15:52:41.19ID:rJ1AgvvX
>>62
ありがとうございます
もしWordがSentenceの情報を持たない場合、
Word自身からではどのSentenceに属してるかわからなくなってしまいます

Sentence<--どちらも相手を参照できる-->Word
という関係性は必ず維持しなければならないという前提でアドバイスいただけるとありがたいです
0064デフォルトの名無しさん2015/05/30(土) 20:44:32.94ID:lFJ1sGxF
ネット上からファイルをダウンロードする際に
そのファイルのサイズを調べて一定以上のサイズならダウンロードする
というようなプログラムが書きたいです。
ネット上のファイルサイズを取得する一番簡単な方法は何でしょうか?

urlretrieveでサイズを表示することはできたんですが上手く数字を拾えなくて・・・
なにか簡単な方法をご存知のかた、教えてください
0065デフォルトの名無しさん2015/05/30(土) 21:24:25.22ID:zOKa2SxY
普通はHEADを打ってContent-Lengthを見るだろう
Pythonのurllib2はバカだから
get_methodオーバーライドしないとHEAD打てないけど
意味分からんよな
誰だよこれ設計した奴
0066デフォルトの名無しさん2015/05/30(土) 22:06:26.17ID:Il/jbsrm
httplib2かurllib3かrequestsを標準にして欲しい
requestsはhigh layerすぎるからhttplib2かurllib3が妥当か
0067デフォルトの名無しさん2015/05/31(日) 20:01:30.99ID:Yx/E9Xi4
質問です。
Numpyのarray形式なのですが、
printで表示すると、
内容が長い場合、...,で省略されてしまいます。
savetxtでTEXTで書き出す場合も同様です。
この省略をさせない方法はないのでしょうか?
0068デフォルトの名無しさん2015/06/01(月) 02:47:52.53ID:29A8lhcJ
>>67
numpy.set_printoptions(threshold=numpy.nan)
もしくはnumpy.set_printoptions(threshold='nan')
でいけるらしい
自分で試してないので保証はしない
http://docs.scipy.org/doc/numpy/reference/generated/numpy.set_printoptions.html
0069デフォルトの名無しさん2015/06/02(火) 15:15:37.43ID:nhaEWMLQ
djangoの勉強を始めたのですが、pyファイルで作った連想配列(値に日本語を使用)をhtmlファイルの組み込み関数で受け取るところが上手く出来ません。

{% for val in list %}
{{val.key}}で値を取り出して処理
{% endfor %}

この書き方ならば文字化けすることもなく値を取り出して使える事はわかりましたが、ソースを表示した時に処理がループ分記述されて冗長になるのを避けたいです。

※scriptタグ内に記述
var list[] = {{list|safe}};
for( var i = 0; i < list.length" i++){
var.keyで値を取り出して処理
}

このようにすれば・・・?と思ったのですが、list[]に代入した時に日本語の値がバイト文字列?になってしまいます。
どのようにすれば良いのでしょうか?
宜しくお願い致します。
0070デフォルトの名無しさん2015/06/02(火) 15:59:29.65ID:sxsqR351
なぜバージョンも示さないで質問するのか
0071692015/06/02(火) 17:30:52.40ID:44VEslIO
失礼致しました。
pythonは2.7.5、djangoは1.6.5でした。
よろしくお願い致します。
0072デフォルトの名無しさん2015/06/02(火) 23:00:09.86ID:dwjHRJAm
djangoは専用スレがあるのでここでしないでもらいたい
今後同じことで悩んでいる人が情報を見つけやすくなるしdjangoスレにいって

http://kohada.2ch.net/test/read.cgi/php/1323960422/
0073デフォルトの名無しさん2015/06/03(水) 00:45:17.77ID:SWrh59QF
>>69
文字列や数値ならJS側に直接渡せるけど、リストとか辞書は渡せない
なのでJSONにしてから渡す
その際にテンプレート側でsafeフィルタは切ること
今Django試せないので推測での回答ですまないけど参考になれば
0074ダメ五郎2015/06/03(水) 23:50:02.93ID:zww4qzzD
Pythonスタートブックのメッソッドの初期化が全然分からないんですけど。
どうすればいいですか?死んだほうがいいですかね?

import random
class Dice:
a = 6
def __init__(self):
print('hello')
def shoot(self):
return andom.randint(1,self.a)

__init__すると何かいいことあるのでしょうか?
0075デフォルトの名無しさん2015/06/04(木) 00:03:57.61ID:nTFCM4h6
その位置にa=6を書くとクラスのフィールドになるので
self.aじゃなくてDice.aで参照する

スタートブックに何が書いてあるのか非常に興味深いな…
新手のステマだろうか
0076ダメ五郎2015/06/04(木) 00:07:15.15ID:bBf7LCLq
>>75
a=6は
class Dice:
a = 6
def __init__(self):
の位置にかいてありました。。
0077ダメ五郎2015/06/04(木) 00:09:36.09ID:bBf7LCLq
import random
class Dice:
a = 6
def shoot(self):
return random.randint(1,6)
インタラクティブシェルから上記を実行
import Dice
sai = dice.Dice()
sai.shoot()
>>>2


__init__の説明の前に上記のようなデーター型をつくる
説明が、あって、実は、初期化が必要!!__init__を
使え!!みたいな説明です。さっぱり分からない状態です。
0078デフォルトの名無しさん2015/06/04(木) 03:23:18.28ID:oidqcGvt
Diceクラスを改変したものを書いておきます
class Dice:
    """出目の上限を設定できるサイコロクラスです"""

    def __init__(self, limit):
        """サイコロオブジェクトを初期化します"""
        self._limit = limit  # サイコロの出目の上限を記憶します
        print('サイコロオブジェクトが初期化されました!')

    def shoot(self):
        """サイコロを振って出目を返します"""
        # 初期化したときに記憶した出目の上限を使います
        return random.randint(1, self._limit)

このクラスを使うときは下のように出目の上限を指定します
sai = Dice(6)
0079デフォルトの名無しさん2015/06/04(木) 05:29:12.39ID:yBrKCk54
>>77
__init__(self,,,) はクラスをインスタンス化したときに「自動で実行」される特別なメソッドちゃん
一般ピーポのメソッドちゃん、shootは実行されてないでしょ 

sai = dice.Dice()  ← インスタンス化ってのはこの部分ね

てことで引数を受け取ったり、初期化したりは __init__(self,第一引数,第二引数,,)のところでやるのが作法なのさ
0080デフォルトの名無しさん2015/06/04(木) 05:35:09.80ID:UvhoGikT
どこが適切な相談場所なのかわからないため、こちらで失礼いたします。

webページ上に配置したgooglemapに対して、スマホからサーバに一定間隔で送信される位置情報を使って場所を示す仕組みを作りたいと思っています。
(ページのリロードはしないで、googlemapだけ更新されるイメージ)

このような時、websocketを貼ってやれば出来るのかなと思うのですが、他のやり方を知らないのでそれが最適解なのかどうかがわからないです。
他に推奨されるやり方があったら教えて頂けませんか。
サーバはpython+flaskで、googlemapはjavascriptで呼び出しています。
0081デフォルトの名無しさん2015/06/04(木) 07:08:46.96ID:yBrKCk54
>>80
クライアント側のjavascriptで完結するんでないの?
リアルタイム更新するなら navigator.geolocation.watchPosition()ってのがあるようだけど

ブラウザ対応は
Firefox (since 3.5)
Safari (since 5.0)
Google Chrome (version depends on OS)
Opera (since 10.60)
Internet Explorer (since IE 9)

モバイル
Safari Mobile (since iPhone OS 3.0)
Android (since at least Android 1.6)

参考
https://www.youtube.com/watch?v=qYFkPFtfgdI&;index=7&list=PLM4pPs1mzl_N6wJuBK5Atj5LDVWDDsed1
http://www.w3schools.com/html/html5_geolocation.asp
0082802015/06/04(木) 08:43:54.57ID:GeWtCH2J
>>81
レスありがとうございます。
自分自身の位置を見るのではなくて、あくまでも送られてきた位置情報を使いたいのです。
例えば管理者が、部下の位置を確認するのに近いイメージかなと。
0083デフォルトの名無しさん2015/06/04(木) 10:30:22.88ID:ixdJmRIH
そのまんま部下の端末から位置情報を管理者サーバに送るコードを書けばいいじゃないの
30秒毎に位置情報をajaxでサーバ送るとかな
0084デフォルトの名無しさん2015/06/04(木) 10:40:42.64ID:5pAAiATn
Pythonまったく関係ないな
JavaScriptスレ行ってこい
0085デフォルトの名無しさん2015/06/04(木) 16:22:20.43ID:GK2i9TQ1
メーリングリストにpaizaの規約違反する奴
http://www.python.jp/pipermail/python-ml-jp/2015-June/011408.html
最近のMLはレベルが低いねぇ
0086デフォルトの名無しさん2015/06/04(木) 16:41:18.19ID:9wvQs+dO
いつハイレベルだったのか教えて欲しい
0087デフォルトの名無しさん2015/06/04(木) 16:47:51.55ID:GdYLO45N
Jythonを使っています(sikuliというGUIスクリプトで)
csvファイルをスクリプト側からExcelで開きたいのですが、
ググってもいい解決方法が見つけられませんでした。
どなたか解決策を教えていただけませんでしょうか?
0088デフォルトの名無しさん2015/06/04(木) 16:51:05.40ID:inTZReOp
・ダメだった方法とどうしてダメなのか書く
・Google先生に聞く
0089デフォルトの名無しさん2015/06/04(木) 16:57:19.45ID:9wvQs+dO
まずexcelは起動できるんですか?
csvはおいといて
0090872015/06/04(木) 17:44:40.55ID:GdYLO45N
>>88
今家なんで試せないんですけど

import subprocess
import os


path_to_notepad = 'C:\\Windows\\System32\\notepad.exe'
path_to_file = 'C:\\Users\\Desktop\\hello.txt'

subprocess.call([path_to_notepad, path_to_file])

こんな感じで試したのですがうまくいかなくて

>>89
もちろん起動できますよ
0091デフォルトの名無しさん2015/06/04(木) 18:27:53.93ID:Gjm6CwJx
>>80
websocketみたいな新しいのは知らないんだけど、俺ならajax使うかなあ
スマホから位置情報送るときはflaskで送ってるんだよね?
その時にajaxでやればページリロードしなくていいはず
0092ダメ五郎2015/06/04(木) 19:42:09.83ID:6dpaJYI0
>>79
解説ありがとうございます。なんとなく分かったような気がします。

>てことで引数を受け取ったり、初期化したりは __init__(self,第一引数,第二引数,,)のところでやるのが作法なのさ
とのことですが、selfは引数ではないのでしょうか?

さらに、__init__(self,第一引数,第二引数)で、
第一引数を使う時(初期化?)は、self.第一引数
第二引数を使う時 (初期化?)は、self.第二引数
とするのでしょうか?
0093デフォルトの名無しさん2015/06/04(木) 22:10:08.62ID:6dpaJYI0
>>> class Dice1:
... def __init__(self):
... face_num = 6
... print('初期化OK')
... def shoot(self):
... random.randint(1,self.face_num)
...
>>> b = Dice1()
初期化OK

>>> b.shoot()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 6, in shoot
AttributeError: Dice1 instance has no attribute 'face_num'

なんでエラーになってしまうのでしょうか?
0094デフォルトの名無しさん2015/06/04(木) 22:22:38.40ID:TmBikWH3
AttributeError: Dice1 instance has no attribute 'face_num'
だから。

def __init__(self, face_num=6):
self.face_num = face_num
にすれば問題解決。
0095pythonスタートブックww2015/06/04(木) 23:20:53.90ID:6dpaJYI0
<-質問->
class Dice1:
i = 6
def __init__(self):
print('初期化OK')
def shoot(self):
return random.randint(1,self.i)

i = 6はなぜdef shoot(self)メソッドの中で使えるのでしょうか?

メソッドの引数(self)は、自分自身を参照するとのことですが、
def __init__(self):のselfは、class Dice1、つまりクラス全体を
参照しているということでしょうか?

def shoot(self)のselfは、shoot()という自分自身を参照している
のでしょうかそれともclass Dice1を参照しているのでしょうか?

selfは自分自身を参照するといいますが、いったい自分自身とは
どこのことを言っているのでしょう?

どなたか分かるかたいますでしょうか?

pythonスタートブックの説明が分からなすぎます。。。。
0096デフォルトの名無しさん2015/06/04(木) 23:42:12.44ID:YagePnQ/
>def __init__(self):のselfは、class Dice1、つまりクラス全体を
>参照しているということでしょうか?
違う

>def shoot(self)のselfは、shoot()という自分自身を参照している
>のでしょうかそれともclass Dice1を参照しているのでしょうか?
そのどちらでもない

>selfは自分自身を参照するといいますが、いったい自分自身とは
>どこのことを言っているのでしょう
Dice1クラスのインスタンス

>>class Dice1:
i = 6
def __init__(self):
print('初期化OK')
def shoot(self):
return random.randint(1,self.i)
def get_id(self):
return id(self)
>>> d = Dice1()
初期化OK
>>> d.get_id() == id(d)
True

その本読んだことないけど、ちゃんと読んだら書いてありそうだけど。
ていうか質問みてたら、明らかに本ちゃんと読めてなさそうな質問してるし、もう一度読み直したほうがいいよ
わからないところあれば公式のチュートリアルを補足に使うのもいいと思う
http://docs.python.jp/2.7/tutorial/index.html
0097pythonスタートブックww2015/06/04(木) 23:58:28.26ID:6dpaJYI0
>>96
>もう一度読み直したほうがいいよ

10回以上読み直してます。
インスタンスを参照するなんて文言は一言も書いていません。すべて、自分自身を参照
とか、インスタンスを「self」と呼ぶことが決められています。と記載してあります。
Pythonスタートブック P233

で、
>def __init__(self):のselfは、class Dice1、つまりクラス全体を
>参照しているということでしょうか?
違う

→じゃあ、何を参照しているのですか?

>def shoot(self)のselfは、shoot()という自分自身を参照している
>のでしょうかそれともclass Dice1を参照しているのでしょうか?
そのどちらでもない

→じゃあ、何を参照しているのですか?


pythonスタートブックには、自分自身と記載してありましたよ。
0098デフォルトの名無しさん2015/06/05(金) 00:17:06.98ID:3MWYDBgR
「Dice型のインスタンスを用意するとき、ユーザーがどのような変数名を割り当てるかはわかりません。(...)どのような名前でDice型のインスタンスが作られても良いように、メソッドの第一引数でインスタンスを『self』と呼ぶことが決められているのです」(P.233)
「インスタンスとは、ある型に属する実際のデータ(実体)のことです」(P.94)
「データの実体のことを、インスタンスと呼ぶ
インスタンス(実体)は、初期化メソッドで作る」(P.80)
「初期化メソッドで、インスタンスを作るときの動作を細く制御できる」(P.240)
「初期化メソッドの本当の名前は、__init__というちょっと変わった名前なのです」(P.235)
(いずれも『Pythonスタートブック』より引用)

a = Dice()
b = Dice()
aとbはそれぞれDiceクラスのインスタンス。
同じクラスから作られるが実体は別。
トヨタカローラアクシオという同じ型の車であっても、
Aさんの所有しているアクシオとBさんの所有しているアクシオは実体は別、というのと同じ。
aのselfはa自身(aというインスタンス)を参照し、
bのselfはb自身(bというインスタンス)を参照している。
0099デフォルトの名無しさん2015/06/05(金) 00:28:18.57ID:lsMoUydE
なんかいちいち煽り口調だよねこの人…
別にその本に限らないけど入門書でクラスの概念をちゃんと説明するのはページ数足らないよ

一つ上の書き込みすら読まずに「じゃあ何を参照してるのですか?」連発って何なんだこの人
クラスから作られるインスタンスを指すって書いてるじゃん

クラスはそのまま使うんじゃないんだよ
例えば車2台あるんなら車クラス1、車クラス2なんて同じクラス定義コードを書かないよね
2台なら2つの「車クラスのインスタンス」を作る
car1=Car()
car2=Car()
ここまではわかる?
0100pythonスタートブックww2015/06/05(金) 00:30:47.44ID:15nsAZUD
>>98

class Dice1:
i = 6
def __init__(self):
print('初期化OK')
def shoot(self):
return random.randint(1,self.i)

>aとbはそれぞれDiceクラスのインスタンス。
>同じクラスから作られるが実体は別。

でも、
a=Dice1()
a.shoot()と実行しても
b=Dice1()
b.shoot()と実行しても
上記コードの場合同じ結果ですよね?aもbも同じDice()を参照していますよね??
0101デフォルトの名無しさん2015/06/05(金) 00:31:11.27ID:lsMoUydE
あらめっちゃ被った…
>>98さんの書き込み10回読んでもわからないなら、とりあえずクラスのことはよくわからないままトライ&エラーするといいよ
そのうち体でわかってくると思うので
0102デフォルトの名無しさん2015/06/05(金) 00:38:03.45ID:lsMoUydE
同じ設計図を元に作られたからといって、そのサイコロとか車は現実世界で同じものなんですか?
違うよね?
あなたのプリウスと他人のプリウスのハンドルは同じ形してるし機能も同じだけど、別の物体だよね?
それともあなたのプリウスのハンドルは回したら世界中のプリウスのハンドルが一斉に回る?
回らないよね?
ここまでわかる?わからない?どっち?教えて?
0103デフォルトの名無しさん2015/06/05(金) 00:59:32.98ID:Hxz0Gz0r
JavaじゃなくPythonでこのぶつかり稽古感嫌いじゃないな
クラスを理解するのにここでつまづく人も少なくないと思うから
0104デフォルトの名無しさん2015/06/05(金) 01:07:15.59ID:lsMoUydE
selfが引数にあるから余計にわからなくなっちゃう人は多そう
0105デフォルトの名無しさん2015/06/05(金) 01:38:05.86ID:CO7i0u7Y
サイコロ工場長の視点で解説しよう

机の上にサイコロの設計書があります class Dice1
これが 【クラス】

設計書に基いてつくったサイコロを作ろう ガッチャンガッッチャン a=Dice1() , b=Dice1() 
これが 【インスタンス】

サイコロは基本6面だから、共通の変数作っとこ  i=6   
これが【クラス変数】

ちょ 全サイコロ共通じゃなくて一個一個カスタマイズできる変数が欲しいよね  self.a = a って書くことにしよう
これが【インスタンス変数】

self はインスタンス自身を指すよ
0106デフォルトの名無しさん2015/06/05(金) 02:07:56.35ID:CO7i0u7Y
a.shoot() はサイコロa を振ってる
b.shoot() はサイコロb を振ってる
設計書Diceを振ってるわけじゃない

クラス変数とインスタンス変数の違いについては、自分でいろいろ代入して試しながら解説を読まないとピンとこないと思う
http://bacspot.dip.jp/virtual_link/www/si.musashi-tech.ac.jp/www/Python_IntroProgramming/05/index-1c.html
0107デフォルトの名無しさん2015/06/05(金) 02:40:12.22ID:3MWYDBgR
>>100
「データ型は、よりシンプルなデータ属性(アトリビュート)と関数(メソッド)の集まりでした。どのようなアトリビュートとメソッドがあるのかを決める仕組み(設計図)が、クラスという概念なのです」(P.228)

a = Dice()
Diceクラスへの参照がaに代入されているわけではなく、
Diceクラスの初期化メソッドが呼ばれ、インスタンスが作成され、インスタンスへの参照がaに代入されている。
Diceの後ろに、関数を呼び出すときと同様に()がついていることに注意。

クラスからインスタンスが作られるとき、
メソッドは同じものが各インスタンスで共有されるが、
データ属性は各インスタンスに個別にメモリが割り当てられる。

組み込みのデータ型であるリストを例に挙げると、
sort()やcount()などのメソッドはどのリストでも同じ処理だが、
具体的にどんなデータを内容として持っているかは、実際に使われるリストごとにそれぞれ違う。
それと同じ。

a = Dice()
a.shoot()
b = Dice()
b.shoot()

a.shoot()とb.shoot()が同じ内容のメソッドを実行していることはその通りだが、
同じ結果を返すかどうかはshootメソッドの内容によって決まる。
例えばそれぞれのインスタンスのデータ属性を参照してそれを元に結果を返す関数だった場合、
aとbで同じデータ属性でも具体的な値は違う可能性があるため、
その場合違う結果が返る。

ここでは、shootメソッドの内容は、1〜6の数字をランダムに返すというものなので、
a.shoot()とb.shoot()では同じ結果にならないし、
a.shoot()を繰り返し実行した場合でもその都度違う結果になる。
0108デフォルトの名無しさん2015/06/05(金) 05:01:22.18ID:0CNX1oFz
クラスのメソッドを関数として書くと下のようになります
class構文がないプログラミング言語ではこのような形のOOPを見ることがあります

import random

class Dise:
    pass

def dise_init(self):
    self.n = 6

def dise_shoot(self):
    return random.randint(1, self.n)

def main():
    sai = Dise()
    dise_init(sai)
    kekka = dise_shoot(sai)
    print(kekka)
0109デフォルトの名無しさん2015/06/05(金) 08:02:54.15ID:8RwZ5SRI
お前らやさしいな
0110デフォルトの名無しさん2015/06/05(金) 08:19:25.89ID:BJJqeoyH
暇なんだろ
0111デフォルトの名無しさん2015/06/05(金) 10:06:46.46ID:j5ZekPWl
こんなとこで解説するならブログにでやったほうが有益なのに
0112デフォルトの名無しさん2015/06/05(金) 10:26:56.43ID:GyFRMyRF
それはどうだろ?
検索すらできないからここで聞いてるんでしょ
ブログに書いたところでたどり着かないだろうし
そもそもこんな初歩を解説しているところは既にある
情報の再生産は賢くない
0113デフォルトの名無しさん2015/06/05(金) 11:02:22.23ID:j5ZekPWl
ってことはここで解説することも再生産になるな
なるほどなるほど
0114デフォルトの名無しさん2015/06/05(金) 11:13:23.82ID:C29rFbOn
上の質問者ではないけど、車の例えやサイコロ工場の例はすごくわかりやすかったです。
私の中では日本語だからたまたまなんだけど、Classは型、
つまり鋳型みたいなものという理解だったのだが、だいたい合っているようでよかった。
0115デフォルトの名無しさん2015/06/05(金) 22:31:30.92ID:lsMoUydE
ここ掲示版、それも質問スレってわかってる?
0116デフォルトの名無しさん2015/06/05(金) 22:32:37.25ID:CO7i0u7Y
2chで解説してもブログでやっても大差ないもん
情報がばらばらになってる時点で、stackover flowみたいなとこに集積されてる英語圏とは比べものにならにあ
日本語版stackover flowがリリースされたら移住しよで
0117デフォルトの名無しさん2015/06/05(金) 22:39:58.60ID:8RwZ5SRI
>>116
http://ja.stackoverflow.com
0118デフォルトの名無しさん2015/06/05(金) 22:47:21.99ID:lsMoUydE
いやそういう問題でもなくて
質問スレでわからないっていう書込みがあったからみんな答えてるわけで、それに対してブログでやれってのは意味がわからない
目の前で出血多量で倒れてる人がいるのに止血しないで「こういう人を救うために僕は医者になるんだ」と決意するぐらい遠回り
0119デフォルトの名無しさん2015/06/05(金) 22:56:04.78ID:Po70kg5k
金曜だからハイになってるのかな?
0120デフォルトの名無しさん2015/06/06(土) 10:40:09.46ID:fshGdHb4
PyQt5の勉強しようとIPythonでサンプルプログラム打ち込んだらカーネル死亡してわろたw
どうやらIPythonもPyQtでできてるので干渉してるらしい
しょうがないからSpyderでやるかーと思ったら、SpyderもPyQtでできててわろた
0121デフォルトの名無しさん2015/06/06(土) 11:38:16.40ID:DEqjSCNd
>>118
意識不明になりかけの緊急手術の直前に本人に同意書へのサインを何枚も書かせるような感じ?
0122デフォルトの名無しさん2015/06/06(土) 13:27:48.72ID:MyhE4x2q
>>120
ipythonはコマンドラインツールだからpyqt使ってないんだけど
0123デフォルトの名無しさん2015/06/06(土) 17:52:09.89ID:/Aft5CBs
withが気になってるんですがどこ見てもファイルへのアクセスに便利だぐらいのことしか書かれてなくて、
それ以外の利用法がいまいち思い浮かばないです
皆さん使ってますか?
0124デフォルトの名無しさん2015/06/06(土) 18:00:31.27ID:9TAyXKx2
それはなぜ便利なのか理解してないからでは
with使わずに書いてみればなぜ便利なのか分かるよ
どういう風に使えるのかも
0125デフォルトの名無しさん2015/06/06(土) 18:06:40.87ID:9TAyXKx2
ブロックに入るときと出るときに定型処理を要求されるなら何にでも使える
ロックしかりセッションしかり

ってのが全てだけど、想像できないでしょ
0126デフォルトの名無しさん2015/06/06(土) 20:54:41.78ID:2JQblal0
Withの機能って英語ネイティブの連中だと
ふだんの用法から類推できるのかな?
いまExcelでVBA書いてるけどWithの機能が
Pythonとはまた違うような…
0127デフォルトの名無しさん2015/06/07(日) 04:49:37.07ID:P+H+q5eJ
>>122
おかしくなる原因わかった QT衝突だけじゃなかった

1.QTメインループ発射すると、IPythonのイベントループから処理を奪ってしまう
2.Qt同士の衝突(QtConsle, Spyder)
3.Qtウィンドウを閉じてもappオブジェクトは残るので、消したつもりで二個目を作るとカーネル死

対策: 
1.IPythonのマジック関数「%gui pt5」でメインループ作成。app.exec_からは作らない。
3.appオブジェクト作成前に既に存在するかどうか確認する

app = QCoreApplication.instance()
if app is None:
__app = QApplication(sys.argv)

以外とはまる罠
4.sys.exitや quitをしない。Pythonでは正常通り動くけど、IPythonだとカーネルごと死んじゃう
0128デフォルトの名無しさん2015/06/07(日) 05:57:06.55ID:J7/rKSpK
かよこってだれだよ
0129デフォルトの名無しさん2015/06/08(月) 01:17:40.83ID:FYS9ZuUR
質問です
Win8.1にPython3.4をインストールしたのですが
そこにwxPythonを導入できません
色々試しているのですがすべて失敗します

コマンド
c:\Python34\Scripts>pip install --pre –f http://wxpython.org/Phoenix/snapshot-builds wxpython-phoenix

結果
Exception:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\pip\basecommand.py", line 223, in main
status = self.run(options, args)
(中略)
File "C:\Python34\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2891, in parse_requirements
raise ValueError("Missing distribution spec", line)
ValueError: ('Missing distribution spec', '?f')


Python3.4でwxPythonを使うことは可能なのでしょうか?
0130デフォルトの名無しさん2015/06/08(月) 01:50:38.99ID:kUihiJyv
-fのハイフンがおかしい。
どっか変なとこからコピペでもしたんだろう。
0131デフォルトの名無しさん2015/06/08(月) 03:05:46.27ID:1CV/YMqS
今月Cythonの書籍が2冊ほど発売されますが、CythonはBottleやFlaskでWebページを作る場合にも高速化に役立つのでしょうか?
0132デフォルトの名無しさん2015/06/08(月) 04:48:57.05ID:TkpGbpl3
いいえ
0133デフォルトの名無しさん2015/06/08(月) 07:31:43.53ID:UvAzbTzo
問題設定が奇妙だ

Q.Webアプリを作る際のボトルネックがPython側にある場合、Cython高速化の役に立つのでしょうか?
A.立ちます
0134デフォルトの名無しさん2015/06/08(月) 09:16:47.89ID:PuuH78/z
Cython ―Cとの融合によるPythonの高速化
ともう1冊はなんだろ?
0135デフォルトの名無しさん2015/06/08(月) 09:19:35.76ID:xp3ZJS47
>>129
wxpython使うならpython 2.7を使え
どうしてもpython 3.4でやりたいならpyqt5とかpysideを使え
0136デフォルトの名無しさん2015/06/08(月) 10:34:15.07ID:IBO2jVeF
3に対応してるwxPython開発者バージョンってどのくらい安定してるのかね?
せっかくだし是非人柱になっていただきたい
0137デフォルトの名無しさん2015/06/08(月) 10:42:07.07ID:IBO2jVeF
>>129
てかコマンドがいろいろおかしくね?
fの前のハイフンと、末尾wxPythonのアンダーバー

pip install -U --pre -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix


それでもエラーでたらファイルをDLしていれたらうまくいったって報告がいくつかあるよ

http://wxpython.org/Phoenix/snapshot-builds/
ここから下のほうにある最新版のwhlファイルを落として、
コマンドプロンプトでwhlがあるフォルダにいって、

pip3 install -U --pre wxPython_Phoenix-3.0.3.dev1820+49a8884-cp34-none-win_amd64.whl
0138デフォルトの名無しさん2015/06/09(火) 07:41:01.24ID:CCwBvSiM
129です
>>137にあるwhlをダウンロードする方法でうまくいきました!
問題なく動くっぽいので今日から色々作ります
>>130>>137ありがとう!
0139デフォルトの名無しさん2015/06/09(火) 08:41:14.82ID:il7QxJ4a
どういたしまして
0140デフォルトの名無しさん2015/06/12(金) 14:45:46.94ID:P6xkiuvh
setattrでクラスのインスタンス変数は動的に作れるようですが、
普通の変数は動的に作ることはできないのでしょうか?
0141デフォルトの名無しさん2015/06/12(金) 15:09:07.35ID:quZXc/6x
モジュール内のスコープなら

globals()['hoge'] = 1
print hoge

でいける
関数内のスコープでは該当機能なし
locals()には書き込めない
0142デフォルトの名無しさん2015/06/12(金) 19:14:44.56ID:z8625JCz
ubuntu pyenv
.
~/pyenv/versions/3.4.3/lib/python3.4/curses/__init__.py, line 13, in <module>
from _curses import *
ImportError: No module named '_curses'

どうすればいいんでしょうか?
0143デフォルトの名無しさん2015/06/12(金) 19:24:56.91ID:qp6MkQCv
https://github.com/yyuu/pyenv/issues/240
http://stackoverflow.com/questions/28840867/compiling-python-with-curses-support
0144デフォルトの名無しさん2015/06/12(金) 23:36:54.43ID:P6xkiuvh
>>141
ありがとうございます
globals()とlocals()というdictの存在は知りませんでした 勉強になりました
0145デフォルトの名無しさん2015/06/13(土) 03:17:49.96ID:NUKk6CPY
どういたしまして
0146デフォルトの名無しさん2015/06/13(土) 11:48:55.19ID:AciwpV5F
>>142
GoogleでImportError: No module named '_curses' でググれば一発だろうが・・・
0147デフォルトの名無しさん2015/06/13(土) 12:11:35.04ID:AmgidL1k
そういう発想に至れないから聞いてんだろうが馬鹿か
ゴミのお前らを多少なりとも社会の役に立ててやろうとしてるのに何様だ
役立たずは土に帰れ


って思ってるでしょうから代弁してあげました
0148デフォルトの名無しさん2015/06/13(土) 12:57:33.62ID:NUKk6CPY
ありがとう
って伝えたくて
0149デフォルトの名無しさん2015/06/13(土) 13:45:05.39ID:d6cyRLaO
検索したけど、ディレクトリがないとかコマンドが無効とかでわかんなかったから。
他のでもエラー出たし、超初心者用って書いてあるからいいのかと。

>>143
>>146
解決しました。ありがとうございました。

>>147
思ってない。
0150デフォルトの名無しさん2015/06/13(土) 14:30:05.53ID:AmgidL1k
それは失礼した
0151デフォルトの名無しさん2015/06/14(日) 03:21:19.95ID:heCu4ibl
一部変な奴もいるけど気にせずに初心者はどんどん質問してくださいな
0152デフォルトの名無しさん2015/06/14(日) 06:00:50.39ID:zPXILR6N
>>90
notepad.exe はExcelではなく、
最初から、Windowsに付いている、メモ帳ソフトだよ


また、試してうまく行かないのなら、
そのエラーメッセージも書くこと!
0153デフォルトの名無しさん2015/06/15(月) 11:57:46.42ID:UXrUNkbZ
#!/usr/bin/python

これ書く必要ないと思うんですが何で皆書いてるんですか?
0154デフォルトの名無しさん2015/06/15(月) 12:27:08.68ID:CEFvwvlb
なぜ書く必要がないんだ
ドザかキサマ
0155デフォルトの名無しさん2015/06/15(月) 12:40:00.85ID:/ZcDX49o
常にpythonコマンドの引数として実行してるから
プログラム中に書く必要が無いっていう意味かもよ
0156デフォルトの名無しさん2015/06/15(月) 12:53:12.01ID:CEFvwvlb
なるほど
0157デフォルトの名無しさん2015/06/15(月) 14:12:49.62ID:nCXuemSD
sympyのチュートリアルにtype(_)みたいに引数がアンダーバーの例が結構出て来るんですけど
どういう意味なんですか?
0158デフォルトの名無しさん2015/06/15(月) 14:12:58.25ID:+3PE6uzO
{'a': 0.1, 'b': 0.4, 'c': 0.5}
こういう確率分布に沿ってランダムにa~cを返すようなスマートな書き方って無いでしょうか

今はこんなリストを生成してrandom.choice(list)してるんですが酷過ぎますよね
[a,b,b,b,b,c,c,c,c,c]
0159デフォルトの名無しさん2015/06/15(月) 15:12:19.08ID:6FCFdlNB
>>157
直前に実行した結果の値
0160デフォルトの名無しさん2015/06/15(月) 15:13:37.21ID:6FCFdlNB
>>158
それでいいよ
0161デフォルトの名無しさん2015/06/15(月) 15:50:40.17ID:23esbdI0
>>158
import random

def get_random_abc_smart(random_abc):
r = random.random()

for name, value in random_abc.items():
if r < random_abc[name]:
return name
r -= random_abc[name]

raise ValueError()

if __name__ == "__main__":
random_abc = {'a': 0.1, 'b': 0.4, 'c': 0.5}

for i in range(10):
abc = get_random_abc_smart(random_abc)
print(abc)
0162デフォルトの名無しさん2015/06/15(月) 16:15:41.68ID:/ZcDX49o
>>157
もう回答ついてますが、補足すると、
対話モードでPythonを実行しているときに、
Pythonインタプリタが最後に表示した式がその都度、
ビルトイン変数である _ に代入されます。
>>> 2
2
>>> _
2
>>> _ + 8
10
>>> _
10
0163デフォルトの名無しさん2015/06/15(月) 16:24:13.59ID:/ZcDX49o
>>158
randomモジュールの公式ドキュメントの最後のところに、
「ありがちな作業として、重み付けされた確率のrandom.choice()を作ることがあります」
として、コード例が二つ、挙げられていますよ。
0164デフォルトの名無しさん2015/06/15(月) 16:47:22.20ID:+3PE6uzO
>>163
3系のドキュメントには確かに書いてありました
ramdomにそういう関数があるんじゃないかと思って隅から隅まで読んでたんですが、
検索で最初に出て来たのが2.7のドキュメントだったのでそっちを読んでました
新しい方のドキュメントを読むようにしないとダメですね
ありがとうございました
0165デフォルトの名無しさん2015/06/15(月) 17:11:38.07ID:23esbdI0
確率なら私は、>>161
を押すけど・・・

何これ滅茶苦茶になってる。
書き直し

import random

def get_random_abc_smart(random_abc):
 r = random.random()

 for name, value in random_abc.items():
  if r < random_abc[name]:
   return name
  r -= random_abc[name]

 raise ValueError()

if __name__ == "__main__":
 random_abc = {'a': 0.1, 'b': 0.4, 'c': 0.5}

 for i in range(10):
  abc = get_random_abc_smart(random_abc)
  print(abc)
0166デフォルトの名無しさん2015/06/15(月) 17:18:53.77ID:23esbdI0
3分ルール。
3分以内だから書き直して良し。

import random

def get_random_abc_smart(random_abc):
 r = random.random()

 for name, value in random_abc.items():
  if r < value:
   return name
  r -= value

 raise ValueError()

if __name__ == "__main__":
 random_abc = {'a': 0.1, 'b': 0.4, 'c': 0.5}

 for i in range(10):
  abc = get_random_abc_smart(random_abc)
  print(abc)
0167デフォルトの名無しさん2015/06/15(月) 20:33:01.67ID:TKCLtNo1
向いてないよお前
0168デフォルトの名無しさん2015/06/15(月) 23:57:55.27ID:kyy3xBtw
>>154
CGIで動かすなら書く必要はあるけどそれ以外で書く必要ある?
0169デフォルトの名無しさん2015/06/16(火) 00:01:08.17ID:b7Inp4eU
なぜCGIで動かすために必要なのか分かれば用途も分かるんじゃ?
0170デフォルトの名無しさん2015/06/16(火) 07:25:00.65ID:5/n3i9e1
cron が実行する時とか書いておいた方がいいじゃん
0171デフォルトの名無しさん2015/06/16(火) 08:32:21.66ID:550Q7INi
cronだろうがCGIだろうがその気になれば書かんでも動くけどな
0172デフォルトの名無しさん2015/06/16(火) 19:45:46.31ID:RI7md6Vl
むしろお前の気分など微塵も関係ないわw
0173デフォルトの名無しさん2015/06/16(火) 19:50:16.97ID:A7ypZhpv
長すぎるスクリプトがあって2つに分割したいのですが、
最初のスクリプトに定義した定数(みたいなもの)に後のスクリプトからアクセスできません

foo.py
--------------------
FOO = "foo"
import bar

bar.py
--------------------
print foo.FOO #エラー



2つのスクリプトから共通に定数を参照することはできないのでしょうか?
0174デフォルトの名無しさん2015/06/16(火) 20:01:32.04ID:VP0cCW3e
bar.pyの中で先にimport fooしてからfoo.FOOを使う
0175デフォルトの名無しさん2015/06/16(火) 20:10:01.18ID:A7ypZhpv
ありがとうございます
循環的にimportしてもいいのでしょうか
0176デフォルトの名無しさん2015/06/17(水) 00:11:28.65ID:zdNvSItr
>>1
hをわざわざ抜かんでもいいよね
リファラー漏れたって構わんだろ
0177デフォルトの名無しさん2015/06/17(水) 05:37:25.05ID:kNv7Xml9
>>173
これどうするんだろ 試してみたけどエラーになるし
共通変数だけ3つ目のスクリプトを作ってそこに記述するとか?
0178デフォルトの名無しさん2015/06/17(水) 06:32:07.61ID:LjoNHjol
共通定数を定義した3つ目を作ってimportするしかないんじゃないの
0179デフォルトの名無しさん2015/06/17(水) 07:01:05.48ID:81IWqnhU
モジュールから公開するものは定数、関数、クラス
つまり再代入しない書き換えない前提のものだけにするべきだ
0180デフォルトの名無しさん2015/06/17(水) 09:21:43.00ID:7KhQ6AFD
Cのincludeとかと勘違いしてんじゃね
0181デフォルトの名無しさん2015/06/17(水) 09:57:22.15ID:oj1Iwp6E
フレームワークとかで見かける@app.routeって書き方が何なのかを学びたいんですが
この機能についてPythonのドキュメントのどこに載ってますか?
0182デフォルトの名無しさん2015/06/17(水) 10:44:14.01ID:IK4mFl8b
デコレータのことなら
用語集のdecoratorの項目
言語リファレンスの複合文の項目の関数定義およびクラス定義の項目
英語でよければPEP318とPEP3129
0183デフォルトの名無しさん2015/06/17(水) 10:57:46.10ID:0Srw9Hnu
お前もデコレートしてやろうか
0184デフォルトの名無しさん2015/06/17(水) 12:01:08.92ID:l25RfAPf
>>175
http://docs.python.jp/2/faq/programming.html

関数の中とかでimportするようにすれば循環を解消出来る
0185デフォルトの名無しさん2015/06/17(水) 12:31:24.46ID:r36nFuSU
デコレータの使い所がつかめない
0186デフォルトの名無しさん2015/06/17(水) 13:17:06.78ID:0Srw9Hnu
無理につかむ必要なし
スルーして先に進め
0187デフォルトの名無しさん2015/06/17(水) 15:58:52.42ID:QfA6ONQ8
今からpythonを始めるなら3系がいいの?
0188デフォルトの名無しさん2015/06/17(水) 18:06:59.25ID:Qul178yg
何をしたいのか明確で必要なライブラリがPython3対応なら3
そうでないなら2
何をしたいのか分からないボクちゃんは2にしとけ
0189デフォルトの名無しさん2015/06/17(水) 19:22:24.73ID:/LVZEvtO
何いってんだ
やりたいことが決まっててそれが2しか対応してないなら2
それ以外でいまから2やる理由などない
時代遅れも甚だしい
0190デフォルトの名無しさん2015/06/17(水) 19:39:54.69ID:lLs1gGcm
パイソンをやめたいんだが
0191デフォルトの名無しさん2015/06/17(水) 19:56:55.43ID:Qul178yg
お前はもう家の子じゃない
勘当だ!でてけ!
0192デフォルトの名無しさん2015/06/18(木) 00:54:51.07ID:847qU7kl
いまさら2から始めるのはないと思う。

ある程度使えるようになることにはサードパーティのライブラリでも3対応になってるはず。
0193デフォルトの名無しさん2015/06/18(木) 04:26:12.53ID:R8kyw3Rj
言語本体だけ見れば2系を選ぶ理由はもう全く無い
日本人が2系で入門するとUnicodeDecodeErrorを最低100回以上は見る事になって辛いよ

いまだに2を使ってる人が多い理由は大きくわけると2つあって
・言語本体以外のライブラリが3系に対応していない
・今まで書いて蓄積して来た2系のコードを3系に移植するのが大変なのでそのまま2で開発続行

今から始めようっていう人にとって2と3どっちを選ぶかは結局のところ使うライブラリが対応してるかどうか
ここ1~2年で急激に3系へのライブラリ対応が完了つつあるので絶対3をお勧めしたい
3系やるなら3.3か3.4で 3.0~3.2は色々な事情でダメ もうすぐ3.5が出るけど初心者は様子見で3.3か3.4で入門して欲しい
0194デフォルトの名無しさん2015/06/18(木) 06:16:54.84ID:qj3FW4Pj
なんで3から2のライブラリを使えるようにしなかったんだ
0195デフォルトの名無しさん2015/06/18(木) 06:44:21.31ID:Zk4Vy/pu
使えるようにしつつ満足のいく言語仕様の変更ができなかったから
に決まってるだろうがよぉー
0196デフォルトの名無しさん2015/06/18(木) 07:42:22.87ID:SQas+mXZ
残ってるサードパーティーライブラリの癌はgeventだな
あれのせいでイベントループ系のフレームワークが全滅
0197デフォルトの名無しさん2015/06/18(木) 07:59:34.32ID:aPbhwQoO
3.5はバラ色の未来ですねわかります
0198デフォルトの名無しさん2015/06/18(木) 08:01:31.33ID:rHijCFtm
そんなに3が凄いならいっちゃおうかな
0199デフォルトの名無しさん2015/06/18(木) 08:06:55.17ID:7/h/PzkV
>>196
kwsk
0200デフォルトの名無しさん2015/06/18(木) 09:44:38.69ID:Gsq65laO
GAE待ちとか
0201デフォルトの名無しさん2015/06/18(木) 09:51:46.91ID:7/h/PzkV
それな
0202デフォルトの名無しさん2015/06/18(木) 19:37:20.29ID:rESrKy3o
G!A!E!
0203デフォルトの名無しさん2015/06/18(木) 20:00:46.48ID:qj3FW4Pj
GAEと言えば7月にMasterSlave店じまいセールだな
0204デフォルトの名無しさん2015/06/19(金) 00:29:37.61ID:pwEd9MNq
>>185
デコレータは機能を追加する

例えば、ログを表示する、log() という関数がある時、
f1() の内部で、log()を呼び出すと、
f1()のソースコードを変更しなければならない

def f1():
 log()

デコレータなら、f1()のソースコードを変更しなくてもよい
@log
def f1():


また、イベントのように、複数の機能も追加できる
@log
@sort
def f1():

下のデコレータから呼ばれるので、
ソートしてから、ログを表示する


また、関数宣言として、デコレータを使うこともできる
@atexit.register
def f1():

f1()はプロセス終了時に、呼び出される
0205デフォルトの名無しさん2015/06/19(金) 05:26:58.65ID:XxXXr7Os
pythonのatexitがマルチプロセスなプログラムと相性が悪い件
http://taichino.com/programming/1199
0206デフォルトの名無しさん2015/06/19(金) 09:58:16.55ID:u8L6JLuV
>>193
IronPythonとJythonが今のところ2系だからって理由も追加しておいてくれ
0207デフォルトの名無しさん2015/06/19(金) 10:21:50.56ID:Rpgf6TLH
そういえばJython2.7出てたね
つい先月まで2.5相当の骨董品だった環境を
使っている人間がどれだけいるのか知らんが
0208デフォルトの名無しさん2015/06/19(金) 11:25:33.18ID:gzzqdCD8
質問スレはここでいいでしょうか?
こんな感じのテストパターンを計算でiPython Notebookで作りたいのですけどどのライブラリを使うのがいいでしょうか?
グレーの濃度をガンマ2.2用に変えたものを作りたいのです
https://commons.wikimedia.org/wiki/File:SMPTE_RP-133_small.png
本当に作りたいのはAAPM-TG-18-PQCのパターンです(輝度が0.2%違うラインが一杯並んでいる)
0209デフォルトの名無しさん2015/06/19(金) 11:26:22.69ID:gzzqdCD8
追記
https://upload.wikimedia.org/wikipedia/commons/8/88/SMPTE_RP-133_small.png
0210デフォルトの名無しさん2015/06/19(金) 11:47:20.00ID:DjrbuAgm
質問です

----------------
import sys, os, time
import subprocess

def newproc(t):
p = subprocess.Popen('hoge.py', shell=True, bufsize=4096,
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
close_fds=False)
if p.pid == 0:
time.sleep(t)
sys.exit()
else:
print 'forked: %d' % p.pid

newproc(5)
newproc(10)
print os.wait()[0]
print os.wait()[0]
----------------
これを hoge.py というファイルで保存して実行したときに
子プロセスかどうかの判定で失敗するようなのですが
どうすれば pid を正しく取得出来ますか?

環境は Windows 7/8.1 です
0211デフォルトの名無しさん2015/06/19(金) 12:40:35.57ID:Rpgf6TLH
正しく取得できてるから0じゃないんだよ
subprocessとos.forkは違う
0212デフォルトの名無しさん2015/06/19(金) 12:43:26.32ID:Rpgf6TLH
期待を裏切っておくと
Windowsでfork相当のことはできないよ
考え直すんだね
0213デフォルトの名無しさん2015/06/19(金) 12:44:25.26ID:DjrbuAgm
>>211
そのようですね
ありがとうございます

後出しで済みませんが
子プロセス側で自分が子プロセスかどうかを判別する方法はどうすれば良いのでしょうか?
0214デフォルトの名無しさん2015/06/19(金) 12:47:40.56ID:Rpgf6TLH
手っ取り早いのは起動する時に引数を指定することだろう
0215デフォルトの名無しさん2015/06/19(金) 12:52:56.49ID:Rpgf6TLH
>>205
これよお
forkとatexitシステムコールのman読めば分かることだが
forkはatexitの登録も継承するんだよ(execは継承しない)
だからforkした回数だけ起動されて当たり前だ
Pythonがどうとか御託を並べる前と後にRTFMしろ脳プリンが
0216デフォルトの名無しさん2015/06/19(金) 13:12:03.39ID:4Vx29HIc
えっ?RTFM?
retweet format?
aRT fm radio?

> RTFMしろ脳プリンが
脳プリンさんってコテハンがRTFMするんです???
0217デフォルトの名無しさん2015/06/19(金) 13:17:30.92ID:X0p5IxAK
>>215
実は私もそう思ったんです

>どうするのが綺麗なのか解りませんが、今のところ終了処理にpidを渡して無理矢理処理を振り分けています。

みたいなふざけたこと言ってるので

例えば

atexit.register(exitfunc)
fork_process(5)
fork_process(10)

を

fork_process(5)
fork_process(10)
atexit.register(exitfunc)

にするだけで良いんじゃないかと
0218デフォルトの名無しさん2015/06/19(金) 13:23:36.39ID:r/oYBuQO
お客さん意外と辛辣ね…
0219デフォルトの名無しさん2015/06/19(金) 13:42:54.95ID:FzphauAa
少なくとも
「相性が悪い」
というのは的外れな表現ですね
0220デフォルトの名無しさん2015/06/19(金) 17:54:53.41ID:yCMOiWgQ
>>208
作ったことないから適当に言うけど
計算はNumpy
描画はPIL(Pillow)って感じでは
0221デフォルトの名無しさん2015/06/20(土) 00:39:34.78ID:m/GPi3MC
いまどきなぜ cv をつかわずに Ipl なのか
0222デフォルトの名無しさん2015/06/20(土) 04:18:02.13ID:q1zQqH1k
ざーっと基礎を押さえたあとネットでDive into pythonを読んだんだけど良書すぎて困惑した
日本語訳もけっこういいし
これ日本語のpython入門本とか立場ないよなw
0223デフォルトの名無しさん2015/06/20(土) 05:02:07.47ID:05xfGfjh
あれはまさにPythonを知ってる人向けの再入門本じゃないかなあ
少なくともプログラミング未経験者にはわけわかめだと思う
0224デフォルトの名無しさん2015/06/20(土) 06:02:17.49ID:YRdpRuuN
立場ないとか意味不明
0225デフォルトの名無しさん2015/06/20(土) 08:24:30.35ID:ZS6UT+M0
デコレータ関連で調べていくうちに出会った組込関数のstaticmethod
これは何をする関数なんだろう
ドキュメントには以下の解説があるが、これでわかる人いる?

staticmethod(function)
function の静的メソッドを返します
0226デフォルトの名無しさん2015/06/20(土) 08:41:42.24ID:837NZnyd
>>224
>>222 は Dive into Python の翻訳者かな?
0227デフォルトの名無しさん2015/06/20(土) 08:42:52.18ID:837NZnyd
>>225
@classmethod と @staticmethod の違いについて述べよ
0228デフォルトの名無しさん2015/06/20(土) 08:57:58.95ID:ZS6UT+M0
>>227
メソッドってクラス内にある関数のことでしょ
それが静的・動的という言葉と何の関係があるのかさっぱりですわ
0229デフォルトの名無しさん2015/06/20(土) 09:17:31.21ID:837NZnyd
なんだアスペか
0230デフォルトの名無しさん2015/06/20(土) 09:43:41.94ID:VCJJENu0
超初心者に分かるように説明するのは難しいなあ
0231デフォルトの名無しさん2015/06/20(土) 10:02:36.41ID:ZS6UT+M0
>>229
中傷はお腹いっぱいだから解説が欲しいなあ

>>230
公式ドキュメントがアレな時点で覚悟はしていたが
人に説明するのが難しい概念なのか
じゃあ追い求めるのはやめとくよ
クラスを作ることのない自分にはたぶん不要でしょ
0232デフォルトの名無しさん2015/06/20(土) 10:47:37.17ID:EgcPeahS
>>213
multiprocessingを使え
0233デフォルトの名無しさん2015/06/20(土) 11:15:04.01ID:JS1ARM9p
>231
staticおじさん乙
0234デフォルトの名無しさん2015/06/20(土) 11:32:33.23ID:q1zQqH1k
>>231
公式ドキュメントの日本語は酷いよなw 
自分がググったなかではこれが一番分かり易かった

http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner
0235デフォルトの名無しさん2015/06/20(土) 18:06:53.98ID:EIopszoh
wxpythonで、例えばwx.Panelクラスを継承する場合

class MyPanel(wx.Panel):
  def __init__(self, *args, **kwargs):
    wx.panel.__init__(self, *args, **kwargs)
    pass

と書きますが、このときコンストラクタに任意の引数を追加したい場合はどうすれば良いのでしょうか

class MyPanel(wx.Panel):
  def __init__(self, value=0, *args, **kwargs):
    wx.panel.__init__(self, *args, **kwargs)
    self.value = value

このようなことをしたかったのですが、これだとエラーが出てしまい困ってます
0236デフォルトの名無しさん2015/06/20(土) 18:13:02.77ID:BwBYUmlz
value=0, *args
を逆にしたら通らないか?
今試せないから間違いならごめんよ
0237デフォルトの名無しさん2015/06/20(土) 18:35:54.79ID:m1xwf2/2
>>235
class Parent(object):
def __init__(self, *args, **kwargs):
print("in Parent()")
print("args =", args)
print("kwargs =", kwargs)

class MyChild(Parent):
def __init__(self, *args, **kwargs):
# print("MyChild() kwargs =", kwargs)
if not "value" in kwargs:
kwargs["value"] = -1
self.value = kwargs["value"]
Parent.__init__(self, *args, **kwargs)
0238デフォルトの名無しさん2015/06/20(土) 19:02:56.23ID:n/MPx6ZH
Parentにvalueを渡しても良いなら
value = kwargs.setdefault('value',0)

渡したらダメなら、上の後で
del kwargs['value']
0239デフォルトの名無しさん2015/06/20(土) 20:01:07.38ID:m/GPi3MC
class MyPanel(wx.Panel):
  def __init__(self, *args, **kwargs):
    super(self, MyPanel).__init__(*args, **kwargs)
    pass
0240デフォルトの名無しさん2015/06/20(土) 23:07:53.60ID:vDkYH4Pd
>>210
linuxでは、ps コマンドや、
/proc/[pid]/stat で、プロセスの状態を見れる

pid は、プロセス ID。
ppid は、このプロセスの親プロセスの PID

つまり、PIDから、ppidがわかる

逆に、親から子は、簡単にはわからない。
親子は、1対多の関係だから

Windowsでも、同じだと思う
0241デフォルトの名無しさん2015/06/21(日) 02:00:24.62ID:4AMULbus
>>234
ありがと、せっかくだから読んでみたが、やっぱ今の自分には無理そうだ
クラスを使わない自分にはサンプルコードから使いどころが見えてこない

あとデコレータは「Python文法詳解」の本に公式より詳しい説明があったから
読んでみたら、おぼろげに見えてきた
要は、Aという関数のオブジェクト作成時(呼び出し時ではない)にBという関数を
呼び出す仕組みであり、このBをデコレータと呼ぶらしい

ただ、この仕組みが実務で何の役に立つのか、初学者はサンプルから読み取れない
それが困ったところだ
0242デフォルトの名無しさん2015/06/21(日) 05:40:21.64ID:w9NVD211
説明はしないけど標準ライブラリを使って下のような例を挙げておく

import functools

@functools.lru_cache(maxsize=None)
def fibonacci(x):
    if x <= 1:
        return x
    else:
        return fibonacci(x-1) + fibonacci(x-2)
0243デフォルトの名無しさん2015/06/21(日) 07:11:08.54ID:DNozaEUf
>>241
前にselfで質問してた人かな?
0244デフォルトの名無しさん2015/06/21(日) 08:40:34.98ID:/JS5ft5/
decorator で引数の型チェックするとかはあったな
実用化成功してるとするなら普及しないのが不思議だけど
0245デフォルトの名無しさん2015/06/21(日) 10:04:24.99ID:WzG+ayAj
>>233
そいつは static おじさん以下だろ
static おじさんの方が百倍マシ
0246デフォルトの名無しさん2015/06/21(日) 14:19:07.26ID:cvS/M2oc
初めてのプログラミングでpython学ぼうと思うんだけど
おすすめのサイトとか本とかある?
0247デフォルトの名無しさん2015/06/21(日) 18:44:15.00ID:0g6EdVmv
料理の本でも書った方がマシ
0248デフォルトの名無しさん2015/06/21(日) 23:02:16.53ID:YQGPuxlq
100円のKindleのん
0249デフォルトの名無しさん2015/06/22(月) 21:35:08.52ID:cyUuMoVS
GUIやりたいんだけど、
GTKとかQtとかwxとかいろいろあるみたいだけどどれがいいの?
0250デフォルトの名無しさん2015/06/22(月) 22:37:04.46ID:mEuvJOmb
Tkinter
0251デフォルトの名無しさん2015/06/22(月) 22:53:48.77ID:1mBrqKiW
邪道な選択肢かもしれんが
IronPythonでWindows FormとかXAMLとか
0252デフォルトの名無しさん2015/06/23(火) 00:53:22.47ID:KSGpzryS
Tkinterはないわ

鉄板だけどライセンスが欠点の Qt
ライセンスが緩い Wx、 PySide(開発停滞中)
モバイル端末のマルチタッチでも遊べる kivy
0253デフォルトの名無しさん2015/06/23(火) 02:29:50.57ID:VWqqouSb
python3 以降でeasyDialogs の代わりになるものってないのですか?
0254デフォルトの名無しさん2015/06/23(火) 02:34:00.43ID:C02P46O1
>>246
みんなのPython 第3版
0255デフォルトの名無しさん2015/06/23(火) 02:38:55.91ID:oDIwBgEe
Qtって鉄板なんだ
Wxのほうがポピュラーなのかと思ってた
0256デフォルトの名無しさん2015/06/23(火) 07:44:24.48ID:p2719NN5
pygameのことも忘れないで
0257デフォルトの名無しさん2015/06/23(火) 08:15:33.54ID:rzZlb/rV
ブラウザだってguiだわ
0258デフォルトの名無しさん2015/06/23(火) 08:24:15.40ID:p2719NN5
ブラウジャはjavascriptだからつまらん
0259デフォルトの名無しさん2015/06/23(火) 08:48:29.15ID:LQs/3Np0
Brython
0260デフォルトの名無しさん2015/06/23(火) 16:31:27.73ID:pUNJxfqT
横レスだけど、Tkinterってダメなの?
これから勉強しようとしてる初心者ですが、最終的にGUIアプリを作りたいので
一番簡単そうに思えるTkinterを勉強しようと思ってた
見た目がダサくなるらしいのはちょっと調べて分かったけど
それ以外にも難点があるんですか?
0261デフォルトの名無しさん2015/06/23(火) 17:26:52.29ID:y0iv9VtA
何度でも言うよ
GTK は糞
0262デフォルトの名無しさん2015/06/23(火) 19:38:47.63ID:fcD/yaWG
tkinterでつくったことあるけど、別に悪くないよ
tkdocsのチュートリアルが結構しっかりしてる
0263デフォルトの名無しさん2015/06/23(火) 19:56:55.85ID:R8jZDKIo
pathで躓いてる

binというディレクトリの下でしか動かないバイナリ を別のディレクトリから動かすにはどうすればいい?
0264デフォルトの名無しさん2015/06/23(火) 20:06:10.26ID:kckphfdj
>>263
そのディレクトリをbinにリネームする以外に打つ手はない
0265デフォルトの名無しさん2015/06/23(火) 20:21:51.72ID:wv+JII7F
スレちだし、聞き方が生意気だから教えてやらない
0266デフォルトの名無しさん2015/06/23(火) 20:23:57.19ID:wv+JII7F
>>264
余計な事、言わんと黙ってて悩ませれば良かったのに!
0267デフォルトの名無しさん2015/06/24(水) 01:29:41.38ID:e2++j1ht
>>261
開発環境と手に入る情報量の差?
GUIをコードだけで開発してたら効率悪いってんで、PyQt・PySideにはQtDesighner(QtCreator)、
wxPythonにはwxGladeっていうビジュアル的な開発環境がある
TkInterにもあるんだろうけどこれだってやつを聞かない

使用人口の差で困ったときに答えが見つかりやすいのが前者2つなんじゃないかと
0268デフォルトの名無しさん2015/06/24(水) 02:30:10.98ID:D119baBl
>>265
きもちわる…
0269デフォルトの名無しさん2015/06/24(水) 09:12:24.62ID:qjEYFQ4L
>>262
安心しました
ありがとう
0270デフォルトの名無しさん2015/06/24(水) 10:00:21.60ID:ySM4xiac
>>204
なんで変更しなければならないんですか?
0271デフォルトの名無しさん2015/06/24(水) 10:04:20.61ID:L+KbIIX3
>>267
Gladeもと元々GTKな気がする
0272デフォルトの名無しさん2015/06/24(水) 10:47:21.39ID:GWC9jKuq
>>270
どこぞのNPO代表小学生みたいなこと言ってんじゃねえ
0273デフォルトの名無しさん2015/06/25(木) 12:36:40.01ID:rwNizRxv
windowsならpyqt5一択
pythonでgui作る時点でそーすこーど公開を気にしてんじゃねえよ
個人ごときがpythonで作ったguiを有料で配るのなんてなんて需要ねえよ
仕事でやるなら会社がライセンス買うだろ
だから個人でwindows向けはpyqt5でいい
0274デフォルトの名無しさん2015/06/25(木) 12:38:03.35ID:rwNizRxv
macでもlinuxでもwindowsでも動かしたいならtkにしろ
tkかpyqt5の二択で十分
0275デフォルトの名無しさん2015/06/25(木) 20:14:15.78ID:VjgLzB4a
Linuxメインで簡単なGUIツール作るんだったら何がいいの?
0276デフォルトの名無しさん2015/06/26(金) 03:39:38.77ID:TeHEn9G0
何度も言うよ
GTK は糞
0277デフォルトの名無しさん2015/06/26(金) 09:30:50.13ID:/s2R/Gz1
pythonにCでいうところの#ifdef DEBUGみたいのないの?
0278デフォルトの名無しさん2015/06/26(金) 09:55:38.57ID:/s2R/Gz1
すまん自己解決。if __debug__で、消すときは-Oオプションつけて実行か。
0279デフォルトの名無しさん2015/06/26(金) 09:59:29.10ID:FScQfCb1
インデントの闇は深い
0280デフォルトの名無しさん2015/06/26(金) 23:30:23.51ID:lmpExqE6
if a == b and c == d:
こういう文があるんですが行が長くなる場合があるので複数行に分ける方法を教えてください
if a == b and
c == d:
だとエラーになりました
0281デフォルトの名無しさん2015/06/26(金) 23:42:02.09ID:tcE5k47V
()
0282デフォルトの名無しさん2015/06/26(金) 23:45:24.88ID:Ni9a9rCI
全体を括弧で括るか、バックスラッシュを継続させる行末に置く

(a == b and
c == d)

a == b and \
c == d
0283デフォルトの名無しさん2015/06/27(土) 00:22:25.19ID:KOTMWkTF
ファイルを読み書きモードで開いた場合、書き込み前の文字列が残っちゃうんですが
どうやって上書きできますか?

[a.txt]
a
b
c
[test.py]
with open("a.txt", "r+") as fp:
____fp.write("z")
0284デフォルトの名無しさん2015/06/27(土) 00:25:49.25ID:KOTMWkTF
ぐぐってすぐ解決策見つかりました
0285デフォルトの名無しさん2015/06/27(土) 04:40:06.78ID:8NDoKwy7
ぐぐってからききなさい
0286岡村隆史「嫌なら見るな」2015/06/27(土) 08:29:56.28ID:yJT4XZQ/
新聞購読を止めて、月3000〜4000円、年間36000〜48000円の節約

新聞にそのような金を払う価値はない

ただでさえ要らない
なぜなら新聞は国民の方を向いておらず、広告主のための報道しかしないからだ

それに金を払って購読することは自らの首を絞める自殺行為に等しい
0287デフォルトの名無しさん2015/06/27(土) 08:41:08.09ID:p3jpLBAy
class MyClass:
  def __init__(self):
    self.data = (1, 2, 3, 4, 5)
    self.index = 0
  def __iter__(self):
    return self
  def next(self):
    if self.index < len(self.data):
      self.index += 1
      return self.data[self.index - 1]
    else:
      raise StopIteration

for n in MyClass():
print(n)

Python2でエラーが出なくて、Python3でエラーが出るのですが理由がよくわかりません
超初心者にもわかるように解説お願いします
0288デフォルトの名無しさん2015/06/27(土) 09:08:16.96ID:ZoA4Szzx
__next__() を使うとうまくいくと思います。
下記に関連する説明があります。
http://diveintopython3-ja.rdy.jp/porting-code-to-python-3-with-2to3.html#next
0289デフォルトの名無しさん2015/06/27(土) 09:09:19.67ID:Z90g4rXx
仕様が変わったからです
next(self)は廃止され__next__(self)になりました
0290デフォルトの名無しさん2015/06/27(土) 09:18:56.46ID:p3jpLBAy
>>288
>>289
理解しました、ありがとうございます。
0291デフォルトの名無しさん2015/06/28(日) 02:53:32.39ID:x9WH9E/Z
forループ内で加工したpandasのdfをすべて行で連結していきたいのですが
どうやればいいのでしょうか?
for i in range(0,10):
...
print(df)
で出力されるdfをそれぞれ連結させていくイメージです
0292デフォルトの名無しさん2015/06/28(日) 03:48:54.20ID:n02SzJDq
https://ideone.com/4Qy3GL
StringIOでも良かろう
0293デフォルトの名無しさん2015/06/28(日) 08:54:24.66ID:zKGg/T0h
私の日本語力では>>291が何がしたいのかわからないのでそれっぽいの貼っていきますね
http://pandas.pydata.org/pandas-docs/stable/merging.html
0294デフォルトの名無しさん2015/06/28(日) 09:18:15.12ID:x9WH9E/Z
>292
うまくいかないため、すみませんがもう一度お願いします。
以下で得たい出力を得るにはどうしたらよいでしょうか?

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
0295デフォルトの名無しさん2015/06/28(日) 09:30:12.24ID:x9WH9E/Z
>>292
あれ、スペースが抜けてしまいました
df['A'] = 1*i
の前にスペースです
forを抜けた後で得たい出力を使いたいです
0296デフォルトの名無しさん2015/06/28(日) 10:50:57.03ID:zKGg/T0h
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))

これでいいのかな
全角スペース入れたから直してね
0297デフォルトの名無しさん2015/06/28(日) 11:00:55.00ID:zKGg/T0h
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上で加工するならこっちか
0298デフォルトの名無しさん2015/06/28(日) 11:15:31.30ID:x9WH9E/Z
>>297
できました!
ありがとうございます!!
0299デフォルトの名無しさん2015/06/28(日) 17:53:46.47ID:5QGv7jmz
ライブラリのosとos.pathって何が違うんですか?
osをimportしてもos.path使えますよね
os.pathってなんのために分かれてるんですか?
0300デフォルトの名無しさん2015/06/28(日) 18:40:22.51ID:n02SzJDq
歴史的な経緯
0301デフォルトの名無しさん2015/06/28(日) 20:58:44.00ID:92vB0cyt
os.walk/os.path.walk
みたいにはっきりしてほしい
0302デフォルトの名無しさん2015/06/28(日) 21:00:42.00ID:Y74sbUOE
PythonでWebやりたいんだけど、どのフレームワーク?ライブラリ?を使えばいいの?
MySQLとかも使いたいんだけど
0303デフォルトの名無しさん2015/06/28(日) 21:02:44.67ID:I4CbUbOX
聞く前に作ってみたほうが早いんじゃね?
0304デフォルトの名無しさん2015/06/28(日) 22:13:06.89ID:92vB0cyt
Dja
いや
なんでもない
0305デフォルトの名無しさん2015/06/28(日) 23:01:49.82ID:WE2Gt4yN
python3まったくわかんないです 助けて
0306デフォルトの名無しさん2015/06/29(月) 06:06:28.45ID:um2QSBwJ
2は分かるのかよコラァ
0307デフォルトの名無しさん2015/06/29(月) 06:15:48.27ID:PjeoFJ6W
ここのひとか
http://kanae.2ch.net/test/read.cgi/php/1409423461/
0308デフォルトの名無しさん2015/06/29(月) 15:57:57.09ID:06ru4abg
windowsのbrackets使っているひといませんか?
設定で教えて欲しいのですが
flake8 lintの設定ができなくて
defaultPreferences.jsのpathを変えてみたのですが
うまく表示されません。
わかるかたがいれば教えて下さい。
0309デフォルトの名無しさん2015/06/29(月) 17:22:56.95ID:rbxhDT3n
>>302
http://kanae.2ch.net/test/read.cgi/php/1329996601/l50
専用スレが合ったのであっちで回答しました
0310デフォルトの名無しさん2015/06/29(月) 18:37:37.37ID:mk7+9Q5S
>>309
トンクス
0311デフォルトの名無しさん2015/06/29(月) 23:40:20.99ID:WnsvTum+
>>302
BottleとSqlalchemyで基本を掴んだらPyramidかDjangoへ。
0312デフォルトの名無しさん2015/06/30(火) 00:11:30.42ID:3BrZHobQ
python2のドキュメントに関する質問です
ドキュメントに載っていないようなコンストラクタの引数はどこで見つけているのでしょうか?
例えばasyncore.dispatcherにキーワード引数で、
sockという引数がコンストラクタの引数として指定できるようなのですが、
ドキュメントには書いてありません

このような引数はソースコードを直接読む以外に見つける方法はないのでしょうか
03133082015/06/30(火) 01:14:19.91ID:U4iTFw9A
bracketsをやめて正式版がでたatomに移行しました。
atom-beautifyでautopep8も動くし
linter-flake8でflake8も使えるようになりました。
ただautocomplete-plus-python-jediをインストールしたのですがエラーで動きません。
これが動くといいのですが
0314デフォルトの名無しさん2015/06/30(火) 01:16:51.36ID:BpE3E8n5
自分で定義した関数は取得できるが組み込みの引数はできない
ソースコードを読むしかない
0315デフォルトの名無しさん2015/06/30(火) 01:17:54.51ID:BpE3E8n5
>>313
何をどうしたのか
何のエラーがでたのか
こういう情報をきっちり書いてもらわないと無視されるよ
0316デフォルトの名無しさん2015/06/30(火) 02:54:11.78ID:FzvalkoK
>>305
「みんなのPython 第3版」を読む
03173132015/06/30(火) 09:03:30.25ID:YGccIQHd
>>315
すみません。
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を押すと
https://github.com/tinloaf/autocomplete-plus-python-jedi/issues/21
に飛びます
https://github.com/tinloaf/autocomplete-plus-python-jedi/issues/21
0318デフォルトの名無しさん2015/06/30(火) 12:53:01.89ID:j2uh7iS9
atom使ってないから知らないけどプラグインがatomの正式版に対応してないんじゃないの?
Emacしか知らないからそんなクソみたいなエディタ使ったことないから知らないがソフトウェア板で聞いたほうが早いんじゃないのか
http://anago.2ch.net/test/read.cgi/software/1393852602/l50
0319デフォルトの名無しさん2015/06/30(火) 12:56:33.08ID:j2uh7iS9
あとjedi開発者のreadmeに載ってたけどhttps://atom.io/packages/autocomplete-pythonとか他のプラグインを試してみるとか
03203172015/06/30(火) 14:21:31.34ID:YGccIQHd
>>318-319
ありがとうございます。
他のインストール時にバージョンが対応してない表示がでるのもあるので
インストール時に警告はでていないので大丈夫だと思います。
autocomplete-pythonも入れてみたのですがこちらも動きません。(エラーはなし)

ATOMの方で聞いてみます。
パッケージインストール時にすごく重くなるので
それが原因かもしれません。
03213172015/06/30(火) 14:33:09.56ID:YGccIQHd
autocomplete-plus-python-jediの設定にある

Complete Arguments for Functions
This will cause the suggestions for functions to include their arguments

のチェックを外してみるとエラーなく使えました。
0322デフォルトの名無しさん2015/06/30(火) 21:36:46.13ID:yag52Vu+
例えばなんですが
テキストエディタ上で選択されている文字を取りだして
加工してテキストエディタに戻す
このようなことはpythonで可能でしょうか?
可能ならヒントなどを教えていただけると助かります。
よろしくお願いします。
0323デフォルトの名無しさん2015/06/30(火) 22:03:09.99ID:w+OVDF0x
これ使え
Zim - A Desktop Wiki
Developing custom tool scripts

Remove line breaks custom tool
https://github.com/jaap-karssenberg/zim-wiki/wiki/Remove-line-breaks-custom-tool
0324デフォルトの名無しさん2015/06/30(火) 23:11:52.70ID:yag52Vu+
>>323
ありがとうございます。
試してみます。
0325デフォルトの名無しさん2015/06/30(火) 23:25:45.78ID:heQlMeyV
>>322
Pythonで出来るのは「文字列を加工する」部分だけだな。
「テキストエディタ上で選択されている文字を取りだしてPythonに渡す」
「加工した文字列をPythonから受け取ってテキストエディタに戻す」
この部分は使ってるOSとテキストエディタの機能に依存する。
俺の使ってるOSとテキストエディタでは出来る。
あなたの使っているOSでもできる筈だがあなたの使っているテキストエディタでそれができるかどうかはわからない。
0326デフォルトの名無しさん2015/06/30(火) 23:52:35.57ID:yag52Vu+
>>325
レスありがとうございます。
325さんのOSは何でしょうか?
自分はmacなのですが、
OS付属のAppleScriptというスクリプトでは可能で
AppleScriptとPythonを組み合わせて使うことが出来ることまでは
ネットで調べてわかったのですが
Python単独でもできないのかなと質問してみました。
0327デフォルトの名無しさん2015/07/01(水) 00:19:56.04ID:1d/Huarr
>>326
俺もOS Xですよ。
俺が使ってるのはCotEditorというテキストエディタで、
これはAppleScriptだけでなくPythonやRuby、Perlといったスクリプトと直接文字列をやり取りすることができます。
他にもJedit XっていうテキストエディタだとAppleScriptで同様のことができるので、
その場合だとあなたのおっしゃる通りAppleScript経由でPythonを実行することになりますね。
俺の知ってるエディタだとそれぐらいですが、他にも同様のことできるテキストエディタはあると思いますよ。miとか。

あと以前使っていたコンテキストメニューのプラグインにシェルスクリプトを実行できるのがあったので、
これ使ったらテキストエディタの種類に依存せずに、文字列を選択→右クリックからスクリプトを実行、ていうのができるんじゃないかな。
ただこれは何年も使ってないので今のOSでも使えるかどうかわかりません。興味あれば調べてみますが。
0328デフォルトの名無しさん2015/07/01(水) 01:30:21.19ID:ftDlylXp
プログラミングに使えるテキストエディタならプログラム実行機能ぐらいはついてる
vimでもemacsでもsublimetextでも
0329デフォルトの名無しさん2015/07/01(水) 03:52:02.49ID:Wf/LILTy
python2.7でコーディングしてます
vimになれるためとりあえずはプラグインなしで書いてましたが、そろそろもう少し便利な機能はないものかと辛くなってきました。
pythonを書く上でおすすめのプラグインはありますか?
0330デフォルトの名無しさん2015/07/01(水) 07:22:47.74ID:WrSpGcQO
>>325
Pythonで出来るのは「文字列を加工する」部分だけだな。
「テキストエディタ上で選択されている文字を取りだしてPythonに渡す」
「加工した文字列をPythonから受け取ってテキストエディタに戻す」


MS Word なら win32com で全部 python で桶
0331デフォルトの名無しさん2015/07/01(水) 09:26:39.82ID:M4xoLOwL
>>327
詳しくありがとうございます。
普段Jedit+AppleScriptを使っていて
Pythonを使えないのかなと考えたんですけど
環境に環境次第なんですね。

CotEditor面白そうですね。試してみます。
コンテキストメニューは自分で調べてみます。
0332デフォルトの名無しさん2015/07/01(水) 10:33:09.71ID:1/FsmcZH
>>329
jedi
0333デフォルトの名無しさん2015/07/01(水) 20:47:17.26ID:20mfxfYF
>>329
Vundle

vim-indent-guids
nerdtree
nerdcommenter
gruvbox

jedi-vim
syntastic + flake8

プラグイン入れたり消したりするなら、Vundleみたいなプラグイン管理系のプラグインいれとくと楽
0334デフォルトの名無しさん2015/07/01(水) 20:54:11.62ID:NJjcaf84
クラスのインターフェイスってやらないのがpythonの流儀ですか?
0335デフォルトの名無しさん2015/07/01(水) 22:12:53.39ID:jqzDD9Cy
流儀というか
ダックタイピングの言語でやる価値はあまりないような
抽象クラスなんかは普通に活用するが
0336デフォルトの名無しさん2015/07/01(水) 22:26:13.45ID:byy0SjFx
コードにインターフェースを定義するか
ドキュメントにインターフェースを定義するかの
違いだからね。

俺としてはコードに書きたいんだが、
書いた所で守らないこともできるし、
そこら辺は実装は仕様を守らないとダメよという
ルールを強制させられる方がいいな。
0337デフォルトの名無しさん2015/07/01(水) 22:46:32.23ID:HevIhCYT
class Test:
__def show(self):
____print(100)

obj = Test()
これを
o['show']()
みたいにしてアクセスする書き方を教えてください
03383372015/07/01(水) 22:51:59.18ID:HevIhCYT
訂正

class Test:
__def show(self):
____print(100)

このクラス名を変数nameに格納して、nameからTestクラスのオブジェクトを作成する方法を教えてください
name = "Test"
0339デフォルトの名無しさん2015/07/01(水) 22:52:10.14ID:jqzDD9Cy
__getitem__を定義してshowメソッドを返せばいいのでは
0340デフォルトの名無しさん2015/07/01(水) 22:53:22.46ID:jqzDD9Cy
全然意味違うじゃねーか
原型とどめてねえ物を訂正というのかお前の出身地では
03413372015/07/01(水) 22:53:30.96ID:HevIhCYT
PHPだと
$obj = new $name()でいけるんですが
pythonで
name = "Test"
obj = name()
って書いても作れませんでした
03423372015/07/01(水) 22:54:30.23ID:HevIhCYT
>>340
すみませんorz
0343デフォルトの名無しさん2015/07/02(木) 00:11:36.17ID:/Kue2IfO
>>341
obj = globals()["Test"]
で、いけないかな?
0344デフォルトの名無しさん2015/07/02(木) 00:37:01.55ID:P1VXT2gY
>>> obj = eval("{}()".format(name))
>>> obj
<__main__.Test instance at 0x0000000002DB9BC8>
>>> exec("obj = {}()".format(name))
>>> obj
<__main__.Test instance at 0x0000000002DBB1C8>
0345デフォルトの名無しさん2015/07/02(木) 00:43:13.14ID:DrUxfqIB
そんな直感的じゃないことしないとできないもんかな
Pythonらしくないな
0346デフォルトの名無しさん2015/07/02(木) 00:45:37.33ID:P1VXT2gY
動的にコード生成するのってきもちわるいよね
0347デフォルトの名無しさん2015/07/02(木) 02:50:01.54ID:hbh5BBnI
>>337-328
わろた
0348デフォルトの名無しさん2015/07/02(木) 03:18:17.47ID:hbh5BBnI
>>341
o = globals()['Test']()

または

mo = __import__('hoge.test', {}, {}, [])
o = getattr(getattr(mo, 'test'), 'Test')[]
0349デフォルトの名無しさん2015/07/02(木) 03:21:07.48ID:hbh5BBnI
なんか変にミスった

>>341
o = globals()['Test']()

または

mo = __import__('hoge.test', {}, {}, [])
o = getattr(getattr(mo, 'test'), 'Test')()
0350デフォルトの名無しさん2015/07/02(木) 15:33:57.81ID:3bRQFrby
ひでえ記事だな
和訳ドキュメントの文章をちょっと変えてほぼ丸コピペしただけじゃん
ttp://qiita.com/sesame/items/3c03ac7ebeecb060af4f
0351デフォルトの名無しさん2015/07/02(木) 16:37:28.62ID:TdrXBmul
例え丸コピペだったとしても
お前が文句を言う筋合いは無い

例え丸コピペだったとしても彼が投稿した事で助かる人は居るかもしれないが
2chでウダウダ言って晒して馬鹿にしようとしてるお前の行動で
助かる人は誰もいない
0352デフォルトの名無しさん2015/07/02(木) 17:13:23.00ID:bMzAU0w9
>>350
非情に助かりましたありがとうございます
0353デフォルトの名無しさん2015/07/02(木) 17:27:22.39ID:WW9VzXPI
確認してきたら引用ってレベルを超えて盗作じゃねえかwww
0354デフォルトの名無しさん2015/07/02(木) 17:46:59.14ID:x/POinmv
こういう事があるから翻訳するのだるくなるんだよなぁ
0355デフォルトの名無しさん2015/07/02(木) 22:57:49.71ID:vUmxObwA
最近qiitaひどくなってきてるからな。
内容のレベルは低いし、
どこかのサイトのコピペだし。
0356デフォルトの名無しさん2015/07/03(金) 00:16:24.15ID:yuhxNbcX
噛み砕いてくれてるブログ記事は初心者にとってとはてもありがたいです。
0357デフォルトの名無しさん2015/07/03(金) 00:41:23.15ID:C6li+8cU
どこも噛み砕かれてないという件
0358デフォルトの名無しさん2015/07/03(金) 11:29:24.04ID:OisPLDc8
リストから、特定の文字列を含む要素を抽出する上手いやり方ってありますか?
0359デフォルトの名無しさん2015/07/03(金) 11:38:00.16ID:ZITOwf17
>>358
サンプルがわからないので適当に

data = ['aaa','bbb','ccc','abc','cba']


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


print(test)
0360デフォルトの名無しさん2015/07/03(金) 11:59:35.22ID:oEEd62YQ
[i for i in ...
0361デフォルトの名無しさん2015/07/03(金) 13:18:03.16ID:2GnRhJxr
>>358
data = ['aaa','bbb','ccc','abc','cba']
test = filter(lambda word: "a" in word, data)
print(*test)
0362デフォルトの名無しさん2015/07/03(金) 20:02:37.48ID:Ms6a58jc
>>361
このwordって何?
0363デフォルトの名無しさん2015/07/03(金) 20:18:00.49ID:Ms6a58jc
あ、lambda <引数>:<式>か
ちなみに最後の,dataって何してるの?
"a" in data,data
すると真偽と配列が全部帰ってくるけど、内部でどういう処理が行われてるわけ?
0364デフォルトの名無しさん2015/07/03(金) 20:23:05.96ID:eeinSX8C
あ?調子のんなハゲ
0365デフォルトの名無しさん2015/07/03(金) 21:26:15.70ID:A29HzBau
馬鹿なことを聞いている気がするが教えて欲しい
pypiでclassifier+キーワード検索ってどうやるんだろう?
そもそもできるのか?
0366デフォルトの名無しさん2015/07/03(金) 22:13:42.22ID:VwEn5rR7
xmlrpcのインターフェースはsearchとbrowseで完全に分離されてるよね。
searchではclassifierが使えず、browseでは検索ができない。
なぜこんな仕様にしたんだろう。
0367デフォルトの名無しさん2015/07/03(金) 23:02:34.50ID:QSBaxiRc
import cv2

とだけ書かれたコードを実行しようとすると

UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 20: ordinal not in range(128)

と出てしまいます
moduleが見つからないというわけではなさそうなのですが。。。
解決法を御教示していただきたいです
0368デフォルトの名無しさん2015/07/03(金) 23:17:24.97ID:ONNQmPA2
2chにエラーをコピペする前にグーグルでエラーを検索しようとは考えないんだろか

あと質問するときにバージョンすら書かないのはなんでなんだろか

いくらくだスレだって最低限の礼儀っていうかそういうのあんだろ
0369デフォルトの名無しさん2015/07/03(金) 23:36:28.31ID:KFfcBnqi
>>363
自己解決しました
最後の,dataってfilterの第二引数だったのね
0370デフォルトの名無しさん2015/07/03(金) 23:43:56.37ID:IVmenh/A
>>367
ぐぐったら1ページ目にいくつか解決策が見つかったけどもうみたの?
0371デフォルトの名無しさん2015/07/04(土) 23:29:04.76ID:RxNq2g3r
とりあえず2は早く滅びて欲しい
非英語圏の初心者は辛すぎでしょ
0372デフォルトの名無しさん2015/07/05(日) 05:20:08.61ID:XIvEwRaJ
たぶん、0x82 みたいな文字が無くて、
decodeできないのだろう

Rubyや一般的なエディタなどでは、
不明な文字は、? に置き換えられる
0373デフォルトの名無しさん2015/07/06(月) 17:43:18.44ID:3teVeJk8
そうか不明な文字は例外で全部?にすればいいのか
0374デフォルトの名無しさん2015/07/06(月) 21:45:11.64ID:m90nGVji
try使うってこと?いやそれはまずいよ
decode encodeの時点で変換できない文字に対する立ち振る舞いを設定するのがいい
errorっていうオプションあるんでそこでignoreにしたら無視、つまりスルーする
置換したりもできる
0375デフォルトの名無しさん2015/07/06(月) 23:11:52.08ID:REKKz9Ad
"もじれつ�U"の様な機種依存文字を含む文字列を
%xxの形にエスケープされたものを、urllib.parse.unquoteしようとした時
�Uが消えてしまうのですが、消えない様にする方法を教えてください。
0376デフォルトの名無しさん2015/07/07(火) 02:45:51.12ID:JbsGCfj6
UTF-8でないコードでパーセントエンコーディングされてると思われるので
unquoteの第二引数で正しいencodingを指定する
0377デフォルトの名無しさん2015/07/07(火) 07:39:17.88ID:rV+pZ+JS
>>376
もじれつ の部分はeuc-jpでunquoteできているのですが
�U だけができない。
encoding変えると もじれつの部分さえunquoteできない。
0378デフォルトの名無しさん2015/07/07(火) 08:06:36.04ID:eOuV1Gqp
フォント
0379デフォルトの名無しさん2015/07/07(火) 08:09:35.56ID:Ge7MDcMZ
消えるってどう消えるんだよ
\uFFFEで置換されるはずだろ
0380デフォルトの名無しさん2015/07/07(火) 08:19:26.66ID:Ge7MDcMZ
もし\uFFFEへの置換をさせたくないなら
CodecInfoを定義してcodecs.registerで登録する
あるいはエラー処理関数を定義してcodecs.register_errorで登録する
0381デフォルトの名無しさん2015/07/07(火) 08:22:57.78ID:Ge7MDcMZ
あとはbackslashreplace使えば
表示はできないけど情報は落ちない
0382デフォルトの名無しさん2015/07/07(火) 08:30:53.40ID:oR9xV2kd
pythonって主にどういう分野で使われているんですか?
pythonじゃないと出来ない、或いは他の言語だと書きづらいなどの処理が有るんですか?
昔、私の知合いの超優秀な人がpython絶賛していたので関心有ります。
0383デフォルトの名無しさん2015/07/07(火) 08:42:16.93ID:JbsGCfj6
>>377
それはコードがEUC-JPじゃない
euc_jis_2004かeuc_jisx0213を試してみて
0384デフォルトの名無しさん2015/07/07(火) 09:08:41.41ID:N/5cXPjN
文法にそこまで気を使わなくていいので、
プログラマー以外にも人気。
自分は物理シミュレーションに使用してる。
0385デフォルトの名無しさん2015/07/07(火) 09:55:01.60ID:Ge7MDcMZ
日本でPython使っている奴の98%は統計や言語処理、機械学習などの研究目的
ソースは俺調べ

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

C、JAVA、JavaScriptとは守備範囲が違いすぎて比較にならないけど、
RubyPerlPHPが出来ることは全部できた上でアカデミックな方向に突出して強いのがPython
0387デフォルトの名無しさん2015/07/07(火) 10:05:32.86ID:H29+ArEW
たのしいRuby 第4版、2013
みんなのPython 第3版

この2冊を、この順で読んで。

そうすれば、この2つの言語が、
ほぼ同じだと言うことがわかる
0388デフォルトの名無しさん2015/07/07(火) 10:24:52.36ID:oR9xV2kd
>>384,385,386,387
詳しい説明ありがとうございました。
私の知り合いも大学の数学の先生でした。確かに研究者好みなんですね。
最近Webプログラミング勉強中でJavaScriptをある程度習得できたので
次にRuby,Perl,PHP,Pythonのどれかをやってみようと思ったのですが、
Pythonにします。
0389デフォルトの名無しさん2015/07/07(火) 12:18:30.59ID:NbSxZEiE
>>380
replaceした場合でしょ?置換は
ignoreしてるから
ignoreやめると例外が発生する

>>383
これ試してみます
0390デフォルトの名無しさん2015/07/07(火) 12:38:03.08ID:Ge7MDcMZ
デフォルトはreplaceだろうが
ignoreしてるって一言でも断りがあったかボケナス
0391デフォルトの名無しさん2015/07/07(火) 21:11:38.84ID:NbSxZEiE
>>390
失敬
0392デフォルトの名無しさん2015/07/07(火) 21:59:34.86ID:N4S2iI2W
python3.xで日付を与えるとその日が月の何周目か返してくれるってのを探してるんだけど誰か知らない?
0393デフォルトの名無しさん2015/07/07(火) 22:50:53.31ID:i7XTlt4K
月の何周目ってどういう意味
その月の何回目の何曜日っていう意味
それともカレンダー表示した時の何列目っていう意味
0394デフォルトの名無しさん2015/07/07(火) 22:52:32.02ID:oR9xV2kd
>>393
多分後者じゃあないか
0395デフォルトの名無しさん2015/07/07(火) 23:53:42.28ID:NbSxZEiE
euc_jis_2004で解決しました。
ありがとう
0396デフォルトの名無しさん2015/07/08(水) 02:56:45.44ID:xAyjZhMy
後者なら
datetime型のweekdayで、与える日付の月の1日(ついたち)の曜日を取得
→(調べる日+1日の曜日シフト) / 7
でわかるんじゃないかな
1日の曜日シフトってのは、例えば左端が日曜日始まりのカレンダーなら
日曜日なら + 0
月曜日なら + 1
って感じ
割った答え+1で行がわかる
あまりで列がわかる
0397デフォルトの名無しさん2015/07/08(水) 05:21:29.45ID:Y+kE74C9
import calendar
0398デフォルトの名無しさん2015/07/08(水) 15:14:08.50ID:0vLepN94
wxPythonってもしかして3.x系使えない…?
0399デフォルトの名無しさん2015/07/09(木) 00:09:04.93ID:nypWSsiv
http://docs.python.jp/3/library/xml.html
このページものすごく大切なことが書いてあると思うんだけど翻訳がおかしい
0400デフォルトの名無しさん2015/07/09(木) 18:45:02.70ID:wjer6XlU
おかしいと感じるほどの英語力とPython力があるのなら
君が翻訳担当になってもいいのよ?
0401デフォルトの名無しさん2015/07/10(金) 04:14:09.67ID:a8irpPFK
>>398だけど、

誰か3.x系で使えるおすすめのGUIのライブラリ?教えてください
0402デフォルトの名無しさん2015/07/10(金) 05:25:43.26ID:tfwLFx83
言語的にアカデミックな方向に特化してるってことは、やっぱりこのスレにはポスドク難民とか高学歴ニートがけっこういたりすんのかね
0403デフォルトの名無しさん2015/07/10(金) 09:37:54.98ID:kVbIsLFs
Python3
数万行のテキストファイルをイテレータで、最終行から1行目方向に
読み出したいんですけど出来ませんか?
メモリーは数十KBしか使えないので、readlinesで読みだして
逆順に変換するのはムリなのです。
0404デフォルトの名無しさん2015/07/10(金) 10:01:49.15ID:cwv+HnzL
seek
setpos
0405デフォルトの名無しさん2015/07/10(金) 10:10:10.14ID:cwv+HnzL
ごめんsetposは忘れて

http://qiita.com/t2y/items/ef66c871731bddd8ef1d
0406デフォルトの名無しさん2015/07/10(金) 10:54:04.29ID:01rWRpTa
>>402
ネットワークエンジニアだけど使ってるよ
0407デフォルトの名無しさん2015/07/10(金) 12:17:44.11ID:0KQmgFVg
>>403
メモリーが少ないなら、1行の長さ制限が必要
0408デフォルトの名無しさん2015/07/10(金) 21:27:20.43ID:tfwLFx83
>>406
仕事で使うの?趣味?
0409デフォルトの名無しさん2015/07/10(金) 21:47:28.48ID:ClCVGawJ
>>403
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では無理。
が、>>403への答え。
0410デフォルトの名無しさん2015/07/10(金) 21:56:08.47ID:ClCVGawJ
>>403
素のPython3では無理だ。
Cで、offsetをmemberに持つ一方向listの構造体作る戦法でいこう。
readlineで読み込む毎にoffset記録していく。
しかないよ。

Cでmemory切り詰めても数十kbのmemoryではぎりぎりだもの。
数十を具体的に言うとどれくらい?10?40?70?
0411デフォルトの名無しさん2015/07/10(金) 21:58:40.63ID:UloSnGtD
>>403
http://stackoverflow.com/questions/2301789/read-a-file-in-reverse-order-using-python

上から6番目のreadlines_reverseしか試してないけどしっかり動いてそう
0412デフォルトの名無しさん2015/07/10(金) 22:15:23.79ID:ClCVGawJ
>>411
def filerev(somefile, buffer=0x20000):

これか、最後まで一度飛んでおいて、
buffer分、後戻りして読み込んでsplitして、
またbuffer分、後戻りして、、、
の繰り返しでいけるんだ。
勉強になりました。
2chすげーな!
0413デフォルトの名無しさん2015/07/11(土) 13:00:42.51ID:Evu65U1k
>>401
PySideでいいんじゃね。pipでさくっとインストールできるし。
あとどうしても3系でwxPythonがいいならここからダウンロードできる。
http://wxpython.org/Phoenix/snapshot-builds/
0414デフォルトの名無しさん2015/07/11(土) 21:56:05.14ID:rYJP34gT
会社のソラリス上のpython2.6でどうしてもほしい機能がある。助言をくれ。

ログ.logってテキストファイルの中身が下記のようだとして

0000000a 11111111 0000000b 22222222
0000000c 33333333 0000000a 11111111

ログ.log ファイルに対して0000000aを指定すると

11111111
11111111

という風にラベルの後のデータだけ抜き出したファイルを作成してくれるスクリプトなのだけど。

python勉強中だがこのスクリプトが急ぎでほしい
教えてくれ
0415デフォルトの名無しさん2015/07/11(土) 22:06:49.82ID:oXXQGP14
sedだけで出来そうな気がするwww
0416デフォルトの名無しさん2015/07/11(土) 22:13:09.76ID:rYJP34gT
>>415
sedって知らなかったありがとう。スクリプトできれば月曜日にほしいから今日明日で頑張って作る予定
今日は家のPCにubuntu入れたよ
0417デフォルトの名無しさん2015/07/11(土) 22:20:06.39ID:frozGINP
0000000a 11111111 0000000a 0000000a
0000000c 0000000a 0000000a 11111111
っていうパターンがあった場合はどこを抜き出したらいいの
0418デフォルトの名無しさん2015/07/11(土) 23:06:47.60ID:6O+dLUsd
>>417
0000000a 11111111 0000000a 0000000a
0000000c 0000000a 0000000a 11111111

なら
11111111
0000000a
0000000c
0000000a
11111111
にする

超単純に、指定した4バイトのパターン(例では0000000a)を見つけたらその直後の4バイトを抽出したい。

建設的な指摘に感謝!
0419デフォルトの名無しさん2015/07/11(土) 23:36:30.53ID:oXXQGP14
ここまで書いたけど後がよくわかーんなーい、しくしく(;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)
0420デフォルトの名無しさん2015/07/11(土) 23:45:58.02ID:oXXQGP14
>>418
あ、>>419は開業後の000000cには対応できんな・・・
0421デフォルトの名無しさん2015/07/12(日) 01:51:01.90ID:V3tyjNbC
# -*- 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バイトとか欠損データは考慮してない
0422デフォルトの名無しさん2015/07/12(日) 07:26:47.55ID:ixUGyiXY
2行ずつ読むぐらいなら、前の文字列を覚えておく方が楽
0423デフォルトの名無しさん2015/07/12(日) 07:45:02.33ID:EY9Ri2mE
>>419
>>421
ありがとう!
テストしてみる!!
0424デフォルトの名無しさん2015/07/12(日) 07:58:29.04ID:ixUGyiXY
....は空白の代わり

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
0425デフォルトの名無しさん2015/07/13(月) 23:26:07.79ID:bcTxDEgF
大変助かりました!
ありがとう!!
0426デフォルトの名無しさん2015/07/14(火) 22:37:05.11ID:apYZaEjz
rubyの[1..10]みたいなのってpythonにはありませんか?
range(1, 11)ってやるのが一番短いですか?
0427デフォルトの名無しさん2015/07/14(火) 23:41:42.95ID:Iv0YaWuW
んだんだ
0428デフォルトの名無しさん2015/07/15(水) 05:03:39.16ID:W+0V5wr0
なんで未満指定なんだろうね
0429デフォルトの名無しさん2015/07/15(水) 08:03:14.49ID:Es/kK6ei
スライスと同じ理由かね
本当のところはguidoに聞かないと分からないけど
0430デフォルトの名無しさん2015/07/15(水) 08:24:23.35ID:Es/kK6ei
ちなみにスライスの理由というのは

>>> s = 'abcdef'
>>> s = s[0:3] + s[3:len(s)]
True

となるようにしたかったという話
0431デフォルトの名無しさん2015/07/15(水) 08:46:24.00ID:Es/kK6ei
よく見ると等号が足りない
0432デフォルトの名無しさん2015/07/15(水) 11:00:07.38ID:EyOqG4HO
単にC言語の感覚と同じにしたじゃんない?
Pythonはあえて残してる部分がちらほら見受けられる

int i;
for (i = 5; i < 10; i++) {
    printf("%d\n", i);
}

for i in range(5, 10):
    print(i)
0433デフォルトの名無しさん2015/07/15(水) 11:20:15.06ID:PEfcCBMc
>>429
rangeは関数だから気に入らなきゃどうとでも出来るから、スライスの方が重要だね。

a=range(4)
a[4:0:-1]
ってやると、不思議な感じになる。

正しくは、a[4::-1]とかa[::-1]
0434デフォルトの名無しさん2015/07/15(水) 14:51:31.70ID:LSJGAlFE
pythonがどういう流れで動くのかを図で解説している記事ありませんか?
0435デフォルトの名無しさん2015/07/15(水) 15:14:18.08ID:Es/kK6ei
流れってなんだ
パソコンはなぜ動くのかレベルの話か?
0436デフォルトの名無しさん2015/07/15(水) 15:14:50.48ID:PDrqXUBW
プログラムはなぜ動くのかって本があったと思う
0437デフォルトの名無しさん2015/07/15(水) 22:29:36.34ID:n27Ug+NB
python で作った web アプリをスマートフォンのストレージに保存して、それを任意のブラウザから実行することは可能ですか?

python で作ったスクリプトをスマートフォンで動かしたいのですが、QPython や SL4A は入れたくないので、上記の発想に至った次第です。

なお、私はそもそも Web アプリが何なのかもよくわかっていないので、トンチンカンな質問をしているかもしれません。ご容赦ください。
0438デフォルトの名無しさん2015/07/15(水) 22:57:36.67ID:KI5mj/c8
解説するのは面倒くさい
無理だと思え
04391682015/07/15(水) 22:59:26.83ID:n27Ug+NB
>>438
ありがとうございます。
別の方法を考えます。
0440デフォルトの名無しさん2015/07/16(木) 00:05:47.22ID:A7eEJIoC
>>437
ローカルストレージ使うんだったらHTML5とJavascriptでアプリ作るとか?
Pythonは関係ないか
0441デフォルトの名無しさん2015/07/16(木) 04:33:03.68ID:MREKRM2C
brython
0442デフォルトの名無しさん2015/07/16(木) 07:10:05.39ID:y2OuNFMd
スマホでPythonを動かしたいってどんな用途なんだ
Pythonはテキストデータ加工専用言語だと思ってる俺には想像できん
0443デフォルトの名無しさん2015/07/16(木) 07:22:22.31ID:LIw9URyA
馬鹿には無理
0444デフォルトの名無しさん2015/07/16(木) 07:48:07.99ID:/b6luSAZ
>>437
入れたくないならあきらめましょう
入れたくない理由なんてどうせくだらねえ理由なんだろうけど
0445デフォルトの名無しさん2015/07/16(木) 08:11:52.88ID:6s3Asl9o
>>440-441
ご紹介ありがとうございます。
brython より python スクリプトが動くこと、確認できました。
0446デフォルトの名無しさん2015/07/16(木) 16:22:40.86ID:FwVCRsFY
むしろテキストデータ加工にしか使ってない人の方が少ないと思う

多分>>437はDjangoあたりでアプリ作ってサーバーを立てずに
ローカル(スマホ)だけで動かせないか?みたいなことを模索したんじゃない
まあそういうのならブラウザで完結するJavascriptが得意中の得意なのでそっちの方がいいと思うけど
0447デフォルトの名無しさん2015/07/16(木) 16:34:14.78ID:JsJrinDm
awsにでも立てるとか
プログラミングなんて1年以内に90%飽きるから
ほとんどの人間は無料分だけで間に合うはず
0448デフォルトの名無しさん2015/07/16(木) 20:32:50.46ID:A7eEJIoC
プログラミングだけを目的にすると確かに飽きる
0449デフォルトの名無しさん2015/07/16(木) 20:59:08.62ID:8UcfF16i
rubyのbundlerみたいにプロジェクトごとにパッケージを分けたいんですが
venvやvirtualenvだと仮想環境を分けるのでpython本体をアップグレードした時に再度構築し直さないといけないのが面倒です
0450デフォルトの名無しさん2015/07/16(木) 21:01:28.55ID:8UcfF16i
ググって便利なものをみつけました
https://github.com/Deepwalker/pundler
0451デフォルトの名無しさん2015/07/18(土) 02:12:54.65ID:WgF9+eDU
Qpython入れている奴いるのか?
あれ中華アプリじゃないか。
0452デフォルトの名無しさん2015/07/18(土) 07:12:47.04ID:oDsD2wef
>>426-433
Rubyの範囲演算子は、「..」「...」の2つある

3..5 → 3,4,5 (5を含む)
3...5 → 3,4 (5未満)

また負のインデックスは、末尾から数える
0..-1 → すべての要素を表す
0453デフォルトの名無しさん2015/07/18(土) 07:31:19.49ID:lzEf6NGn
>>452
それがどうした?
それは>>426-433の会話に何か有効な知見を加えるのか?
0454デフォルトの名無しさん2015/07/18(土) 07:55:07.39ID:OXmClLpi
他の言語はこんなことができるんだぞ!と書かれてもここPython スレだしなぁ
うんうんそうだねとしか
0455デフォルトの名無しさん2015/07/18(土) 08:00:34.26ID:jN6NYLvO
そんな目くじらたてることかよ…
0456デフォルトの名無しさん2015/07/18(土) 09:04:50.07ID:OGP7IcNL
まあ、ここ3日ほどのkadongo38川上量生と
shi3z清水亮ほど攻撃される理由があるとは思えない
0457デフォルトの名無しさん2015/07/18(土) 11:10:25.55ID:/T3VXxy+
川上さんまたなんかやらかしたん?
0458デフォルトの名無しさん2015/07/18(土) 12:01:42.45ID:/T3VXxy+
自己解決
これが原因か
http://www.amazon.co.jp/dp/4004315514
0459デフォルトの名無しさん2015/07/18(土) 12:29:40.59ID:/T3VXxy+
これは貼れないのか
http://togetter.com/li/847364
0460デフォルトの名無しさん2015/07/18(土) 12:49:43.97ID:o4iyQyYi
"{:02d}".format(1)

この2の部分を変数aに入れたいんですがエラーでダメでした
"{:0" + a + "d}".format(1)

TypeError: Can't convert 'int' object to str implicitly

変数で値を管理したいんですがどうかけばいいですか?
0461デフォルトの名無しさん2015/07/18(土) 12:51:37.26ID:aTAx2eLl
あとスレチみたいなので目玉付く前に引っ込みます
http://anond.hatelabo.jp/20150716100058
http://togetter.com/li/847777
http://coresugo.com/kadowa-kawakami/
http://d.hatena.ne.jp/shi3z/20150718/1437173802
http://d.hatena.ne.jp/shi3z/20150717/1437087254
ほんとうにありがとうございました
0462デフォルトの名無しさん2015/07/18(土) 12:54:13.58ID:aTAx2eLl
>>460
"{:0" + str(a) + "d}".format(1)
0463デフォルトの名無しさん2015/07/18(土) 12:55:24.44ID:47zg+pIq
("{:0" + str(a) + "d}").format(1)
0464デフォルトの名無しさん2015/07/18(土) 13:11:33.78ID:o4iyQyYi
>>462
>>463
カッコで囲むと望む結果になりました
何でカッコつけたらえらーにならないんでしょうか
http://docs.python.jp/3/library/stdtypes.html#str.formatみましたがこれについて載っていません
0465デフォルトの名無しさん2015/07/18(土) 13:15:31.87ID:15GkacxM
>>460,464
>>> a = 2
>>> '{:0{}d}'.format(1, a)
01
0466デフォルトの名無しさん2015/07/18(土) 16:19:55.60ID:KW5V467a
すいません、pipの環境をつくろうと思い
get-pip.py
を持ってきたのですが、インストールする方法が分かりません・・・
インストールと言う言葉が合っているのかすら不明ですが。。
0467デフォルトの名無しさん2015/07/18(土) 16:51:55.45ID:KW5V467a
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

と、出てしまうのです。。
0468デフォルトの名無しさん2015/07/18(土) 17:24:00.59ID:iPFcwwwg
>>467
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...
0469デフォルトの名無しさん2015/07/18(土) 17:31:28.07ID:KW5V467a
>>468
すいません、IDLE ってコレ、エディタであって、実行うんぬんとは関係なかったんですね・・・
0470デフォルトの名無しさん2015/07/18(土) 22:40:17.94ID:q+K0D9Kt
>>467
pythonでやりたいことがyoutube-dlだけならWindows用の実行ファイルが
公式で用意されてるんで素直にそれ使った方がいいよ
0471デフォルトの名無しさん2015/07/18(土) 23:19:23.25ID:KW5V467a
>>470
それを使ってたんですが、使いこなせるように勉強してみようかなぁと思ったんですが
あまりにも難しくて・・・
出直してきたほうが良さそうですねw
とりあえず、YouTube動画を保存する目的は果たしているので、少しずつ勉強してみようかと思います
0472デフォルトの名無しさん2015/07/19(日) 17:43:17.23ID:qsMi3+rD
>>462-464
>"{:0" + str(a) + "d}".format(1)

( )で囲まない場合、"d}".format(1) の部分が、
先に処理されてしまって、エラーになるのでは?


>>471
「みんなのPython 第3版」を読めば?
0473デフォルトの名無しさん2015/07/19(日) 23:26:10.54ID:Xne2bw2/
python のファイル読み込みで
ある文字列が含まれる行から下に6行とって来て処理を施して別ファイルに保存したいです。
(grep -A6 *** >>outputのようなことをしつつ処理を施したい)
うまい方法を教えてください。
0474デフォルトの名無しさん2015/07/20(月) 01:00:04.87ID:1kLeVcDt
>>473
ある文字列が二行連続で出てきた場合、どっから6行とるの
0475デフォルトの名無しさん2015/07/20(月) 04:08:04.78ID:saoe/X12
例えば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です
よろしくお願いいたします
0476デフォルトの名無しさん2015/07/20(月) 08:44:00.43ID:gMPbYmvA
python sample.py < test.exe

[sample.py]
# python3
print(input())
0477デフォルトの名無しさん2015/07/20(月) 08:47:19.23ID:gMPbYmvA
subprocessについてはドキュメントにサンプルコードがあるからみろ
http://docs.python.jp/2/library/subprocess.html
0478デフォルトの名無しさん2015/07/20(月) 22:52:39.12ID:saoe/X12
>>477
ありがとうございます

もうひとつ、.communicate()[0]の[0]ってどいう意味なんでしょうか
0479デフォルトの名無しさん2015/07/20(月) 22:56:44.04ID:mx9ysNLA
communicateはstdoutとstderrのtupleを返すので
[0]はstdoutを指す

ただstdoutしか要らないならsubprocess.check_outputを使った方が手っ取り早い
0480デフォルトの名無しさん2015/07/22(水) 00:14:40.34ID:FJtQ/kTm
>>474
ありがとうございます。
取得先のファイルは一種のログファイルで、6行毎に記録される仕様になっています。
なので、もし連続するようなことがあればエラーを返して停止する仕様にします。
素直にgrep 使ってシェル使った方が楽なんでしょうが、シェルはシェルで複雑なことが苦手っぽいので
0481デフォルトの名無しさん2015/07/22(水) 00:46:29.39ID:8iq/aP4z
>>480
文字列を splitlines してループにかけるなり、finditer を使うなりいろいろあると思うけど、なにか試した?
0482デフォルトの名無しさん2015/07/22(水) 07:03:08.97ID:UgzmRSIV
>>473
# 一致した(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
04834822015/07/22(水) 07:14:09.60ID:UgzmRSIV
>>473
>482 を修正
# 一致した(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
0484デフォルトの名無しさん2015/07/22(水) 11:01:08.40ID:Iz7cB0cB
お前ら暇だね
0485デフォルトの名無しさん2015/07/22(水) 12:54:57.53ID:4zVzLLkn
暇ってのは尊い贅沢だぞ
下々は生きるのに忙しいからな
04864822015/07/22(水) 14:10:39.80ID:UgzmRSIV
>>482-483
修正します。
ただし、漏れも、Pythonは初心者で、
ソースコードを実行したわけではないので、あしからず


>if count = 6:
if count == 6:
0487デフォルトの名無しさん2015/07/22(水) 17:00:44.90ID:Hp3Ht5RA
>>473
入力に間違いがない前提

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)
0488デフォルトの名無しさん2015/07/22(水) 17:01:50.60ID:W3xYZwPB
丸投げくんのことはスルーすけど
>>483改行削除しなくていいのか
04894872015/07/22(水) 17:02:03.67ID:Hp3Ht5RA
失礼、コピペに失敗した
0490デフォルトの名無しさん2015/07/22(水) 18:56:16.91ID:NL3fu3kF
みんな2chでインデント表現する時って全角スペース?
0491デフォルトの名無しさん2015/07/22(水) 20:12:25.74ID:GPDjs6+w
んなわけねえだろ
ちっとはあたまつかえ
0492デフォルトの名無しさん2015/07/22(水) 20:14:38.92ID:wGm6aIa7
俺はideoneに貼る
0493デフォルトの名無しさん2015/07/22(水) 20:41:58.90ID:E01nq8P+
>>491
頭使えも何も、半角スペースは一文字にまとめられちまうんだから
見た目に空白を維持するなら全角スペースを使うしかない
0494デフォルトの名無しさん2015/07/22(水) 21:01:22.54ID:Hp3Ht5RA
インデントは &160;
0495デフォルトの名無しさん2015/07/22(水) 21:03:13.62ID:Hp3Ht5RA
またミスした &#160;
0496デフォルトの名無しさん2015/07/22(水) 22:29:19.11ID:TVwdgeFO
&lt;てすと
0497デフォルトの名無しさん2015/07/22(水) 22:29:52.69ID:TVwdgeFO
&rm;
0498デフォルトの名無しさん2015/07/22(水) 23:09:04.94ID:GPDjs6+w
馬鹿には無理
0499デフォルトの名無しさん2015/07/23(木) 12:29:56.79ID:aHQAOynK
pythonのとあるプログラムで独自の画像オブジェクトがあり。

これをオブジェクトの入子に複数格納することはできないでしょうか
0500デフォルトの名無しさん2015/07/23(木) 12:43:30.19ID:ab3XmIzW
[obj1, obj2, obj3]

[[obj1, obj2], [[obj3], [obj4, obj5]]]
0501デフォルトの名無しさん2015/07/23(木) 12:50:28.05ID:aHQAOynK
>>500
できましたありがとうございます。
0502デフォルトの名無しさん2015/07/23(木) 12:59:11.20ID:ab3XmIzW
いいのかよ
独自の画像オブジェクトって情報は何か意味があるのかと思ってた
0503デフォルトの名無しさん2015/07/23(木) 13:04:03.50ID:aHQAOynK
>>502
はい、ちゃんとその後の処理でも画像オブジェクトとして機能しましたので
問題ないようです。
0504デフォルトの名無しさん2015/07/23(木) 13:54:21.82ID:JtElrAyf
くらくらするな
0505デフォルトの名無しさん2015/07/23(木) 14:47:38.00ID:P0N6qRSq
オブジェクトの入れ子って3重くらいまでなら常識の範囲内か?
0506デフォルトの名無しさん2015/07/23(木) 15:02:31.50ID:IBTyWZjg
>500 のことなら
入れ子になってるのはリスト構造だけで
オブジェクトの階層は一つしかないぞ
0507デフォルトの名無しさん2015/07/23(木) 15:15:00.12ID:WUAvzM35
意図的にツリーにしてるなら何段でもいいんじゃないの
build.xmlとかpom.xmlは見ると頭痛がするが
0508デフォルトの名無しさん2015/07/23(木) 15:58:49.63ID:IBTyWZjg
クラクラクラクラ
0509デフォルトの名無しさん2015/07/24(金) 19:44:48.05ID:Sy3v921p
class A():
_def __init__(self):
__print('a' in self)

A()

self.aが存在するか調べたいんですが
TypeError: argument of type 'A' is not iterable
ってエラーになります
どうやって調べるのか教えてください
0510デフォルトの名無しさん2015/07/24(金) 19:46:37.27ID:3P6rWc8H
hasattr使え
0511デフォルトの名無しさん2015/07/24(金) 19:49:10.95ID:h3JVcYsp
class A():
_def __init__(self):
__print(getattr(self, 'a', None))
0512デフォルトの名無しさん2015/07/24(金) 19:53:13.65ID:Z3gsNXcC
self.a
0513デフォルトの名無しさん2015/07/24(金) 20:12:48.64ID:h3JVcYsp
例外出ないのか
0514デフォルトの名無しさん2015/07/24(金) 22:27:25.98ID:Z3gsNXcC
出たらいかんのか?
0515デフォルトの名無しさん2015/07/26(日) 03:07:51.49ID:lUWpyqrt
たまに使うことがあるんですが、
a = list(range(1000))
len(str(len(a))) ← こうやってるんですが、
桁数をとるのにいい方法ってありますか。
0516デフォルトの名無しさん2015/07/26(日) 05:03:08.65ID:FlzLI2sd
log10()
0517デフォルトの名無しさん2015/07/26(日) 11:07:42.80ID:/x7wsywu
こことお勉強スレ何でスレ分かれてるのかおしえて
0518デフォルトの名無しさん2015/07/26(日) 11:47:14.12ID:N2oZlVgp
くだすれとは…
多少揺らぎはあるが「くだらない質問はここで聞けスレ」の略
同じ言語で2つ質問スレが立っている場合、
片方は高確率でくだすれを源流としている(ふらっとC#とか)

くだすれが立つとき、本スレは当然くだらない質問で荒れている
荒れているが、その荒れも永遠に続くものではないので
今のように分かれている意味が分からない時期もある
0519デフォルトの名無しさん2015/07/26(日) 13:36:52.96ID:wxu4sip9
モジュールのリロードについての質問なのですが

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
>>> (スクリプトを実行)
(→実行結果はソースの変更が反映されていない)
0520デフォルトの名無しさん2015/07/26(日) 14:01:49.41ID:FlzLI2sd
reload(mymodule)
0521デフォルトの名無しさん2015/07/26(日) 15:31:07.59ID:wxu4sip9
>>520

>>> import mymodule
>>> tmp.reload(mymodule)
>>> from mymodule import MyClass

ですね。ありがとうございました。
0522デフォルトの名無しさん2015/07/26(日) 17:38:46.20ID:sjjuAaNb
こんにちわ、Pythonの超初心者です…
PYCファイルからPYファイルへのデコード(逆コンパイル)の方法をおしえてください
いくつかsetup.pyをダウンロードしてはcmdでやってみたんですがどうしても逆コンパイルでつまづいでしまいます…
お願いします助けてください
0523デフォルトの名無しさん2015/07/26(日) 17:56:10.36ID:N2oZlVgp
超初心者がやるようなことじゃねえと思うがな…
デコンパイルしないと命を失うくらいに、どうしてもそれが必要か?
0524デフォルトの名無しさん2015/07/26(日) 17:58:50.05ID:sjjuAaNb
>>523
どおおおおおしても必要です
一度やり始めたからにはきちんとできたほうがいいですし…
お願いします!
助けてください!
0525デフォルトの名無しさん2015/07/26(日) 18:14:02.03ID:N2oZlVgp
uncomyle2は普通に動いたよ
http://pastebin.com/BM4FZGxa

3はためしてないけど、まあ動くんじゃないか
0526デフォルトの名無しさん2015/07/26(日) 18:15:38.65ID:sjjuAaNb
>>525
すいません
やり方軽くでいいんでおしえてください・・・
0527デフォルトの名無しさん2015/07/26(日) 18:30:37.89ID:N2oZlVgp
コンソールのログなんだからやり方も糞もねえだろ
0528デフォルトの名無しさん2015/07/26(日) 18:39:58.48ID:sjjuAaNb
>>527
すいませんぼく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直下にフォルダを作成してやってるのになんでしょうかね…
おしえてください!
0529デフォルトの名無しさん2015/07/26(日) 18:55:11.11ID:FlzLI2sd
マルチしてるので回答中止な
0530デフォルトの名無しさん2015/07/26(日) 19:15:08.45ID:C5DOIUuU
初心者じゃなくてもそんなことをする機会ってないんじゃないかな
あとWindows使ってるからLinux分かりませんって言い訳にもならない
せっかくサードパーティ製ライブラリを教えてもらったんだからVirtualBoxにLinux入れて試せばいいんじゃないでしょうか
0531デフォルトの名無しさん2015/07/26(日) 19:47:03.10ID:FlzLI2sd
>>530
>あとWindows使ってるからLinux分かりませんって言い訳にもならない

おいおい
そのりくつはおかしい

>Linuxと違ってよくわからなかったです

っつってんだから528の主張はLinuxならよくわかるってことだ

あんたが528本人なら話は別
0532デフォルトの名無しさん2015/07/26(日) 19:50:48.41ID:N2oZlVgp
僕もドザーには厳しく当たることにしてるのでこれ以上は嫌ずら
ドザーは死ね
クソマカーも死ね
0533デフォルトの名無しさん2015/07/26(日) 21:28:05.08ID:52hX4QEC
>>531が言ってることがよく分からなかった
とりあえずマルチ4ネって事で終了
0534デフォルトの名無しさん2015/07/26(日) 21:36:07.12ID:2fAT+AOZ
530は別に変なこと言ってないよ。
Linux環境がないからVirtualBoxにLinux入れて試せってことでしょ。
質問者がLinux分かるって言うのは文章からは読み取れない。
0535デフォルトの名無しさん2015/07/27(月) 01:45:16.54ID:7QPACxki
質問者が命を失うぐらいに必要なんだから、もうちょっと待てば、もう質問してこれないはずだよ。
0536デフォルトの名無しさん2015/07/27(月) 02:09:36.43ID:/8w8BvTq
夏だね
0537デフォルトの名無しさん2015/07/27(月) 02:57:18.10ID:Yd8xNCrh
Windowsで使えないという事は、それだけで弱点と言えます。

NginxをWindowsで運用することはありませんが、それでもWindowsで動きます。
Windowsで動かないという事は、使うなという事を意味します。

NginxがWindowsで動かなかったら、それは使うなという意味ですから、
ここまで広がることは無かったでしょう。

PHPは糞言語と言われつつ、何故ここまで広がったのでしょう。
それはWindowsで動くからです。
Windowsに対応した途端、一気に広まったのです。
0538デフォルトの名無しさん2015/07/27(月) 07:55:28.55ID:rIdflrhB
まだ生きていましたか
仕方がありません
私がとどめを刺してあげましょう
0539デフォルトの名無しさん2015/07/27(月) 08:27:41.20ID:IMvB71j8
>>537
試したけどwindowsでもuncompyle2動くじゃん
ここから導かれる結論は

・あなたのPCにインストールされたWindowsが一般的なものと比較して糞
・あなたのPCは幻覚でPCに見えており、本当はみかん箱か何か

どちらだろう
0540デフォルトの名無しさん2015/07/27(月) 08:37:38.50ID:q4XoOyft
キチガイ荒らしが棲みついてるみたいなので
もれはもぐるわ

しばらく激高した荒らし続くかも知れんが
いなくなるまでしつこい荒らしは当分無視しろよ

スレ過疎っても荒らしのせいだけど
おまいらごめんな
0541デフォルトの名無しさん2015/07/27(月) 08:46:15.97ID:rCgM2BeH
涼しくなった頃にまたおいで。
0542デフォルトの名無しさん2015/07/27(月) 15:12:40.83ID:JJPg7kwZ
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メソッドはどうやって呼び出せますか?
0543デフォルトの名無しさん2015/07/27(月) 15:46:37.89ID:pS+RQVuM
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)
0544デフォルトの名無しさん2015/07/27(月) 15:54:36.38ID:JJPg7kwZ
>>543
pythonって親クラスに直接アクセスできるんですね

super使う方法を見つけてこれでもいけました
super(A, self).v() # 2
0545デフォルトの名無しさん2015/07/27(月) 20:09:54.88ID:gGLbTc2k
クラスを継承しない場合はobjectを継承しろって言われたことがあるんですが
これって2.7までの話ですよね?
0546デフォルトの名無しさん2015/07/27(月) 20:59:12.30ID:DdDzdSYJ
>>544
むしろAとBが無関係でも動くんだよなぁ、これ

class A:
    def mes(self):
        print('class A method')

class B:
    def mes(self):
        A.mes(self)

b = B()
b.mes()
0547デフォルトの名無しさん2015/07/27(月) 21:30:52.71ID:C09rWlqr
あ、ほんとだなんで????????????????????
class A:
def a(self):
print(1)


class B:
def b(self):
print(2)

A.a(object)
B.b(object)
0548デフォルトの名無しさん2015/07/27(月) 21:35:54.72ID:WvAcX5y2
>>545
全然違う
新スタイルクラスを使うならobjectを継承しろ、だ
しかもPython3に旧スタイルクラスは存在しない
旧スタイルクラスを使わないと殺される場合でもなければ新笥スタイルクラスを使え
0549デフォルトの名無しさん2015/07/27(月) 23:40:42.98ID:ZHHP3cwX
Pythonで作成されたアプリケーション(JETCreator)を使用しようとすると、
TypeError:cannot deepcopy this pattern object
というエラーが出て動作しません。
自分が作ったものでなく、AndroidSDK等にも初めから用意されている者なのでプログラムのエラー
ということはないと思います。(現verのSDKには入ってなく、古いverの方からjetフォルダを戴きました。)
0550デフォルトの名無しさん2015/07/27(月) 23:53:54.90ID:ZHHP3cwX
>>549
詳細

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

です。
0551デフォルトの名無しさん2015/07/28(火) 00:14:18.22ID:AL/+2NkH
>>549 >>550

すみません自己解決しました。荒らしてしまって申し訳ありませんでした。
0552デフォルトの名無しさん2015/07/28(火) 08:56:29.07ID:m3UChEdn
自己解決したならそれを書けよ
0553デフォルトの名無しさん2015/07/28(火) 09:19:38.25ID:dueMFxCg
例えゴミでもゴミから堆肥に昇格する権利くらいはあったのに
0554デフォルトの名無しさん2015/07/28(火) 16:56:02.34ID:eB7VWbpU
./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に違反します
どうやって書き直したらよいですか?
0555デフォルトの名無しさん2015/07/28(火) 17:55:48.59ID:dueMFxCg
わざわざ変な構成にしてるんだから
PEPの文句なんて無視すればいいじゃん

おすすめ構成は以下

/project/bin/entrypoint.py
/project/mypackage/__init__.py
/project/mypackage/mycode.py
/project/test/test_mycode.py
/setup.pyなど
0556デフォルトの名無しさん2015/07/28(火) 18:04:34.02ID:dueMFxCg
間違えた

/bin/entrypoint.py
/mypackage/__init__.py
/mypackage/mycode.py
/test/test_mycode.py
/setup.pyなど
0557デフォルトの名無しさん2015/07/28(火) 18:22:10.22ID:eB7VWbpU
ええええ、/直下に作るんですか?それってありなんですか?
0558デフォルトの名無しさん2015/07/28(火) 18:23:14.73ID:dueMFxCg
プロジェクトルートの意味だと思って貰えれば
0559デフォルトの名無しさん2015/07/28(火) 20:52:02.58ID:eB7VWbpU
ルートのはそういうことか、なるほどわかりました。
でもおすすめしてもらった構成だとぼくの変わらないと思うんですよね
あとPEPで決められたルールもあるので正攻法がある気がするんですよ
0560デフォルトの名無しさん2015/07/28(火) 21:05:11.62ID:9GgK2udL
>>559
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)
0561デフォルトの名無しさん2015/07/28(火) 21:14:05.11ID:ZRk8WaCe
いやPYTHONPATHにパッケージルートを入れるだけだろ
sys.pathが出てくる理由が全く分からない
0562デフォルトの名無しさん2015/07/28(火) 21:24:01.05ID:9GgK2udL
>>561
PYTHONPATH って環境変数でしょう?
環境変数をいじるのは嬉しくないと思う。
それよりは、sys.path.append()使って、
環境変数に触らずにtest_code.pyを実行したい。
というのが>>554の考えなんじゃないの?
0563デフォルトの名無しさん2015/07/28(火) 22:12:14.70ID:c7bvE2d8
setupのtest_suiteでテストパッケージを指定して
setup.pyからテストを実行すればいいんじゃない?
0564デフォルトの名無しさん2015/07/28(火) 22:14:04.86ID:dzOUJwwo
普通にインストールしてからテストすればいいんじゃないの
0565デフォルトの名無しさん2015/07/29(水) 05:39:43.45ID:qvSRsKX3
test$ ln -s ../codes codes
0566デフォルトの名無しさん2015/07/29(水) 18:48:23.87ID:C31cMPRb
def test():
・・
continue

while True:
test()

このような感じで、関数内からwhile Trueに対してcontinueする事はできますか?
0567デフォルトの名無しさん2015/07/29(水) 19:54:32.01ID:4360Pw2a
???

再帰ってこと?

多分、したい事の解決方法が間違ってる。
したい事は、なぁに?
0568デフォルトの名無しさん2015/07/29(水) 20:04:23.92ID:C31cMPRb
イカのような処理で例えばtest1()内のチェックでひっかかった場合、
test2()に移行せずwhile True:のはじめからやり直したいんです

while True:
__test()
__test1()
__test2()
__test3()

SyntaxError: 'continue' not properly in ~~~ となります
0569デフォルトの名無しさん2015/07/29(水) 20:05:23.12ID:RH5K4X2w
こんなんやろ?

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))
0570デフォルトの名無しさん2015/07/29(水) 20:12:57.40ID:3xGNJCY0
>>568
成功したら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
0571デフォルトの名無しさん2015/07/29(水) 20:18:01.61ID:C31cMPRb
>>570
やりたいことこれです、ありがとうございます。
0572デフォルトの名無しさん2015/07/29(水) 20:23:40.48ID:c3o2n8R7
pythonってちょっと齧った程度なんですが、c++,JSの経験しかない私には文法が独特な感じがしました。
関数には{}使わないんですよね。
0573デフォルトの名無しさん2015/07/29(水) 22:10:41.56ID:cW7qEMuX
{}使わなくていいのがいいところ
0574デフォルトの名無しさん2015/07/29(水) 22:16:03.57ID:4YomwHKV
インデントで構造を表現してる
この構文は賛否あると思うけど、将来{}が導入される機会は無いとわざわざ実装で表明している
0575デフォルトの名無しさん2015/07/30(木) 15:26:59.50ID:qxlVlu0T
後数ヶ月で3.5がリリースされるのに3.4の機能すらよくわかってない
PHPでいうhttp://docs.php.net/manual/ja/doc.changelog.phpみたいな変更履歴ってどこで見れますか?
0576デフォルトの名無しさん2015/07/30(木) 16:04:02.56ID:Z0rCKaW0
日本語はないよ
0577デフォルトの名無しさん2015/07/30(木) 19:31:47.32ID:cCFC5U/T
http://docs.python.jp/3/whatsnew/
から各バージョンへのリンクがあるよ
0578デフォルトの名無しさん2015/07/31(金) 00:49:42.33ID:u6UInjxJ
Pythonのインデントは百害あって一利なし
0579デフォルトの名無しさん2015/07/31(金) 07:55:33.34ID:zxXRNzjs
と思う吉宗であった
0580デフォルトの名無しさん2015/07/31(金) 08:33:05.30ID:709JoO30
暴れん坊Python
0581デフォルトの名無しさん2015/07/31(金) 22:48:07.91ID:wbH0A+JA
外部プログラムを監視させたいのだけれど、皆目わかりません。
ヒントだけでも教えていただけませんか?
0582デフォルトの名無しさん2015/07/31(金) 23:20:03.61ID:hKMcxT/u
もう少し具体的に監視って何だ
0583デフォルトの名無しさん2015/08/01(土) 00:28:01.71ID:ghun761E
whileループで一定時間経過後にループを抜けるようにしたいんですが
なにかいい書き方はありますか?
0584デフォルトの名無しさん2015/08/01(土) 00:29:18.18ID:VbjGDeVR
>>583
何でwhile何だよ?
0585デフォルトの名無しさん2015/08/01(土) 00:34:41.58ID:ghun761E
>>584
あ、確かに
forでsleepかませばいいだけですかね?
なんか変にこだわってましたすみません
0586デフォルトの名無しさん2015/08/01(土) 02:03:25.71ID:VbjGDeVR
>>585
男にはこだわりも必要さ。頑張れ。
0587デフォルトの名無しさん2015/08/01(土) 06:31:27.99ID:ed2n0PXB
>>582
証券会社のツールから株価を取得したい。
例えばハイパーSBIで銘柄のコードを入力すると株価が出力されるのだけれど、それをpythonでやる方法がわかりません。
0588デフォルトの名無しさん2015/08/01(土) 07:21:30.49ID:Ere4YETC
spyderでプログラムを起動させると
起動中はコンソールの右上に橙の三角マーク(マウスを当てるとkills the current system〜と出る)が普段は出ているのですが
たまにエラーも吐かずにプログラムが途中で停止し、そのマークも緑の再生ボタン(run again〜)になってしまいます
まったく同じプログラムを何度か起動しても、止まる場所はその時々でまちまちで、原因がさっぱりわかりません
これはいったい何が起こっているのでしょうか?
0589デフォルトの名無しさん2015/08/01(土) 10:19:03.40ID:QcdegDsY
辞書とかリストとかに要素を追加し続けると動作が重くなるんだけど、これってどうしようもありませんか?
要素数は最大で3万件弱、内容は文字列(40~60byte)をファイルから読み込んで追加していくと
読み込んでいく速度が急激に落ちてすごく時間がかかるんです。
0590デフォルトの名無しさん2015/08/01(土) 10:22:40.87ID:kwRHUfwj
読む速度が遅くなるのか
追加する速度が遅くなるのか
判然としない
0591デフォルトの名無しさん2015/08/01(土) 10:47:46.62ID:QcdegDsY
ファイルは700位あって、順次読み込んで文字列を取り出して追加するのですが
挙動を見ている限り追加する速度が遅くなっているみたいに感じます
最初はリストに追加していたのですが遅いので、辞書にしてみたら更に遅くなりました
0592デフォルトの名無しさん2015/08/01(土) 11:00:01.80ID:HfST5fY7
>>587
HyperSBIは外部プログラムとデータのやりとりをする機能を公開していない
よってPythonに限らずどんな言語でも無理
0593デフォルトの名無しさん2015/08/01(土) 11:00:15.78ID:VbjGDeVR
>>591
python以外のc++などで試してみればどうなん?
0594デフォルトの名無しさん2015/08/01(土) 11:18:26.97ID:PBQUMraI
>>591
now = time.time()
#ここで追加or読み込みなど計測したい処理
print( time.time() - now )

これでどの処理にどれだけ時間かかってるかが出力されるので原因が特定しやすいよ
オレの環境では辞書に100byte*10万件追加しても0.05秒(1件あたりじゃなくて全件で)
pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか

ちなみにリストは巨大化すればするほど後ろの方のデータを読み込むのにどんどん時間かかるけど、
辞書は一定の速度で読み書きできるはず
0595デフォルトの名無しさん2015/08/01(土) 11:41:59.68ID:AVRmVHoz
>>587
スクレイピングでググってください
丸投げではなく自分で1から勉強してください
難しいスキルは不要なので基礎からやりましょう
0596デフォルトの名無しさん2015/08/01(土) 11:43:55.24ID:AVRmVHoz
>>589
必要であればyieldを使うなりデータを分割して処理するなりしましょう
データをファイルに書き出して分割して読み込んでいく方法もあります
0597デフォルトの名無しさん2015/08/01(土) 11:47:08.78ID:AVRmVHoz
>>581
python process 監視でググってヒットした1ページ目を片っ端から読みましょう
0598デフォルトの名無しさん2015/08/01(土) 11:47:26.67ID:PBQUMraI
>>595
おそらくC系で書かれたアプリのデータをpythonで取得するのはスクレイピングとは何の関係も無い
難しいスキルが不要どころか極めて敷居高いですよ
少なくともオレにはできない
0599デフォルトの名無しさん2015/08/01(土) 13:23:00.56ID:GepW3eXw
>>589
データ用途にもよると思うけど、素直にDB使えばいいんじゃね
sqlite使ってまずオンメモリDBを試してみて、ダメならファイルベースにすればいい
0600デフォルトの名無しさん2015/08/01(土) 13:30:55.26ID:ldei0zHr
証券会社のツールってWeb上のことでしょ
データなんてクライアントツールで提供してるとこなんてないよ
0601デフォルトの名無しさん2015/08/01(土) 16:42:52.95ID:waGA91Tw
webで一般公開されてるデータなんて
20分以上遅れてるから使い物にならない
0602デフォルトの名無しさん2015/08/01(土) 16:43:35.87ID:waGA91Tw
>>594
>pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
>読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか

+1
0603デフォルトの名無しさん2015/08/01(土) 17:28:13.97ID:zsKVeSSI
ID:waGA91Twは質問者なの?具体的に説明しないとスルー対象だよ
06045872015/08/01(土) 17:43:35.94ID:omn1LlLs
>>600-601
ウェブ上で公開されているデータを取得するとしたら
http://area.autodesk.jp/column/tutorial/maya_atoz/headup_display_stock_chart/
が参考になりそうですが、銘柄の範囲と速度を考えると厳しそうです。
ちなみに今はヤフーファイナンス等でリアルタイム株価が取得できます。

あくまで目指すものですが、多くの銘柄の株価を1秒ごとに取得し、スクリーニングをかけたいと考えています。
例えば現在の株価を基準に2、4、6秒後と上がり続けている(=急騰している)→自動で発注させたい。

なんにせよプログラム自体ずぶの素人ですので、ひとまずいろいろ試してみようと思います。

>>592
株価が表示されるということはデータを受信していると認識していました。

>>595
勉強します。
0605デフォルトの名無しさん2015/08/01(土) 18:51:49.22ID:HjoVMyMH
まるで夏休みの課題みたいだな
0606デフォルトの名無しさん2015/08/01(土) 18:52:27.13ID:PBQUMraI
>>604
もちろんソフトがデータ自体を受信してるんだろうけどそれを取り出すのは厳しいよ
CだかC+で書かれてコンパイルされたソフトの仕様を完全に解析しないといけない
これはpythonとは全く無関係の話なのでここで質問しても誰も答えられない
なのでもし既に解析した強者がいて情報を公開してれば真似するしか無いかなあ

webで1秒ごとにちゃんとリアルタイム株価が表示されてるのがあれば簡単(でもそんなの無いよね?)
毎秒そのURLにアクセス(requests)してHTMLをパース(lxml or BeatifulSOAP)して株価を取得できる
括弧内はその時に使える便利なpythonライブラリの名前ね
株式投資のことは無知なので的外れな回答だったらごめん
0607デフォルトの名無しさん2015/08/01(土) 21:56:07.62ID:FWfS2vhb
import sys
sys.stdout.write("\r1")
sys.stdout.write("\r2")

これで1行を書き換えられますが、複数行を書き換える場合はどう書けばいいですか?
1
2
と2行を出力した後に
3
4
と複数行書き換える場合はどう書いたらいいですか?
0608デフォルトの名無しさん2015/08/01(土) 22:46:53.52ID:Ere4YETC
>>588
これをコマンドプロンプトから試してみたのですが
python.exeは動作を停止しましたってウィンドウが別に開きます

こう言う時って何が問題な事が多いのでしょう?メモリ?
0609デフォルトの名無しさん2015/08/01(土) 22:56:02.17ID:BLDCtSuf
すみません、sqlite3である特定のkeyで検索するときに、複数カラムで検索するにいはどうしたらいいでしょうか?
column01〜20までありまして。
'select * from table_name where column01, column02, column03 = "%s"' % keyword
また、selectの結果をカウントする方法はありますか?
こちらも調べたのですがわからず。。
0610デフォルトの名無しさん2015/08/01(土) 22:57:53.44ID:kwRHUfwj
sql入門でも読めよ
WHERE句でOR使うだけだろ
0611デフォルトの名無しさん2015/08/01(土) 23:01:35.36ID:kwRHUfwj
>>608
Windowsのそのメッセージは99%アクセス違反
どうせNULLハンドルチェック漏れだろうけど
0612デフォルトの名無しさん2015/08/01(土) 23:08:14.18ID:BLDCtSuf
>>610
ありがとうございます。
そのままかくと冗長化するんですが良い方法ないですか?
0613デフォルトの名無しさん2015/08/01(土) 23:30:08.52ID:Ejo7uJz3
>>612
良い方法を見つけて書くのが腕の見せ所でしょ?
select count(*) 〜〜;
0614デフォルトの名無しさん2015/08/01(土) 23:34:37.56ID:kwRHUfwj
愚かなスキーマでRDB使おうとしているんだから
愚かなコードを書かなければならなくなるのは全く不思議ではない
0615デフォルトの名無しさん2015/08/02(日) 00:25:45.12ID:vRy1WZiH
>>587
そういう情報は、Amazon・FaceBook・楽天などのように、
APIとして公開している会社で、この言語を使って、
こういう具合に作るなど、丁寧に作り方を教えている場合のみ、
ユーザーでもプログラムを作ることができる。
例えば、Googleの地図APIなど

APIを公開していない場合、自分でそのデータ形式を分析して、
プログラムを作るのは、まず無理

>>588
ソースコードのあちこちに、print文を書いて、
どこでエラーが起きているのかを、突き止める

それか、PyCharm を使って、デバッグするとか

>>591
700のファイルを開いて、データを読み込んで、
すぐにそのファイルを閉じているかどうかを、
ソースコードを読んで確かめる

ファイルを開き放しにしていれば、ヤバイ
0616デフォルトの名無しさん2015/08/02(日) 03:54:28.60ID:dTRZmQiN
>>614
時代はKVSだよな
0617デフォルトの名無しさん2015/08/02(日) 03:57:09.44ID:uoA7o0bf
新時代へ突入したらこうなる。

愚かなスキーマでKVS使おうとしているんだから
愚かなコードを書かなければならなくなるのは全く不思議ではない
0618デフォルトの名無しさん2015/08/02(日) 11:15:57.62ID:yYb0hZFV
学校の宿題なんですけど
整数N(0〜100)のプラスマイナス3%の範囲をランダムで出力する方法を教えてください
0619デフォルトの名無しさん2015/08/02(日) 11:17:54.35ID:yYb0hZFV
あ、あと出力される値はKで(0≦K≦(N*1.03))です
0620デフォルトの名無しさん2015/08/02(日) 11:45:58.27ID:UCQE5+8k
>>700
違う!それは違うぞ!!!
0621デフォルトの名無しさん2015/08/02(日) 12:49:18.15ID:+O2Hc9iF
700まで5日くらいかかるか
0622デフォルトの名無しさん2015/08/02(日) 12:54:45.24ID:dTRZmQiN
整数 N=0 のプラスマイナス3%の範囲って
0 ≦ 0 ≦ 0
で合ってますか?
0623デフォルトの名無しさん2015/08/02(日) 12:56:11.84ID:+O2Hc9iF
>>617
スキーマレスって「運用でカバー」並だよね
それが許されるのは緊急時だけにして欲しい
0624デフォルトの名無しさん2015/08/02(日) 14:43:31.31ID:ULysM4NQ
>>622
そのとおりであってます
0625デフォルトの名無しさん2015/08/02(日) 16:31:48.62ID:dTRZmQiN
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)
0626デフォルトの名無しさん2015/08/03(月) 00:19:42.59ID:VCBaRTzn
数値が入った大規模list(できればnumpy.array)より、大きい順に10件の数値を取得したいです
sortするとかなり遅いのでもっと効率的な方法は無いでしょうか
pythonリストはともかくnumpyにはそういう処理があるだろうと思ったのですが見つかりませんでした…
0627デフォルトの名無しさん2015/08/03(月) 02:48:06.14ID:oLPMcLov
最大値の index を pop するのを 10 回繰り返せばどうか、と初心者ながらに思ったけど、下手をすると sort よりも遅いのかな。
0628デフォルトの名無しさん2015/08/03(月) 02:53:50.78ID:TVbEWMpV
merge
0629デフォルトの名無しさん2015/08/03(月) 05:34:38.13ID:MJUDpxg+
ソートの計算量は、O(n log n)で、
log n は、nが大きくなるほど増えにくいから、
ただみたいなもの

n = 1,000 = 2^10 のとき、10 = log n だから、
10回popする間に、千個のデータをソートできる
0630デフォルトの名無しさん2015/08/03(月) 07:58:49.48ID:ocR6jyDi
>>626
numpy partial sortでググってみた。
http://stackoverflow.com/questions/10337533/a-fast-way-to-find-the-largest-n-elements-in-an-numpy-array
0631デフォルトの名無しさん2015/08/03(月) 08:10:36.45ID:mj4jP7t4
さすがstackoverflow様は貫禄があるな
0632デフォルトの名無しさん2015/08/03(月) 11:05:55.50ID:qdkLyF57
>>626
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
0633デフォルトの名無しさん2015/08/03(月) 11:10:27.07ID:qdkLyF57
>>632は、ち、小さい方から10件だったけど、別にいいよね。。。

m=10なので、
bisect.insort(L, x)
の時の
O(m log m)
は無視できるとして、
O(n(=len(ary))
で頑張ってみました。
0634デフォルトの名無しさん2015/08/03(月) 13:32:56.52ID:J4VhAduO
ユニークな値しか含まれてないリストから指定した値を削除したいんですけど
i = value in lst
if i:
____del lst[n]

これいがいのかきかたをおしえtください
0635デフォルトの名無しさん2015/08/03(月) 13:48:07.72ID:qdkLyF57
>>> 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}
0636デフォルトの名無しさん2015/08/03(月) 14:00:21.61ID:VCBaRTzn
626です 計測してみました
A list.sort
B >>627さんのmax()で10回取る方法
C >>632さんのbisect
D >>630さんのnumpy+bottleneck (ここだけnumpy)

処理にかかった時間比(N = 10**5)
A : B : C : D = 100 : 65 : 50 : 4 でした
Nが100**4以下だとBが一番遅くなるようです
pythonのlistで処理したい時はC、numpyが使える時はDを使おうと思います
大変勉強になりました 皆さんありがとうございます
06371682015/08/03(月) 14:56:31.14ID:fmwSGKmS
R なら quantile の probs に 1 - 10/n を指定して、そのパーセンタイル点以上の値をとる要素を抽出するかなぁ。
numpy は percentile で同じことができるみたいね。
0638デフォルトの名無しさん2015/08/03(月) 21:20:25.82ID:bi4hacJB
x = 1
print 1 + x

x = 2
print 1 + x
  ・
  ・
  ・
x = 1000
print 1 + x

というのを簡単に行うにはどうしたらいいんでしょうか?
0639デフォルトの名無しさん2015/08/03(月) 21:35:43.55ID:gVB3Io0I
for x in range(1, 1001):
print 1 + x
0640デフォルトの名無しさん2015/08/04(火) 12:00:37.85ID:AS8dD+yU
def a(n, m):
print(n)
if m > n : a(n + 1, m)
a(1, 10)
0641デフォルトの名無しさん2015/08/04(火) 12:01:17.71ID:AS8dD+yU
def a(n, m):
_print(n)
_if m > n : a(n + 1, m)
a(1, 10)
0642デフォルトの名無しさん2015/08/06(木) 21:40:10.45ID:UihIPuxy
pythonってphpでいうphp.iniのようにファイルで設定する必要はないんでしょうか?
0643デフォルトの名無しさん2015/08/06(木) 21:41:20.84ID:3aDya5oU
~/.pythonstartup
0644デフォルトの名無しさん2015/08/06(木) 23:18:23.30ID:wkWTZ+KR
print(10/2)
print(10>>1)

何で右シフトだと小数点切り捨てになるんですか?
0645デフォルトの名無しさん2015/08/07(金) 01:04:03.51ID:NNL5NoiN
そもそも右シフトは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
0646デフォルトの名無しさん2015/08/07(金) 08:06:00.93ID:3jYJojYP
>>644
小数点以下切り捨てと決めているから。
が答えだけど、納得しないでしょう?

だからさ、CPUの原理を勉強しよう。
bit演算について勉強すると良いよ。
あと、右shift演算は、負の整数にしても面白いんだよ。
>>> -1 >> 1
-1
>>> -1 >> 2
-1
ってなったりする。不思議でしょう?
ふふふ。
0647デフォルトの名無しさん2015/08/07(金) 08:08:05.50ID:3jYJojYP
>>646の続き

更には、rotr, rotlなんて命令もあったりする。
bit列を右回転, 左回転させる命令なんだよ。
8bit CPUの例だけど、
rotr(0b10000001, 1)
を実行すると、
0b11000000
が返ってきたりする。
暗号関係で使われたりするよ。
0648デフォルトの名無しさん2015/08/07(金) 16:11:37.82ID:ncOfWd5+
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

何でですか?
0649デフォルトの名無しさん2015/08/07(金) 16:19:19.04ID:1VN8eSce
print(1.65)
してみたらぁ?
0650デフォルトの名無しさん2015/08/07(金) 16:23:15.22ID:ncOfWd5+
それしたら1.65になりますけどもここから何が分かるのですか?
0651デフォルトの名無しさん2015/08/07(金) 16:23:59.53ID:ncOfWd5+
print(round(1.75, 1)) # 1.8になるのでOK
print(round(1.85, 1)) # 1.9になるのでOK
0652デフォルトの名無しさん2015/08/07(金) 18:34:32.46ID:l3+Klkte
公式のドキュメントを読めば理由は書いてある
0653デフォルトの名無しさん2015/08/07(金) 19:28:09.98ID:EbZJZJ8+
>>652
http://docs.python.jp/3/tutorial/floatingpoint.html
これの事を言ってるなら今回のと関係ない

>>650
0.05が丸め込まれているのに0.05以上である0.06が丸め込まれないのはバグ
0654デフォルトの名無しさん2015/08/07(金) 19:38:55.70ID:P01jDVzM
はいバグ頂きましたw
0655デフォルトの名無しさん2015/08/07(金) 20:35:10.77ID:tWWYLiGh
>>> "{: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'

http://docs.python.jp/2/library/functions.html#round のノートにある 2.675 はこうなる。
>>> "{:17.16f}".format(2.675)
'2.6749999999999998'
0656デフォルトの名無しさん2015/08/07(金) 23:01:29.54ID:3jYJojYP
>>648
ここに書いてある。
http://docs.python.jp/3.3/library/functions.html#round
注釈

浮動小数点数に対する round() の振る舞いは意外なものかもしれません:
例えば、 round(2.675, 2) は予想通りの 2.68 ではなく 2.67 を与えます。
これはバグではありません: これはほとんどの小数が浮動小数点数で正確
に表せないことの結果です。詳しくは 浮動小数点演算、その問題と制限
を参照してください。
0657デフォルトの名無しさん2015/08/07(金) 23:07:52.39ID:eSh4n7lV
>>649
>>652
なんでこういう馬鹿にした&遠まわしな書き方しかできないのかね、ここ初心者スレでしょ
しかもprintしろとか結局間違ってるし

ちなみに>>655みたいな現象はPythonに限ったことじゃなくて、
floatの値をを使って分岐処理やif文を書くときは気をつけないとバグ作り込むので注意
0658デフォルトの名無しさん2015/08/07(金) 23:19:24.80ID:3jYJojYP
>>648
http://www.pastebin.ca/3092406
これを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
ですよね?
計算機の勉強が必要だと思います。
0659デフォルトの名無しさん2015/08/07(金) 23:28:16.44ID:3jYJojYP
>>658は、
python3.3 で実際にround()を実行している箇所で主要な部分を抜き出したcodeです。
Python-3.3.0/Objects/floatobject.c
で、double_round を検索したら実際に処理を行っている部分の挙動が分かります。

初心者の方っぽいので一応使い方を書いておきます。
>>658を持ってきてa.cに名前を変更して、
$ gcc a.c -o a -lm
$ ./a
とすると実行できます。
0660デフォルトの名無しさん2015/08/07(金) 23:50:19.38ID:3jYJojYP
>>659の続き
詳しい説明は出来ませんので、きちんと理解したいのなら、
浮動小数点数 誤差
で検索してご自分で勉強なさって下さい。

>>> 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 っぽい挙動

http://docs.python.jp/3.3/library/decimal.html?highlight=decimal
http://www.edu.cc.uec.ac.jp/mce/c1-3m/ref/FloatingPoint.html
0661デフォルトの名無しさん2015/08/08(土) 02:40:51.72ID:pFFZvIq1
浮動小数点(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 を参照
0662デフォルトの名無しさん2015/08/08(土) 12:37:55.43ID:6UCmRx7v
round(1.65+0.000001, 1)
0663デフォルトの名無しさん2015/08/08(土) 16:54:45.36ID:7XDpIYnB
>>648
decimal module 使っても、

>>> from decimal import Decimal as D
>>> round(D("1.65"), 1)
Decimal('1.6')

となりました。
これは、bugという事で、pythonのdecimal module developper
が対処するはずです。
近日中に対応してくれると思いますので、しばしお待ち下さい。
0664デフォルトの名無しさん2015/08/08(土) 17:55:37.35ID:bskJYfyR
>>663
Decimalの丸めはこうな
Decimal("1.65").quantize(Decimal("0.0"), decimal.ROUND_HALF_UP)

無知なのに意地はんなや
0665デフォルトの名無しさん2015/08/08(土) 18:15:35.74ID:wzG7wbxY
しかしDecimalはホント冗長で使いづらいな
もっと何とかならなかったのか
0666デフォルトの名無しさん2015/08/08(土) 18:52:22.52ID:bskJYfyR
ネイティブの少数表記が浮動小数点数なのだから、混乱を避ける為にある程度使いづらくなるのは仕方なかろ。

Decimal("0.1") + 0.1

とかが普通に実行出来てしまったら、>>648のような不幸な初心者が量産されてまうわ。
0667デフォルトの名無しさん2015/08/08(土) 22:08:47.37ID:t3Zwjigp
PHPだと1.65が1.7になる
0668デフォルトの名無しさん2015/08/08(土) 22:15:21.63ID:7XDpIYnB
穴があったら入りたい。
0669デフォルトの名無しさん2015/08/09(日) 00:30:28.91ID:dl726Wch
そこに穴はあるじゃろ
0670デフォルトの名無しさん2015/08/09(日) 06:09:40.90ID:T7+WUh22
このスレで質問するような人が気づいてることなんて皆とっくに気づいてるんだから安易にバグ認定するのはあかん
0671デフォルトの名無しさん2015/08/09(日) 22:42:00.68ID:POd8P+xe
r"aaaa"
このrってなんですかマニュアルのどこのページを見て学べますか
0672デフォルトの名無しさん2015/08/09(日) 23:03:20.00ID:LxR15rBc
>>671
どうぞ。

http://docs.python.jp/3.3/library/re.html
正規表現パターンに Python の raw 文字列記法を使えばこの問題を解決できます。'r' を前に付
けた文字列リテラル内ではバックスラッシュを特別扱いしません。従って、"\n" が改行一文字の
入った文字列になるのに対して、r"\n" は '\' と 'n' という二つの文字の入った文字列になります。
通常、Python コード中では、パターンをこの文字列記法を使って表現します。
0673デフォルトの名無しさん2015/08/09(日) 23:03:50.16ID:SZbKyl18
http://docs.python.jp/3.3/reference/lexical_analysis.html#literals
0674デフォルトの名無しさん2015/08/10(月) 00:26:16.45ID:1trpq2mO
raw文字列は確かに分かりにくいね。
俺は意味理解できなくてなんとなく使ってる。
0675デフォルトの名無しさん2015/08/10(月) 02:33:45.82ID:xpOq7lBh
raw文字列はWindows環境でパス記述するときには便利。
\で終わるディレクトリ記述しようとするとはまるけど。
0676デフォルトの名無しさん2015/08/10(月) 04:55:41.13ID:joKVIITR
久々にスレ伸びてると思ったら
python全然関係ない話題だったでござる
0677デフォルトの名無しさん2015/08/10(月) 10:08:21.10ID:A4JvqZRL
def a():
pass

f = 'a'

変数fから関数a()を実行する方法を教えてください
0678デフォルトの名無しさん2015/08/10(月) 10:14:01.63ID:Y9npztmj
>>> def a():
... print 'This is a A'
...
>>> f = 'a'
>>> locals()[f]()
This is a A
>>>
0679デフォルトの名無しさん2015/08/10(月) 10:21:00.93ID:R47cdcnQ
globals()[f]()
eval(f)()
exec(f + '()')
0680デフォルトの名無しさん2015/08/10(月) 10:29:09.95ID:+1c20aQZ
Pythonなら書き方は一つ(キリっ
0681デフォルトの名無しさん2015/08/10(月) 12:24:34.24ID:A4JvqZRL
できましたありがとうございました
今bottleのソースコードを見ながら勉強してるんですけど
ソースコードでlocals()とglobals()をググっても見つかりませんでした
bottleではどうやってコントローラーを実行しているのかわかりませんか?
0682デフォルトの名無しさん2015/08/10(月) 13:16:50.78ID:R47cdcnQ
「Pythonなら書き方は一つ」で検索しても、それらしいページはヒットしない
煽るならzen of pythonから引用してしほしい

>>681 importlibやgetattrでモジュールの動的なインポートを利用していると思われる
0683デフォルトの名無しさん2015/08/11(火) 00:51:44.04ID:Kibzp2Ye
importlibとgetattrとglobals()とlocals()で簡単なルーターを作るところから勉強しようと思います
0684デフォルトの名無しさん2015/08/11(火) 10:00:55.94ID:z0h2VMWZ
40x + 300 = 4100
この一次方程式を解くライブラリってありますか?
0685デフォルトの名無しさん2015/08/11(火) 10:33:58.70ID:v443SNvd
>>684
試してないけど、SymPyやPyMaximaかな。
0686デフォルトの名無しさん2015/08/11(火) 10:59:40.44ID:VmWDUo2S
>>> 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
0687デフォルトの名無しさん2015/08/11(火) 20:22:36.51ID:XnkwOBLj
scipyとnumpyだけの専門スレが合ってもいいと思うんだけど立ててもいい?
0688デフォルトの名無しさん2015/08/11(火) 20:39:49.20ID:BYbKL/Wt
いいんじゃね、といいつつ…

どんなスレ立てても大なり小なり叩かれると思うが
科学技術計算総合スレとでもしておいた方が、叩かれる度合いは少ないだろう

Rスレあったんだ
検索しづらいわ!
0689デフォルトの名無しさん2015/08/11(火) 20:40:52.49ID:7cQT55t3
matplotlibとか欲しいし、
もうちょっと広く、「pythonで科学技術計算」とかなら良いかな?
他の人の意見も聞いてね
0690デフォルトの名無しさん2015/08/11(火) 20:42:57.00ID:7cQT55t3
>>688
言語が混ざるとつばぜり合いを始める馬鹿がいるので、
python専用にして欲しいと思う
0691デフォルトの名無しさん2015/08/11(火) 20:56:01.90ID:flESq3IS
個人的にはnltや機会学習系の話がしたい
0692デフォルトの名無しさん2015/08/11(火) 23:46:00.42ID:mq4pk2ON
Matplotlibはいちおうスレがあるよ
自然言語処理や機械学習も言語を限定しないスレはあるね
0693デフォルトの名無しさん2015/08/12(水) 09:32:49.05ID:+VWy6X24
>>687
過疎板だしIDついてるし
このスレでやった方が混乱は少ないと思う
0694デフォルトの名無しさん2015/08/12(水) 10:57:41.33ID:I5afDcIY
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]って順番をキープした結果を返せる引き算の方法を教えてください
0695デフォルトの名無しさん2015/08/12(水) 11:10:39.20ID:RQEQ2Cbc
list(a - b) でリストにしてるのはなぜ?
0696デフォルトの名無しさん2015/08/12(水) 11:16:11.95ID:tORyfhyI
>>694
A = [4, 3, 1, 2, 5]
B = [1, 2]
diff = set(A) - set(B)
result = [n for n in A if n in diff]
0697デフォルトの名無しさん2015/08/12(水) 11:18:07.92ID:RQEQ2Cbc
>>> a = [4, 3, 1, 2, 5]
>>> b = [1, 2]
>>> reduce(lambda n, m: a.remove(m), b, [])
>>> a
[4, 3, 5]
0698デフォルトの名無しさん2015/08/12(水) 16:55:12.14ID:k8XljSWZ
name1, name2, name3・・・といった風に名前を生成してその中に要素を代入したいのですが上手くいきません
たとえば、

list = [x,y,z]
for i, j in enumerate(list):
"name" + i = j

といった感じです
勿論上記のやり方では上手くいきませんが、イメージとしてはこんな感じでlistの中の要素を番号付けされた名前の変数に入れたいのです
どうしたらいいんでしょうか?
0699デフォルトの名無しさん2015/08/12(水) 17:31:42.13ID:7eD+gktf
>>140-141のglobal使いましょう
0700デフォルトの名無しさん2015/08/12(水) 17:53:05.65ID:tORyfhyI
>>698はグローバルより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)
0701デフォルトの名無しさん2015/08/12(水) 18:43:45.34ID:i7Ce6lvW
>>698
http://stackoverflow.com/questions/783781/python-equivalent-of-phps-compact-and-extract
http://www.php2python.com/wiki/function.extract/
0702デフォルトの名無しさん2015/08/12(水) 18:43:56.83ID:k8XljSWZ
ありがとうございました!
0703デフォルトの名無しさん2015/08/12(水) 20:08:36.40ID:6qYgwLU5
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'}
0704デフォルトの名無しさん2015/08/12(水) 22:04:11.18ID:zuppFPQO
質問1
a = {1, 2}
print(a[0])

これエラーなんですけどどうやって1の値を取得できますか?

質問2
a = {"0":1}
print(a["0"])

これもキーを指定するとエラーなんですけどどうやってでキーを指定したらいいんですか?
0705デフォルトの名無しさん2015/08/12(水) 22:10:12.72ID:PF0ET0RY
>>704
質問1
setはindex指定できないのでリスト使う
>>> a = [1, 2]
>>> print(a[0])
1

質問2
普通にできるけどなんてエラーでる?
0706デフォルトの名無しさん2015/08/12(水) 22:43:30.21ID:zuppFPQO
あ、すみません
質問2は
print(a[0])だとKeyError: 0ってでました
print(a["0"])だとでませんでした
文字列で指定したので取れなかったようです

質問1のはよくわかりません
a = {1, 2}
print(a)は{1, 2}って表示されますが、どうしてキーを指定しなかった場合だと個別に取り出せないんでしょうか?
0707デフォルトの名無しさん2015/08/12(水) 22:53:11.50ID:YIqOZZQS
# -*- 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に代入できる。
0708デフォルトの名無しさん2015/08/12(水) 23:02:21.27ID:PF0ET0RY
>>706
a = {1, 2}
だとset型を指定していることになるけど,setは順序を持っていないので,indexを指定して要素を取り出すことはできない
中身を取り出したいならfor文にかけるか
>>> a = {1, 2}
>>> for i in a:
... print(i)
...
1
2

いったんリストに変換する
>>> l = list(a)
>>> l[0]
1
とか
0709デフォルトの名無しさん2015/08/12(水) 23:59:18.78ID:ZEyNhv4C
「キーを指定しなかった場合だと個別に取り出せない」って何を言ってんのか分かんなくて悩んだけど
{"0":1}
の、キーを指定しない版が
{1, 2}
っていう認識かいな
確かに同じ記号を使ってて分かりにくいよな
他に記号なかったんかいって俺も最初思ったわ
0710デフォルトの名無しさん2015/08/13(木) 00:15:08.98ID:Anx3mf6Z
>>> l = [0, 1]; l
[0, 1]
>>> l += []; l
[0, 1]
>>> l += [2]; l
[0, 1, 2]
#[] で増えないのは仕様ですか?
0711デフォルトの名無しさん2015/08/13(木) 00:40:20.39ID:Pv/NYKUJ
仕様じゃなかったら何なんだ。
それが聞きたいことか?
0712デフォルトの名無しさん2015/08/13(木) 01:27:49.35ID:B5UxQ5Jz
空なんだから増えるわけ無いじゃん
こうだろ
l += [[]]
0713デフォルトの名無しさん2015/08/13(木) 11:26:21.50ID:xmv8N9p/
夏だな
0714デフォルトの名無しさん2015/08/13(木) 13:02:41.78ID:dWSY8J7e
scipyの日本語マニュアルがほしい
0715デフォルトの名無しさん2015/08/13(木) 19:57:26.86ID:PEz63Oz9
pycon2015だけどチケット高いよ
つうか日本で著名なカンファレンスで金取るのpyconぐらいしか知らないんだけど
収入をスタッフで分けあってるんじゃないだろうね
金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け
0716デフォルトの名無しさん2015/08/13(木) 20:26:30.03ID:zypo+673
>>715
10000円とか高すぎワロタ
0717デフォルトの名無しさん2015/08/13(木) 21:08:18.66ID:UOPmO2ID
著名なカンファレンスって具体的には何だろう
著名って道端でインタビューしても半分以上知ってるとかそういう意味じゃないよね
0718デフォルトの名無しさん2015/08/13(木) 22:07:09.04ID:7307l9+I
太いスポンサー付いてんだから会場費も賄えるだろ
ひょっとしてけちなスポンサーなのかw
0719デフォルトの名無しさん2015/08/13(木) 22:46:05.03ID:zYX1bnGl
yapcは金取るよ
5000円

俺はyapcに行くけどpyconは行かない
役に立った試しがないから
0720デフォルトの名無しさん2015/08/13(木) 23:18:38.29ID:XFGl8RYP
超初歩的な質問なんですけど
if __name__ =‘’__main__‘’
よ意味がイマイチ分かりません。
どういう意味か教えてください。
0721デフォルトの名無しさん2015/08/13(木) 23:43:50.03ID:mALeQvK5
>>720
http://docs.python.jp/3/tutorial/modules.html

特に「if __name__ == "__main__"」の件は
http://docs.python.jp/3/tutorial/modules.html#executing-modules-as-scripts
0722デフォルトの名無しさん2015/08/13(木) 23:53:08.79ID:XFGl8RYP
>>721
なんとなくわかった
ありがと
0723デフォルトの名無しさん2015/08/13(木) 23:59:00.58ID:5Zf3S51H
>>720
実行結果の違いを自分で理解しましょう。

$ 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
0724デフォルトの名無しさん2015/08/14(金) 01:26:08.78ID:7t8/l02p
ランダムな文字列を特定の文字数から分割することはできるんでしょうか
例えば"abcde"や"12345"を3文字目から分割して、"abc", "de"や"123", "45"にするといった感じです
0725デフォルトの名無しさん2015/08/14(金) 02:12:20.51ID:55h31pll
スライス使う
s = 'abcde'
n = 3
s[:n], s[n:]
0726デフォルトの名無しさん2015/08/14(金) 07:31:24.74ID:qjotB1DM
いい加減に自分で調べようぜ
ここはお前の家庭教師じゃないんだ
0727デフォルトの名無しさん2015/08/14(金) 08:13:18.68ID:UfQw/EAV
漂う一年生の夏休み臭
まぁでもこんなとこで聞いて答え探してちゃあ冬の宿題は無理だろうな
情報科学系は大企業でもない限り学歴は関係ないし、向いてないと思ったなら大学やめるか転科、転部してもいいと思うけどな
0728デフォルトの名無しさん2015/08/14(金) 10:02:58.72ID:7t8/l02p
>>725
ありがとうございました
0729デフォルトの名無しさん2015/08/14(金) 13:16:29.76ID:Q/AtP1Be
スレタイ通りに進行している良スレ
0730デフォルトの名無しさん2015/08/14(金) 17:20:25.77ID:LobgVTtd
ここ質問スレなのに説教してるバカなんなの
ちょちょい回答側も適当なこと答えてるし何様なんだろう
0731デフォルトの名無しさん2015/08/14(金) 18:05:30.80ID:qjotB1DM
一冊本読めば分かるような質問されても
0732デフォルトの名無しさん2015/08/14(金) 18:34:20.95ID:UfQw/EAV
>>730
俺様だよ
Pythonのような動的言語の得意な事の一つにメタプログラミングつってな
プログラムを生成するプログラムを作るような生産手段がある。
つまりプログラムの前にプログラムは始まってるんだよ
Pythonを究めればつまり、十年後、二十年後にプログラムするおまえ自身をプログラムすることだってできる
わかるか?説教なんかじゃねーよ
メタプログラミングだ
0733デフォルトの名無しさん2015/08/14(金) 18:40:34.94ID:55h31pll
質問馬鹿、世話焼き馬鹿、煽り馬鹿
馬鹿どもの需要を満たす良スレです
でもエスパー向け質問は勘弁な
0734デフォルトの名無しさん2015/08/14(金) 18:47:50.96ID:1qaFTc/3
ググったら大量にあるような質問とか4ねよと思うかも知れないが
>>724のような質問から分かることは質問者がプログラミング初心者であることだ
複数のプログラミング言語の経験があれば例えばJavaScriptのsubstringみたいなのはどうやるんだろうみたいな疑問から「python substring」でぐぐれば答えにたどり着ける
>>724に必要なことは経験なんだよ
経験を積めば答えの探し方も自ずとわかってきてクソ質問をする回数も減ってくる
さいしょはそういうものだ
0735デフォルトの名無しさん2015/08/14(金) 19:16:08.06ID:kkHnja52
技術書は高いからなあ
疑問一つ解決するにはネットが一番
0736デフォルトの名無しさん2015/08/14(金) 19:18:02.42ID:KhWLzGMo
高説は垂れ終わりましたかねクソたれの諸君
0737デフォルトの名無しさん2015/08/14(金) 20:24:45.10ID:RT/486IQ
必要最小限の努力で最大限の効果を発揮する回答をするのが腕の見せ所だろ
0738デフォルトの名無しさん2015/08/14(金) 22:13:36.03ID:LobgVTtd
>>734
そうそうググり方がわかんないんだよね初心者は
なんか一つでも言語かじってれば検索語がすぐ浮かぶし基本質問しなくて済むんだけど
そういう事すら想像できないで説教してる奴はプログラムは書けるかもしれないけど年収低そう
0739デフォルトの名無しさん2015/08/14(金) 23:19:56.73ID:OD8R+FZZ
「文字列 分割」で検索すれば一発だろ
っていう想像すら出来ないのか?
0740デフォルトの名無しさん2015/08/15(土) 00:09:06.75ID:xP2G+OJc
>>739
君は恵まれているんだよ
「知りたいことの調べ方を教えられずとも知っている」というのは、ある意味超人なのだから
0741デフォルトの名無しさん2015/08/15(土) 00:11:59.43ID:ijAlKA58
>>739
splitがヒットする
0742デフォルトの名無しさん2015/08/15(土) 04:47:08.17ID:Yk3bSSFS
python始めたころ
'hoge'.length
'hoge'.length()
'hoge'.len()
とかやって途方に暮れたのは良い思い出
0743デフォルトの名無しさん2015/08/15(土) 13:23:11.13ID:Ul7UCeMQ
ここで一から聞くよりも
チュートリアルを一通りやってから聞いたほうが効率がいい
07441682015/08/15(土) 13:40:31.23ID:n2MIk9XB
たしかに超低レベルだけど、ここそういうスレだもんね。
なかよし学級みたいなものだよ
0745デフォルトの名無しさん2015/08/15(土) 13:41:20.37ID:vqznTC4Z
変数に複数行の文字列が入っていて
それを各行の先頭に&があったらそこでsplitをしたいのですが、
シンプルな形でするにはどうしたらよいでしょうか
07461682015/08/15(土) 13:50:48.77ID:n2MIk9XB
>>745
str.split(″¥n&″)
0747デフォルトの名無しさん2015/08/15(土) 14:00:32.15ID:vqznTC4Z
>>746
あざす
0748デフォルトの名無しさん2015/08/15(土) 19:34:44.25ID:4G4yaXTm
スーパー初心者です
EclipseにPydevというものを入れたいんですが
Unable to read at repositlyみたいなエラーメッセージがでます。
Eclipseかjavaのバージョンがおかしいのでしょうか?
Eclipseは最新java 1.7.045です
0749デフォルトの名無しさん2015/08/16(日) 00:21:57.41ID:AC1P33gf
Unable to read at repositly
この英文はスペルも間違っているし、
文法的にもおかしい

正しいエラーメッセージで、検索しろ
eclipse Unable to read 〜
0750デフォルトの名無しさん2015/08/16(日) 00:35:10.95ID:Eim8BKO0
ソフトウェアが動かない時はOSも書いてもらわないと回答に困る
0751デフォルトの名無しさん2015/08/16(日) 10:16:12.86ID:UepVPRcb
>>748
みたいなエラーじゃエスパーしか回答できないな
0752デフォルトの名無しさん2015/08/16(日) 10:47:06.87ID:lDaj3UMn
input.txt
というファイルに
http://codepad.org/Lm5qAAPj
のように文字列が並んでいます。

このファイルを読み込んで、
同じ内容の行がn個以上
(nは事前にわかる定数)
出現する場合に、
その文字列の一覧を取得し表示したいのですが、
どのように書けば良いでしょうか。

この例でいうとn=3の時
"2015年7月17日"
などが該当します。

よろしくお願いいたします。
0753デフォルトの名無しさん2015/08/16(日) 10:55:57.16ID:8LWqlGmF
二次のリストにして[行の中身、出た回数]でひとまとめにする。
あとはeachで毎行すべての行の中身と比較して、一緒なら出た回数+1
最後に出た回数が定数以上なら行の中身を出すeach
効率がマックスではないやろけど充分やない?
0754デフォルトの名無しさん2015/08/16(日) 10:57:59.55ID:lDaj3UMn
なるほど、ありがとうございます。
0755デフォルトの名無しさん2015/08/16(日) 11:03:26.16ID:O32Kimu0
はいよ。

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))
0756デフォルトの名無しさん2015/08/16(日) 11:06:02.80ID:0tax/iFh
宿題の季節ですね
07577522015/08/16(日) 11:14:57.83ID:lDaj3UMn
>>755
ありがとうございます。
collections
ってやつですか、使ったこともありませんでした。

>>756
宿題でなく、業務の補助です。
コンピューター系の仕事じゃないんですが、
excelファイルの一行目で重複しているものをさがさねばならない状況で
あまりにたくさんあって、手動じゃ厳しい状況でした。
0758デフォルトの名無しさん2015/08/16(日) 11:46:46.26ID:UepVPRcb
この丸投げ依頼、ランサーズで見かけたな
0759デフォルトの名無しさん2015/08/16(日) 11:52:01.60ID:0tax/iFh
excolの整理するならwin32com使うともっと捗る
07607522015/08/16(日) 12:58:02.61ID:lDaj3UMn
>>759
ありがとうございます。
ただ汎用性の高い方法が知りたかったので
Python単独にしました。
0761デフォルトの名無しさん2015/08/16(日) 20:54:41.00ID:qIQbKUMb
エクセルファイルってpythonの標準モジュールでいけるん?
0762デフォルトの名無しさん2015/08/16(日) 21:50:03.91ID:LFerq79m
フォーマットを理解していて自分で解析するなら標準ライブラリでいけると思うよ
解析を自分でやりたくないなら標準ライブラリでは難しい、PYPIから探して用途に合ったものを入れて使う
0763デフォルトの名無しさん2015/08/16(日) 22:35:19.49ID:e2KUFoWx
csvでええやん(適当
0764デフォルトの名無しさん2015/08/17(月) 00:19:47.15ID:cHfxWEIf
いまどきエクセルとか時代遅れ。
Windowsがメインの時代は終わった。
0765デフォルトの名無しさん2015/08/17(月) 01:35:46.62ID:yvTEFZww
確かにメソッドをバインドしてるはずなのに 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

大分省略してますが、大まかな流れはこんな感じでエラーはないはずなんですが・・・
0766デフォルトの名無しさん2015/08/17(月) 06:14:35.27ID:wMu/qLyK
実行すると同じエラーが発生するコードを載せないと的を得ないアドバイスになるよ
とりあえずTestクラスに構文ミスがある
0767デフォルトの名無しさん2015/08/17(月) 06:46:37.95ID:XZr/R9DQ
>>764
Google Apps の Spreadsheet はまだ使いにくいんだわ
慣れ鴨試練けど
0768デフォルトの名無しさん2015/08/17(月) 08:35:05.25ID:yvTEFZww
>>765
自己解決しました
Testクラスの初期化でバインドする前に別の命令でXXXを呼び出していたのが問題でした
0769デフォルトの名無しさん2015/08/17(月) 08:40:08.19ID:yvTEFZww
>>766
ありがとうございました
0770デフォルトの名無しさん2015/08/17(月) 11:53:45.23ID:jAoOCpIM
pythonのメモ化ってサードパーティライブラリを使わない場合はどうやるのかおしえて
0771デフォルトの名無しさん2015/08/17(月) 12:03:41.24ID:HKx5lNza
サードパーティライブラリの
ソースコード読め
0772デフォルトの名無しさん2015/08/17(月) 12:39:02.37ID:hnwd1zgq
>>753
>あとはeachで毎行すべての行の中身と比較して、
>一緒なら出た回数+1

行の内容を、キーにして、
辞書・連想配列(dic, map)を使えば、効率的
0773デフォルトの名無しさん2015/08/17(月) 14:15:45.35ID:wMu/qLyK
>>770
標準ライブラリのデコレーターfunctools.lru_cache()を使う
0774デフォルトの名無しさん2015/08/17(月) 16:33:43.57ID:3iVEaaDQ
ブラウザのクッキーのように、ローカルにデータを保存してキーで呼び出す簡単な仕組みがほしいのですが
ありませんでしょうか
ファイル名をキーにできなくもないですが、ファイル名だと制約が多そうなので
専用の仕組みがないか知りたいです
0775デフォルトの名無しさん2015/08/17(月) 16:50:29.97ID:wMu/qLyK
>>774
標準ライブラリのdbm(シンプル)やsqlite3(多機能)を使う
データが少量ならjson(多言語対応)やpickle(Python特化)で一気に読み書き
0776デフォルトの名無しさん2015/08/17(月) 16:57:29.22ID:3iVEaaDQ
>>775
いろいろあるんですね、標準から順番に試してみます。
0777デフォルトの名無しさん2015/08/17(月) 17:31:22.68ID:BpXeI8EH
具体的に何のデータを呼び出すの?
普通はデータベース(上の人が書いてるsqlite3とか色々)
テキストでも数値でも画像みたいなバイナリでもなんでも保存できる
そこまで大げさじゃなかったらdictにしてローカルへの永続保存にはpickleとか
0778デフォルトの名無しさん2015/08/17(月) 17:49:25.09ID:XZr/R9DQ
>>774
memcached
0779デフォルトの名無しさん2015/08/17(月) 17:53:32.11ID:BpXeI8EH
いやそれじゃローカルへの永続保存できないじゃん
揮発していいんならそもそもdictでいいわけだし
0780デフォルトの名無しさん2015/08/17(月) 17:55:31.75ID:7xSphxbU
>>774
python関係ないなスレチ
localstorageかindexeddbでぐぐれ
0781デフォルトの名無しさん2015/08/17(月) 18:00:59.30ID:BpXeI8EH
>>780
CookieみたいにキーバリューっぽくPythonでデータをやり取りできる簡易ストレージありませんかってことでしょ
localstorageとか全然関係ない
0782デフォルトの名無しさん2015/08/17(月) 18:18:31.83ID:XZr/R9DQ
sqlite3 は良いんだけど面倒じゃん

>>779
永続保存したいときは memcached にさせればいい
0783デフォルトの名無しさん2015/08/17(月) 18:30:26.61ID:BpXeI8EH
>>782
俺の知ってるmemcachedはストレージへの保存はできなかったように思うんだけど今はできるの?
できたとしても大規模なサイト向けの分散メモリキャッシュを>>774に勧めるのは違う気がする
0784デフォルトの名無しさん2015/08/17(月) 18:33:58.91ID:XZr/R9DQ
>>774 は永続化したいとは言ってないよな
PC が起動してる間だけ(半)永続化出来れば良い用途なら memcached を勧める
python のプロセスが終了しても実行単位が分かれてても良いからね
0785デフォルトの名無しさん2015/08/17(月) 18:39:27.72ID:PIyjnu6p
>>784
お前そんなんだからいつまでたっても伸びないんだよ
0786デフォルトの名無しさん2015/08/17(月) 21:41:07.78ID:AC+nB5ru
shelveが挙がってなくて驚愕

自動でpickle/unpickle
バックエンドは可能ならdbmを使用
dict互換インターフェース

初心者には文句ねえだろ
0787デフォルトの名無しさん2015/08/17(月) 22:02:22.04ID:HG93N3kS
pythonのパッケージを読み込んだときに、ディレクトリ内のサブモジュールを一括してimportされるようにしたいです
from package import *
じゃなくて
import package
ってしただけで
package.lib1, package.lib2, …
という風に階層的にアクセスできるようにしたいんですが、手軽にできる方法ありませんか?

今は__init__.pyにそのディレクトリのファイルリストを取得してpyファイルのみインポートするようforループ回してるんですが
こんなめんどくさい方法しかないのでしょうか?
0788デフォルトの名無しさん2015/08/17(月) 22:15:45.09ID:AC+nB5ru
__init__.pyに
from . import *
って書いとけば
0789デフォルトの名無しさん2015/08/17(月) 22:19:37.26ID:LdwVCEVY
ID:XZr/R9DQはもうちょっと怒られてもいいと思う
0790デフォルトの名無しさん2015/08/17(月) 22:21:13.35ID:AC+nB5ru
デコピンでも食らわせとけ
0791デフォルトの名無しさん2015/08/17(月) 22:25:19.92ID:HG93N3kS
>>788
それは試したのですが、dir(package)しても何も読み込まれてません(エラーも出ません)
もちろんグローバルに直接広げられてるわけでもありません
後出しですみませんがpython3.4.1です
0792デフォルトの名無しさん2015/08/18(火) 08:34:58.30ID:+GUozJxI
外字対応で「codecs」あたりを使って色々やっているんですが、
error処理を「replace」や「backslashreplace」にした場合、
置換された時だけ処理を追加したいのですが、
その際の分岐はどのようにすれば出来るでしょうか?
0793デフォルトの名無しさん2015/08/18(火) 10:15:30.36ID:/VHLnea+
置換する前とした後の文字列を比較
0794デフォルトの名無しさん2015/08/18(火) 11:27:12.95ID:1sNyIVHN
天才ktkr
0795デフォルトの名無しさん2015/08/18(火) 18:46:01.56ID:LAF+YM5X
>>791
いや教えてもらったことでできるよ
できてないのは教えてもらったとおりにやってないだけ
自分が手抜きして書いた文章で負担は回答者に来ることを忘れるな
0796デフォルトの名無しさん2015/08/18(火) 19:02:01.11ID:aNFP607G
>>793
それしかないかー
ありがとうございます。
0797デフォルトの名無しさん2015/08/18(火) 19:42:34.63ID:61LHAw2c
教えてもらってから「それしかないかー」って言う人嫌い
必死こいて考えてレスした人に失礼じゃないか
注文があるなら最初に「xx以外の方法で」って書いとけよ
0798デフォルトの名無しさん2015/08/18(火) 20:33:40.72ID:0mjtCM8s
まぁまぁ
0799デフォルトの名無しさん2015/08/18(火) 21:05:13.78ID:aNFP607G
>>797
なんだかすいませんでした。
0800デフォルトの名無しさん2015/08/18(火) 21:28:23.83ID:2sDrekuo
>>795
0801デフォルトの名無しさん2015/08/18(火) 23:34:56.09ID:yDieNvXT
>>795
どう試したんだお前
from . import *で読み込むためには__all__がいるだろが
0802デフォルトの名無しさん2015/08/18(火) 23:55:52.75ID:pEad/GRS
具体的なことを言わずに質問者を適当に罵倒すると
手軽に偉くなった気になれるのでマジおすすめ
0803デフォルトの名無しさん2015/08/19(水) 00:00:27.11ID:aTZq7rnW
そこらのブログのサンプルコードを見てるとしばしば
if
elif
elif

を使っているのを見ますが、実際には殆どの場合では

if
if
if

で事足りますよね?elifを使う事で何かいいことがあるんでしょうか?
0804デフォルトの名無しさん2015/08/19(水) 00:15:08.96ID:xc/++r0f
殆どの場合・・・ifで事足りる
殆どの場合以外・・・ifで事足りない

単純明快
0805デフォルトの名無しさん2015/08/19(水) 00:23:02.41ID:aTZq7rnW
だとしたら以下のような簡単な条件式でもわざわざ

if int == 1:
elif int == 2:
elif int == 3:

って書いてるのは何ででしょうか?
0806デフォルトの名無しさん2015/08/19(水) 00:23:30.33ID:WfM1PAPC
一連の分岐が分かりやすい
0807デフォルトの名無しさん2015/08/19(水) 00:36:57.15ID:G/CiAypH
ifが複数並んだらどれかの分岐の一つのみが実行されるという意図が明確でない
というよりifが並んだら重複して実行されうるものとして見える
だからそうでない限りはelifを使って、どっかで引っかかったらその後のelif節をパスする意図を明確にする
0808デフォルトの名無しさん2015/08/19(水) 00:47:29.32ID:BLCCc3GJ
つかif-elif-elseで1ブロックなんだから
んでn=1,2,3で処理を振り分けるのもひとかたまりの処理だろ
わざわざ独立したifブロックを複数たてる必要がないべ
意図がわかりづらいコードはあとから読み直すの大変だぞ
0809デフォルトの名無しさん2015/08/19(水) 03:02:58.44ID:1cIU6vdw
>>803
elifをifに換えると上手く動かない例

test_result = 95
if test_result > 90:
    grade = 'A'
elif test_result > 80:
    grade = 'B'
elif test_result > 70:
    grade = 'C'
elif test_result > 60:
    grade = 'D'
else:
    grade = 'E'
print('テストの点は', test_result, '成績は', grade)
0810デフォルトの名無しさん2015/08/19(水) 05:02:58.82ID:MH7WCZSE
Pythonにswitchがあったらなあっていつも思う
elifをどんどんつなげていくと、下に行くにつれ息が苦しくなってくる
0811デフォルトの名無しさん2015/08/19(水) 07:39:56.25ID:2JD/ApDH
はい、大きく吸ってー
0812デフォルトの名無しさん2015/08/19(水) 07:54:26.07ID:hnj5IXaX
>>810
Cのswitchの仕様ならいらない
0813デフォルトの名無しさん2015/08/19(水) 07:57:40.59ID:hnj5IXaX
>>797
すばらしい洞察
0814デフォルトの名無しさん2015/08/19(水) 08:34:03.16ID:zU2KMJnx
ではどういうスイッチの仕様がいいのでしょう?
Cのswitchを知らないんだけど、vbaはswitchは仕様もクソもifを見やすくしただけだね。
Aという変数が
条件○
条件△
条件□
どれでもないとき

これ以外のswitchってどんなやろ?
0815デフォルトの名無しさん2015/08/19(水) 09:45:17.12ID:MH7WCZSE
>>812
breakの書き忘れがバグの元になるから
Pythonはswitch系の構文を採用しなかったと聞いたことがある
その思想には産道できるんだが、やっぱりif文が長いと呼吸が…
こういう基本構文をPythonに独自に付け加えるのって難しいのかな?
0816デフォルトの名無しさん2015/08/19(水) 09:49:40.96ID:CQPQ0YpI
>>801
いらねえよバカ
0817デフォルトの名無しさん2015/08/19(水) 12:25:13.17ID:fKGepA2j
pythonにswitchを導入したら、objectの評価がどのタイミングで行われるかが気になるな。
例えば、__eq__を実装したクラスの場合とか。
既に超初心者の範囲の話題ではないが。
0818デフォルトの名無しさん2015/08/19(水) 12:33:01.34ID:/st2usUG
pythonにswitchがないのは
「だらだら長い分岐を書きたくなったら、テーブルとかポリモーフィズム使う事考えろよな!」
という、お前らへのメッセージやで割とマジで
0819デフォルトの名無しさん2015/08/19(水) 12:54:27.69ID:zU2KMJnx
>>818
とまぁこういうこと考える機会になるから、くだすれ向けの話題やろ
switchはswitchの良さがあるけどな
オムロンとか未だにswitchで大きな益をだしとるし
0820デフォルトの名無しさん2015/08/19(水) 13:31:02.10ID:1cIU6vdw
switch文よりパターンマッチの式が欲しい、下みたいなことlambda書かずにやりたい

result = match(10+3, [
    lambda n: 'hoge' if n > 20 else ContinueMatch,
    lambda n: 'fuga' if n > 10 else ContinueMatch,
    lambda otherwise: 'moge'])
0821デフォルトの名無しさん2015/08/19(水) 16:42:49.05ID:N616QwES
>>816
実際にやってみろよバカ
0822デフォルトの名無しさん2015/08/19(水) 16:48:39.32ID:BLCCc3GJ
testdir以下に
__init__.py
from . import *

hoge.py
print("hogehoge")

でimport testdirしても何も出力されない
__init__.pyに__all__ = ["hoge"]指定するとhogehogeって出る
0823デフォルトの名無しさん2015/08/19(水) 17:28:30.29ID:/k7NGekj
で、正解は?
0824デフォルトの名無しさん2015/08/19(水) 17:59:19.82ID:hnj5IXaX
__init__.py は何も書かなくていい
在るだけで良い
0825デフォルトの名無しさん2015/08/19(水) 18:04:59.57ID:/k7NGekj
あるだけでいいどころか最近のバージョンでは__init__なくても名前空間パッケージとして扱われたりすんだけど
大本の質問はパッケージ読み込みと同時にサブモジュールを一括ロードしたいって話らしいので
0826デフォルトの名無しさん2015/08/19(水) 20:08:53.14ID:kk+zL38M
手軽にできる方法とか言ってるからどうなんかなあ、__all__に全部書いとけっていうのは
forループを回してプログラムに読み込ませるのさえめんどくさい方法って言ってるので
0827デフォルトの名無しさん2015/08/19(水) 20:29:27.08ID:b9NBarYK
それしかないかー
ありがとうございます。
0828デフォルトの名無しさん2015/08/19(水) 20:41:39.12ID:/k7NGekj
ていうか__init__でそういうループまわすのって
from unko import chinco とかでも一々unko.__init__が反応するから激しく勧めないけどね

それより__all__無しでfrom . import *できたとかいう心霊現象はどうなったのかなーと
0829デフォルトの名無しさん2015/08/20(木) 00:21:02.25ID:I3VPAzEa
標準出力(orファイル)に改行コード(LF)を出力したいのですが、
sys.stdout.write("\n") とすると CR LF が出力されます。
LF だけを出力する方法はありますでしょうか?

ファイルをバイナリモードでオープンする方法も検討したのですが、
バイト列と文字列の違いゆえか、以下のようなエラーになってしまいます。
----------
open("output.txt", "wb") as f: f.write("\n")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' does not support the buffer interface
----------
※文字列(str)を出力したいので、write(b"\n") 以外の方法でお願いします。

環境は
・Python3.4
・Windows 7
です。
0830デフォルトの名無しさん2015/08/20(木) 00:31:00.81ID:PhWv3bmG
試してないけど、b'0xa'を出力すればいいんじゃね
0831デフォルトの名無しさん2015/08/20(木) 00:48:12.96ID:sobFc7C1
>>829
open()のキーワード引数にnewline='\r\n'を指定する
書き出すときに\nが\r\nに変換される

with open('output.txt', 'w', newline='\r\n') as file:
    file.write('hello\n')
08328312015/08/20(木) 00:50:02.22ID:sobFc7C1
あー、ちゃんとレスを読んでなかった失礼
newline='\n'で読み替えて欲しい
08338302015/08/20(木) 01:04:02.38ID:PhWv3bmG
まちがえた、b'\x0a'だな

with open('hoge.txt', 'wb') as f: f.write(b'\x0a')
0834デフォルトの名無しさん2015/08/20(木) 10:39:06.57ID:pV6cw7bo
>※文字列(str)を出力したいので、write(b"\n") 以外の方法でお願いします。
0835デフォルトの名無しさん2015/08/20(木) 12:25:16.58ID:WAF82kMO
byteをstrで変換すればいいだろ
0836デフォルトの名無しさん2015/08/20(木) 13:02:08.90ID:jAis7ACz
>>829
import os, sys

if __name__ == "__main__":
os.write(0, b"\n")
ss = "ss\n"
konnichiha = "こんにちは\n"
with open("tech829.wb.txt", "wb") as f:
f.write(b'\n')
f.write(ss.encode())
f.write(konnichiha.encode("utf-8"))
0837デフォルトの名無しさん2015/08/20(木) 22:37:29.07ID:FFZPtzFS
pythonって無料で動かせる鯖ないですよね
ていうかvps前提ですよね
パッケージとかアップロードできるわけじゃないですもんね
ここの先輩方はwebにpythonを使ってますか?
0838デフォルトの名無しさん2015/08/20(木) 23:12:48.33ID:YEEbYevP
>>837
>pythonって無料で動かせる鯖ないですよね
あるよ
0839デフォルトの名無しさん2015/08/20(木) 23:14:38.59ID:YEEbYevP
>>837
>ここの先輩方はwebにpythonを使ってますか?
つかってる。でも無料のとこでは使ってない。
0840デフォルトの名無しさん2015/08/20(木) 23:23:56.79ID:YEEbYevP
>>837
>パッケージとかアップロードできるわけじゃないですもんね
できるよ

何をやりたいか書いたほうが言いと思う
0841デフォルトの名無しさん2015/08/20(木) 23:27:49.83ID:vJWprlG5
>>837
>ていうかvps前提ですよね
なんでそうなる。
ふつうのレンタルサーバで使ってるよ。
最初からPython入ってるけど、自分で使いたいバージョンとモジュールをインストールして使ってる。
0842デフォルトの名無しさん2015/08/21(金) 00:54:55.47ID:YPq0HJeE
==の逆である!=はなんでないんですか?
AはBではないっていうのはどう書けばいいんですか?
0843デフォルトの名無しさん2015/08/21(金) 00:56:22.34ID:egD41OrM
A!=B
0844デフォルトの名無しさん2015/08/21(金) 00:57:56.37ID:cNm3l2b6
もうそろそろ = の反対を ≠ と書くことができる
言語が出てもいいと思う。
0845デフォルトの名無しさん2015/08/21(金) 04:30:24.54ID:MTjZuMcu
え、>>842ってできるよね?
0846デフォルトの名無しさん2015/08/21(金) 08:36:21.94ID:ewvWrXm9
>>842
>>> True != False
True
>>> True != True
False
>>> True != None
True
>>> False != None
True
>>> False != False
False
0847デフォルトの名無しさん2015/08/21(金) 08:42:24.19ID:HouD2Rdc
>>846
ジャバスクリプトがこんなんやったな。
0848デフォルトの名無しさん2015/08/21(金) 08:44:29.55ID:ewvWrXm9
ジャバスクリプト()には !== とかがあるね
0849デフォルトの名無しさん2015/08/21(金) 10:08:00.53ID:IT5UaqUy
>>846
Noneと真偽値の比較を真偽値同士の比較と一緒に並べるのはどうかと思う
前者の組み合わせは 1 != "Hello" みたいに型が異なるものを比較してる
0850デフォルトの名無しさん2015/08/21(金) 10:53:54.00ID:aXP8e9K+
pythonで水面の波紋を描くとしたら上級者の人はどうしますか?
pygameを使い、同じ中心点で異なる半径の円の画像を生成してリストに入れ、時間をずらして表示するってのを考えているのですがどうでしょうか
0851デフォルトの名無しさん2015/08/21(金) 11:16:34.63ID:ewvWrXm9
実際のイメージと違うんだろうなという映像が頭に浮かんだ
0852デフォルトの名無しさん2015/08/21(金) 12:18:35.00ID:+b9Sq2lj
>>850
Pythonと関係ない
ゲーム制作スレで聞いてこい
08538292015/08/22(土) 00:06:34.80ID:daWP/VMl
>>829です。
>>831さんの方法で期待通りに動作しました。
他の方のご回答も参考にさせていただきます。

ありがとうございました。
0854デフォルトの名無しさん2015/08/22(土) 01:04:48.69ID:deKfbB8U
昔<>って使えてたよね
0855デフォルトの名無しさん2015/08/24(月) 07:13:51.83ID:xqAU88hl
例えば a = [(1,3),(2,4),(2,1),(2,3),(4,4)] のようなリストの中から、最初の
(2,X) (※Xは任意) のような要素のインデクスを返す簡潔な方法はなんでしょうか

上の例では1(=(2,4)のインデクス)が欲しいです

よろしくお願いいたします
0856デフォルトの名無しさん2015/08/24(月) 07:27:59.75ID:Mj+ThXGY
for i,l in enumerate(a) :
 if l[0] == 2:
  i #この変数iが欲しいインデックス

関数にするならreturn iで処理終了
しないならbreakでforを抜けないと続行しちゃってその例だと3になっちゃう
enumerateはfor内を何回ループしてるか変数iに入れ続けるもの
0857デフォルトの名無しさん2015/08/24(月) 07:41:04.38ID:6mvTbcD8
help(a)
を実行して、一通りhelpをながめてみる。

または、

http://docs.python.jp/3.3/library/stdtypes.html#sequence-types-list-tuple-range
4.5. イテレータ型
を一通り読むんですね。
0858デフォルトの名無しさん2015/08/24(月) 08:08:57.76ID:xqAU88hl
ありがとうございます!
0859デフォルトの名無しさん2015/08/24(月) 09:34:40.43ID:m0N2dFlX
つうかさisとかいらねえんだよ
なんで==で全て判定できるように作らなかったのか
False==0がTrueとかPHP並に気持ち悪いな
本当P言語はクソだな
0860デフォルトの名無しさん2015/08/24(月) 09:50:11.43ID:t7k5wrbh
False==0は形違いで例外出すべきだね
0861デフォルトの名無しさん2015/08/24(月) 16:56:39.48ID:kccymPOD
真偽値が整数なのはC言語の慣習なので俺は親しみを感じる
でもTypeError出すのも妥当だと思う
別の言語でfalse == 0がfalseなのは驚愕した
0862デフォルトの名無しさん2015/08/24(月) 17:07:28.99ID:NZbDfDwI
>>861
> 別の言語でfalse == 0がfalseなのは驚愕した

驚愕するほどのものかね?
本質的にfalseと0は別のものだろ。

C言語なんか、true == 3がfalseなんだぞ。
0863デフォルトの名無しさん2015/08/24(月) 17:35:30.57ID:kccymPOD
>>862
trueは1だろ、何言ってんだ(真顔)

C言語の仕様の良し悪しは何とも言えない
でもマジで初学がCだと真偽値は整数扱いになる
比較の演算結果からtrueは1、falseは0、嘘じゃないよ
0864デフォルトの名無しさん2015/08/24(月) 18:07:18.58ID:NZbDfDwI
でも、if (3) {} は真だろ。

3がtrueじゃないのに、
真とかおかしいだろ。
0865デフォルトの名無しさん2015/08/24(月) 18:17:42.39ID:zrEdzFeo
C言語ネイティブで使ってるひとは
int a = 3; だったとして
if(true == a) ← こんなことする馬鹿はいない
if(true == (a != 0)) ← ぎりぎり許せるがまずしない
if(a != 0) ← 結構ある
if(a) ← 普通これ
0866デフォルトの名無しさん2015/08/24(月) 18:24:11.18ID:NZbDfDwI
> if(a != 0) ← 結構ある

結構あるだろ?

この派生で

if(a != false) ← 結構ある
if(a == false) ← 結構ある

じゃあ、falseの反対は・・・? trueだ!
if(a == true)

なんで動かないんだよ。バンッ!
0867デフォルトの名無しさん2015/08/24(月) 18:32:22.30ID:zrEdzFeo
C使ってるひとでtrueと比較するひとはモグリか素人
0868デフォルトの名無しさん2015/08/24(月) 18:38:54.04ID:NZbDfDwI
だから、C言語を知らない人だったら

別の言語でtrue == 3がfalseなのは驚愕した

っていうだろうなって話をしてるんだよ。
0869デフォルトの名無しさん2015/08/24(月) 18:49:39.15ID:CmRZDEoS
すげーどうでもいい
0870デフォルトの名無しさん2015/08/24(月) 19:18:00.61ID:tH5OuHw3
True/False/Noneはマジで恐いから使うのを避けた方がいい
自分は業務の障害対処に自作スクリプトを使った時、Noneとの比較をミスって
二重障害を起こしてしまったことがある
0871デフォルトの名無しさん2015/08/24(月) 19:24:28.72ID:CmRZDEoS
間抜けの報告ありがとう
肥溜めにでも埋まってろ
0872デフォルトの名無しさん2015/08/24(月) 19:36:39.85ID:zrEdzFeo
>>859

x True/False/Noneはマジで恐いから使うのを避けた方がいい

o == はマジで恐いから is を使った方がいい
0873デフォルトの名無しさん2015/08/24(月) 20:03:14.24ID:CzPwxFH3
>>857から12時間もたったしと思って。
>>856
>>> a = [(1,3),(2,4),(2,1),(2,3),(4,4)]
>>> a.index((2, 4))
1
一行で終わり。
0874デフォルトの名無しさん2015/08/24(月) 20:51:14.50ID:kccymPOD
>>864
C言語のifやwhileなどの構文では0か否かで分岐している
それを利用して比較演算を省略するイディオムがある
Pythonにもこのイディオムが取り入れられている
0875デフォルトの名無しさん2015/08/24(月) 20:53:20.82ID:SKpW1Nac
>>873
そういう質問じゃなかったと思う
最初の質問を読み直した方がいいんじゃないか
0876デフォルトの名無しさん2015/08/24(月) 21:15:50.90ID:CzPwxFH3
>>875の考える、
>>855に対する模範解答は>>873以外にありますか?
ないなら黙っていて下さい。
0877デフォルトの名無しさん2015/08/24(月) 21:23:32.34ID:rfufUizD
>>876
(2,X) (※Xは任意) のような要素のインデクスを返す簡潔な方法はなんでしょうか

と書かれているが?
0878デフォルトの名無しさん2015/08/24(月) 21:31:11.15ID:kccymPOD
>>855
任意の値を指定できる回答

>>> a = [(1, 3), (2, 4), (2, 1), (2, 3), (4, 4)]
>>> b = lambda x: a.index((2, x))
>>> b(4)
1
0879デフォルトの名無しさん2015/08/24(月) 23:00:52.16ID:CzPwxFH3
>>877
a.index((2,X))
でいいでしょ?

重要なのは、
a.index()
を答える事なので。

list.index((2, X))の、
Xを変数とするか4を書くかは重要じゃないです。
>>857でdocumentまで指定しているでしょ?

>>878
そんな書き方も出来るんですね。
0880デフォルトの名無しさん2015/08/24(月) 23:31:55.53ID:zakjp7f4
setで引き算したいんですけど辞書だとTypeError: unhashable type: 'dict'になります
どうしたら引き算できますか?

a = [
{"age": 10},
{"age": 20},
]

b = [
{"age": 20},
]

print(set(a) - set(b))
0881デフォルトの名無しさん2015/08/24(月) 23:44:28.66ID:HMCHLPlU
>>880
ハッシュ化可能なオブジェクトにすればできます
>>> a = [
("age", 10),
("age", 20)
]
>>> b = [
("age", 20)
]
>>>
>>> set(a) - set(b)
{('age', 10)}
0882デフォルトの名無しさん2015/08/24(月) 23:55:01.36ID:tH5OuHw3
>>879
この質問者が>>855で言っている、「Xの部分は任意」というのは
言い方に語弊があって
「タプルの左要素を指定し、右要素を無視して検索」という意味じゃないかと

だから、彼の望んでいる動作はこれだと思う
>>> a = [(1, 3), (2, 4), (2, 1), (2, 3), (4, 4)]
>>> list(map(lambda x: x[0], a)).index(2)
1
0883デフォルトの名無しさん2015/08/25(火) 00:31:52.45ID:XaboOLTF
>>> import itertools
>>> next(itertools.ifilter(lambda (idx, elem): elem[0]==2, enumerate(a)), (None,))[0]
1
0884デフォルトの名無しさん2015/08/25(火) 00:32:09.48ID:nd6cZevZ
たまにID:CzPwxFH3みたいな変な人沸くけど無理して回答しなくていいのに

あとlambdaとかリスト内包使うと初心者は動作が全く理解できなさそう
最初はループと条件分岐主体がいいと思うな
ちょっとコード長くなっても可読性高いので
0885デフォルトの名無しさん2015/08/25(火) 00:43:31.95ID:pfa9oRBx
> あとlambdaとかリスト内包使うと初心者は動作が全く理解できなさそう

これって、初心者を馬鹿にしてるよねw

お前、これらを理解するのに
どんだけ時間かかったの?
数日も数週間もかかったのか?

単に知らないだけなのに、
初心者と馬鹿にするのはやめてもらいたい。
0886デフォルトの名無しさん2015/08/25(火) 00:54:29.05ID:pfa9oRBx
あとさ、知らない文法を使う=可読性が低いという
考え方をやめてくんない?

そもそも「知らない文法」というのはだいたいが
可読性を高くするために作られたものなんだからさ。

例えば、球の表面積を求める式は
4πr^2 って言われてすぐに分かるだろう?
可読性高いからな。

でも知識がない小学生にはわからない。
だからといって公式は可読性低いってことになるか?

ようするに知らない人が読めないことを「可読性が低い」と
言ってはだめなんだよ。
0887デフォルトの名無しさん2015/08/25(火) 01:14:26.12ID:zenTVy2g
夏休みは白痴家庭で育った知恵遅れのガキが湧くから文章を読解できないのも仕方ない
0888デフォルトの名無しさん2015/08/25(火) 07:50:03.80ID:Po+lTyIJ
>>886
>例えば、球の表面積を求める式は
>4πr^2 って言われてすぐに分かるだろう?
>可読性高いからな。

暗記してるからね

よんぱいあーるにじょう

でもすぐ分かるけど可読性高いとは言わないよね
0889デフォルトの名無しさん2015/08/25(火) 19:23:33.68ID:pfa9oRBx
>>888
> 暗記してるからね
可読性が高いコード = 暗記した知識ですぐに理解できるコード
でもあるんだが。

極端な話をすれば、全てを暗記してしまえばどんなものでも
可読性は高いと思える。だけど、それは無理。
だから少ない暗記量で多くに対応できる汎用的な知識というのが重要になる。

だから自社専用ライブラリとかオレオレライブラリはやめろ。言語の構文を覚えろ。
より汎用的なライブラリ、広く知られたライブラリを使えって話にもつながる。

> よんぱいあーるにじょう
> でもすぐ分かるけど可読性高いとは言わないよね

当たり前じゃね? 可読性っていうのは
そういう風に、書き方の問題でもあるだから。
句読点がない文章が読みにくいのも同じ。

まとめると(構文などを)知っている・暗記しているかどうかで
変わるようなものは可読性とは関係ない。
可読性とは知識が有る人が読みやすいかどうかで判断するもの。
「俺(や他の人)が知らないから可読性が低い」という言い方は間違いなんだよ。
0890デフォルトの名無しさん2015/08/25(火) 19:35:06.88ID:yb6n8Wdy
長い上にどうでもいい
0891デフォルトの名無しさん2015/08/25(火) 20:15:07.59ID:pfa9oRBx
どうでもいいなら無視しとけよw
0892デフォルトの名無しさん2015/08/25(火) 21:11:14.02ID:T/PhJBrK
>>889
> 可読性が高いコード = 暗記した知識ですぐに理解できるコード
> でもあるんだが。

> まとめると(構文などを)知っている・暗記しているかどうかで
> 変わるようなものは可読性とは関係ない。

なんでやw
0893デフォルトの名無しさん2015/08/26(水) 01:51:19.67ID:pnXHZpep
最近キチガイ長文さん頻出してるね
こういう奴たいていの職場に一人は居るよなあ
0894デフォルトの名無しさん2015/08/26(水) 03:45:42.10ID:ftsbhcOc
pysideはqt5にいつ対応するのでしょうか?
pyqt5のビルド長くて退屈なんです…
0895デフォルトの名無しさん2015/08/26(水) 06:22:23.48ID:nL2sda9W
>>893
でも長文ってだけで間違ったことは言ってないよな?
いや、なにか言い返すならいいんだけどさ。
長文だー、長文だーって喚いてるだけ。
0896デフォルトの名無しさん2015/08/26(水) 07:40:00.49ID:pnXHZpep
あんなのに反論したらまたしつこく5レスぐらい使って書き散らしてくるんだろうし
結局のところ初心者目線で見る想像力が無くて、ただ自分の目線の世界でだらだらと語るしかない典型的ダメおっさんPG
つーかもしかしたら ID:CzPwxFH3= ID:pfa9oRBxなのかな
糞の役にも立たない回答を失笑されてカチンと来ちゃったのかね
0897デフォルトの名無しさん2015/08/26(水) 07:43:24.37ID:0fCLXGvh
今はどこのスレも変なの一人二人いるわ
C#相談室が一番酷いかな
初心者スレと逆転してる
0898デフォルトの名無しさん2015/08/26(水) 09:37:32.17ID:nL2sda9W
お前ら議論しろよw

あいつまじめに勉強てるぜwwwとか
やってることが不良高校生と同じだぞ。
0899デフォルトの名無しさん2015/08/26(水) 10:49:31.71ID:ElP7lUPJ
お前の駄文に議論する価値あんのか?
JR新小岩駅に行け
そして二度とここに来るな
0900デフォルトの名無しさん2015/08/26(水) 11:57:36.30ID:AtwE5MzM
>>896-897
http://www.lifehacker.jp/2013/03/130305jerks_and_trolls.html
http://www.lifehacker.jp/2011/11/111031ignoretrolls.html
http://info.2ch.net/?curid=2078
0901デフォルトの名無しさん2015/08/26(水) 12:29:34.60ID:sdlDeysq
なんやガチなんがおるな(キチガイ的に)
0902デフォルトの名無しさん2015/08/26(水) 12:58:53.97ID:ZW9B1mjA
いいから議論しろよ張り倒すぞ
0903デフォルトの名無しさん2015/08/26(水) 13:38:26.33ID:ftsbhcOc
それじゃネタ振り
みんなguiアプリ作るとき何使ってる?
俺はpysideでqt使ってるんだけど、最近kivyも気になってる
0904デフォルトの名無しさん2015/08/26(水) 13:49:01.19ID:zJ272Tt+
>>903
どんなくだらない雑談はいらねえよカス
0905デフォルトの名無しさん2015/08/26(水) 15:53:28.27ID:nL2sda9W
>>899
なんでそうかっかしてんの?
俺がいるとお前困るの?w
じゃぁいかなーい(笑)
0906デフォルトの名無しさん2015/08/26(水) 16:39:45.88ID:ElP7lUPJ
小学生と変わらんな
0907デフォルトの名無しさん2015/08/26(水) 20:52:34.12ID:nL2sda9W
まったくだよ。
まじめに議論するか何も言う気が
ないなら黙ってればいいのに、
関係ないことをぶつくさ言うだけ。
なんなんだろうね。
0908デフォルトの名無しさん2015/08/26(水) 21:01:17.41ID:nL2sda9W
誰が最初にけんかを売ったのか
見てみると楽しいね(笑)
どこでもやってるんだろうなぁ。
0909デフォルトの名無しさん2015/08/26(水) 22:15:44.84ID:ronbLnf1
なんだよもう議論しないのかよカス
0910デフォルトの名無しさん2015/08/26(水) 23:06:30.71ID:xqVlAmo6
>>903
私はHTML+CSS+JavaScriptですね。つまり
Webアプリケーションとして実装してます。

PySideはこの6月ぐらいに開発版のバージョンが2.0になって、
QT5対応に必要ないくつかの変更もされたとか。
QT4のサポートが今年の12月で終わるらしいので、
それまでにリリースされるといいですね。
0911デフォルトの名無しさん2015/08/27(木) 01:55:39.07ID:uBflNsZt
Pythonは30分で挫折したけど、議論に参加していい?
0912デフォルトの名無しさん2015/08/27(木) 05:57:56.65ID:ZEsVN2Rf
>>911
挫折するポイントが不明。
そんなのあったっけ?
0913デフォルトの名無しさん2015/08/27(木) 08:09:30.23ID:Sd5tuK/H
議論なんて高尚なことはやってない
(この夏にプログラマLV2になった奴が語っちゃってるだけ)
気にせず話せ
0914デフォルトの名無しさん2015/08/27(木) 11:01:44.03ID:kP+pCLjh
a = ['てst']ってリストからてstを取り出すにはどうするの
a[0]でも例外だし
0915デフォルトの名無しさん2015/08/27(木) 12:24:44.89ID:3PV9QFs8
>>914
俺の環境だとa[0]でちゃんと値を取り出せてるよ
例外の内容を正確に書いて再質問すると良いでしょう
0916デフォルトの名無しさん2015/08/27(木) 12:28:46.11ID:lwpAfeUc
よし、ちゃんと議論してるな
やればできるじゃないか
0917デフォルトの名無しさん2015/08/28(金) 22:22:07.50ID:Idwzm7eN
msvcrtのgetch()で未入力状態は何が返ってくるのでしょうか?None、””で反応しなかったので
教えてください
0918デフォルトの名無しさん2015/08/28(金) 22:30:00.43ID:La0rg2tq
未入力ならブロックするはずだし再現方法が分からん

print ord(msvcrt.getch())
0919デフォルトの名無しさん2015/08/28(金) 22:33:31.92ID:Idwzm7eN
255ですね
0920デフォルトの名無しさん2015/08/28(金) 22:47:07.77ID:Idwzm7eN
chr(255)でもヒットしないですね
0921デフォルトの名無しさん2015/08/29(土) 01:25:13.74ID:kSQTrkNz
print(1440778346.4348216 - 1440778346.4348133)

これ結果がおかしくなるのはなぜですか?
どうやって正しく計算結果を出せますか?
0922デフォルトの名無しさん2015/08/29(土) 03:13:58.44ID:AYSgSWUX
暗算できないなら電卓でもいける
0923デフォルトの名無しさん2015/08/29(土) 03:18:18.98ID:nAsI3V8f
エスパーじゃないから、コードだけでなく期待する結果と実際の結果の例がほしい
0924デフォルトの名無しさん2015/08/29(土) 08:25:37.47ID:TDTn35wR
あ、GUIでmsvcrt.getch()やると反応がちがうようです。
コンソールで普通に動きました
0925デフォルトの名無しさん2015/08/29(土) 11:45:17.59ID:D9jd66uE
>>923
ためせばわかるだろ
0926デフォルトの名無しさん2015/08/29(土) 12:32:26.05ID:TDTn35wR
>>918
print ord(msvcrt.getch())
をGUIで実行すると未入力状態で255が返って出力されます。
コンソールでの実行では未入力では何も出力されません
この原因はなんでしょうか
0927デフォルトの名無しさん2015/08/29(土) 12:33:28.57ID:TDTn35wR
それとGUIの場合、キーを押しても255のままです
0928デフォルトの名無しさん2015/08/29(土) 12:45:19.79ID:xMZWPx0m
allocconsole
0929デフォルトの名無しさん2015/08/29(土) 12:53:30.11ID:gmx5ty9e
windowsでwinmainから起動したプログラムは標準入出力が無効になっているため
標準入出力を使うプログラムはまともに動作しない
928が言っているAllocConsoleで標準入出力を新たにアタッチするか
別プロセスから起動してパイプを与えることで利用可能になる
0930デフォルトの名無しさん2015/08/29(土) 13:09:28.88ID:TDTn35wR
ありがとうございます。
C++の話ですか?allocconsoleを糸口に調べてみます。
0931デフォルトの名無しさん2015/08/29(土) 13:18:47.00ID:gmx5ty9e
というか、最終的に何がしたいんです?
聞いている限りではmsvcrt.getchを動作させることは過程でしかないんでしょ
最終的に欲しい結果をもっと簡単に得る方法はあるかもしれませんよ
無いかもしれませんが
0932デフォルトの名無しさん2015/08/29(土) 13:43:58.41ID:TDTn35wR
KODI(旧XBMC)の拡張機能を作ろうとしています。
拡張機能のミドルウェアとしてpython2が使用できます。

その中でキー入力を得たいので探しています。
文字列よりもホットキー的なもので使います。
linuxの場合はttyを使わないといけないのかもしれません。
まだ調べていません。

実際にKODIで実験しても同じ状態になりましたので、同様の問題があると思われます。
モジュールは読み込めたので使えることは使えると思います。
0933デフォルトの名無しさん2015/08/29(土) 17:17:41.41ID:TDTn35wR
orz・・・私の知識ではwinmainプログラムから標準入力を取得する方法がわかりませんでした。
0934デフォルトの名無しさん2015/08/29(土) 17:51:47.15ID:TDTn35wR
検証に支障が出る可能性もあるので難しいことはやめます。
無理に標準入力にこだわる必要もないので
0935デフォルトの名無しさん2015/08/29(土) 17:55:11.32ID:Xtar3XIm
>>933
sys.stdin.read()
fgets(stdin, ss, 80 - 1);
知らないとか?
0936デフォルトの名無しさん2015/08/29(土) 18:09:57.30ID:vY8VctDz
>>935
それはエンター押さなければ
ならないのでは?
0937デフォルトの名無しさん2015/08/29(土) 18:58:31.84ID:xMZWPx0m
pygame使っとけ
0938デフォルトの名無しさん2015/08/29(土) 19:56:04.67ID:jCAQiE2w
あと2週間で3.5がでるけど新機能ってどのページに載ってるかおしえて
0939デフォルトの名無しさん2015/08/29(土) 21:14:43.47ID:Ld2l5eLL
https://www.python.org/download/releases/3.5.0rc2/
0940デフォルトの名無しさん2015/08/29(土) 22:20:34.52ID:GZ09Elz0
python 3.4のurllib.request.urlopenのタイムアウト

http://docs.python.jp/3/library/urllib.request.html#module-urllib.request
>任意の引数 timeout は、接続開始などのブロックする操作におけるタイムアウト時間を秒数で指定します (指定されなかった場合、グローバルのデフォルトタイムアウト時間が利用されます)

ってありますがこのグローバルのデフォルトタイムアウト時間ってどうやって設定したり取得できますか?
0941デフォルトの名無しさん2015/08/29(土) 23:04:07.87ID:ucYXOKxr
>>940
もっと低層のタイムアウトを使うようになっとる

>ってありますがこのグローバルのデフォルトタイムアウト時間ってどうやって設定したり取得できますか?
グローバルのデフォルトタイムアウト時間よりも、
http://docs.python.jp/3/library/urllib.request.html#urllib.request.urlopen
のタイムアウト時間を指定したほうがいいと思う
0942デフォルトの名無しさん2015/08/30(日) 06:13:26.33ID:tJkk5ci/
>>939にあるこれって
>Windows users: There are now "web-based" installers for Windows platforms; the >installer will download the needed software components at installation time.

インストーラーがインターネットからダウンロードしながら動作するって意味?
だとしたら企業内のスタンドアロンPCにインスコできなくなるじゃん
0943デフォルトの名無しさん2015/08/30(日) 08:37:26.59ID:6hA230oM
Windows x86-64 executable installer
0944デフォルトの名無しさん2015/08/30(日) 09:46:10.04ID:xQDvWigH
py2exeで、urllibとurllib2を使ったプログラムをexe化するとフリーズするのだが、これどうすればいいの? 間違ったコードは書いてないし...
0945デフォルトの名無しさん2015/08/30(日) 10:36:20.34ID:sqP4vjJl
使わなければいいと思いますよ
使わなければ動作しないものではありませんから
0946名無しさん2015/08/30(日) 11:21:30.28ID:xQDvWigH
Pyinstallerでもいいだけどさ、ファイル容量半端なくなるからできたらpy2exeつかいたいけどなぁ
0947デフォルトの名無しさん2015/08/30(日) 14:12:17.79ID:sqP4vjJl
そうは言ってもですよ
再現方法すら提示されないのにどうしろと言うんです
pythonのバージョンやpy2exeのバージョンも分からない状態で
入手可能な組み合わせ、考え得るあらゆるコード全てで試すんでしょうか?
あなたはそれが現実的だと少しでも思いますか?

自分の個人的な見解としては、最小のコードで動作した時点で
間違ったコードを書いていないというあなたの見解が間違っていると判断を下しました
http://pastebin.com/E4FYQpU5
その時点でやる気がなくなりました
0948名無しさん2015/08/30(日) 14:29:01.69ID:xQDvWigH
すまそ、環境はPython2.7, py2exe v0.6.9, Win10
ちなみにpyinstallerでは問題なく動作

現象としては、コードミスによるエラーじゃなく、起動してimportまでできているみたいだけどurllib.urlretriexeの部分にさしかかると ~は動作が停止しましたと出る感じ

#-------------------
import urllib
urllib.urlretrieve('http://www.google.com', 'google.html')
0949名無しさん2015/08/30(日) 14:32:27.56ID:xQDvWigH
>>948
あ、あと外部モジュールとかはpy2exeくらいしか入れてない、Python27フォルダ内のファイル変更,移動,削除とかも一切してない
0950デフォルトの名無しさん2015/08/30(日) 15:53:07.67ID:sqP4vjJl
win7 x64 pro + python 2.7.10 x86 + py2exe 0.6.9で止まらない
0951名無しさん2015/08/30(日) 15:54:30.72ID:xQDvWigH
まじかw やっぱこのPCが悪いのかー ありがと
0952デフォルトの名無しさん2015/08/30(日) 16:09:00.82ID:tJkk5ci/
つーか明らかにWindows10が臭いだろ
0953デフォルトの名無しさん2015/08/30(日) 18:24:43.63ID:xA3qmXia
監視系の処理をしたくて下のように書いたんですが、
空のブロックは許されないらしいのでexceptブロックに適当な一文を入れて解決しました
でも何か不格好な感じもするので真っ当なやり方がありましたら教えて下さい

def monitor():
 a = get()
 try:
  if a != b:
   sth()
 except NameError:
  dummy = 0
 b = a
0954デフォルトの名無しさん2015/08/30(日) 18:58:14.67ID:xA3qmXia
b = 0
def monitor():
 global b
こう書かないとbが消えちゃいますね
0955デフォルトの名無しさん2015/08/30(日) 18:59:16.66ID:gWgp6/6g
>>952
Win10 Pro x64、Python2.7.9 x86、py2exe 0.6.9で>>947のスクリプト試したけどちゃんと動いたよ
0956デフォルトの名無しさん2015/08/30(日) 19:02:00.23ID:T6IhtZv4
>>953
シンタックス上何か文を置かないわけにはいかないけど
何もする必要がないときは普通pass文を使うよ
http://docs.python.jp/3/reference/simple_stmts.html#the-pass-statement

でもプログラムの設計としてあなたコードが妥当かどうかは
具体的にどういう処理をしているのかがわからないのでなんとも
0957デフォルトの名無しさん2015/08/30(日) 19:10:33.80ID:xA3qmXia
>>956
ありがとうございます!本当に何もしないためだけの文があったとは
目的はクリップボードの監視で一つ前のデータを保存したかっただけです
0958デフォルトの名無しさん2015/08/30(日) 19:23:28.04ID:T6IhtZv4
>>957
クリップボードが変更されたときだけ保存するってことだね
NameErrorはどこで発生する例外で何で無視してもいいの?
0959デフォルトの名無しさん2015/08/30(日) 19:29:31.90ID:xA3qmXia
>>958
初回の呼び出しでは保存用変数が空なために
if文で評価するときに未定義のエラーが出るのでその対策としてのつもりです
検索したら出てきた方法なので
0960デフォルトの名無しさん2015/08/30(日) 20:03:55.34ID:T6IhtZv4
>>959
そういう用途なら例外をpassでスルーする形で妥当かな
空文字かNoneで初期化しとくのじゃダメなんかなともちょっと思ったけど
クリップボード周りの実装はしたことないので頓珍漢なこと言ってるかも
0961デフォルトの名無しさん2015/08/30(日) 20:17:13.79ID:xA3qmXia
>>960
あ、うっかりしてました
>>954みたいにグローバル変数を使うなら例外処理もいらなくなりますね
ともかく目的が果たせて満足です。親身にご指導いただきありがとうございました!
0962デフォルトの名無しさん2015/08/30(日) 23:31:40.78ID:lCIF9vL7
>>955
GNU系は、Win7 Pro x64 を使うのが定番だが、

ほほう、Win10 Pro x64 でも動きますたか?
0963デフォルトの名無しさん2015/08/31(月) 20:35:49.34ID:bggRqSur
foo(arg1, arg2, arg3)
という関数を呼び出すときにarg2だけ省略することってできますか?
0964デフォルトの名無しさん2015/08/31(月) 20:43:07.51ID:1sJZNQ4o
できません。

前優先なので、
引数の順序を入れ替えて下さい

foo(arg1, arg3, arg2=None)

とかにして下さい
0965デフォルトの名無しさん2015/08/31(月) 20:52:04.61ID:bggRqSur
>>964
分かりました。ありがとうございました
0966デフォルトの名無しさん2015/08/31(月) 22:53:28.94ID:5tXTMn4R
foo(arg1, arg3=arg3)
#どうでもいいけど関数宣言の方はparameterじゃ
0967デフォルトの名無しさん2015/09/01(火) 02:21:11.52ID:sXfua+XA
def foo(arg1, **kwargs):
arg2 = kwargs.get('arg2', defaultvalue)
arg3 = kwargs['arg3']
0968デフォルトの名無しさん2015/09/03(木) 11:21:42.13ID:BG3f8u9o
最近の大学生ってひでえもんだな
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10149744480
http://www.python.jp/pipermail/python-ml-jp/2015-September/005973.html
http://www.python.jp/pipermail/python-ml-jp/2015-September/005971.html
0969デフォルトの名無しさん2015/09/03(木) 13:28:52.07ID:c+e/eL7q
数値で1.00って表示する方法を教えてください
0970デフォルトの名無しさん2015/09/03(木) 14:35:21.80ID:twsT9voz
検索する
0971デフォルトの名無しさん2015/09/03(木) 15:36:46.15ID:KQppFRcC
>>969
"{0:.2f}".format(1)
0972デフォルトの名無しさん2015/09/03(木) 19:22:37.06ID:MJyzegUy
print('1.00')
0973デフォルトの名無しさん2015/09/03(木) 20:40:51.42ID:26WurM6V
python3.4の文字の扱いについてご教示願います

title = browser.title
t = title.encode('utf-8')
d = t1.decode('utf-8')
print(d)

変数titleにはWebサイトから取得した文字コードS-JISのページタイトル(GMO証券)が入っています。
titleの内容を文字コードUTF-8に設定したターミナル上に出力する際に文字化けしないように
S-JISからUTF-8に文字コード変換したいのですが、上記内容のコードでは上手くいきません。


原因がわかる方いましたら、お手数ですがご教示願います。


【補足】
・ターミナルの文字コード設定をS-JISに変更すれば、文字化けしないで表示することが出来ます。
・ターミナルはminttyを使用しています

以上
0974デフォルトの名無しさん2015/09/03(木) 20:48:12.64ID:26WurM6V
申し訳ございません、変数名に誤りがありました。
正しくは以下の通りです。

誤
d = t1.decode('utf-8')

正
d = t.decode('utf-8')

以上
0975デフォルトの名無しさん2015/09/03(木) 21:11:18.15ID:Hq1TyWtW
titleがshift_jisでエンコードされたbytesと仮定して答えます
>>> title = 'GMO証券'.encode('shift_jis')
>>> title
b'\x82f\x82l\x82n\x8f\xd8\x8c\x94'
>>> title.decode('shift_jis')
'GMO証券'
0976デフォルトの名無しさん2015/09/03(木) 21:19:20.28ID:twsT9voz
>>973
> S-JISからUTF-8に文字コード変換したい
>>973では、Webサイトからページタイトルを取得した時、
Webサイトが送ってくるページタイトルはsjisでしょ?
なので、Webサイトから取得する文字列はsjisなんだから、
titleをbytesとして受け取らないといけない。

そして、>>975のように、
title.decode('sjis')
とすれば文字化けせずに、utf-8を表示してくれる。
0977デフォルトの名無しさん2015/09/03(木) 21:22:02.94ID:26WurM6V
>>975
ご回答有り難うございます。

>titleがshift_jisでエンコードされたbytesと仮定して答えます

申し訳御座いません。データ型の情報が不足しておりました。
type(title)の出力結果は、<class 'str'>です。
0978デフォルトの名無しさん2015/09/03(木) 21:31:53.74ID:ACT9XNdq
馬鹿には無理
0979デフォルトの名無しさん2015/09/03(木) 21:33:09.40ID:twsT9voz
>>977
うん、だから、
> type(title)の出力結果は、<class 'str'>
の時点で誤りだよね。

>>976をもう一度読んで。特に、
> Webサイトが送ってくるページタイトルはsjisでしょ?
を百回音読して。
0980デフォルトの名無しさん2015/09/03(木) 21:44:17.93ID:26WurM6V
>>979
回答有り難うございます。

> Webサイトが送ってくるページタイトルはsjisでしょ?
SJISの内容のページタイトルが送られてくるので素直にSJISでエンコード→デコードしてあげれば
文字化けしていない正しい内容が得られるからUTF-8に変換する必要なんて無いって事ですかね?

以下の様にコードを修正して再実行してたところやはり文字化けしてしまいます。
んー、バカなので難しいですな。。

title = browser.title.encode('shift_jis')
t = title.decode('shift_jis')
print(t)
0981デフォルトの名無しさん2015/09/03(木) 22:02:58.82ID:twsT9voz
>>980
>> んー、バカなので難しいですな。。

に、むかついたから、もう教えてやんない
馬鹿な>>977には無理だから諦めろ
0982デフォルトの名無しさん2015/09/03(木) 22:19:08.88ID:Hq1TyWtW
>>980
もしかしてWindows版インストーラーで導入したPythonを使ってますか?
win版だとminttyの環境はcp932(shift_jis)でないと文字化けします
0983デフォルトの名無しさん2015/09/03(木) 22:59:18.59ID:pYSbQaf9
この一連の流れでわかるあなたの有能度
・有能 ID:Hq1TyWtW(>>982)
質問者固有の環境にまで考えが及ぶエクセレントな人 解決策を提示

・普通 オレ
browser.titleの時点でbeatifulsoup・seleniumみたいなのでHTMLをパースしてるんだろうと察し、
browser.titleがstr型だということが自明なので文字コードの問題じゃないとすぐわかる
だからそれpython以外の問題じゃないの?とまではわかった
ただしwindowsが手元に無いし解決策までは提示できないので有能まではいかず

・無能 ID:ACT9XNdq(>>978)
説明不要

・ゴミ ID:twsT9voz(>>981)
browser.titleがstrを返すということがわからなかっただけでpython周辺ライブラリの知識が皆無
なのに的外れな回答をし続けた挙げ句、ぶち切れて捨て台詞
死んだ方がいいレベル 死ね 早く

>>978みたいなこと言われたらそら初心者は「んー、バカなので難しいですな。。」とか書いちゃうのはしょうがないでしょ
pythonろくに知らないし初心者馬鹿にするし、ここの一部の回答者ってホント救えないわ
0984デフォルトの名無しさん2015/09/03(木) 23:17:37.02ID:esByfF4n
>>980
まず根本的に、特定文字コードの文書はbytesであり、デコードするとstr(unicode≠UTF)になります
browser.titleがstrの時点でそれはデコード済みです、誤った文字コード処理ならエラーになっている事でしょう
デコード済みであるstrをエンコードしてbytesにし、同一コードでデコードを行っても何の意味もありません

文字化けの原因はスクリプトではなく、ご自身で書かれている通りターミナルコードとの不一致だと思います
Python3の標準出力は文字エンコーディングを持っていてstrをエンコードしてから出力します、これは
ttp://docs.python.jp/3.4/library/sys.html#sys.stdout
にて解説されていますので、補足や>>982の通りターミナルコードを合わせるか、PYTHONIOENCODINGでUTF-8にするとか
他、実行中に sys.stdout = io.TextIOWrapper(sys.stdout.detach(),'utf-8') などとして変更する方法もあります
0985デフォルトの名無しさん2015/09/04(金) 01:14:57.15ID:/zhxqmNp
>>982
仰るとおりWindows版インストーラーで導入したPythonを使っています。
cp932で無いと文字化けするのはminttyの仕様だったのですね。納得しました。

>>983
Selenium+BeautifulSoupでスクレイピングを試しているところでした。

>>984
>特定文字コードの文書はbytesであり、デコードするとstr(unicode≠UTF)になります
デコード済みの内容をエンコードしてから再びデコードするという意味無い事してたのか・・・。
分かりやすい解説、その他サンプルの提示ありがとうございます!後ほど試してみたいと思います。

文字コードの理解が浅くターミナルが原因だという事まで考えに及びませんでした。

ご回答下さった皆様ありがとうございましたm(__)m
0986デフォルトの名無しさん2015/09/04(金) 04:06:01.59ID:x7fRT8f0
>browser.titleがstrの時点でそれはデコード済みです、誤った文字コード処理ならエラーになっている事でしょう

これだな
他の香具師は的外れ

>>985
違うよ
考え直せ
0987デフォルトの名無しさん2015/09/04(金) 07:08:04.13ID:6Gds/3zT
くだすれPython(超初心者用) その27
http://peace.2ch.net/test/read.cgi/tech/1441317912/
0988デフォルトの名無しさん2015/09/04(金) 10:24:20.27ID:efXmgHpK
乙.py
0989デフォルトの名無しさん2015/09/04(金) 11:30:39.46ID:efXmgHpK
>>977
>type(title)の出力結果は、<class 'str'>です。

↓を読んだ上で↑の返事はさすがに無いわ
>>976
>なので、Webサイトから取得する文字列はsjisなんだから、
>titleをbytesとして受け取らないといけない。
0990デフォルトの名無しさん2015/09/04(金) 17:37:20.44ID:HNXLj6zd
君ら初心者いじめるの好きだねw
0991デフォルトの名無しさん2015/09/04(金) 19:25:26.13ID:Z77fhgK9
いや、人が回答を書いているのに人の書き込みをろくに読まずに
> んー、バカなので難しいですな。。
と書いて、自分の頭が悪いのを盾にして、
人の書き込みを読まないから、さすがに怒ったの

初心者いじめたかったら、そもそも何も教えてない
0992デフォルトの名無しさん2015/09/04(金) 20:27:20.03ID:F3w9cE+J
初心者以前に人の話を聞かない奴はダメだよね
0993デフォルトの名無しさん2015/09/04(金) 20:44:09.48ID:EI4y/sV7
>>973で違和感があったがwin版の可能性に気づけなかった
>>980のレスのおかげでWindows版を使ってることを推測できた

つまり一連のやりとりは十分な情報を引き出せた
0994デフォルトの名無しさん2015/09/04(金) 21:28:58.95ID:B3/17KX+
何で質問者が人の書き込みを読んでないとか人の話を聞いてないってことになってんだよ可哀想に
0995デフォルトの名無しさん2015/09/04(金) 21:35:03.89ID:Z77fhgK9
>>994
ちょっと改変するけど、
>>989の

>>976
>なので、Webサイトから取得する文字列はsjisなんだから、
>titleをbytesとして受け取らないといけない。

↑を読んだ上で↓の返事はさすがに無いわ

>>977
>type(title)の出力結果は、<class 'str'>です。
0996デフォルトの名無しさん2015/09/04(金) 23:58:33.05ID:x7fRT8f0
>Selenium+BeautifulSoupでスクレイピングを試しているところでした。

そいつが browser.title を str に変換するときに間違ったエンコードでデコードして文字化けしたんだろう
既に壊れたデータをエンコードしても手遅れ
決してターミナルのせいではない
0997デフォルトの名無しさん2015/09/05(土) 01:43:35.09ID:jZ9K/01b
たいてい文字化けの原因は、端末を使うからだよ

TeraPad など、日本人の作ったエディタでは、
簡単に文字コードが変更できるので、
文字化けは起こらない

端末などは外人が作っているため、
日本語などはほったらかし
0998デフォルトの名無しさん2015/09/05(土) 02:12:09.52ID:ZKXW4+L0
超初心者スレでこの対応は辛辣だよなあ
話を聞いていないのではなく、理解できていないだけだろう
sjisだからbytesとして受け取らないといけないって説明も
初心者向けじゃないと思うし
0999デフォルトの名無しさん2015/09/05(土) 02:27:54.77ID:xb8mS1yp
次スレに書けよ
1000デフォルトの名無しさん2015/09/05(土) 02:29:02.99ID:jZwyv5P2
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。