くだすれ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/x2p0004デフォルトの名無しさん
2015/05/17(日) 13:47:17.65ID:se+ydSXL0005デフォルトの名無しさん
2015/05/17(日) 15:46:42.29ID:tASFt5zkwebページを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:wvzPz3Baparse関数はパーサーオブジェクトをオプションで取ります
パーサーオブジェクトを与えないとXMLParserを使います
HTMLParserを与えてください
0007デフォルトの名無しさん
2015/05/17(日) 16:03:15.27ID:wvzPz3Baそうなったらアキラメロン
0008デフォルトの名無しさん
2015/05/17(日) 17:41:57.69ID:tASFt5zkroot = fromstring(html, HTMLParser())
としたら、
エラーは無くなりましたがタグを手繰ろうとすると NonType と言われて出来ませんでした。
HTMLParser を派生して
parser = MyHTMLParser()
parser.feed(html)
parser.close()
としたら、タグは読めました。
まだ先は長そうですが、ご教授ありがとうございました。
0009デフォルトの名無しさん
2015/05/18(月) 00:08:11.12ID:K8yFRBxU0010デフォルトの名無しさん
2015/05/19(火) 03:49:47.58ID:L8E0K9w8def 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:ctmR18NTprint(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:ctmR18NT0013デフォルトの名無しさん
2015/05/19(火) 23:13:22.76ID:L8E0K9w8ありがとうございます!期待していた通りの挙動になりました
yieldは使いこなせると便利そうですが慣れるまではちょっと怖いですね
思わぬバグを作り込んでしまいそう
0014デフォルトの名無しさん
2015/05/20(水) 05:29:20.44ID:K3ViYaGA勉強がミッション化されてて面白かったw
ログファイルから断片化された画像のURLを抽出して、並べ替え、ダウンロードして一つの画像として表示するとか、なんかワクワクしたw
0015デフォルトの名無しさん
2015/05/21(木) 01:18:06.15ID:0lqSGmSkfor i, v in range(10)
こういうふうにかけたらいいのに何でインデックス取るのに面倒な記述をしないといけないんだろう
このへんはGoをみならってできるように改良してもらいたい
0016デフォルトの名無しさん
2015/05/21(木) 02:08:02.38ID:oB9KNLHA0017デフォルトの名無しさん
2015/05/21(木) 05:29:50.91ID:zzLeh6B9とでも言って流しておけばいいものを
0018デフォルトの名無しさん
2015/05/21(木) 10:57:04.88ID:OSpceEvr0019デフォルトの名無しさん
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最初に呼び出す時はオーバーヘッドあってもその後ループ内では無いに等しい
って解釈してるんですがあってますかね
0021デフォルトの名無しさん
2015/05/21(木) 12:12:51.55ID:oB9KNLHA処理速度だって同等かむしろ良いくらいだよ
全てメモリに展開せず、逐次ジェネレーターライクな動きするからオーバーヘッドも少ないよ
0022デフォルトの名無しさん
2015/05/21(木) 12:25:35.22ID:Tg0bXDwp0023デフォルトの名無しさん
2015/05/21(木) 17:26:43.43ID:6dtMhhKG質問なんですが、__init__.py内にある任意のクラス名をどうやって呼び出しているのでか?
0024デフォルトの名無しさん
2015/05/21(木) 18:14:07.06ID:gn4elZ6Jないなら勉強しろ
0025デフォルトの名無しさん
2015/05/21(木) 18:39:55.54ID:6dtMhhKG自分で決めたクラスをblenderは、どうやって認識しているのでしょうか?
モジュール内に定義されたクラス一覧を取得するメソッドでもあるのでしょうか?
また、文字列でクラスを呼び出せるのでしょうか?
0026デフォルトの名無しさん
2015/05/21(木) 18:53:06.31ID:gn4elZ6Jimport hoge
print dir(hoge)
と実行してみろ
そんで
instance = getattr(hoge, 'HageClass')()
とやればインスタンスが作れる
0027デフォルトの名無しさん
2015/05/21(木) 18:56:11.30ID:iv04xADqこういうことでは無くて?
0028デフォルトの名無しさん
2015/05/21(木) 18:58:20.99ID:iv04xADq0029デフォルトの名無しさん
2015/05/21(木) 19:06:10.14ID:6dtMhhKGなるほどそうやってるんですね。
0030デフォルトの名無しさん
2015/05/22(金) 19:25:49.92ID:GdCh1ajU0031デフォルトの名無しさん
2015/05/22(金) 20:36:14.54ID:j2+sj5Ouこのへん
0032デフォルトの名無しさん
2015/05/22(金) 22:42:40.80ID:GNpfjP2d日本語のチュートリアルだとこのへん
0033デフォルトの名無しさん
2015/05/22(金) 22:52:59.58ID:GNpfjP2dあと、その次の、4.7.4. 引数リストのアンパックも覚えとくと便利
l = ["hello", "my", "friend"]
lというリストをスペース区切りで表示したいとき、↓でいける
print(*l)
print(" ".join(l))
とかしなくてもいい
0034デフォルトの名無しさん
2015/05/23(土) 10:39:29.12ID:884F+n7vありがとうございます今から読んで学習します
0035デフォルトの名無しさん
2015/05/23(土) 16:38:39.10ID:OjkyrBsZなんかすげええ
他の言語でもこんな簡単に送れるものなのだろうか
0036デフォルトの名無しさん
2015/05/23(土) 19:02:53.50ID:mBWRn4xpperlとかrubyはしてると思う
nodeはしてない
0037デフォルトの名無しさん
2015/05/24(日) 04:56:53.13ID:C4HQwhyeそうなんですか! 自分は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あなたは僕を超えました
そしてあなたは僕の先生となりました
ぜひブログでやり方を書いて紹介してください
0039デフォルトの名無しさん
2015/05/25(月) 10:13:00.28ID:H/4xp/afいままで2.7.8を削除して2.7.10を入れて再度pipでパッケージをインストールしてました
同じメジャーバージョンならpipでパッケージを削除する必要ないと思うんですが
pythonのバージョンだけ上げる方法ありませんか?
0040デフォルトの名無しさん
2015/05/25(月) 11:01:17.13ID:R3oTKNZR0041デフォルトの名無しさん
2015/05/25(月) 17:12:28.26ID:XRMIkMF7import 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指定したバージョンのソースコードを手に入れたい時ってどうしたらいいんですか?
0043デフォルトの名無しさん
2015/05/26(火) 14:28:14.45ID:fTI4HEOKMercurialのリポジトリから拾ってくる
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:fTI4HEOK0046デフォルトの名無しさん
2015/05/26(火) 20:44:53.01ID:BsJ/nx2fmylist[mylist.index({'num':2})]
0047デフォルトの名無しさん
2015/05/26(火) 21:38:59.86ID:kkyk1kjTこのjってなんですか?
0048デフォルトの名無しさん
2015/05/26(火) 21:46:32.51ID:oqPKm2sI全く同じ事を今日やってた 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確かに一見それで良さそうだけど、それでいけるならそもそも要素を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:HsCFsvXb44です
先に挙げたリストは説明のために極力簡略化したものです
実際はキーに対する値は数値ではあるものの連番ではなく
またリストに追加される順序も不定です
ただし一意であることは保証されています
また実際はこのキー以外にも複数のキーを持っています
このnumキーがリレーショナルデータベースにおける主キーに相当するため
このキーの値でスマートに要素を取り出せたらなと思い質問させていただきました
逆参照mapというのがどのようなものか私にはわからないのですが
ここの例で言うとnumキーの値を辞書のキーにして
その値にリストの該当要素への参照を対応させたものでしょうか
順序は問題にならないのでリストではなく辞書の辞書にすることも考えたのですが
必要であればどのキーを使ってでもすぐにfor ループが回せるという
分かりやすさも捨て難い気がして躊躇していました
48さんのおっしゃる最初からキーの値に対応したインデックスの箇所に収納する方法も確かにありますね
逆参照mapを作る方法と合わせて検討してみたいと思います
0051デフォルトの名無しさん
2015/05/26(火) 23:21:56.28ID:BsJ/nx2f値じゃなくて、リストのその部分を編集するための参照が欲しいのかなと思ったんです・・・
自分で構造を決められるなら、こんなじゃだめなのでしょうか?
data = {
str(numの値): {他データ},
str(numの値): {他データ},
,
,
,
}
128番の情報が欲しい! → data[str(128)] みたいな感じで
0052デフォルトの名無しさん
2015/05/27(水) 01:16:34.91ID:gIxiSbR2それもいいですね
ありがとうございます
ただ今回はリストのフラットなデータ構造のままで
それと同じことが分かりやすくできる方法があればと思い質問させていただきました
0053デフォルトの名無しさん
2015/05/27(水) 17:56:08.90ID:4cyo14pp余計なことしてたので訂正です
辞書はキーに数字をそのまま使えました・・・
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&#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+timport html
html.unescape(title)
0056デフォルトの名無しさん
2015/05/29(金) 10:58:53.01ID:qxRvZ9TXありがとうございます。
変換することができました。
0057デフォルトの名無しさん
2015/05/29(金) 11:08:33.75ID:RwL0vTGqこれって3.0〜3.4で作成された.pycを削除してから3.5の環境でスクリプトを実行して.pycを生成し直さないとトラブルになるってことですか?
0058デフォルトの名無しさん
2015/05/29(金) 13:24:15.16ID:98Ume5mpdictも同様にできるようなんですが、
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.pycってhoge.cpython-34.pycって感じでPythonのバージョンごとに
作られるから削除の必要はない
0060デフォルトの名無しさん
2015/05/29(金) 13:40:11.39ID:g6jbltjH1つ目はstr.join()
2つ目はself.__dict__.update()
0061デフォルトの名無しさん
2015/05/30(土) 03:08:46.90ID:rJ1AgvvX「文」とそれを構成する「単語」の関係を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質問1は複数あるWordの順序を保持する必要からlistを使うのは妥当だと思います
質問2はSentenceの情報はWordに持たせなくていいと考えてます
0063デフォルトの名無しさん
2015/05/30(土) 15:52:41.19ID:rJ1AgvvXありがとうございます
もしWordがSentenceの情報を持たない場合、
Word自身からではどのSentenceに属してるかわからなくなってしまいます
Sentence<--どちらも相手を参照できる-->Word
という関係性は必ず維持しなければならないという前提でアドバイスいただけるとありがたいです
0064デフォルトの名無しさん
2015/05/30(土) 20:44:32.94ID:lFJ1sGxFそのファイルのサイズを調べて一定以上のサイズならダウンロードする
というようなプログラムが書きたいです。
ネット上のファイルサイズを取得する一番簡単な方法は何でしょうか?
urlretrieveでサイズを表示することはできたんですが上手く数字を拾えなくて・・・
なにか簡単な方法をご存知のかた、教えてください
0065デフォルトの名無しさん
2015/05/30(土) 21:24:25.22ID:zOKa2SxYPythonのurllib2はバカだから
get_methodオーバーライドしないとHEAD打てないけど
意味分からんよな
誰だよこれ設計した奴
0066デフォルトの名無しさん
2015/05/30(土) 22:06:26.17ID:Il/jbsrmrequestsはhigh layerすぎるからhttplib2かurllib3が妥当か
0067デフォルトの名無しさん
2015/05/31(日) 20:01:30.99ID:Yx/E9Xi4Numpyのarray形式なのですが、
printで表示すると、
内容が長い場合、...,で省略されてしまいます。
savetxtでTEXTで書き出す場合も同様です。
この省略をさせない方法はないのでしょうか?
0068デフォルトの名無しさん
2015/06/01(月) 02:47:52.53ID:29A8lhcJnumpy.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{% 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:sxsqR351007169
2015/06/02(火) 17:30:52.40ID:44VEslIOpythonは2.7.5、djangoは1.6.5でした。
よろしくお願い致します。
0072デフォルトの名無しさん
2015/06/02(火) 23:00:09.86ID:dwjHRJAm今後同じことで悩んでいる人が情報を見つけやすくなるしdjangoスレにいって
http://kohada.2ch.net/test/read.cgi/php/1323960422/
0073デフォルトの名無しさん
2015/06/03(水) 00:45:17.77ID:SWrh59QF文字列や数値ならJS側に直接渡せるけど、リストとか辞書は渡せない
なのでJSONにしてから渡す
その際にテンプレート側でsafeフィルタは切ること
今Django試せないので推測での回答ですまないけど参考になれば
0074ダメ五郎
2015/06/03(水) 23:50:02.93ID:zww4qzzDどうすればいいですか?死んだほうがいいですかね?
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:nTFCM4h6self.aじゃなくてDice.aで参照する
スタートブックに何が書いてあるのか非常に興味深いな…
新手のステマだろうか
0076ダメ五郎
2015/06/04(木) 00:07:15.15ID:bBf7LCLqa=6は
class Dice:
a = 6
def __init__(self):
の位置にかいてありました。。
0077ダメ五郎
2015/06/04(木) 00:09:36.09ID:bBf7LCLqclass 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:oidqcGvtclass 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__init__(self,,,) はクラスをインスタンス化したときに「自動で実行」される特別なメソッドちゃん
一般ピーポのメソッドちゃん、shootは実行されてないでしょ
sai = dice.Dice() ← インスタンス化ってのはこの部分ね
てことで引数を受け取ったり、初期化したりは __init__(self,第一引数,第二引数,,)のところでやるのが作法なのさ
0080デフォルトの名無しさん
2015/06/04(木) 05:35:09.80ID:UvhoGikTwebページ上に配置したgooglemapに対して、スマホからサーバに一定間隔で送信される位置情報を使って場所を示す仕組みを作りたいと思っています。
(ページのリロードはしないで、googlemapだけ更新されるイメージ)
このような時、websocketを貼ってやれば出来るのかなと思うのですが、他のやり方を知らないのでそれが最適解なのかどうかがわからないです。
他に推奨されるやり方があったら教えて頂けませんか。
サーバはpython+flaskで、googlemapはjavascriptで呼び出しています。
0081デフォルトの名無しさん
2015/06/04(木) 07:08:46.96ID:yBrKCk54クライアント側の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
008280
2015/06/04(木) 08:43:54.57ID:GeWtCH2Jレスありがとうございます。
自分自身の位置を見るのではなくて、あくまでも送られてきた位置情報を使いたいのです。
例えば管理者が、部下の位置を確認するのに近いイメージかなと。
0083デフォルトの名無しさん
2015/06/04(木) 10:30:22.88ID:ixdJmRIH30秒毎に位置情報をajaxでサーバ送るとかな
0084デフォルトの名無しさん
2015/06/04(木) 10:40:42.64ID:5pAAiATnJavaScriptスレ行ってこい
0085デフォルトの名無しさん
2015/06/04(木) 16:22:20.43ID:GK2i9TQ1http://www.python.jp/pipermail/python-ml-jp/2015-June/011408.html
最近のMLはレベルが低いねぇ
0086デフォルトの名無しさん
2015/06/04(木) 16:41:18.19ID:9wvQs+dO0087デフォルトの名無しさん
2015/06/04(木) 16:47:51.55ID:GdYLO45Ncsvファイルをスクリプト側からExcelで開きたいのですが、
ググってもいい解決方法が見つけられませんでした。
どなたか解決策を教えていただけませんでしょうか?
0088デフォルトの名無しさん
2015/06/04(木) 16:51:05.40ID:inTZReOp・Google先生に聞く
0089デフォルトの名無しさん
2015/06/04(木) 16:57:19.45ID:9wvQs+dOcsvはおいといて
009087
2015/06/04(木) 17:44:40.55ID:GdYLO45N今家なんで試せないんですけど
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:Gjm6CwJxwebsocketみたいな新しいのは知らないんだけど、俺ならajax使うかなあ
スマホから位置情報送るときはflaskで送ってるんだよね?
その時にajaxでやればページリロードしなくていいはず
0092ダメ五郎
2015/06/04(木) 19:42:09.83ID:6dpaJYI0解説ありがとうございます。なんとなく分かったような気がします。
>てことで引数を受け取ったり、初期化したりは __init__(self,第一引数,第二引数,,)のところでやるのが作法なのさ
とのことですが、selfは引数ではないのでしょうか?
さらに、__init__(self,第一引数,第二引数)で、
第一引数を使う時(初期化?)は、self.第一引数
第二引数を使う時 (初期化?)は、self.第二引数
とするのでしょうか?
0093デフォルトの名無しさん
2015/06/04(木) 22:10:08.62ID:6dpaJYI0... 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だから。
def __init__(self, face_num=6):
self.face_num = face_num
にすれば問題解決。
0095pythonスタートブックww
2015/06/04(木) 23:20:53.90ID:6dpaJYI0class 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 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スタートブックww
2015/06/04(木) 23:58:28.26ID:6dpaJYI0>もう一度読み直したほうがいいよ
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「インスタンスとは、ある型に属する実際のデータ(実体)のことです」(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スタートブックww
2015/06/05(金) 00:30:47.44ID:15nsAZUDclass 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クラスを理解するのにここでつまづく人も少なくないと思うから
0104デフォルトの名無しさん
2015/06/05(金) 01:07:15.59ID:lsMoUydE0105デフォルトの名無しさん
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:CO7i0u7Yb.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「データ型は、よりシンプルなデータ属性(アトリビュート)と関数(メソッド)の集まりでした。どのようなアトリビュートとメソッドがあるのかを決める仕組み(設計図)が、クラスという概念なのです」(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:0CNX1oFzclass構文がないプログラミング言語ではこのような形の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:8RwZ5SRI0110デフォルトの名無しさん
2015/06/05(金) 08:19:25.89ID:BJJqeoyH0111デフォルトの名無しさん
2015/06/05(金) 10:06:46.46ID:j5ZekPWl0112デフォルトの名無しさん
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:lsMoUydE0116デフォルトの名無しさん
2015/06/05(金) 22:32:37.25ID:CO7i0u7Y情報がばらばらになってる時点で、stackover flowみたいなとこに集積されてる英語圏とは比べものにならにあ
日本語版stackover flowがリリースされたら移住しよで
0117デフォルトの名無しさん
2015/06/05(金) 22:39:58.60ID:8RwZ5SRIhttp://ja.stackoverflow.com
0118デフォルトの名無しさん
2015/06/05(金) 22:47:21.99ID:lsMoUydE質問スレでわからないっていう書込みがあったからみんな答えてるわけで、それに対してブログでやれってのは意味がわからない
目の前で出血多量で倒れてる人がいるのに止血しないで「こういう人を救うために僕は医者になるんだ」と決意するぐらい遠回り
0119デフォルトの名無しさん
2015/06/05(金) 22:56:04.78ID:Po70kg5k0120デフォルトの名無しさん
2015/06/06(土) 10:40:09.46ID:fshGdHb4どうやらIPythonもPyQtでできてるので干渉してるらしい
しょうがないからSpyderでやるかーと思ったら、SpyderもPyQtでできててわろた
0121デフォルトの名無しさん
2015/06/06(土) 11:38:16.40ID:DEqjSCNd意識不明になりかけの緊急手術の直前に本人に同意書へのサインを何枚も書かせるような感じ?
0122デフォルトの名無しさん
2015/06/06(土) 13:27:48.72ID:MyhE4x2qipythonはコマンドラインツールだからpyqt使ってないんだけど
0123デフォルトの名無しさん
2015/06/06(土) 17:52:09.89ID:/Aft5CBsそれ以外の利用法がいまいち思い浮かばないです
皆さん使ってますか?
0124デフォルトの名無しさん
2015/06/06(土) 18:00:31.27ID:9TAyXKx2with使わずに書いてみればなぜ便利なのか分かるよ
どういう風に使えるのかも
0125デフォルトの名無しさん
2015/06/06(土) 18:06:40.87ID:9TAyXKx2ロックしかりセッションしかり
ってのが全てだけど、想像できないでしょ
0126デフォルトの名無しさん
2015/06/06(土) 20:54:41.78ID:2JQblal0ふだんの用法から類推できるのかな?
いまExcelでVBA書いてるけどWithの機能が
Pythonとはまた違うような…
0127デフォルトの名無しさん
2015/06/07(日) 04:49:37.07ID:P+H+q5eJおかしくなる原因わかった 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/rKSpK0129デフォルトの名無しさん
2015/06/08(月) 01:17:40.83ID:FYS9ZuURWin8.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どっか変なとこからコピペでもしたんだろう。
0131デフォルトの名無しさん
2015/06/08(月) 03:05:46.27ID:1CV/YMqS0132デフォルトの名無しさん
2015/06/08(月) 04:48:57.05ID:TkpGbpl30133デフォルトの名無しさん
2015/06/08(月) 07:31:43.53ID:UvAzbTzoQ.Webアプリを作る際のボトルネックがPython側にある場合、Cython高速化の役に立つのでしょうか?
A.立ちます
0134デフォルトの名無しさん
2015/06/08(月) 09:16:47.89ID:PuuH78/zともう1冊はなんだろ?
0135デフォルトの名無しさん
2015/06/08(月) 09:19:35.76ID:xp3ZJS47wxpython使うならpython 2.7を使え
どうしてもpython 3.4でやりたいならpyqt5とかpysideを使え
0136デフォルトの名無しさん
2015/06/08(月) 10:34:15.07ID:IBO2jVeFせっかくだし是非人柱になっていただきたい
0137デフォルトの名無しさん
2015/06/08(月) 10:42:07.07ID:IBO2jVeFてかコマンドがいろいろおかしくね?
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>>137にあるwhlをダウンロードする方法でうまくいきました!
問題なく動くっぽいので今日から色々作ります
>>130>>137ありがとう!
0139デフォルトの名無しさん
2015/06/09(火) 08:41:14.82ID:il7QxJ4a0140デフォルトの名無しさん
2015/06/12(金) 14:45:46.94ID:P6xkiuvh普通の変数は動的に作ることはできないのでしょうか?
0141デフォルトの名無しさん
2015/06/12(金) 15:09:07.35ID:quZXc/6xglobals()['hoge'] = 1
print hoge
でいける
関数内のスコープでは該当機能なし
locals()には書き込めない
0142デフォルトの名無しさん
2015/06/12(金) 19:14:44.56ID:z8625JCz.
~/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:qp6MkQCvhttp://stackoverflow.com/questions/28840867/compiling-python-with-curses-support
0144デフォルトの名無しさん
2015/06/12(金) 23:36:54.43ID:P6xkiuvhありがとうございます
globals()とlocals()というdictの存在は知りませんでした 勉強になりました
0145デフォルトの名無しさん
2015/06/13(土) 03:17:49.96ID:NUKk6CPY0146デフォルトの名無しさん
2015/06/13(土) 11:48:55.19ID:AciwpV5FGoogleで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:AmgidL1k0151デフォルトの名無しさん
2015/06/14(日) 03:21:19.95ID:heCu4ibl0152デフォルトの名無しさん
2015/06/14(日) 06:00:50.39ID:zPXILR6Nnotepad.exe はExcelではなく、
最初から、Windowsに付いている、メモ帳ソフトだよ
また、試してうまく行かないのなら、
そのエラーメッセージも書くこと!
0153デフォルトの名無しさん
2015/06/15(月) 11:57:46.42ID:UXrUNkbZこれ書く必要ないと思うんですが何で皆書いてるんですか?
0154デフォルトの名無しさん
2015/06/15(月) 12:27:08.68ID:CEFvwvlbドザかキサマ
0155デフォルトの名無しさん
2015/06/15(月) 12:40:00.85ID:/ZcDX49oプログラム中に書く必要が無いっていう意味かもよ
0156デフォルトの名無しさん
2015/06/15(月) 12:53:12.01ID:CEFvwvlb0157デフォルトの名無しさん
2015/06/15(月) 14:12:49.62ID:nCXuemSDどういう意味なんですか?
0158デフォルトの名無しさん
2015/06/15(月) 14:12:58.25ID:+3PE6uzOこういう確率分布に沿ってランダムにa~cを返すようなスマートな書き方って無いでしょうか
今はこんなリストを生成してrandom.choice(list)してるんですが酷過ぎますよね
[a,b,b,b,b,c,c,c,c,c]
0159デフォルトの名無しさん
2015/06/15(月) 15:12:19.08ID:6FCFdlNB直前に実行した結果の値
0160デフォルトの名無しさん
2015/06/15(月) 15:13:37.21ID:6FCFdlNBそれでいいよ
0161デフォルトの名無しさん
2015/06/15(月) 15:50:40.17ID:23esbdI0import 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もう回答ついてますが、補足すると、
対話モードでPythonを実行しているときに、
Pythonインタプリタが最後に表示した式がその都度、
ビルトイン変数である _ に代入されます。
>>> 2
2
>>> _
2
>>> _ + 8
10
>>> _
10
0163デフォルトの名無しさん
2015/06/15(月) 16:24:13.59ID:/ZcDX49orandomモジュールの公式ドキュメントの最後のところに、
「ありがちな作業として、重み付けされた確率のrandom.choice()を作ることがあります」
として、コード例が二つ、挙げられていますよ。
0164デフォルトの名無しさん
2015/06/15(月) 16:47:22.20ID:+3PE6uzO3系のドキュメントには確かに書いてありました
ramdomにそういう関数があるんじゃないかと思って隅から隅まで読んでたんですが、
検索で最初に出て来たのが2.7のドキュメントだったのでそっちを読んでました
新しい方のドキュメントを読むようにしないとダメですね
ありがとうございました
0165デフォルトの名無しさん
2015/06/15(月) 17:11:38.07ID:23esbdI0を押すけど・・・
何これ滅茶苦茶になってる。
書き直し
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:23esbdI03分以内だから書き直して良し。
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:TKCLtNo10168デフォルトの名無しさん
2015/06/15(月) 23:57:55.27ID:kyy3xBtwCGIで動かすなら書く必要はあるけどそれ以外で書く必要ある?
0169デフォルトの名無しさん
2015/06/16(火) 00:01:08.17ID:b7Inp4eU0170デフォルトの名無しさん
2015/06/16(火) 07:25:00.65ID:5/n3i9e10171デフォルトの名無しさん
2015/06/16(火) 08:32:21.66ID:550Q7INi0172デフォルトの名無しさん
2015/06/16(火) 19:45:46.31ID:RI7md6Vl0173デフォルトの名無しさん
2015/06/16(火) 19:50:16.97ID:A7ypZhpv最初のスクリプトに定義した定数(みたいなもの)に後のスクリプトからアクセスできません
foo.py
--------------------
FOO = "foo"
import bar
bar.py
--------------------
print foo.FOO #エラー
2つのスクリプトから共通に定数を参照することはできないのでしょうか?
0174デフォルトの名無しさん
2015/06/16(火) 20:01:32.04ID:VP0cCW3e0175デフォルトの名無しさん
2015/06/16(火) 20:10:01.18ID:A7ypZhpv循環的にimportしてもいいのでしょうか
0176デフォルトの名無しさん
2015/06/17(水) 00:11:28.65ID:zdNvSItrhをわざわざ抜かんでもいいよね
リファラー漏れたって構わんだろ
0177デフォルトの名無しさん
2015/06/17(水) 05:37:25.05ID:kNv7Xml9これどうするんだろ 試してみたけどエラーになるし
共通変数だけ3つ目のスクリプトを作ってそこに記述するとか?
0178デフォルトの名無しさん
2015/06/17(水) 06:32:07.61ID:LjoNHjol0179デフォルトの名無しさん
2015/06/17(水) 07:01:05.48ID:81IWqnhUつまり再代入しない書き換えない前提のものだけにするべきだ
0180デフォルトの名無しさん
2015/06/17(水) 09:21:43.00ID:7KhQ6AFD0181デフォルトの名無しさん
2015/06/17(水) 09:57:22.15ID:oj1Iwp6Eこの機能についてPythonのドキュメントのどこに載ってますか?
0182デフォルトの名無しさん
2015/06/17(水) 10:44:14.01ID:IK4mFl8b用語集のdecoratorの項目
言語リファレンスの複合文の項目の関数定義およびクラス定義の項目
英語でよければPEP318とPEP3129
0183デフォルトの名無しさん
2015/06/17(水) 10:57:46.10ID:0Srw9Hnu0184デフォルトの名無しさん
2015/06/17(水) 12:01:08.92ID:l25RfAPfhttp://docs.python.jp/2/faq/programming.html
関数の中とかでimportするようにすれば循環を解消出来る
0185デフォルトの名無しさん
2015/06/17(水) 12:31:24.46ID:r36nFuSU0186デフォルトの名無しさん
2015/06/17(水) 13:17:06.78ID:0Srw9Hnuスルーして先に進め
0187デフォルトの名無しさん
2015/06/17(水) 15:58:52.42ID:QfA6ONQ80188デフォルトの名無しさん
2015/06/17(水) 18:06:59.25ID:Qul178ygそうでないなら2
何をしたいのか分からないボクちゃんは2にしとけ
0189デフォルトの名無しさん
2015/06/17(水) 19:22:24.73ID:/LVZEvtOやりたいことが決まっててそれが2しか対応してないなら2
それ以外でいまから2やる理由などない
時代遅れも甚だしい
0190デフォルトの名無しさん
2015/06/17(水) 19:39:54.69ID:lLs1gGcm0191デフォルトの名無しさん
2015/06/17(水) 19:56:55.43ID:Qul178yg勘当だ!でてけ!
0192デフォルトの名無しさん
2015/06/18(木) 00:54:51.07ID:847qU7klある程度使えるようになることにはサードパーティのライブラリでも3対応になってるはず。
0193デフォルトの名無しさん
2015/06/18(木) 04:26:12.53ID:R8kyw3Rj日本人が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:qj3FW4Pj0195デフォルトの名無しさん
2015/06/18(木) 06:44:21.31ID:Zk4Vy/puに決まってるだろうがよぉー
0196デフォルトの名無しさん
2015/06/18(木) 07:42:22.87ID:SQas+mXZあれのせいでイベントループ系のフレームワークが全滅
0197デフォルトの名無しさん
2015/06/18(木) 07:59:34.32ID:aPbhwQoO0198デフォルトの名無しさん
2015/06/18(木) 08:01:31.33ID:rHijCFtm0199デフォルトの名無しさん
2015/06/18(木) 08:06:55.17ID:7/h/PzkVkwsk
0200デフォルトの名無しさん
2015/06/18(木) 09:44:38.69ID:Gsq65laO0201デフォルトの名無しさん
2015/06/18(木) 09:51:46.91ID:7/h/PzkV0202デフォルトの名無しさん
2015/06/18(木) 19:37:20.29ID:rESrKy3o0203デフォルトの名無しさん
2015/06/18(木) 20:00:46.48ID:qj3FW4Pj0204デフォルトの名無しさん
2015/06/19(金) 00:29:37.61ID:pwEd9MNqデコレータは機能を追加する
例えば、ログを表示する、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:XxXXr7Oshttp://taichino.com/programming/1199
0206デフォルトの名無しさん
2015/06/19(金) 09:58:16.55ID:u8L6JLuVIronPythonとJythonが今のところ2系だからって理由も追加しておいてくれ
0207デフォルトの名無しさん
2015/06/19(金) 10:21:50.56ID:Rpgf6TLHつい先月まで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:gzzqdCD8https://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:Rpgf6TLHsubprocessとos.forkは違う
0212デフォルトの名無しさん
2015/06/19(金) 12:43:26.32ID:Rpgf6TLHWindowsでfork相当のことはできないよ
考え直すんだね
0213デフォルトの名無しさん
2015/06/19(金) 12:44:25.26ID:DjrbuAgmそのようですね
ありがとうございます
後出しで済みませんが
子プロセス側で自分が子プロセスかどうかを判別する方法はどうすれば良いのでしょうか?
0214デフォルトの名無しさん
2015/06/19(金) 12:47:40.56ID:Rpgf6TLH0215デフォルトの名無しさん
2015/06/19(金) 12:52:56.49ID:Rpgf6TLHこれよお
forkとatexitシステムコールのman読めば分かることだが
forkはatexitの登録も継承するんだよ(execは継承しない)
だからforkした回数だけ起動されて当たり前だ
Pythonがどうとか御託を並べる前と後にRTFMしろ脳プリンが
0216デフォルトの名無しさん
2015/06/19(金) 13:12:03.39ID:4Vx29HIcretweet format?
aRT fm radio?
> RTFMしろ脳プリンが
脳プリンさんってコテハンがRTFMするんです???
0217デフォルトの名無しさん
2015/06/19(金) 13:17:30.92ID:X0p5IxAK実は私もそう思ったんです
>どうするのが綺麗なのか解りませんが、今のところ終了処理に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/oYBuQO0219デフォルトの名無しさん
2015/06/19(金) 13:42:54.95ID:FzphauAa「相性が悪い」
というのは的外れな表現ですね
0220デフォルトの名無しさん
2015/06/19(金) 17:54:53.41ID:yCMOiWgQ作ったことないから適当に言うけど
計算はNumpy
描画はPIL(Pillow)って感じでは
0221デフォルトの名無しさん
2015/06/20(土) 00:39:34.78ID:m/GPi3MC0222デフォルトの名無しさん
2015/06/20(土) 04:18:02.13ID:q1zQqH1k日本語訳もけっこういいし
これ日本語のpython入門本とか立場ないよなw
0223デフォルトの名無しさん
2015/06/20(土) 05:02:07.47ID:05xfGfjh少なくともプログラミング未経験者にはわけわかめだと思う
0224デフォルトの名無しさん
2015/06/20(土) 06:02:17.49ID:YRdpRuuN0225デフォルトの名無しさん
2015/06/20(土) 08:24:30.35ID:ZS6UT+M0これは何をする関数なんだろう
ドキュメントには以下の解説があるが、これでわかる人いる?
staticmethod(function)
function の静的メソッドを返します
0226デフォルトの名無しさん
2015/06/20(土) 08:41:42.24ID:837NZnyd>>222 は Dive into Python の翻訳者かな?
0227デフォルトの名無しさん
2015/06/20(土) 08:42:52.18ID:837NZnyd@classmethod と @staticmethod の違いについて述べよ
0228デフォルトの名無しさん
2015/06/20(土) 08:57:58.95ID:ZS6UT+M0メソッドってクラス内にある関数のことでしょ
それが静的・動的という言葉と何の関係があるのかさっぱりですわ
0229デフォルトの名無しさん
2015/06/20(土) 09:17:31.21ID:837NZnyd0230デフォルトの名無しさん
2015/06/20(土) 09:43:41.94ID:VCJJENu00231デフォルトの名無しさん
2015/06/20(土) 10:02:36.41ID:ZS6UT+M0中傷はお腹いっぱいだから解説が欲しいなあ
>>230
公式ドキュメントがアレな時点で覚悟はしていたが
人に説明するのが難しい概念なのか
じゃあ追い求めるのはやめとくよ
クラスを作ることのない自分にはたぶん不要でしょ
0232デフォルトの名無しさん
2015/06/20(土) 10:47:37.17ID:EgcPeahSmultiprocessingを使え
0233デフォルトの名無しさん
2015/06/20(土) 11:15:04.01ID:JS1ARM9pstaticおじさん乙
0234デフォルトの名無しさん
2015/06/20(土) 11:32:33.23ID:q1zQqH1k公式ドキュメントの日本語は酷いよなw
自分がググったなかではこれが一番分かり易かった
http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner
0235デフォルトの名無しさん
2015/06/20(土) 18:06:53.98ID:EIopszohclass 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を逆にしたら通らないか?
今試せないから間違いならごめんよ
0237デフォルトの名無しさん
2015/06/20(土) 18:35:54.79ID:m1xwf2/2class 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/MPx6ZHvalue = kwargs.setdefault('value',0)
渡したらダメなら、上の後で
del kwargs['value']
0239デフォルトの名無しさん
2015/06/20(土) 20:01:07.38ID:m/GPi3MCdef __init__(self, *args, **kwargs):
super(self, MyPanel).__init__(*args, **kwargs)
pass
0240デフォルトの名無しさん
2015/06/20(土) 23:07:53.60ID:vDkYH4Pdlinuxでは、ps コマンドや、
/proc/[pid]/stat で、プロセスの状態を見れる
pid は、プロセス ID。
ppid は、このプロセスの親プロセスの PID
つまり、PIDから、ppidがわかる
逆に、親から子は、簡単にはわからない。
親子は、1対多の関係だから
Windowsでも、同じだと思う
0241デフォルトの名無しさん
2015/06/21(日) 02:00:24.62ID:4AMULbusありがと、せっかくだから読んでみたが、やっぱ今の自分には無理そうだ
クラスを使わない自分にはサンプルコードから使いどころが見えてこない
あとデコレータは「Python文法詳解」の本に公式より詳しい説明があったから
読んでみたら、おぼろげに見えてきた
要は、Aという関数のオブジェクト作成時(呼び出し時ではない)にBという関数を
呼び出す仕組みであり、このBをデコレータと呼ぶらしい
ただ、この仕組みが実務で何の役に立つのか、初学者はサンプルから読み取れない
それが困ったところだ
0242デフォルトの名無しさん
2015/06/21(日) 05:40:21.64ID:w9NVD211import 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前にselfで質問してた人かな?
0244デフォルトの名無しさん
2015/06/21(日) 08:40:34.98ID:/JS5ft5/実用化成功してるとするなら普及しないのが不思議だけど
0245デフォルトの名無しさん
2015/06/21(日) 10:04:24.99ID:WzG+ayAjそいつは static おじさん以下だろ
static おじさんの方が百倍マシ
0246デフォルトの名無しさん
2015/06/21(日) 14:19:07.26ID:cvS/M2ocおすすめのサイトとか本とかある?
0247デフォルトの名無しさん
2015/06/21(日) 18:44:15.00ID:0g6EdVmv0248デフォルトの名無しさん
2015/06/21(日) 23:02:16.53ID:YQGPuxlq0249デフォルトの名無しさん
2015/06/22(月) 21:35:08.52ID:cyUuMoVSGTKとかQtとかwxとかいろいろあるみたいだけどどれがいいの?
0250デフォルトの名無しさん
2015/06/22(月) 22:37:04.46ID:mEuvJOmb0251デフォルトの名無しさん
2015/06/22(月) 22:53:48.77ID:1mBrqKiWIronPythonでWindows FormとかXAMLとか
0252デフォルトの名無しさん
2015/06/23(火) 00:53:22.47ID:KSGpzryS鉄板だけどライセンスが欠点の Qt
ライセンスが緩い Wx、 PySide(開発停滞中)
モバイル端末のマルチタッチでも遊べる kivy
0253デフォルトの名無しさん
2015/06/23(火) 02:29:50.57ID:VWqqouSb0254デフォルトの名無しさん
2015/06/23(火) 02:34:00.43ID:C02P46O1みんなのPython 第3版
0255デフォルトの名無しさん
2015/06/23(火) 02:38:55.91ID:oDIwBgEeWxのほうがポピュラーなのかと思ってた
0256デフォルトの名無しさん
2015/06/23(火) 07:44:24.48ID:p2719NN50257デフォルトの名無しさん
2015/06/23(火) 08:15:33.54ID:rzZlb/rV0258デフォルトの名無しさん
2015/06/23(火) 08:24:15.40ID:p2719NN50259デフォルトの名無しさん
2015/06/23(火) 08:48:29.15ID:LQs/3Np00260デフォルトの名無しさん
2015/06/23(火) 16:31:27.73ID:pUNJxfqTこれから勉強しようとしてる初心者ですが、最終的にGUIアプリを作りたいので
一番簡単そうに思えるTkinterを勉強しようと思ってた
見た目がダサくなるらしいのはちょっと調べて分かったけど
それ以外にも難点があるんですか?
0261デフォルトの名無しさん
2015/06/23(火) 17:26:52.29ID:y0iv9VtAGTK は糞
0262デフォルトの名無しさん
2015/06/23(火) 19:38:47.63ID:fcD/yaWGtkdocsのチュートリアルが結構しっかりしてる
0263デフォルトの名無しさん
2015/06/23(火) 19:56:55.85ID:R8jZDKIobinというディレクトリの下でしか動かないバイナリ を別のディレクトリから動かすにはどうすればいい?
0264デフォルトの名無しさん
2015/06/23(火) 20:06:10.26ID:kckphfdjそのディレクトリをbinにリネームする以外に打つ手はない
0265デフォルトの名無しさん
2015/06/23(火) 20:21:51.72ID:wv+JII7F0266デフォルトの名無しさん
2015/06/23(火) 20:23:57.19ID:wv+JII7F余計な事、言わんと黙ってて悩ませれば良かったのに!
0267デフォルトの名無しさん
2015/06/24(水) 01:29:41.38ID:e2++j1ht開発環境と手に入る情報量の差?
GUIをコードだけで開発してたら効率悪いってんで、PyQt・PySideにはQtDesighner(QtCreator)、
wxPythonにはwxGladeっていうビジュアル的な開発環境がある
TkInterにもあるんだろうけどこれだってやつを聞かない
使用人口の差で困ったときに答えが見つかりやすいのが前者2つなんじゃないかと
0268デフォルトの名無しさん
2015/06/24(水) 02:30:10.98ID:D119baBlきもちわる…
0269デフォルトの名無しさん
2015/06/24(水) 09:12:24.62ID:qjEYFQ4L安心しました
ありがとう
0270デフォルトの名無しさん
2015/06/24(水) 10:00:21.60ID:ySM4xiacなんで変更しなければならないんですか?
0271デフォルトの名無しさん
2015/06/24(水) 10:04:20.61ID:L+KbIIX3Gladeもと元々GTKな気がする
0272デフォルトの名無しさん
2015/06/24(水) 10:47:21.39ID:GWC9jKuqどこぞのNPO代表小学生みたいなこと言ってんじゃねえ
0273デフォルトの名無しさん
2015/06/25(木) 12:36:40.01ID:rwNizRxvpythonでgui作る時点でそーすこーど公開を気にしてんじゃねえよ
個人ごときがpythonで作ったguiを有料で配るのなんてなんて需要ねえよ
仕事でやるなら会社がライセンス買うだろ
だから個人でwindows向けはpyqt5でいい
0274デフォルトの名無しさん
2015/06/25(木) 12:38:03.35ID:rwNizRxvtkかpyqt5の二択で十分
0275デフォルトの名無しさん
2015/06/25(木) 20:14:15.78ID:VjgLzB4a0276デフォルトの名無しさん
2015/06/26(金) 03:39:38.77ID:TeHEn9G0GTK は糞
0277デフォルトの名無しさん
2015/06/26(金) 09:30:50.13ID:/s2R/Gz10278デフォルトの名無しさん
2015/06/26(金) 09:55:38.57ID:/s2R/Gz10279デフォルトの名無しさん
2015/06/26(金) 09:59:29.10ID:FScQfCb10280デフォルトの名無しさん
2015/06/26(金) 23:30:23.51ID:lmpExqE6こういう文があるんですが行が長くなる場合があるので複数行に分ける方法を教えてください
if a == b and
c == d:
だとエラーになりました
0281デフォルトの名無しさん
2015/06/26(金) 23:42:02.09ID:tcE5k47V0282デフォルトの名無しさん
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:KOTMWkTF0285デフォルトの名無しさん
2015/06/27(土) 04:40:06.78ID:8NDoKwy70286岡村隆史「嫌なら見るな」
2015/06/27(土) 08:29:56.28ID:yJT4XZQ/新聞にそのような金を払う価値はない
ただでさえ要らない
なぜなら新聞は国民の方を向いておらず、広告主のための報道しかしないからだ
それに金を払って購読することは自らの首を絞める自殺行為に等しい
0287デフォルトの名無しさん
2015/06/27(土) 08:41:08.09ID:p3jpLBAydef __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下記に関連する説明があります。
http://diveintopython3-ja.rdy.jp/porting-code-to-python-3-with-2to3.html#next
0289デフォルトの名無しさん
2015/06/27(土) 09:09:19.67ID:Z90g4rXxnext(self)は廃止され__next__(self)になりました
0290デフォルトの名無しさん
2015/06/27(土) 09:18:56.46ID:p3jpLBAy>>289
理解しました、ありがとうございます。
0291デフォルトの名無しさん
2015/06/28(日) 02:53:32.39ID:x9WH9E/Zどうやればいいのでしょうか?
for i in range(0,10):
...
print(df)
で出力されるdfをそれぞれ連結させていくイメージです
0292デフォルトの名無しさん
2015/06/28(日) 03:48:54.20ID:n02SzJDqStringIOでも良かろう
0293デフォルトの名無しさん
2015/06/28(日) 08:54:24.66ID:zKGg/T0hhttp://pandas.pydata.org/pandas-docs/stable/merging.html
0294デフォルトの名無しさん
2015/06/28(日) 09:18:15.12ID:x9WH9E/Zうまくいかないため、すみませんがもう一度お願いします。
以下で得たい出力を得るにはどうしたらよいでしょうか?
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あれ、スペースが抜けてしまいました
df['A'] = 1*i
の前にスペースです
forを抜けた後で得たい出力を使いたいです
0296デフォルトの名無しさん
2015/06/28(日) 10:50:57.03ID:zKGg/T0hdata = {'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/T0hdata = {'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できました!
ありがとうございます!!
0299デフォルトの名無しさん
2015/06/28(日) 17:53:46.47ID:5QGv7jmzosをimportしてもos.path使えますよね
os.pathってなんのために分かれてるんですか?
0300デフォルトの名無しさん
2015/06/28(日) 18:40:22.51ID:n02SzJDq0301デフォルトの名無しさん
2015/06/28(日) 20:58:44.00ID:92vB0cytみたいにはっきりしてほしい
0302デフォルトの名無しさん
2015/06/28(日) 21:00:42.00ID:Y74sbUOEMySQLとかも使いたいんだけど
0303デフォルトの名無しさん
2015/06/28(日) 21:02:44.67ID:I4CbUbOX0304デフォルトの名無しさん
2015/06/28(日) 22:13:06.89ID:92vB0cytいや
なんでもない
0305デフォルトの名無しさん
2015/06/28(日) 23:01:49.82ID:WE2Gt4yN0306デフォルトの名無しさん
2015/06/29(月) 06:06:28.45ID:um2QSBwJ0307デフォルトの名無しさん
2015/06/29(月) 06:15:48.27ID:PjeoFJ6Whttp://kanae.2ch.net/test/read.cgi/php/1409423461/
0308デフォルトの名無しさん
2015/06/29(月) 15:57:57.09ID:06ru4abg設定で教えて欲しいのですが
flake8 lintの設定ができなくて
defaultPreferences.jsのpathを変えてみたのですが
うまく表示されません。
わかるかたがいれば教えて下さい。
0309デフォルトの名無しさん
2015/06/29(月) 17:22:56.95ID:rbxhDT3nhttp://kanae.2ch.net/test/read.cgi/php/1329996601/l50
専用スレが合ったのであっちで回答しました
0310デフォルトの名無しさん
2015/06/29(月) 18:37:37.37ID:mk7+9Q5Sトンクス
0311デフォルトの名無しさん
2015/06/29(月) 23:40:20.99ID:WnsvTum+BottleとSqlalchemyで基本を掴んだらPyramidかDjangoへ。
0312デフォルトの名無しさん
2015/06/30(火) 00:11:30.42ID:3BrZHobQドキュメントに載っていないようなコンストラクタの引数はどこで見つけているのでしょうか?
例えばasyncore.dispatcherにキーワード引数で、
sockという引数がコンストラクタの引数として指定できるようなのですが、
ドキュメントには書いてありません
このような引数はソースコードを直接読む以外に見つける方法はないのでしょうか
0313308
2015/06/30(火) 01:14:19.91ID:U4iTFw9Aatom-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何をどうしたのか
何のエラーがでたのか
こういう情報をきっちり書いてもらわないと無視されるよ
0316デフォルトの名無しさん
2015/06/30(火) 02:54:11.78ID:FzvalkoK「みんなのPython 第3版」を読む
0317313
2015/06/30(火) 09:03:30.25ID:YGccIQHdすみません。
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:j2uh7iS9Emacしか知らないからそんなクソみたいなエディタ使ったことないから知らないがソフトウェア板で聞いたほうが早いんじゃないのか
http://anago.2ch.net/test/read.cgi/software/1393852602/l50
0319デフォルトの名無しさん
2015/06/30(火) 12:56:33.08ID:j2uh7iS90320317
2015/06/30(火) 14:21:31.34ID:YGccIQHdありがとうございます。
他のインストール時にバージョンが対応してない表示がでるのもあるので
インストール時に警告はでていないので大丈夫だと思います。
autocomplete-pythonも入れてみたのですがこちらも動きません。(エラーはなし)
ATOMの方で聞いてみます。
パッケージインストール時にすごく重くなるので
それが原因かもしれません。
0321317
2015/06/30(火) 14:33:09.56ID:YGccIQHdComplete 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+OVDF0xZim - 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+ありがとうございます。
試してみます。
0325デフォルトの名無しさん
2015/06/30(火) 23:25:45.78ID:heQlMeyVPythonで出来るのは「文字列を加工する」部分だけだな。
「テキストエディタ上で選択されている文字を取りだしてPythonに渡す」
「加工した文字列をPythonから受け取ってテキストエディタに戻す」
この部分は使ってるOSとテキストエディタの機能に依存する。
俺の使ってるOSとテキストエディタでは出来る。
あなたの使っているOSでもできる筈だがあなたの使っているテキストエディタでそれができるかどうかはわからない。
0326デフォルトの名無しさん
2015/06/30(火) 23:52:35.57ID:yag52Vu+レスありがとうございます。
325さんのOSは何でしょうか?
自分はmacなのですが、
OS付属のAppleScriptというスクリプトでは可能で
AppleScriptとPythonを組み合わせて使うことが出来ることまでは
ネットで調べてわかったのですが
Python単独でもできないのかなと質問してみました。
0327デフォルトの名無しさん
2015/07/01(水) 00:19:56.04ID:1d/Huarr俺もOS Xですよ。
俺が使ってるのはCotEditorというテキストエディタで、
これはAppleScriptだけでなくPythonやRuby、Perlといったスクリプトと直接文字列をやり取りすることができます。
他にもJedit XっていうテキストエディタだとAppleScriptで同様のことができるので、
その場合だとあなたのおっしゃる通りAppleScript経由でPythonを実行することになりますね。
俺の知ってるエディタだとそれぐらいですが、他にも同様のことできるテキストエディタはあると思いますよ。miとか。
あと以前使っていたコンテキストメニューのプラグインにシェルスクリプトを実行できるのがあったので、
これ使ったらテキストエディタの種類に依存せずに、文字列を選択→右クリックからスクリプトを実行、ていうのができるんじゃないかな。
ただこれは何年も使ってないので今のOSでも使えるかどうかわかりません。興味あれば調べてみますが。
0328デフォルトの名無しさん
2015/07/01(水) 01:30:21.19ID:ftDlylXpvimでもemacsでもsublimetextでも
0329デフォルトの名無しさん
2015/07/01(水) 03:52:02.49ID:Wf/LILTyvimになれるためとりあえずはプラグインなしで書いてましたが、そろそろもう少し便利な機能はないものかと辛くなってきました。
pythonを書く上でおすすめのプラグインはありますか?
0330デフォルトの名無しさん
2015/07/01(水) 07:22:47.74ID:WrSpGcQOPythonで出来るのは「文字列を加工する」部分だけだな。
「テキストエディタ上で選択されている文字を取りだしてPythonに渡す」
「加工した文字列をPythonから受け取ってテキストエディタに戻す」
MS Word なら win32com で全部 python で桶
0331デフォルトの名無しさん
2015/07/01(水) 09:26:39.82ID:M4xoLOwL詳しくありがとうございます。
普段Jedit+AppleScriptを使っていて
Pythonを使えないのかなと考えたんですけど
環境に環境次第なんですね。
CotEditor面白そうですね。試してみます。
コンテキストメニューは自分で調べてみます。
0332デフォルトの名無しさん
2015/07/01(水) 10:33:09.71ID:1/FsmcZHjedi
0333デフォルトの名無しさん
2015/07/01(水) 20:47:17.26ID:20mfxfYFVundle
vim-indent-guids
nerdtree
nerdcommenter
gruvbox
jedi-vim
syntastic + flake8
プラグイン入れたり消したりするなら、Vundleみたいなプラグイン管理系のプラグインいれとくと楽
0334デフォルトの名無しさん
2015/07/01(水) 20:54:11.62ID:NJjcaf840335デフォルトの名無しさん
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__def show(self):
____print(100)
obj = Test()
これを
o['show']()
みたいにしてアクセスする書き方を教えてください
0338337
2015/07/01(水) 22:51:59.18ID:HevIhCYTclass Test:
__def show(self):
____print(100)
このクラス名を変数nameに格納して、nameからTestクラスのオブジェクトを作成する方法を教えてください
name = "Test"
0339デフォルトの名無しさん
2015/07/01(水) 22:52:10.14ID:jqzDD9Cy0340デフォルトの名無しさん
2015/07/01(水) 22:53:22.46ID:jqzDD9Cy原型とどめてねえ物を訂正というのかお前の出身地では
0341337
2015/07/01(水) 22:53:30.96ID:HevIhCYT$obj = new $name()でいけるんですが
pythonで
name = "Test"
obj = name()
って書いても作れませんでした
0343デフォルトの名無しさん
2015/07/02(木) 00:11:36.17ID:/Kue2IfOobj = globals()["Test"]
で、いけないかな?
0344デフォルトの名無しさん
2015/07/02(木) 00:37:01.55ID:P1VXT2gY>>> obj
<__main__.Test instance at 0x0000000002DB9BC8>
>>> exec("obj = {}()".format(name))
>>> obj
<__main__.Test instance at 0x0000000002DBB1C8>
0345デフォルトの名無しさん
2015/07/02(木) 00:43:13.14ID:DrUxfqIBPythonらしくないな
0346デフォルトの名無しさん
2015/07/02(木) 00:45:37.33ID:P1VXT2gY0347デフォルトの名無しさん
2015/07/02(木) 02:50:01.54ID:hbh5BBnIわろた
0348デフォルトの名無しさん
2015/07/02(木) 03:18:17.47ID:hbh5BBnIo = 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非情に助かりましたありがとうございます
0353デフォルトの名無しさん
2015/07/02(木) 17:27:22.39ID:WW9VzXPI0354デフォルトの名無しさん
2015/07/02(木) 17:46:59.14ID:x/POinmv0355デフォルトの名無しさん
2015/07/02(木) 22:57:49.71ID:vUmxObwA内容のレベルは低いし、
どこかのサイトのコピペだし。
0356デフォルトの名無しさん
2015/07/03(金) 00:16:24.15ID:yuhxNbcX0357デフォルトの名無しさん
2015/07/03(金) 00:41:23.15ID:C6li+8cU0358デフォルトの名無しさん
2015/07/03(金) 11:29:24.04ID:OisPLDc80359デフォルトの名無しさん
2015/07/03(金) 11:38:00.16ID:ZITOwf17サンプルがわからないので適当に
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:oEEd62YQ0361デフォルトの名無しさん
2015/07/03(金) 13:18:03.16ID:2GnRhJxrdata = ['aaa','bbb','ccc','abc','cba']
test = filter(lambda word: "a" in word, data)
print(*test)
0362デフォルトの名無しさん
2015/07/03(金) 20:02:37.48ID:Ms6a58jcこのwordって何?
0363デフォルトの名無しさん
2015/07/03(金) 20:18:00.49ID:Ms6a58jcちなみに最後の,dataって何してるの?
"a" in data,data
すると真偽と配列が全部帰ってくるけど、内部でどういう処理が行われてるわけ?
0364デフォルトの名無しさん
2015/07/03(金) 20:23:05.96ID:eeinSX8C0365デフォルトの名無しさん
2015/07/03(金) 21:26:15.70ID:A29HzBaupypiでclassifier+キーワード検索ってどうやるんだろう?
そもそもできるのか?
0366デフォルトの名無しさん
2015/07/03(金) 22:13:42.22ID:VwEn5rR7searchではclassifierが使えず、browseでは検索ができない。
なぜこんな仕様にしたんだろう。
0367デフォルトの名無しさん
2015/07/03(金) 23:02:34.50ID:QSBaxiRcとだけ書かれたコードを実行しようとすると
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あと質問するときにバージョンすら書かないのはなんでなんだろか
いくらくだスレだって最低限の礼儀っていうかそういうのあんだろ
0369デフォルトの名無しさん
2015/07/03(金) 23:36:28.31ID:KFfcBnqi自己解決しました
最後の,dataってfilterの第二引数だったのね
0370デフォルトの名無しさん
2015/07/03(金) 23:43:56.37ID:IVmenh/Aぐぐったら1ページ目にいくつか解決策が見つかったけどもうみたの?
0371デフォルトの名無しさん
2015/07/04(土) 23:29:04.76ID:RxNq2g3r非英語圏の初心者は辛すぎでしょ
0372デフォルトの名無しさん
2015/07/05(日) 05:20:08.61ID:XIvEwRaJdecodeできないのだろう
Rubyや一般的なエディタなどでは、
不明な文字は、? に置き換えられる
0373デフォルトの名無しさん
2015/07/06(月) 17:43:18.44ID:3teVeJk80374デフォルトの名無しさん
2015/07/06(月) 21:45:11.64ID:m90nGVjidecode encodeの時点で変換できない文字に対する立ち振る舞いを設定するのがいい
errorっていうオプションあるんでそこでignoreにしたら無視、つまりスルーする
置換したりもできる
0375デフォルトの名無しさん
2015/07/06(月) 23:11:52.08ID:REKKz9Ad%xxの形にエスケープされたものを、urllib.parse.unquoteしようとした時
�Uが消えてしまうのですが、消えない様にする方法を教えてください。
0376デフォルトの名無しさん
2015/07/07(火) 02:45:51.12ID:JbsGCfj6unquoteの第二引数で正しいencodingを指定する
0377デフォルトの名無しさん
2015/07/07(火) 07:39:17.88ID:rV+pZ+JSもじれつ の部分はeuc-jpでunquoteできているのですが
�U だけができない。
encoding変えると もじれつの部分さえunquoteできない。
0378デフォルトの名無しさん
2015/07/07(火) 08:06:36.04ID:eOuV1Gqp0379デフォルトの名無しさん
2015/07/07(火) 08:09:35.56ID:Ge7MDcMZ\uFFFEで置換されるはずだろ
0380デフォルトの名無しさん
2015/07/07(火) 08:19:26.66ID:Ge7MDcMZCodecInfoを定義してcodecs.registerで登録する
あるいはエラー処理関数を定義してcodecs.register_errorで登録する
0381デフォルトの名無しさん
2015/07/07(火) 08:22:57.78ID:Ge7MDcMZ表示はできないけど情報は落ちない
0382デフォルトの名無しさん
2015/07/07(火) 08:30:53.40ID:oR9xV2kdpythonじゃないと出来ない、或いは他の言語だと書きづらいなどの処理が有るんですか?
昔、私の知合いの超優秀な人がpython絶賛していたので関心有ります。
0383デフォルトの名無しさん
2015/07/07(火) 08:42:16.93ID:JbsGCfj6それはコードが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ソースは俺調べ
Web?誰も使ってないよ
0386デフォルトの名無しさん
2015/07/07(火) 10:02:38.04ID:KY0I5QgsPerlやRubyの守備範囲に加えて科学技術やデータ分析ライブラリが充実してるので、
研究者に好んで使われるところが一番特徴的だと思う
スクリプト言語なんで計算速度は遅いんだけどnumpyっていうライブラリを通せばCとほぼ等価
これが重要インフラになってて科学技術ライブラリが星の数ほど産まれてる
また可読性高い文法なので理工系学生のファースト言語に選ばれることが多い
C、JAVA、JavaScriptとは守備範囲が違いすぎて比較にならないけど、
RubyPerlPHPが出来ることは全部できた上でアカデミックな方向に突出して強いのがPython
0387デフォルトの名無しさん
2015/07/07(火) 10:05:32.86ID:H29+ArEWみんなのPython 第3版
この2冊を、この順で読んで。
そうすれば、この2つの言語が、
ほぼ同じだと言うことがわかる
0388デフォルトの名無しさん
2015/07/07(火) 10:24:52.36ID:oR9xV2kd詳しい説明ありがとうございました。
私の知り合いも大学の数学の先生でした。確かに研究者好みなんですね。
最近Webプログラミング勉強中でJavaScriptをある程度習得できたので
次にRuby,Perl,PHP,Pythonのどれかをやってみようと思ったのですが、
Pythonにします。
0389デフォルトの名無しさん
2015/07/07(火) 12:18:30.59ID:NbSxZEiEreplaceした場合でしょ?置換は
ignoreしてるから
ignoreやめると例外が発生する
>>383
これ試してみます
0390デフォルトの名無しさん
2015/07/07(火) 12:38:03.08ID:Ge7MDcMZignoreしてるって一言でも断りがあったかボケナス
0391デフォルトの名無しさん
2015/07/07(火) 21:11:38.84ID:NbSxZEiE失敬
0392デフォルトの名無しさん
2015/07/07(火) 21:59:34.86ID:N4S2iI2W0393デフォルトの名無しさん
2015/07/07(火) 22:50:53.31ID:i7XTlt4Kその月の何回目の何曜日っていう意味
それともカレンダー表示した時の何列目っていう意味
0394デフォルトの名無しさん
2015/07/07(火) 22:52:32.02ID:oR9xV2kd多分後者じゃあないか
0395デフォルトの名無しさん
2015/07/07(火) 23:53:42.28ID:NbSxZEiEありがとう
0396デフォルトの名無しさん
2015/07/08(水) 02:56:45.44ID:xAyjZhMydatetime型のweekdayで、与える日付の月の1日(ついたち)の曜日を取得
→(調べる日+1日の曜日シフト) / 7
でわかるんじゃないかな
1日の曜日シフトってのは、例えば左端が日曜日始まりのカレンダーなら
日曜日なら + 0
月曜日なら + 1
って感じ
割った答え+1で行がわかる
あまりで列がわかる
0397デフォルトの名無しさん
2015/07/08(水) 05:21:29.45ID:Y+kE74C90398デフォルトの名無しさん
2015/07/08(水) 15:14:08.50ID:0vLepN940399デフォルトの名無しさん
2015/07/09(木) 00:09:04.93ID:nypWSsivこのページものすごく大切なことが書いてあると思うんだけど翻訳がおかしい
0400デフォルトの名無しさん
2015/07/09(木) 18:45:02.70ID:wjer6XlU君が翻訳担当になってもいいのよ?
0401デフォルトの名無しさん
2015/07/10(金) 04:14:09.67ID:a8irpPFK誰か3.x系で使えるおすすめのGUIのライブラリ?教えてください
0402デフォルトの名無しさん
2015/07/10(金) 05:25:43.26ID:tfwLFx830403デフォルトの名無しさん
2015/07/10(金) 09:37:54.98ID:kVbIsLFs数万行のテキストファイルをイテレータで、最終行から1行目方向に
読み出したいんですけど出来ませんか?
メモリーは数十KBしか使えないので、readlinesで読みだして
逆順に変換するのはムリなのです。
0404デフォルトの名無しさん
2015/07/10(金) 10:01:49.15ID:cwv+HnzLsetpos
0405デフォルトの名無しさん
2015/07/10(金) 10:10:10.14ID:cwv+HnzLhttp://qiita.com/t2y/items/ef66c871731bddd8ef1d
0406デフォルトの名無しさん
2015/07/10(金) 10:54:04.29ID:01rWRpTaネットワークエンジニアだけど使ってるよ
0407デフォルトの名無しさん
2015/07/10(金) 12:17:44.11ID:0KQmgFVgメモリーが少ないなら、1行の長さ制限が必要
0408デフォルトの名無しさん
2015/07/10(金) 21:27:20.43ID:tfwLFx83仕事で使うの?趣味?
0409デフォルトの名無しさん
2015/07/10(金) 21:47:28.48ID:ClCVGawJoffsetを記録して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素のPython3では無理だ。
Cで、offsetをmemberに持つ一方向listの構造体作る戦法でいこう。
readlineで読み込む毎にoffset記録していく。
しかないよ。
Cでmemory切り詰めても数十kbのmemoryではぎりぎりだもの。
数十を具体的に言うとどれくらい?10?40?70?
0411デフォルトの名無しさん
2015/07/10(金) 21:58:40.63ID:UloSnGtDhttp://stackoverflow.com/questions/2301789/read-a-file-in-reverse-order-using-python
上から6番目のreadlines_reverseしか試してないけどしっかり動いてそう
0412デフォルトの名無しさん
2015/07/10(金) 22:15:23.79ID:ClCVGawJdef filerev(somefile, buffer=0x20000):
これか、最後まで一度飛んでおいて、
buffer分、後戻りして読み込んでsplitして、
またbuffer分、後戻りして、、、
の繰り返しでいけるんだ。
勉強になりました。
2chすげーな!
0413デフォルトの名無しさん
2015/07/11(土) 13:00:42.51ID:Evu65U1kPySideでいいんじゃね。pipでさくっとインストールできるし。
あとどうしても3系でwxPythonがいいならここからダウンロードできる。
http://wxpython.org/Phoenix/snapshot-builds/
0414デフォルトの名無しさん
2015/07/11(土) 21:56:05.14ID:rYJP34gTログ.logってテキストファイルの中身が下記のようだとして
0000000a 11111111 0000000b 22222222
0000000c 33333333 0000000a 11111111
ログ.log ファイルに対して0000000aを指定すると
11111111
11111111
という風にラベルの後のデータだけ抜き出したファイルを作成してくれるスクリプトなのだけど。
python勉強中だがこのスクリプトが急ぎでほしい
教えてくれ
0415デフォルトの名無しさん
2015/07/11(土) 22:06:49.82ID:oXXQGP140416デフォルトの名無しさん
2015/07/11(土) 22:13:09.76ID:rYJP34gTsedって知らなかったありがとう。スクリプトできれば月曜日にほしいから今日明日で頑張って作る予定
今日は家のPCにubuntu入れたよ
0417デフォルトの名無しさん
2015/07/11(土) 22:20:06.39ID:frozGINP0000000c 0000000a 0000000a 11111111
っていうパターンがあった場合はどこを抜き出したらいいの
0418デフォルトの名無しさん
2015/07/11(土) 23:06:47.60ID:6O+dLUsd0000000a 11111111 0000000a 0000000a
0000000c 0000000a 0000000a 11111111
なら
11111111
0000000a
0000000c
0000000a
11111111
にする
超単純に、指定した4バイトのパターン(例では0000000a)を見つけたらその直後の4バイトを抽出したい。
建設的な指摘に感謝!
0419デフォルトの名無しさん
2015/07/11(土) 23:36:30.53ID:oXXQGP14import 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あ、>>419は開業後の000000cには対応できんな・・・
0421デフォルトの名無しさん
2015/07/12(日) 01:51:01.90ID:V3tyjNbCf = 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:ixUGyiXY0423デフォルトの名無しさん
2015/07/12(日) 07:45:02.33ID:EY9Ri2mE>>421
ありがとう!
テストしてみる!!
0424デフォルトの名無しさん
2015/07/12(日) 07:58:29.04ID:ixUGyiXYwith 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:apYZaEjzrange(1, 11)ってやるのが一番短いですか?
0427デフォルトの名無しさん
2015/07/14(火) 23:41:42.95ID:Iv0YaWuW0428デフォルトの名無しさん
2015/07/15(水) 05:03:39.16ID:W+0V5wr00429デフォルトの名無しさん
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/kK6ei0432デフォルトの名無しさん
2015/07/15(水) 11:00:07.38ID:EyOqG4HOPythonはあえて残してる部分がちらほら見受けられる
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:PEfcCBMcrangeは関数だから気に入らなきゃどうとでも出来るから、スライスの方が重要だね。
a=range(4)
a[4:0:-1]
ってやると、不思議な感じになる。
正しくは、a[4::-1]とかa[::-1]
0434デフォルトの名無しさん
2015/07/15(水) 14:51:31.70ID:LSJGAlFE0435デフォルトの名無しさん
2015/07/15(水) 15:14:18.08ID:Es/kK6eiパソコンはなぜ動くのかレベルの話か?
0436デフォルトの名無しさん
2015/07/15(水) 15:14:50.48ID:PDrqXUBW0437デフォルトの名無しさん
2015/07/15(水) 22:29:36.34ID:n27Ug+NBpython で作ったスクリプトをスマートフォンで動かしたいのですが、QPython や SL4A は入れたくないので、上記の発想に至った次第です。
なお、私はそもそも Web アプリが何なのかもよくわかっていないので、トンチンカンな質問をしているかもしれません。ご容赦ください。
0438デフォルトの名無しさん
2015/07/15(水) 22:57:36.67ID:KI5mj/c8無理だと思え
0440デフォルトの名無しさん
2015/07/16(木) 00:05:47.22ID:A7eEJIoCローカルストレージ使うんだったらHTML5とJavascriptでアプリ作るとか?
Pythonは関係ないか
0441デフォルトの名無しさん
2015/07/16(木) 04:33:03.68ID:MREKRM2C0442デフォルトの名無しさん
2015/07/16(木) 07:10:05.39ID:y2OuNFMdPythonはテキストデータ加工専用言語だと思ってる俺には想像できん
0443デフォルトの名無しさん
2015/07/16(木) 07:22:22.31ID:LIw9URyA0444デフォルトの名無しさん
2015/07/16(木) 07:48:07.99ID:/b6luSAZ入れたくないならあきらめましょう
入れたくない理由なんてどうせくだらねえ理由なんだろうけど
0445デフォルトの名無しさん
2015/07/16(木) 08:11:52.88ID:6s3Asl9oご紹介ありがとうございます。
brython より python スクリプトが動くこと、確認できました。
0446デフォルトの名無しさん
2015/07/16(木) 16:22:40.86ID:FwVCRsFY多分>>437はDjangoあたりでアプリ作ってサーバーを立てずに
ローカル(スマホ)だけで動かせないか?みたいなことを模索したんじゃない
まあそういうのならブラウザで完結するJavascriptが得意中の得意なのでそっちの方がいいと思うけど
0447デフォルトの名無しさん
2015/07/16(木) 16:34:14.78ID:JsJrinDmプログラミングなんて1年以内に90%飽きるから
ほとんどの人間は無料分だけで間に合うはず
0448デフォルトの名無しさん
2015/07/16(木) 20:32:50.46ID:A7eEJIoC0449デフォルトの名無しさん
2015/07/16(木) 20:59:08.62ID:8UcfF16ivenvやvirtualenvだと仮想環境を分けるのでpython本体をアップグレードした時に再度構築し直さないといけないのが面倒です
0450デフォルトの名無しさん
2015/07/16(木) 21:01:28.55ID:8UcfF16ihttps://github.com/Deepwalker/pundler
0451デフォルトの名無しさん
2015/07/18(土) 02:12:54.65ID:WgF9+eDUあれ中華アプリじゃないか。
0452デフォルトの名無しさん
2015/07/18(土) 07:12:47.04ID:oDsD2wefRubyの範囲演算子は、「..」「...」の2つある
3..5 → 3,4,5 (5を含む)
3...5 → 3,4 (5未満)
また負のインデックスは、末尾から数える
0..-1 → すべての要素を表す
0453デフォルトの名無しさん
2015/07/18(土) 07:31:19.49ID:lzEf6NGnそれがどうした?
それは>>426-433の会話に何か有効な知見を加えるのか?
0454デフォルトの名無しさん
2015/07/18(土) 07:55:07.39ID:OXmClLpiうんうんそうだねとしか
0455デフォルトの名無しさん
2015/07/18(土) 08:00:34.26ID:jN6NYLvO0456デフォルトの名無しさん
2015/07/18(土) 09:04:50.07ID:OGP7IcNLshi3z清水亮ほど攻撃される理由があるとは思えない
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この2の部分を変数aに入れたいんですがエラーでダメでした
"{:0" + a + "d}".format(1)
TypeError: Can't convert 'int' object to str implicitly
変数で値を管理したいんですがどうかけばいいですか?
0461デフォルトの名無しさん
2015/07/18(土) 12:51:37.26ID:aTAx2eLlhttp://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"{:0" + str(a) + "d}".format(1)
0463デフォルトの名無しさん
2015/07/18(土) 12:55:24.44ID:47zg+pIq0464デフォルトの名無しさん
2015/07/18(土) 13:11:33.78ID:o4iyQyYi>>463
カッコで囲むと望む結果になりました
何でカッコつけたらえらーにならないんでしょうか
http://docs.python.jp/3/library/stdtypes.html#str.formatみましたがこれについて載っていません
0465デフォルトの名無しさん
2015/07/18(土) 13:15:31.87ID:15GkacxM>>> a = 2
>>> '{:0{}d}'.format(1, a)
01
0466デフォルトの名無しさん
2015/07/18(土) 16:19:55.60ID:KW5V467aget-pip.py
を持ってきたのですが、インストールする方法が分かりません・・・
インストールと言う言葉が合っているのかすら不明ですが。。
0467デフォルトの名無しさん
2015/07/18(土) 16:51:55.45ID:KW5V467a具体的には、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:iPFcwwwgPython3か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すいません、IDLE ってコレ、エディタであって、実行うんぬんとは関係なかったんですね・・・
0470デフォルトの名無しさん
2015/07/18(土) 22:40:17.94ID:q+K0D9Ktpythonでやりたいことがyoutube-dlだけならWindows用の実行ファイルが
公式で用意されてるんで素直にそれ使った方がいいよ
0471デフォルトの名無しさん
2015/07/18(土) 23:19:23.25ID:KW5V467aそれを使ってたんですが、使いこなせるように勉強してみようかなぁと思ったんですが
あまりにも難しくて・・・
出直してきたほうが良さそうですねw
とりあえず、YouTube動画を保存する目的は果たしているので、少しずつ勉強してみようかと思います
0472デフォルトの名無しさん
2015/07/19(日) 17:43:17.23ID:qsMi3+rD>"{:0" + str(a) + "d}".format(1)
( )で囲まない場合、"d}".format(1) の部分が、
先に処理されてしまって、エラーになるのでは?
>>471
「みんなのPython 第3版」を読めば?
0473デフォルトの名無しさん
2015/07/19(日) 23:26:10.54ID:Xne2bw2/ある文字列が含まれる行から下に6行とって来て処理を施して別ファイルに保存したいです。
(grep -A6 *** >>outputのようなことをしつつ処理を施したい)
うまい方法を教えてください。
0474デフォルトの名無しさん
2015/07/20(月) 01:00:04.87ID:1kLeVcDtある文字列が二行連続で出てきた場合、どっから6行とるの
0475デフォルトの名無しさん
2015/07/20(月) 04:08:04.78ID:saoe/X12----------------------
#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[sample.py]
# python3
print(input())
0477デフォルトの名無しさん
2015/07/20(月) 08:47:19.23ID:gMPbYmvAhttp://docs.python.jp/2/library/subprocess.html
0478デフォルトの名無しさん
2015/07/20(月) 22:52:39.12ID:saoe/X12ありがとうございます
もうひとつ、.communicate()[0]の[0]ってどいう意味なんでしょうか
0479デフォルトの名無しさん
2015/07/20(月) 22:56:44.04ID:mx9ysNLA[0]はstdoutを指す
ただstdoutしか要らないならsubprocess.check_outputを使った方が手っ取り早い
0480デフォルトの名無しさん
2015/07/22(水) 00:14:40.34ID:FJtQ/kTmありがとうございます。
取得先のファイルは一種のログファイルで、6行毎に記録される仕様になっています。
なので、もし連続するようなことがあればエラーを返して停止する仕様にします。
素直にgrep 使ってシェル使った方が楽なんでしょうが、シェルはシェルで複雑なことが苦手っぽいので
0481デフォルトの名無しさん
2015/07/22(水) 00:46:29.39ID:8iq/aP4z文字列を splitlines してループにかけるなり、finditer を使うなりいろいろあると思うけど、なにか試した?
0482デフォルトの名無しさん
2015/07/22(水) 07:03:08.97ID:UgzmRSIV# 一致した(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
0483482
2015/07/22(水) 07:14:09.60ID:UgzmRSIV>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:Iz7cB0cB0485デフォルトの名無しさん
2015/07/22(水) 12:54:57.53ID:4zVzLLkn下々は生きるのに忙しいからな
0486482
2015/07/22(水) 14:10:39.80ID:UgzmRSIV修正します。
ただし、漏れも、Pythonは初心者で、
ソースコードを実行したわけではないので、あしからず
>if count = 6:
if count == 6:
0487デフォルトの名無しさん
2015/07/22(水) 17:00:44.90ID:Hp3Ht5RA入力に間違いがない前提
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改行削除しなくていいのか
0489487
2015/07/22(水) 17:02:03.67ID:Hp3Ht5RA0490デフォルトの名無しさん
2015/07/22(水) 18:56:16.91ID:NL3fu3kF0491デフォルトの名無しさん
2015/07/22(水) 20:12:25.74ID:GPDjs6+wちっとはあたまつかえ
0492デフォルトの名無しさん
2015/07/22(水) 20:14:38.92ID:wGm6aIa70493デフォルトの名無しさん
2015/07/22(水) 20:41:58.90ID:E01nq8P+頭使えも何も、半角スペースは一文字にまとめられちまうんだから
見た目に空白を維持するなら全角スペースを使うしかない
0494デフォルトの名無しさん
2015/07/22(水) 21:01:22.54ID:Hp3Ht5RA0495デフォルトの名無しさん
2015/07/22(水) 21:03:13.62ID:Hp3Ht5RA0496デフォルトの名無しさん
2015/07/22(水) 22:29:19.11ID:TVwdgeFO0497デフォルトの名無しさん
2015/07/22(水) 22:29:52.69ID:TVwdgeFO0498デフォルトの名無しさん
2015/07/22(水) 23:09:04.94ID:GPDjs6+w0499デフォルトの名無しさん
2015/07/23(木) 12:29:56.79ID:aHQAOynKこれをオブジェクトの入子に複数格納することはできないでしょうか
0500デフォルトの名無しさん
2015/07/23(木) 12:43:30.19ID:ab3XmIzW[[obj1, obj2], [[obj3], [obj4, obj5]]]
0501デフォルトの名無しさん
2015/07/23(木) 12:50:28.05ID:aHQAOynKできましたありがとうございます。
0502デフォルトの名無しさん
2015/07/23(木) 12:59:11.20ID:ab3XmIzW独自の画像オブジェクトって情報は何か意味があるのかと思ってた
0503デフォルトの名無しさん
2015/07/23(木) 13:04:03.50ID:aHQAOynKはい、ちゃんとその後の処理でも画像オブジェクトとして機能しましたので
問題ないようです。
0504デフォルトの名無しさん
2015/07/23(木) 13:54:21.82ID:JtElrAyf0505デフォルトの名無しさん
2015/07/23(木) 14:47:38.00ID:P0N6qRSq0506デフォルトの名無しさん
2015/07/23(木) 15:02:31.50ID:IBTyWZjg入れ子になってるのはリスト構造だけで
オブジェクトの階層は一つしかないぞ
0507デフォルトの名無しさん
2015/07/23(木) 15:15:00.12ID:WUAvzM35build.xmlとかpom.xmlは見ると頭痛がするが
0508デフォルトの名無しさん
2015/07/23(木) 15:58:49.63ID:IBTyWZjg0509デフォルトの名無しさん
2015/07/24(金) 19:44:48.05ID:Sy3v921p_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:3P6rWc8H0511デフォルトの名無しさん
2015/07/24(金) 19:49:10.95ID:h3JVcYsp_def __init__(self):
__print(getattr(self, 'a', None))
0512デフォルトの名無しさん
2015/07/24(金) 19:53:13.65ID:Z3gsNXcC0513デフォルトの名無しさん
2015/07/24(金) 20:12:48.64ID:h3JVcYsp0514デフォルトの名無しさん
2015/07/24(金) 22:27:25.98ID:Z3gsNXcC0515デフォルトの名無しさん
2015/07/26(日) 03:07:51.49ID:lUWpyqrta = list(range(1000))
len(str(len(a))) ← こうやってるんですが、
桁数をとるのにいい方法ってありますか。
0516デフォルトの名無しさん
2015/07/26(日) 05:03:08.65ID:FlzLI2sd0517デフォルトの名無しさん
2015/07/26(日) 11:07:42.80ID:/x7wsywu0518デフォルトの名無しさん
2015/07/26(日) 11:47:14.12ID:N2oZlVgp多少揺らぎはあるが「くだらない質問はここで聞けスレ」の略
同じ言語で2つ質問スレが立っている場合、
片方は高確率でくだすれを源流としている(ふらっとC#とか)
くだすれが立つとき、本スレは当然くだらない質問で荒れている
荒れているが、その荒れも永遠に続くものではないので
今のように分かれている意味が分からない時期もある
0519デフォルトの名無しさん
2015/07/26(日) 13:36:52.96ID:wxu4sip9from 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:FlzLI2sd0521デフォルトの名無しさん
2015/07/26(日) 15:31:07.59ID:wxu4sip9>>> import mymodule
>>> tmp.reload(mymodule)
>>> from mymodule import MyClass
ですね。ありがとうございました。
0522デフォルトの名無しさん
2015/07/26(日) 17:38:46.20ID:sjjuAaNbPYCファイルからPYファイルへのデコード(逆コンパイル)の方法をおしえてください
いくつかsetup.pyをダウンロードしてはcmdでやってみたんですがどうしても逆コンパイルでつまづいでしまいます…
お願いします助けてください
0523デフォルトの名無しさん
2015/07/26(日) 17:56:10.36ID:N2oZlVgpデコンパイルしないと命を失うくらいに、どうしてもそれが必要か?
0524デフォルトの名無しさん
2015/07/26(日) 17:58:50.05ID:sjjuAaNbどおおおおおしても必要です
一度やり始めたからにはきちんとできたほうがいいですし…
お願いします!
助けてください!
0525デフォルトの名無しさん
2015/07/26(日) 18:14:02.03ID:N2oZlVgphttp://pastebin.com/BM4FZGxa
3はためしてないけど、まあ動くんじゃないか
0526デフォルトの名無しさん
2015/07/26(日) 18:15:38.65ID:sjjuAaNbすいません
やり方軽くでいいんでおしえてください・・・
0527デフォルトの名無しさん
2015/07/26(日) 18:30:37.89ID:N2oZlVgp0528デフォルトの名無しさん
2015/07/26(日) 18:39:58.48ID:sjjuAaNbすいませんぼく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:FlzLI2sd0530デフォルトの名無しさん
2015/07/26(日) 19:15:08.45ID:C5DOIUuUあとWindows使ってるからLinux分かりませんって言い訳にもならない
せっかくサードパーティ製ライブラリを教えてもらったんだからVirtualBoxにLinux入れて試せばいいんじゃないでしょうか
0531デフォルトの名無しさん
2015/07/26(日) 19:47:03.10ID:FlzLI2sd>あとWindows使ってるからLinux分かりませんって言い訳にもならない
おいおい
そのりくつはおかしい
>Linuxと違ってよくわからなかったです
っつってんだから528の主張はLinuxならよくわかるってことだ
あんたが528本人なら話は別
0532デフォルトの名無しさん
2015/07/26(日) 19:50:48.41ID:N2oZlVgpドザーは死ね
クソマカーも死ね
0533デフォルトの名無しさん
2015/07/26(日) 21:28:05.08ID:52hX4QECとりあえずマルチ4ネって事で終了
0534デフォルトの名無しさん
2015/07/26(日) 21:36:07.12ID:2fAT+AOZLinux環境がないからVirtualBoxにLinux入れて試せってことでしょ。
質問者がLinux分かるって言うのは文章からは読み取れない。
0535デフォルトの名無しさん
2015/07/27(月) 01:45:16.54ID:7QPACxki0536デフォルトの名無しさん
2015/07/27(月) 02:09:36.43ID:/8w8BvTq0537デフォルトの名無しさん
2015/07/27(月) 02:57:18.10ID:Yd8xNCrhNginxを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試したけどwindowsでもuncompyle2動くじゃん
ここから導かれる結論は
・あなたのPCにインストールされたWindowsが一般的なものと比較して糞
・あなたのPCは幻覚でPCに見えており、本当はみかん箱か何か
どちらだろう
0540デフォルトの名無しさん
2015/07/27(月) 08:37:38.50ID:q4XoOyftもれはもぐるわ
しばらく激高した荒らし続くかも知れんが
いなくなるまでしつこい荒らしは当分無視しろよ
スレ過疎っても荒らしのせいだけど
おまいらごめんな
0541デフォルトの名無しさん
2015/07/27(月) 08:46:15.97ID:rCgM2BeH0542デフォルトの名無しさん
2015/07/27(月) 15:12:40.83ID:JJPg7kwZ__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__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:JJPg7kwZpythonって親クラスに直接アクセスできるんですね
super使う方法を見つけてこれでもいけました
super(A, self).v() # 2
0545デフォルトの名無しさん
2015/07/27(月) 20:09:54.88ID:gGLbTc2kこれって2.7までの話ですよね?
0546デフォルトの名無しさん
2015/07/27(月) 20:59:12.30ID:DdDzdSYJむしろ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:C09rWlqrclass 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全然違う
新スタイルクラスを使うならobjectを継承しろ、だ
しかもPython3に旧スタイルクラスは存在しない
旧スタイルクラスを使わないと殺される場合でもなければ新笥スタイルクラスを使え
0549デフォルトの名無しさん
2015/07/27(月) 23:40:42.98ID:ZHHP3cwXTypeError:cannot deepcopy this pattern object
というエラーが出て動作しません。
自分が作ったものでなく、AndroidSDK等にも初めから用意されている者なのでプログラムのエラー
ということはないと思います。(現verのSDKには入ってなく、古いverの方からjetフォルダを戴きました。)
0550デフォルトの名無しさん
2015/07/27(月) 23:53:54.90ID:ZHHP3cwX詳細
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すみません自己解決しました。荒らしてしまって申し訳ありませんでした。
0552デフォルトの名無しさん
2015/07/28(火) 08:56:29.07ID:m3UChEdn0553デフォルトの名無しさん
2015/07/28(火) 09:19:38.25ID:dueMFxCg0554デフォルトの名無しさん
2015/07/28(火) 16:56:02.34ID:eB7VWbpU./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:dueMFxCgPEPの文句なんて無視すればいいじゃん
おすすめ構成は以下
/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:eB7VWbpU0558デフォルトの名無しさん
2015/07/28(火) 18:23:14.73ID:dueMFxCg0559デフォルトの名無しさん
2015/07/28(火) 20:52:02.58ID:eB7VWbpUでもおすすめしてもらった構成だとぼくの変わらないと思うんですよね
あとPEPで決められたルールもあるので正攻法がある気がするんですよ
0560デフォルトの名無しさん
2015/07/28(火) 21:05:11.62ID:9GgK2udLPython3 であり正攻法か知らないけれど、
以下の方法はどうでしょう?
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:ZRk8WaCesys.pathが出てくる理由が全く分からない
0562デフォルトの名無しさん
2015/07/28(火) 21:24:01.05ID:9GgK2udLPYTHONPATH って環境変数でしょう?
環境変数をいじるのは嬉しくないと思う。
それよりは、sys.path.append()使って、
環境変数に触らずにtest_code.pyを実行したい。
というのが>>554の考えなんじゃないの?
0563デフォルトの名無しさん
2015/07/28(火) 22:12:14.70ID:c7bvE2d8setup.pyからテストを実行すればいいんじゃない?
0564デフォルトの名無しさん
2015/07/28(火) 22:14:04.86ID:dzOUJwwo0565デフォルトの名無しさん
2015/07/29(水) 05:39:43.45ID:qvSRsKX30566デフォルトの名無しさん
2015/07/29(水) 18:48:23.87ID:C31cMPRb・・
continue
while True:
test()
このような感じで、関数内からwhile Trueに対してcontinueする事はできますか?
0567デフォルトの名無しさん
2015/07/29(水) 19:54:32.01ID:4360Pw2a再帰ってこと?
多分、したい事の解決方法が間違ってる。
したい事は、なぁに?
0568デフォルトの名無しさん
2015/07/29(水) 20:04:23.92ID:C31cMPRbtest2()に移行せずwhile True:のはじめからやり直したいんです
while True:
__test()
__test1()
__test2()
__test3()
SyntaxError: 'continue' not properly in ~~~ となります
0569デフォルトの名無しさん
2015/07/29(水) 20:05:23.12ID:RH5K4X2wclass 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成功したら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やりたいことこれです、ありがとうございます。
0572デフォルトの名無しさん
2015/07/29(水) 20:23:40.48ID:c3o2n8R7関数には{}使わないんですよね。
0573デフォルトの名無しさん
2015/07/29(水) 22:10:41.56ID:cW7qEMuX0574デフォルトの名無しさん
2015/07/29(水) 22:16:03.57ID:4YomwHKVこの構文は賛否あると思うけど、将来{}が導入される機会は無いとわざわざ実装で表明している
0575デフォルトの名無しさん
2015/07/30(木) 15:26:59.50ID:qxlVlu0TPHPでいうhttp://docs.php.net/manual/ja/doc.changelog.phpみたいな変更履歴ってどこで見れますか?
0576デフォルトの名無しさん
2015/07/30(木) 16:04:02.56ID:Z0rCKaW00577デフォルトの名無しさん
2015/07/30(木) 19:31:47.32ID:cCFC5U/Tから各バージョンへのリンクがあるよ
0578デフォルトの名無しさん
2015/07/31(金) 00:49:42.33ID:u6UInjxJ0579デフォルトの名無しさん
2015/07/31(金) 07:55:33.34ID:zxXRNzjs0580デフォルトの名無しさん
2015/07/31(金) 08:33:05.30ID:709JoO300581デフォルトの名無しさん
2015/07/31(金) 22:48:07.91ID:wbH0A+JAヒントだけでも教えていただけませんか?
0582デフォルトの名無しさん
2015/07/31(金) 23:20:03.61ID:hKMcxT/u0583デフォルトの名無しさん
2015/08/01(土) 00:28:01.71ID:ghun761Eなにかいい書き方はありますか?
0584デフォルトの名無しさん
2015/08/01(土) 00:29:18.18ID:VbjGDeVR何でwhile何だよ?
0585デフォルトの名無しさん
2015/08/01(土) 00:34:41.58ID:ghun761Eあ、確かに
forでsleepかませばいいだけですかね?
なんか変にこだわってましたすみません
0586デフォルトの名無しさん
2015/08/01(土) 02:03:25.71ID:VbjGDeVR男にはこだわりも必要さ。頑張れ。
0587デフォルトの名無しさん
2015/08/01(土) 06:31:27.99ID:ed2n0PXB証券会社のツールから株価を取得したい。
例えばハイパーSBIで銘柄のコードを入力すると株価が出力されるのだけれど、それをpythonでやる方法がわかりません。
0588デフォルトの名無しさん
2015/08/01(土) 07:21:30.49ID:Ere4YETC起動中はコンソールの右上に橙の三角マーク(マウスを当てると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挙動を見ている限り追加する速度が遅くなっているみたいに感じます
最初はリストに追加していたのですが遅いので、辞書にしてみたら更に遅くなりました
0592デフォルトの名無しさん
2015/08/01(土) 11:00:01.80ID:HfST5fY7HyperSBIは外部プログラムとデータのやりとりをする機能を公開していない
よってPythonに限らずどんな言語でも無理
0593デフォルトの名無しさん
2015/08/01(土) 11:00:15.78ID:VbjGDeVRpython以外のc++などで試してみればどうなん?
0594デフォルトの名無しさん
2015/08/01(土) 11:18:26.97ID:PBQUMraInow = time.time()
#ここで追加or読み込みなど計測したい処理
print( time.time() - now )
これでどの処理にどれだけ時間かかってるかが出力されるので原因が特定しやすいよ
オレの環境では辞書に100byte*10万件追加しても0.05秒(1件あたりじゃなくて全件で)
pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか
ちなみにリストは巨大化すればするほど後ろの方のデータを読み込むのにどんどん時間かかるけど、
辞書は一定の速度で読み書きできるはず
0595デフォルトの名無しさん
2015/08/01(土) 11:41:59.68ID:AVRmVHozスクレイピングでググってください
丸投げではなく自分で1から勉強してください
難しいスキルは不要なので基礎からやりましょう
0596デフォルトの名無しさん
2015/08/01(土) 11:43:55.24ID:AVRmVHoz必要であればyieldを使うなりデータを分割して処理するなりしましょう
データをファイルに書き出して分割して読み込んでいく方法もあります
0597デフォルトの名無しさん
2015/08/01(土) 11:47:08.78ID:AVRmVHozpython process 監視でググってヒットした1ページ目を片っ端から読みましょう
0598デフォルトの名無しさん
2015/08/01(土) 11:47:26.67ID:PBQUMraIおそらくC系で書かれたアプリのデータをpythonで取得するのはスクレイピングとは何の関係も無い
難しいスキルが不要どころか極めて敷居高いですよ
少なくともオレにはできない
0599デフォルトの名無しさん
2015/08/01(土) 13:23:00.56ID:GepW3eXwデータ用途にもよると思うけど、素直にDB使えばいいんじゃね
sqlite使ってまずオンメモリDBを試してみて、ダメならファイルベースにすればいい
0600デフォルトの名無しさん
2015/08/01(土) 13:30:55.26ID:ldei0zHrデータなんてクライアントツールで提供してるとこなんてないよ
0601デフォルトの名無しさん
2015/08/01(土) 16:42:52.95ID:waGA91Tw20分以上遅れてるから使い物にならない
0602デフォルトの名無しさん
2015/08/01(土) 16:43:35.87ID:waGA91Tw>pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
>読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか
+1
0603デフォルトの名無しさん
2015/08/01(土) 17:28:13.97ID:zsKVeSSI0604587
2015/08/01(土) 17:43:35.94ID:omn1LlLsウェブ上で公開されているデータを取得するとしたら
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:HjoVMyMH0606デフォルトの名無しさん
2015/08/01(土) 18:52:27.13ID:PBQUMraIもちろんソフトがデータ自体を受信してるんだろうけどそれを取り出すのは厳しいよ
CだかC+で書かれてコンパイルされたソフトの仕様を完全に解析しないといけない
これはpythonとは全く無関係の話なのでここで質問しても誰も答えられない
なのでもし既に解析した強者がいて情報を公開してれば真似するしか無いかなあ
webで1秒ごとにちゃんとリアルタイム株価が表示されてるのがあれば簡単(でもそんなの無いよね?)
毎秒そのURLにアクセス(requests)してHTMLをパース(lxml or BeatifulSOAP)して株価を取得できる
括弧内はその時に使える便利なpythonライブラリの名前ね
株式投資のことは無知なので的外れな回答だったらごめん
0607デフォルトの名無しさん
2015/08/01(土) 21:56:07.62ID:FWfS2vhbsys.stdout.write("\r1")
sys.stdout.write("\r2")
これで1行を書き換えられますが、複数行を書き換える場合はどう書けばいいですか?
1
2
と2行を出力した後に
3
4
と複数行書き換える場合はどう書いたらいいですか?
0608デフォルトの名無しさん
2015/08/01(土) 22:46:53.52ID:Ere4YETCこれをコマンドプロンプトから試してみたのですが
python.exeは動作を停止しましたってウィンドウが別に開きます
こう言う時って何が問題な事が多いのでしょう?メモリ?
0609デフォルトの名無しさん
2015/08/01(土) 22:56:02.17ID:BLDCtSufcolumn01〜20までありまして。
'select * from table_name where column01, column02, column03 = "%s"' % keyword
また、selectの結果をカウントする方法はありますか?
こちらも調べたのですがわからず。。
0610デフォルトの名無しさん
2015/08/01(土) 22:57:53.44ID:kwRHUfwjWHERE句でOR使うだけだろ
0611デフォルトの名無しさん
2015/08/01(土) 23:01:35.36ID:kwRHUfwjWindowsのそのメッセージは99%アクセス違反
どうせNULLハンドルチェック漏れだろうけど
0612デフォルトの名無しさん
2015/08/01(土) 23:08:14.18ID:BLDCtSufありがとうございます。
そのままかくと冗長化するんですが良い方法ないですか?
0613デフォルトの名無しさん
2015/08/01(土) 23:30:08.52ID:Ejo7uJz3良い方法を見つけて書くのが腕の見せ所でしょ?
select count(*) 〜〜;
0614デフォルトの名無しさん
2015/08/01(土) 23:34:37.56ID:kwRHUfwj愚かなコードを書かなければならなくなるのは全く不思議ではない
0615デフォルトの名無しさん
2015/08/02(日) 00:25:45.12ID:vRy1WZiHそういう情報は、Amazon・FaceBook・楽天などのように、
APIとして公開している会社で、この言語を使って、
こういう具合に作るなど、丁寧に作り方を教えている場合のみ、
ユーザーでもプログラムを作ることができる。
例えば、Googleの地図APIなど
APIを公開していない場合、自分でそのデータ形式を分析して、
プログラムを作るのは、まず無理
>>588
ソースコードのあちこちに、print文を書いて、
どこでエラーが起きているのかを、突き止める
それか、PyCharm を使って、デバッグするとか
>>591
700のファイルを開いて、データを読み込んで、
すぐにそのファイルを閉じているかどうかを、
ソースコードを読んで確かめる
ファイルを開き放しにしていれば、ヤバイ
0616デフォルトの名無しさん
2015/08/02(日) 03:54:28.60ID:dTRZmQiN時代は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:yYb0hZFV0620デフォルトの名無しさん
2015/08/02(日) 11:45:58.27ID:UCQE5+8k違う!それは違うぞ!!!
0621デフォルトの名無しさん
2015/08/02(日) 12:49:18.15ID:+O2Hc9iF0622デフォルトの名無しさん
2015/08/02(日) 12:54:45.24ID:dTRZmQiN0 ≦ 0 ≦ 0
で合ってますか?
0623デフォルトの名無しさん
2015/08/02(日) 12:56:11.84ID:+O2Hc9iFスキーマレスって「運用でカバー」並だよね
それが許されるのは緊急時だけにして欲しい
0624デフォルトの名無しさん
2015/08/02(日) 14:43:31.31ID:ULysM4NQそのとおりであってます
0625デフォルトの名無しさん
2015/08/02(日) 16:31:48.62ID:dTRZmQiNL = 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:VCBaRTznsortするとかなり遅いのでもっと効率的な方法は無いでしょうか
pythonリストはともかくnumpyにはそういう処理があるだろうと思ったのですが見つかりませんでした…
0627デフォルトの名無しさん
2015/08/03(月) 02:48:06.14ID:oLPMcLov0628デフォルトの名無しさん
2015/08/03(月) 02:53:50.78ID:TVbEWMpV0629デフォルトの名無しさん
2015/08/03(月) 05:34:38.13ID:MJUDpxg+log n は、nが大きくなるほど増えにくいから、
ただみたいなもの
n = 1,000 = 2^10 のとき、10 = log n だから、
10回popする間に、千個のデータをソートできる
0630デフォルトの名無しさん
2015/08/03(月) 07:58:49.48ID:ocR6jyDinumpy 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:mj4jP7t40632デフォルトの名無しさん
2015/08/03(月) 11:05:55.50ID:qdkLyF57bisect を使えば簡単にできました。
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:qdkLyF57m=10なので、
bisect.insort(L, x)
の時の
O(m log m)
は無視できるとして、
O(n(=len(ary))
で頑張ってみました。
0634デフォルトの名無しさん
2015/08/03(月) 13:32:56.52ID:J4VhAduOi = value in lst
if i:
____del lst[n]
これいがいのかきかたをおしえtください
0635デフォルトの名無しさん
2015/08/03(月) 13:48:07.72ID:qdkLyF57>>> 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:VCBaRTznA 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を使おうと思います
大変勉強になりました 皆さんありがとうございます
0637168
2015/08/03(月) 14:56:31.14ID:fmwSGKmSnumpy は percentile で同じことができるみたいね。
0638デフォルトの名無しさん
2015/08/03(月) 21:20:25.82ID:bi4hacJBprint 1 + x
x = 2
print 1 + x
・
・
・
x = 1000
print 1 + x
というのを簡単に行うにはどうしたらいいんでしょうか?
0639デフォルトの名無しさん
2015/08/03(月) 21:35:43.55ID:gVB3Io0Iprint 1 + x
0640デフォルトの名無しさん
2015/08/04(火) 12:00:37.85ID:AS8dD+yUprint(n)
if m > n : a(n + 1, m)
a(1, 10)
0641デフォルトの名無しさん
2015/08/04(火) 12:01:17.71ID:AS8dD+yU_print(n)
_if m > n : a(n + 1, m)
a(1, 10)
0642デフォルトの名無しさん
2015/08/06(木) 21:40:10.45ID:UihIPuxy0643デフォルトの名無しさん
2015/08/06(木) 21:41:20.84ID:3aDya5oU0644デフォルトの名無しさん
2015/08/06(木) 23:18:23.30ID:wkWTZ+KRprint(10>>1)
何で右シフトだと小数点切り捨てになるんですか?
0645デフォルトの名無しさん
2015/08/07(金) 01:04:03.51ID:NNL5NoiN>>> 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小数点以下切り捨てと決めているから。
が答えだけど、納得しないでしょう?
だからさ、CPUの原理を勉強しよう。
bit演算について勉強すると良いよ。
あと、右shift演算は、負の整数にしても面白いんだよ。
>>> -1 >> 1
-1
>>> -1 >> 2
-1
ってなったりする。不思議でしょう?
ふふふ。
0647デフォルトの名無しさん
2015/08/07(金) 08:08:05.50ID:3jYJojYP更には、rotr, rotlなんて命令もあったりする。
bit列を右回転, 左回転させる命令なんだよ。
8bit CPUの例だけど、
rotr(0b10000001, 1)
を実行すると、
0b11000000
が返ってきたりする。
暗号関係で使われたりするよ。
0648デフォルトの名無しさん
2015/08/07(金) 16:11:37.82ID:ncOfWd5+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してみたらぁ?
0650デフォルトの名無しさん
2015/08/07(金) 16:23:15.22ID:ncOfWd5+0651デフォルトの名無しさん
2015/08/07(金) 16:23:59.53ID:ncOfWd5+print(round(1.85, 1)) # 1.9になるのでOK
0652デフォルトの名無しさん
2015/08/07(金) 18:34:32.46ID:l3+Klkte0653デフォルトの名無しさん
2015/08/07(金) 19:28:09.98ID:EbZJZJ8+http://docs.python.jp/3/tutorial/floatingpoint.html
これの事を言ってるなら今回のと関係ない
>>650
0.05が丸め込まれているのに0.05以上である0.06が丸め込まれないのはバグ
0654デフォルトの名無しさん
2015/08/07(金) 19:38:55.70ID:P01jDVzM0655デフォルトの名無しさん
2015/08/07(金) 20:35:10.77ID:tWWYLiGh'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ここに書いてある。
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>>652
なんでこういう馬鹿にした&遠まわしな書き方しかできないのかね、ここ初心者スレでしょ
しかもprintしろとか結局間違ってるし
ちなみに>>655みたいな現象はPythonに限ったことじゃなくて、
floatの値をを使って分岐処理やif文を書くときは気をつけないとバグ作り込むので注意
0658デフォルトの名無しさん
2015/08/07(金) 23:19:24.80ID:3jYJojYPhttp://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:3jYJojYPpython3.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詳しい説明は出来ませんので、きちんと理解したいのなら、
浮動小数点数 誤差
で検索してご自分で勉強なさって下さい。
>>> 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指数部は、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:6UCmRx7v0663デフォルトの名無しさん
2015/08/08(土) 16:54:45.36ID:7XDpIYnBdecimal 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:bskJYfyRDecimalの丸めはこうな
Decimal("1.65").quantize(Decimal("0.0"), decimal.ROUND_HALF_UP)
無知なのに意地はんなや
0665デフォルトの名無しさん
2015/08/08(土) 18:15:35.74ID:wzG7wbxYもっと何とかならなかったのか
0666デフォルトの名無しさん
2015/08/08(土) 18:52:22.52ID:bskJYfyRDecimal("0.1") + 0.1
とかが普通に実行出来てしまったら、>>648のような不幸な初心者が量産されてまうわ。
0667デフォルトの名無しさん
2015/08/08(土) 22:08:47.37ID:t3Zwjigp0668デフォルトの名無しさん
2015/08/08(土) 22:15:21.63ID:7XDpIYnB0669デフォルトの名無しさん
2015/08/09(日) 00:30:28.91ID:dl726Wch0670デフォルトの名無しさん
2015/08/09(日) 06:09:40.90ID:T7+WUh220671デフォルトの名無しさん
2015/08/09(日) 22:42:00.68ID:POd8P+xeこのrってなんですかマニュアルのどこのページを見て学べますか
0672デフォルトの名無しさん
2015/08/09(日) 23:03:20.00ID:LxR15rBcどうぞ。
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:SZbKyl180674デフォルトの名無しさん
2015/08/10(月) 00:26:16.45ID:1trpq2mO俺は意味理解できなくてなんとなく使ってる。
0675デフォルトの名無しさん
2015/08/10(月) 02:33:45.82ID:xpOq7lBh\で終わるディレクトリ記述しようとするとはまるけど。
0676デフォルトの名無しさん
2015/08/10(月) 04:55:41.13ID:joKVIITRpython全然関係ない話題だったでござる
0677デフォルトの名無しさん
2015/08/10(月) 10:08:21.10ID:A4JvqZRLpass
f = 'a'
変数fから関数a()を実行する方法を教えてください
0678デフォルトの名無しさん
2015/08/10(月) 10:14:01.63ID:Y9npztmj... print 'This is a A'
...
>>> f = 'a'
>>> locals()[f]()
This is a A
>>>
0679デフォルトの名無しさん
2015/08/10(月) 10:21:00.93ID:R47cdcnQeval(f)()
exec(f + '()')
0680デフォルトの名無しさん
2015/08/10(月) 10:29:09.95ID:+1c20aQZ0681デフォルトの名無しさん
2015/08/10(月) 12:24:34.24ID:A4JvqZRL今bottleのソースコードを見ながら勉強してるんですけど
ソースコードでlocals()とglobals()をググっても見つかりませんでした
bottleではどうやってコントローラーを実行しているのかわかりませんか?
0682デフォルトの名無しさん
2015/08/10(月) 13:16:50.78ID:R47cdcnQ煽るならzen of pythonから引用してしほしい
>>681 importlibやgetattrでモジュールの動的なインポートを利用していると思われる
0683デフォルトの名無しさん
2015/08/11(火) 00:51:44.04ID:Kibzp2Ye0684デフォルトの名無しさん
2015/08/11(火) 10:00:55.94ID:z0h2VMWZこの一次方程式を解くライブラリってありますか?
0685デフォルトの名無しさん
2015/08/11(火) 10:33:58.70ID:v443SNvd試してないけど、SymPyやPyMaximaかな。
0686デフォルトの名無しさん
2015/08/11(火) 10:59:40.44ID:VmWDUo2S>>> 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:XnkwOBLj0688デフォルトの名無しさん
2015/08/11(火) 20:39:49.20ID:BYbKL/Wtどんなスレ立てても大なり小なり叩かれると思うが
科学技術計算総合スレとでもしておいた方が、叩かれる度合いは少ないだろう
Rスレあったんだ
検索しづらいわ!
0689デフォルトの名無しさん
2015/08/11(火) 20:40:52.49ID:7cQT55t3もうちょっと広く、「pythonで科学技術計算」とかなら良いかな?
他の人の意見も聞いてね
0690デフォルトの名無しさん
2015/08/11(火) 20:42:57.00ID:7cQT55t3言語が混ざるとつばぜり合いを始める馬鹿がいるので、
python専用にして欲しいと思う
0691デフォルトの名無しさん
2015/08/11(火) 20:56:01.90ID:flESq3IS0692デフォルトの名無しさん
2015/08/11(火) 23:46:00.42ID:mq4pk2ON自然言語処理や機械学習も言語を限定しないスレはあるね
0693デフォルトの名無しさん
2015/08/12(水) 09:32:49.05ID:+VWy6X24過疎板だしIDついてるし
このスレでやった方が混乱は少ないと思う
0694デフォルトの名無しさん
2015/08/12(水) 10:57:41.33ID:I5afDcIYb = 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:RQEQ2Cbc0696デフォルトの名無しさん
2015/08/12(水) 11:16:11.95ID:tORyfhyIA = [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>>> b = [1, 2]
>>> reduce(lambda n, m: a.remove(m), b, [])
>>> a
[4, 3, 5]
0698デフォルトの名無しさん
2015/08/12(水) 16:55:12.14ID:k8XljSWZたとえば、
list = [x,y,z]
for i, j in enumerate(list):
"name" + i = j
といった感じです
勿論上記のやり方では上手くいきませんが、イメージとしてはこんな感じでlistの中の要素を番号付けされた名前の変数に入れたいのです
どうしたらいいんでしょうか?
0699デフォルトの名無しさん
2015/08/12(水) 17:31:42.13ID:7eD+gktf0700デフォルトの名無しさん
2015/08/12(水) 17:53:05.65ID:tORyfhyIclass 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:i7Ce6lvWhttp://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:k8XljSWZ0703デフォルトの名無しさん
2015/08/12(水) 20:08:36.40ID:6qYgwLU5>>> 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:zuppFPQOa = {1, 2}
print(a[0])
これエラーなんですけどどうやって1の値を取得できますか?
質問2
a = {"0":1}
print(a["0"])
これもキーを指定するとエラーなんですけどどうやってでキーを指定したらいいんですか?
0705デフォルトの名無しさん
2015/08/12(水) 22:10:12.72ID:PF0ET0RY質問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:YIqOZZQSnum_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:PF0ET0RYa = {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[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:dWSY8J7e0715デフォルトの名無しさん
2015/08/13(木) 19:57:26.86ID:PEz63Oz9つうか日本で著名なカンファレンスで金取るのpyconぐらいしか知らないんだけど
収入をスタッフで分けあってるんじゃないだろうね
金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け
0716デフォルトの名無しさん
2015/08/13(木) 20:26:30.03ID:zypo+67310000円とか高すぎワロタ
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:zYX1bnGl5000円
俺はyapcに行くけどpyconは行かない
役に立った試しがないから
0720デフォルトの名無しさん
2015/08/13(木) 23:18:38.29ID:XFGl8RYPif __name__ =‘’__main__‘’
よ意味がイマイチ分かりません。
どういう意味か教えてください。
0721デフォルトの名無しさん
2015/08/13(木) 23:43:50.03ID:mALeQvK5http://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なんとなくわかった
ありがと
0723デフォルトの名無しさん
2015/08/13(木) 23:59:00.58ID:5Zf3S51H実行結果の違いを自分で理解しましょう。
$ 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:55h31plls = '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ありがとうございました
0729デフォルトの名無しさん
2015/08/14(金) 13:16:29.76ID:Q/AtP1Be0730デフォルトの名無しさん
2015/08/14(金) 17:20:25.77ID:LobgVTtdちょちょい回答側も適当なこと答えてるし何様なんだろう
0731デフォルトの名無しさん
2015/08/14(金) 18:05:30.80ID:qjotB1DM0732デフォルトの名無しさん
2015/08/14(金) 18:34:20.95ID:UfQw/EAV俺様だよ
Pythonのような動的言語の得意な事の一つにメタプログラミングつってな
プログラムを生成するプログラムを作るような生産手段がある。
つまりプログラムの前にプログラムは始まってるんだよ
Pythonを究めればつまり、十年後、二十年後にプログラムするおまえ自身をプログラムすることだってできる
わかるか?説教なんかじゃねーよ
メタプログラミングだ
0733デフォルトの名無しさん
2015/08/14(金) 18:40:34.94ID:55h31pll馬鹿どもの需要を満たす良スレです
でもエスパー向け質問は勘弁な
0734デフォルトの名無しさん
2015/08/14(金) 18:47:50.96ID:1qaFTc/3>>724のような質問から分かることは質問者がプログラミング初心者であることだ
複数のプログラミング言語の経験があれば例えばJavaScriptのsubstringみたいなのはどうやるんだろうみたいな疑問から「python substring」でぐぐれば答えにたどり着ける
>>724に必要なことは経験なんだよ
経験を積めば答えの探し方も自ずとわかってきてクソ質問をする回数も減ってくる
さいしょはそういうものだ
0735デフォルトの名無しさん
2015/08/14(金) 19:16:08.06ID:kkHnja52疑問一つ解決するにはネットが一番
0736デフォルトの名無しさん
2015/08/14(金) 19:18:02.42ID:KhWLzGMo0737デフォルトの名無しさん
2015/08/14(金) 20:24:45.10ID:RT/486IQ0738デフォルトの名無しさん
2015/08/14(金) 22:13:36.03ID:LobgVTtdそうそうググり方がわかんないんだよね初心者は
なんか一つでも言語かじってれば検索語がすぐ浮かぶし基本質問しなくて済むんだけど
そういう事すら想像できないで説教してる奴はプログラムは書けるかもしれないけど年収低そう
0739デフォルトの名無しさん
2015/08/14(金) 23:19:56.73ID:OD8R+FZZっていう想像すら出来ないのか?
0740デフォルトの名無しさん
2015/08/15(土) 00:09:06.75ID:xP2G+OJc君は恵まれているんだよ
「知りたいことの調べ方を教えられずとも知っている」というのは、ある意味超人なのだから
0741デフォルトの名無しさん
2015/08/15(土) 00:11:59.43ID:ijAlKA58splitがヒットする
0742デフォルトの名無しさん
2015/08/15(土) 04:47:08.17ID:Yk3bSSFS'hoge'.length
'hoge'.length()
'hoge'.len()
とかやって途方に暮れたのは良い思い出
0743デフォルトの名無しさん
2015/08/15(土) 13:23:11.13ID:Ul7UCeMQチュートリアルを一通りやってから聞いたほうが効率がいい
0744168
2015/08/15(土) 13:40:31.23ID:n2MIk9XBなかよし学級みたいなものだよ
0745デフォルトの名無しさん
2015/08/15(土) 13:41:20.37ID:vqznTC4Zそれを各行の先頭に&があったらそこでsplitをしたいのですが、
シンプルな形でするにはどうしたらよいでしょうか
0747デフォルトの名無しさん
2015/08/15(土) 14:00:32.15ID:vqznTC4Zあざす
0748デフォルトの名無しさん
2015/08/15(土) 19:34:44.25ID:4G4yaXTmEclipseにPydevというものを入れたいんですが
Unable to read at repositlyみたいなエラーメッセージがでます。
Eclipseかjavaのバージョンがおかしいのでしょうか?
Eclipseは最新java 1.7.045です
0749デフォルトの名無しさん
2015/08/16(日) 00:21:57.41ID:AC1P33gfこの英文はスペルも間違っているし、
文法的にもおかしい
正しいエラーメッセージで、検索しろ
eclipse Unable to read 〜
0750デフォルトの名無しさん
2015/08/16(日) 00:35:10.95ID:Eim8BKO00751デフォルトの名無しさん
2015/08/16(日) 10:16:12.86ID:UepVPRcbみたいなエラーじゃエスパーしか回答できないな
0752デフォルトの名無しさん
2015/08/16(日) 10:47:06.87ID:lDaj3UMnというファイルに
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:lDaj3UMn0755デフォルトの名無しさん
2015/08/16(日) 11:03:26.16ID:O32Kimu0import 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/iFh0757752
2015/08/16(日) 11:14:57.83ID:lDaj3UMnありがとうございます。
collections
ってやつですか、使ったこともありませんでした。
>>756
宿題でなく、業務の補助です。
コンピューター系の仕事じゃないんですが、
excelファイルの一行目で重複しているものをさがさねばならない状況で
あまりにたくさんあって、手動じゃ厳しい状況でした。
0758デフォルトの名無しさん
2015/08/16(日) 11:46:46.26ID:UepVPRcb0759デフォルトの名無しさん
2015/08/16(日) 11:52:01.60ID:0tax/iFh0761デフォルトの名無しさん
2015/08/16(日) 20:54:41.00ID:qIQbKUMb0762デフォルトの名無しさん
2015/08/16(日) 21:50:03.91ID:LFerq79m解析を自分でやりたくないなら標準ライブラリでは難しい、PYPIから探して用途に合ったものを入れて使う
0763デフォルトの名無しさん
2015/08/16(日) 22:35:19.49ID:e2KUFoWx0764デフォルトの名無しさん
2015/08/17(月) 00:19:47.15ID:cHfxWEIfWindowsがメインの時代は終わった。
0765デフォルトの名無しさん
2015/08/17(月) 01:35:46.62ID:yvTEFZwwclass 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/R9DQGoogle Apps の Spreadsheet はまだ使いにくいんだわ
慣れ鴨試練けど
0768デフォルトの名無しさん
2015/08/17(月) 08:35:05.25ID:yvTEFZww自己解決しました
Testクラスの初期化でバインドする前に別の命令でXXXを呼び出していたのが問題でした
0769デフォルトの名無しさん
2015/08/17(月) 08:40:08.19ID:yvTEFZwwありがとうございました
0770デフォルトの名無しさん
2015/08/17(月) 11:53:45.23ID:jAoOCpIM0771デフォルトの名無しさん
2015/08/17(月) 12:03:41.24ID:HKx5lNzaソースコード読め
0772デフォルトの名無しさん
2015/08/17(月) 12:39:02.37ID:hnwd1zgq>あとはeachで毎行すべての行の中身と比較して、
>一緒なら出た回数+1
行の内容を、キーにして、
辞書・連想配列(dic, map)を使えば、効率的
0773デフォルトの名無しさん
2015/08/17(月) 14:15:45.35ID:wMu/qLyK標準ライブラリのデコレーターfunctools.lru_cache()を使う
0774デフォルトの名無しさん
2015/08/17(月) 16:33:43.57ID:3iVEaaDQありませんでしょうか
ファイル名をキーにできなくもないですが、ファイル名だと制約が多そうなので
専用の仕組みがないか知りたいです
0775デフォルトの名無しさん
2015/08/17(月) 16:50:29.97ID:wMu/qLyK標準ライブラリのdbm(シンプル)やsqlite3(多機能)を使う
データが少量ならjson(多言語対応)やpickle(Python特化)で一気に読み書き
0776デフォルトの名無しさん
2015/08/17(月) 16:57:29.22ID:3iVEaaDQいろいろあるんですね、標準から順番に試してみます。
0777デフォルトの名無しさん
2015/08/17(月) 17:31:22.68ID:BpXeI8EH普通はデータベース(上の人が書いてるsqlite3とか色々)
テキストでも数値でも画像みたいなバイナリでもなんでも保存できる
そこまで大げさじゃなかったらdictにしてローカルへの永続保存にはpickleとか
0778デフォルトの名無しさん
2015/08/17(月) 17:49:25.09ID:XZr/R9DQmemcached
0779デフォルトの名無しさん
2015/08/17(月) 17:53:32.11ID:BpXeI8EH揮発していいんならそもそもdictでいいわけだし
0780デフォルトの名無しさん
2015/08/17(月) 17:55:31.75ID:7xSphxbUpython関係ないなスレチ
localstorageかindexeddbでぐぐれ
0781デフォルトの名無しさん
2015/08/17(月) 18:00:59.30ID:BpXeI8EHCookieみたいにキーバリューっぽくPythonでデータをやり取りできる簡易ストレージありませんかってことでしょ
localstorageとか全然関係ない
0782デフォルトの名無しさん
2015/08/17(月) 18:18:31.83ID:XZr/R9DQ>>779
永続保存したいときは memcached にさせればいい
0783デフォルトの名無しさん
2015/08/17(月) 18:30:26.61ID:BpXeI8EH俺の知ってるmemcachedはストレージへの保存はできなかったように思うんだけど今はできるの?
できたとしても大規模なサイト向けの分散メモリキャッシュを>>774に勧めるのは違う気がする
0784デフォルトの名無しさん
2015/08/17(月) 18:33:58.91ID:XZr/R9DQPC が起動してる間だけ(半)永続化出来れば良い用途なら memcached を勧める
python のプロセスが終了しても実行単位が分かれてても良いからね
0785デフォルトの名無しさん
2015/08/17(月) 18:39:27.72ID:PIyjnu6pお前そんなんだからいつまでたっても伸びないんだよ
0786デフォルトの名無しさん
2015/08/17(月) 21:41:07.78ID:AC+nB5ru自動でpickle/unpickle
バックエンドは可能ならdbmを使用
dict互換インターフェース
初心者には文句ねえだろ
0787デフォルトの名無しさん
2015/08/17(月) 22:02:22.04ID:HG93N3kSfrom package import *
じゃなくて
import package
ってしただけで
package.lib1, package.lib2, …
という風に階層的にアクセスできるようにしたいんですが、手軽にできる方法ありませんか?
今は__init__.pyにそのディレクトリのファイルリストを取得してpyファイルのみインポートするようforループ回してるんですが
こんなめんどくさい方法しかないのでしょうか?
0788デフォルトの名無しさん
2015/08/17(月) 22:15:45.09ID:AC+nB5rufrom . import *
って書いとけば
0789デフォルトの名無しさん
2015/08/17(月) 22:19:37.26ID:LdwVCEVY0790デフォルトの名無しさん
2015/08/17(月) 22:21:13.35ID:AC+nB5ru0791デフォルトの名無しさん
2015/08/17(月) 22:25:19.92ID:HG93N3kSそれは試したのですが、dir(package)しても何も読み込まれてません(エラーも出ません)
もちろんグローバルに直接広げられてるわけでもありません
後出しですみませんがpython3.4.1です
0792デフォルトの名無しさん
2015/08/18(火) 08:34:58.30ID:+GUozJxIerror処理を「replace」や「backslashreplace」にした場合、
置換された時だけ処理を追加したいのですが、
その際の分岐はどのようにすれば出来るでしょうか?
0793デフォルトの名無しさん
2015/08/18(火) 10:15:30.36ID:/VHLnea+0794デフォルトの名無しさん
2015/08/18(火) 11:27:12.95ID:1sNyIVHN0795デフォルトの名無しさん
2015/08/18(火) 18:46:01.56ID:LAF+YM5Xいや教えてもらったことでできるよ
できてないのは教えてもらったとおりにやってないだけ
自分が手抜きして書いた文章で負担は回答者に来ることを忘れるな
0796デフォルトの名無しさん
2015/08/18(火) 19:02:01.11ID:aNFP607Gそれしかないかー
ありがとうございます。
0797デフォルトの名無しさん
2015/08/18(火) 19:42:34.63ID:61LHAw2c必死こいて考えてレスした人に失礼じゃないか
注文があるなら最初に「xx以外の方法で」って書いとけよ
0798デフォルトの名無しさん
2015/08/18(火) 20:33:40.72ID:0mjtCM8s0799デフォルトの名無しさん
2015/08/18(火) 21:05:13.78ID:aNFP607Gなんだかすいませんでした。
0800デフォルトの名無しさん
2015/08/18(火) 21:28:23.83ID:2sDrekuo0801デフォルトの名無しさん
2015/08/18(火) 23:34:56.09ID:yDieNvXTどう試したんだお前
from . import *で読み込むためには__all__がいるだろが
0802デフォルトの名無しさん
2015/08/18(火) 23:55:52.75ID:pEad/GRS手軽に偉くなった気になれるのでマジおすすめ
0803デフォルトの名無しさん
2015/08/19(水) 00:00:27.11ID:aTZq7rnWif
elif
elif
を使っているのを見ますが、実際には殆どの場合では
if
if
if
で事足りますよね?elifを使う事で何かいいことがあるんでしょうか?
0804デフォルトの名無しさん
2015/08/19(水) 00:15:08.96ID:xc/++r0f殆どの場合以外・・・ifで事足りない
単純明快
0805デフォルトの名無しさん
2015/08/19(水) 00:23:02.41ID:aTZq7rnWif int == 1:
elif int == 2:
elif int == 3:
って書いてるのは何ででしょうか?
0806デフォルトの名無しさん
2015/08/19(水) 00:23:30.33ID:WfM1PAPC0807デフォルトの名無しさん
2015/08/19(水) 00:36:57.15ID:G/CiAypHというよりifが並んだら重複して実行されうるものとして見える
だからそうでない限りはelifを使って、どっかで引っかかったらその後のelif節をパスする意図を明確にする
0808デフォルトの名無しさん
2015/08/19(水) 00:47:29.32ID:BLCCc3GJんでn=1,2,3で処理を振り分けるのもひとかたまりの処理だろ
わざわざ独立したifブロックを複数たてる必要がないべ
意図がわかりづらいコードはあとから読み直すの大変だぞ
0809デフォルトの名無しさん
2015/08/19(水) 03:02:58.44ID:1cIU6vdwelifを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:MH7WCZSEelifをどんどんつなげていくと、下に行くにつれ息が苦しくなってくる
0811デフォルトの名無しさん
2015/08/19(水) 07:39:56.25ID:2JD/ApDH0812デフォルトの名無しさん
2015/08/19(水) 07:54:26.07ID:hnj5IXaXCのswitchの仕様ならいらない
0813デフォルトの名無しさん
2015/08/19(水) 07:57:40.59ID:hnj5IXaXすばらしい洞察
0814デフォルトの名無しさん
2015/08/19(水) 08:34:03.16ID:zU2KMJnxCのswitchを知らないんだけど、vbaはswitchは仕様もクソもifを見やすくしただけだね。
Aという変数が
条件○
条件△
条件□
どれでもないとき
これ以外のswitchってどんなやろ?
0815デフォルトの名無しさん
2015/08/19(水) 09:45:17.12ID:MH7WCZSEbreakの書き忘れがバグの元になるから
Pythonはswitch系の構文を採用しなかったと聞いたことがある
その思想には産道できるんだが、やっぱりif文が長いと呼吸が…
こういう基本構文をPythonに独自に付け加えるのって難しいのかな?
0816デフォルトの名無しさん
2015/08/19(水) 09:49:40.96ID:CQPQ0YpIいらねえよバカ
0817デフォルトの名無しさん
2015/08/19(水) 12:25:13.17ID:fKGepA2j例えば、__eq__を実装したクラスの場合とか。
既に超初心者の範囲の話題ではないが。
0818デフォルトの名無しさん
2015/08/19(水) 12:33:01.34ID:/st2usUG「だらだら長い分岐を書きたくなったら、テーブルとかポリモーフィズム使う事考えろよな!」
という、お前らへのメッセージやで割とマジで
0819デフォルトの名無しさん
2015/08/19(水) 12:54:27.69ID:zU2KMJnxとまぁこういうこと考える機会になるから、くだすれ向けの話題やろ
switchはswitchの良さがあるけどな
オムロンとか未だにswitchで大きな益をだしとるし
0820デフォルトの名無しさん
2015/08/19(水) 13:31:02.10ID:1cIU6vdwresult = 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実際にやってみろよバカ
0822デフォルトの名無しさん
2015/08/19(水) 16:48:39.32ID:BLCCc3GJ__init__.py
from . import *
hoge.py
print("hogehoge")
でimport testdirしても何も出力されない
__init__.pyに__all__ = ["hoge"]指定するとhogehogeって出る
0823デフォルトの名無しさん
2015/08/19(水) 17:28:30.29ID:/k7NGekj0824デフォルトの名無しさん
2015/08/19(水) 17:59:19.82ID:hnj5IXaX在るだけで良い
0825デフォルトの名無しさん
2015/08/19(水) 18:04:59.57ID:/k7NGekj大本の質問はパッケージ読み込みと同時にサブモジュールを一括ロードしたいって話らしいので
0826デフォルトの名無しさん
2015/08/19(水) 20:08:53.14ID:kk+zL38Mforループを回してプログラムに読み込ませるのさえめんどくさい方法って言ってるので
0827デフォルトの名無しさん
2015/08/19(水) 20:29:27.08ID:b9NBarYKありがとうございます。
0828デフォルトの名無しさん
2015/08/19(水) 20:41:39.12ID:/k7NGekjfrom unko import chinco とかでも一々unko.__init__が反応するから激しく勧めないけどね
それより__all__無しでfrom . import *できたとかいう心霊現象はどうなったのかなーと
0829デフォルトの名無しさん
2015/08/20(木) 00:21:02.25ID:I3VPAzEasys.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:PhWv3bmG0831デフォルトの名無しさん
2015/08/20(木) 00:48:12.96ID:sobFc7C1open()のキーワード引数にnewline='\r\n'を指定する
書き出すときに\nが\r\nに変換される
with open('output.txt', 'w', newline='\r\n') as file:
file.write('hello\n')
0832831
2015/08/20(木) 00:50:02.22ID:sobFc7C1newline='\n'で読み替えて欲しい
0833830
2015/08/20(木) 01:04:02.38ID:PhWv3bmGwith open('hoge.txt', 'wb') as f: f.write(b'\x0a')
0834デフォルトの名無しさん
2015/08/20(木) 10:39:06.57ID:pV6cw7bo0835デフォルトの名無しさん
2015/08/20(木) 12:25:16.58ID:WAF82kMO0836デフォルトの名無しさん
2015/08/20(木) 13:02:08.90ID:jAis7ACzimport 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ていうかvps前提ですよね
パッケージとかアップロードできるわけじゃないですもんね
ここの先輩方はwebにpythonを使ってますか?
0838デフォルトの名無しさん
2015/08/20(木) 23:12:48.33ID:YEEbYevP>pythonって無料で動かせる鯖ないですよね
あるよ
0839デフォルトの名無しさん
2015/08/20(木) 23:14:38.59ID:YEEbYevP>ここの先輩方はwebにpythonを使ってますか?
つかってる。でも無料のとこでは使ってない。
0840デフォルトの名無しさん
2015/08/20(木) 23:23:56.79ID:YEEbYevP>パッケージとかアップロードできるわけじゃないですもんね
できるよ
何をやりたいか書いたほうが言いと思う
0841デフォルトの名無しさん
2015/08/20(木) 23:27:49.83ID:vJWprlG5>ていうかvps前提ですよね
なんでそうなる。
ふつうのレンタルサーバで使ってるよ。
最初からPython入ってるけど、自分で使いたいバージョンとモジュールをインストールして使ってる。
0842デフォルトの名無しさん
2015/08/21(金) 00:54:55.47ID:YPq0HJeEAはBではないっていうのはどう書けばいいんですか?
0843デフォルトの名無しさん
2015/08/21(金) 00:56:22.34ID:egD41OrM0844デフォルトの名無しさん
2015/08/21(金) 00:57:56.37ID:cNm3l2b6言語が出てもいいと思う。
0845デフォルトの名無しさん
2015/08/21(金) 04:30:24.54ID:MTjZuMcu0846デフォルトの名無しさん
2015/08/21(金) 08:36:21.94ID:ewvWrXm9>>> True != False
True
>>> True != True
False
>>> True != None
True
>>> False != None
True
>>> False != False
False
0847デフォルトの名無しさん
2015/08/21(金) 08:42:24.19ID:HouD2Rdcジャバスクリプトがこんなんやったな。
0848デフォルトの名無しさん
2015/08/21(金) 08:44:29.55ID:ewvWrXm90849デフォルトの名無しさん
2015/08/21(金) 10:08:00.53ID:IT5UaqUyNoneと真偽値の比較を真偽値同士の比較と一緒に並べるのはどうかと思う
前者の組み合わせは 1 != "Hello" みたいに型が異なるものを比較してる
0850デフォルトの名無しさん
2015/08/21(金) 10:53:54.00ID:aXP8e9K+pygameを使い、同じ中心点で異なる半径の円の画像を生成してリストに入れ、時間をずらして表示するってのを考えているのですがどうでしょうか
0851デフォルトの名無しさん
2015/08/21(金) 11:16:34.63ID:ewvWrXm90852デフォルトの名無しさん
2015/08/21(金) 12:18:35.00ID:+b9Sq2ljPythonと関係ない
ゲーム制作スレで聞いてこい
0853829
2015/08/22(土) 00:06:34.80ID:daWP/VMl>>831さんの方法で期待通りに動作しました。
他の方のご回答も参考にさせていただきます。
ありがとうございました。
0854デフォルトの名無しさん
2015/08/22(土) 01:04:48.69ID:deKfbB8U0855デフォルトの名無しさん
2015/08/24(月) 07:13:51.83ID:xqAU88hl(2,X) (※Xは任意) のような要素のインデクスを返す簡潔な方法はなんでしょうか
上の例では1(=(2,4)のインデクス)が欲しいです
よろしくお願いいたします
0856デフォルトの名無しさん
2015/08/24(月) 07:27:59.75ID:Mj+ThXGYif l[0] == 2:
i #この変数iが欲しいインデックス
関数にするならreturn iで処理終了
しないならbreakでforを抜けないと続行しちゃってその例だと3になっちゃう
enumerateはfor内を何回ループしてるか変数iに入れ続けるもの
0857デフォルトの名無しさん
2015/08/24(月) 07:41:04.38ID:6mvTbcD8を実行して、一通り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:xqAU88hl0859デフォルトの名無しさん
2015/08/24(月) 09:34:40.43ID:m0N2dFlXなんで==で全て判定できるように作らなかったのか
False==0がTrueとかPHP並に気持ち悪いな
本当P言語はクソだな
0860デフォルトの名無しさん
2015/08/24(月) 09:50:11.43ID:t7k5wrbh0861デフォルトの名無しさん
2015/08/24(月) 16:56:39.48ID:kccymPODでもTypeError出すのも妥当だと思う
別の言語でfalse == 0がfalseなのは驚愕した
0862デフォルトの名無しさん
2015/08/24(月) 17:07:28.99ID:NZbDfDwI> 別の言語でfalse == 0がfalseなのは驚愕した
驚愕するほどのものかね?
本質的にfalseと0は別のものだろ。
C言語なんか、true == 3がfalseなんだぞ。
0863デフォルトの名無しさん
2015/08/24(月) 17:35:30.57ID:kccymPODtrueは1だろ、何言ってんだ(真顔)
C言語の仕様の良し悪しは何とも言えない
でもマジで初学がCだと真偽値は整数扱いになる
比較の演算結果からtrueは1、falseは0、嘘じゃないよ
0864デフォルトの名無しさん
2015/08/24(月) 18:07:18.58ID:NZbDfDwI3がtrueじゃないのに、
真とかおかしいだろ。
0865デフォルトの名無しさん
2015/08/24(月) 18:17:42.39ID:zrEdzFeoint 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 != false) ← 結構ある
if(a == false) ← 結構ある
じゃあ、falseの反対は・・・? trueだ!
if(a == true)
なんで動かないんだよ。バンッ!
0867デフォルトの名無しさん
2015/08/24(月) 18:32:22.30ID:zrEdzFeo0868デフォルトの名無しさん
2015/08/24(月) 18:38:54.04ID:NZbDfDwI別の言語でtrue == 3がfalseなのは驚愕した
っていうだろうなって話をしてるんだよ。
0869デフォルトの名無しさん
2015/08/24(月) 18:49:39.15ID:CmRZDEoS0870デフォルトの名無しさん
2015/08/24(月) 19:18:00.61ID:tH5OuHw3自分は業務の障害対処に自作スクリプトを使った時、Noneとの比較をミスって
二重障害を起こしてしまったことがある
0871デフォルトの名無しさん
2015/08/24(月) 19:24:28.72ID:CmRZDEoS肥溜めにでも埋まってろ
0872デフォルトの名無しさん
2015/08/24(月) 19:36:39.85ID:zrEdzFeox True/False/Noneはマジで恐いから使うのを避けた方がいい
o == はマジで恐いから is を使った方がいい
0873デフォルトの名無しさん
2015/08/24(月) 20:03:14.24ID:CzPwxFH3>>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:kccymPODC言語のifやwhileなどの構文では0か否かで分岐している
それを利用して比較演算を省略するイディオムがある
Pythonにもこのイディオムが取り入れられている
0875デフォルトの名無しさん
2015/08/24(月) 20:53:20.82ID:SKpW1Nacそういう質問じゃなかったと思う
最初の質問を読み直した方がいいんじゃないか
0876デフォルトの名無しさん
2015/08/24(月) 21:15:50.90ID:CzPwxFH3>>855に対する模範解答は>>873以外にありますか?
ないなら黙っていて下さい。
0877デフォルトの名無しさん
2015/08/24(月) 21:23:32.34ID:rfufUizD(2,X) (※Xは任意) のような要素のインデクスを返す簡潔な方法はなんでしょうか
と書かれているが?
0878デフォルトの名無しさん
2015/08/24(月) 21:31:11.15ID:kccymPOD任意の値を指定できる回答
>>> 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:CzPwxFH3a.index((2,X))
でいいでしょ?
重要なのは、
a.index()
を答える事なので。
list.index((2, X))の、
Xを変数とするか4を書くかは重要じゃないです。
>>857でdocumentまで指定しているでしょ?
>>878
そんな書き方も出来るんですね。
0880デフォルトの名無しさん
2015/08/24(月) 23:31:55.53ID:zakjp7f4どうしたら引き算できますか?
a = [
{"age": 10},
{"age": 20},
]
b = [
{"age": 20},
]
print(set(a) - set(b))
0881デフォルトの名無しさん
2015/08/24(月) 23:44:28.66ID:HMCHLPlUハッシュ化可能なオブジェクトにすればできます
>>> a = [
("age", 10),
("age", 20)
]
>>> b = [
("age", 20)
]
>>>
>>> set(a) - set(b)
{('age', 10)}
0882デフォルトの名無しさん
2015/08/24(月) 23:55:01.36ID:tH5OuHw3この質問者が>>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>>> next(itertools.ifilter(lambda (idx, elem): elem[0]==2, enumerate(a)), (None,))[0]
1
0884デフォルトの名無しさん
2015/08/25(火) 00:32:09.48ID:nd6cZevZあとlambdaとかリスト内包使うと初心者は動作が全く理解できなさそう
最初はループと条件分岐主体がいいと思うな
ちょっとコード長くなっても可読性高いので
0885デフォルトの名無しさん
2015/08/25(火) 00:43:31.95ID:pfa9oRBxこれって、初心者を馬鹿にしてるよねw
お前、これらを理解するのに
どんだけ時間かかったの?
数日も数週間もかかったのか?
単に知らないだけなのに、
初心者と馬鹿にするのはやめてもらいたい。
0886デフォルトの名無しさん
2015/08/25(火) 00:54:29.05ID:pfa9oRBx考え方をやめてくんない?
そもそも「知らない文法」というのはだいたいが
可読性を高くするために作られたものなんだからさ。
例えば、球の表面積を求める式は
4πr^2 って言われてすぐに分かるだろう?
可読性高いからな。
でも知識がない小学生にはわからない。
だからといって公式は可読性低いってことになるか?
ようするに知らない人が読めないことを「可読性が低い」と
言ってはだめなんだよ。
0887デフォルトの名無しさん
2015/08/25(火) 01:14:26.12ID:zenTVy2g0888デフォルトの名無しさん
2015/08/25(火) 07:50:03.80ID:Po+lTyIJ>例えば、球の表面積を求める式は
>4πr^2 って言われてすぐに分かるだろう?
>可読性高いからな。
暗記してるからね
よんぱいあーるにじょう
でもすぐ分かるけど可読性高いとは言わないよね
0889デフォルトの名無しさん
2015/08/25(火) 19:23:33.68ID:pfa9oRBx> 暗記してるからね
可読性が高いコード = 暗記した知識ですぐに理解できるコード
でもあるんだが。
極端な話をすれば、全てを暗記してしまえばどんなものでも
可読性は高いと思える。だけど、それは無理。
だから少ない暗記量で多くに対応できる汎用的な知識というのが重要になる。
だから自社専用ライブラリとかオレオレライブラリはやめろ。言語の構文を覚えろ。
より汎用的なライブラリ、広く知られたライブラリを使えって話にもつながる。
> よんぱいあーるにじょう
> でもすぐ分かるけど可読性高いとは言わないよね
当たり前じゃね? 可読性っていうのは
そういう風に、書き方の問題でもあるだから。
句読点がない文章が読みにくいのも同じ。
まとめると(構文などを)知っている・暗記しているかどうかで
変わるようなものは可読性とは関係ない。
可読性とは知識が有る人が読みやすいかどうかで判断するもの。
「俺(や他の人)が知らないから可読性が低い」という言い方は間違いなんだよ。
0890デフォルトの名無しさん
2015/08/25(火) 19:35:06.88ID:yb6n8Wdy0891デフォルトの名無しさん
2015/08/25(火) 20:15:07.59ID:pfa9oRBx0892デフォルトの名無しさん
2015/08/25(火) 21:11:14.02ID:T/PhJBrK> 可読性が高いコード = 暗記した知識ですぐに理解できるコード
> でもあるんだが。
> まとめると(構文などを)知っている・暗記しているかどうかで
> 変わるようなものは可読性とは関係ない。
なんでやw
0893デフォルトの名無しさん
2015/08/26(水) 01:51:19.67ID:pnXHZpepこういう奴たいていの職場に一人は居るよなあ
0894デフォルトの名無しさん
2015/08/26(水) 03:45:42.10ID:ftsbhcOcpyqt5のビルド長くて退屈なんです…
0895デフォルトの名無しさん
2015/08/26(水) 06:22:23.48ID:nL2sda9Wでも長文ってだけで間違ったことは言ってないよな?
いや、なにか言い返すならいいんだけどさ。
長文だー、長文だーって喚いてるだけ。
0896デフォルトの名無しさん
2015/08/26(水) 07:40:00.49ID:pnXHZpep結局のところ初心者目線で見る想像力が無くて、ただ自分の目線の世界でだらだらと語るしかない典型的ダメおっさんPG
つーかもしかしたら ID:CzPwxFH3= ID:pfa9oRBxなのかな
糞の役にも立たない回答を失笑されてカチンと来ちゃったのかね
0897デフォルトの名無しさん
2015/08/26(水) 07:43:24.37ID:0fCLXGvhC#相談室が一番酷いかな
初心者スレと逆転してる
0898デフォルトの名無しさん
2015/08/26(水) 09:37:32.17ID:nL2sda9Wあいつまじめに勉強てるぜwwwとか
やってることが不良高校生と同じだぞ。
0899デフォルトの名無しさん
2015/08/26(水) 10:49:31.71ID:ElP7lUPJJR新小岩駅に行け
そして二度とここに来るな
0900デフォルトの名無しさん
2015/08/26(水) 11:57:36.30ID:AtwE5MzMhttp://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:sdlDeysq0902デフォルトの名無しさん
2015/08/26(水) 12:58:53.97ID:ZW9B1mjA0903デフォルトの名無しさん
2015/08/26(水) 13:38:26.33ID:ftsbhcOcみんなguiアプリ作るとき何使ってる?
俺はpysideでqt使ってるんだけど、最近kivyも気になってる
0904デフォルトの名無しさん
2015/08/26(水) 13:49:01.19ID:zJ272Tt+どんなくだらない雑談はいらねえよカス
0905デフォルトの名無しさん
2015/08/26(水) 15:53:28.27ID:nL2sda9Wなんでそうかっかしてんの?
俺がいるとお前困るの?w
じゃぁいかなーい(笑)
0906デフォルトの名無しさん
2015/08/26(水) 16:39:45.88ID:ElP7lUPJ0907デフォルトの名無しさん
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:ronbLnf10910デフォルトの名無しさん
2015/08/26(水) 23:06:30.71ID:xqVlAmo6私はHTML+CSS+JavaScriptですね。つまり
Webアプリケーションとして実装してます。
PySideはこの6月ぐらいに開発版のバージョンが2.0になって、
QT5対応に必要ないくつかの変更もされたとか。
QT4のサポートが今年の12月で終わるらしいので、
それまでにリリースされるといいですね。
0911デフォルトの名無しさん
2015/08/27(木) 01:55:39.07ID:uBflNsZt0912デフォルトの名無しさん
2015/08/27(木) 05:57:56.65ID:ZEsVN2Rf挫折するポイントが不明。
そんなのあったっけ?
0913デフォルトの名無しさん
2015/08/27(木) 08:09:30.23ID:Sd5tuK/H(この夏にプログラマLV2になった奴が語っちゃってるだけ)
気にせず話せ
0914デフォルトの名無しさん
2015/08/27(木) 11:01:44.03ID:kP+pCLjha[0]でも例外だし
0915デフォルトの名無しさん
2015/08/27(木) 12:24:44.89ID:3PV9QFs8俺の環境だとa[0]でちゃんと値を取り出せてるよ
例外の内容を正確に書いて再質問すると良いでしょう
0916デフォルトの名無しさん
2015/08/27(木) 12:28:46.11ID:lwpAfeUcやればできるじゃないか
0917デフォルトの名無しさん
2015/08/28(金) 22:22:07.50ID:Idwzm7eN教えてください
0918デフォルトの名無しさん
2015/08/28(金) 22:30:00.43ID:La0rg2tqprint ord(msvcrt.getch())
0919デフォルトの名無しさん
2015/08/28(金) 22:33:31.92ID:Idwzm7eN0920デフォルトの名無しさん
2015/08/28(金) 22:47:07.77ID:Idwzm7eN0921デフォルトの名無しさん
2015/08/29(土) 01:25:13.74ID:kSQTrkNzこれ結果がおかしくなるのはなぜですか?
どうやって正しく計算結果を出せますか?
0922デフォルトの名無しさん
2015/08/29(土) 03:13:58.44ID:AYSgSWUX0923デフォルトの名無しさん
2015/08/29(土) 03:18:18.98ID:nAsI3V8f0924デフォルトの名無しさん
2015/08/29(土) 08:25:37.47ID:TDTn35wRコンソールで普通に動きました
0925デフォルトの名無しさん
2015/08/29(土) 11:45:17.59ID:D9jd66uEためせばわかるだろ
0926デフォルトの名無しさん
2015/08/29(土) 12:32:26.05ID:TDTn35wRprint ord(msvcrt.getch())
をGUIで実行すると未入力状態で255が返って出力されます。
コンソールでの実行では未入力では何も出力されません
この原因はなんでしょうか
0927デフォルトの名無しさん
2015/08/29(土) 12:33:28.57ID:TDTn35wR0928デフォルトの名無しさん
2015/08/29(土) 12:45:19.79ID:xMZWPx0m0929デフォルトの名無しさん
2015/08/29(土) 12:53:30.11ID:gmx5ty9e標準入出力を使うプログラムはまともに動作しない
928が言っているAllocConsoleで標準入出力を新たにアタッチするか
別プロセスから起動してパイプを与えることで利用可能になる
0930デフォルトの名無しさん
2015/08/29(土) 13:09:28.88ID:TDTn35wRC++の話ですか?allocconsoleを糸口に調べてみます。
0931デフォルトの名無しさん
2015/08/29(土) 13:18:47.00ID:gmx5ty9e聞いている限りではmsvcrt.getchを動作させることは過程でしかないんでしょ
最終的に欲しい結果をもっと簡単に得る方法はあるかもしれませんよ
無いかもしれませんが
0932デフォルトの名無しさん
2015/08/29(土) 13:43:58.41ID:TDTn35wR拡張機能のミドルウェアとしてpython2が使用できます。
その中でキー入力を得たいので探しています。
文字列よりもホットキー的なもので使います。
linuxの場合はttyを使わないといけないのかもしれません。
まだ調べていません。
実際にKODIで実験しても同じ状態になりましたので、同様の問題があると思われます。
モジュールは読み込めたので使えることは使えると思います。
0933デフォルトの名無しさん
2015/08/29(土) 17:17:41.41ID:TDTn35wR0934デフォルトの名無しさん
2015/08/29(土) 17:51:47.15ID:TDTn35wR無理に標準入力にこだわる必要もないので
0935デフォルトの名無しさん
2015/08/29(土) 17:55:11.32ID:Xtar3XImsys.stdin.read()
fgets(stdin, ss, 80 - 1);
知らないとか?
0936デフォルトの名無しさん
2015/08/29(土) 18:09:57.30ID:vY8VctDzそれはエンター押さなければ
ならないのでは?
0937デフォルトの名無しさん
2015/08/29(土) 18:58:31.84ID:xMZWPx0m0938デフォルトの名無しさん
2015/08/29(土) 19:56:04.67ID:jCAQiE2w0939デフォルトの名無しさん
2015/08/29(土) 21:14:43.47ID:Ld2l5eLL0940デフォルトの名無しさん
2015/08/29(土) 22:20:34.52ID:GZ09Elz0http://docs.python.jp/3/library/urllib.request.html#module-urllib.request
>任意の引数 timeout は、接続開始などのブロックする操作におけるタイムアウト時間を秒数で指定します (指定されなかった場合、グローバルのデフォルトタイムアウト時間が利用されます)
ってありますがこのグローバルのデフォルトタイムアウト時間ってどうやって設定したり取得できますか?
0941デフォルトの名無しさん
2015/08/29(土) 23:04:07.87ID:ucYXOKxrもっと低層のタイムアウトを使うようになっとる
>ってありますがこのグローバルのデフォルトタイムアウト時間ってどうやって設定したり取得できますか?
グローバルのデフォルトタイムアウト時間よりも、
http://docs.python.jp/3/library/urllib.request.html#urllib.request.urlopen
のタイムアウト時間を指定したほうがいいと思う
0942デフォルトの名無しさん
2015/08/30(日) 06:13:26.33ID:tJkk5ci/>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:6hA230oM0944デフォルトの名無しさん
2015/08/30(日) 09:46:10.04ID:xQDvWigH0945デフォルトの名無しさん
2015/08/30(日) 10:36:20.34ID:sqP4vjJl使わなければ動作しないものではありませんから
0946名無しさん
2015/08/30(日) 11:21:30.28ID:xQDvWigH0947デフォルトの名無しさん
2015/08/30(日) 14:12:17.79ID:sqP4vjJl再現方法すら提示されないのにどうしろと言うんです
pythonのバージョンやpy2exeのバージョンも分からない状態で
入手可能な組み合わせ、考え得るあらゆるコード全てで試すんでしょうか?
あなたはそれが現実的だと少しでも思いますか?
自分の個人的な見解としては、最小のコードで動作した時点で
間違ったコードを書いていないというあなたの見解が間違っていると判断を下しました
http://pastebin.com/E4FYQpU5
その時点でやる気がなくなりました
0948名無しさん
2015/08/30(日) 14:29:01.69ID:xQDvWigHちなみにpyinstallerでは問題なく動作
現象としては、コードミスによるエラーじゃなく、起動してimportまでできているみたいだけどurllib.urlretriexeの部分にさしかかると ~は動作が停止しましたと出る感じ
#-------------------
import urllib
urllib.urlretrieve('http://www.google.com', 'google.html')
0949名無しさん
2015/08/30(日) 14:32:27.56ID:xQDvWigHあ、あと外部モジュールとかはpy2exeくらいしか入れてない、Python27フォルダ内のファイル変更,移動,削除とかも一切してない
0950デフォルトの名無しさん
2015/08/30(日) 15:53:07.67ID:sqP4vjJl0951名無しさん
2015/08/30(日) 15:54:30.72ID:xQDvWigH0952デフォルトの名無しさん
2015/08/30(日) 16:09:00.82ID:tJkk5ci/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:xA3qmXiadef monitor():
global b
こう書かないとbが消えちゃいますね
0955デフォルトの名無しさん
2015/08/30(日) 18:59:16.66ID:gWgp6/6gWin10 Pro x64、Python2.7.9 x86、py2exe 0.6.9で>>947のスクリプト試したけどちゃんと動いたよ
0956デフォルトの名無しさん
2015/08/30(日) 19:02:00.23ID:T6IhtZv4シンタックス上何か文を置かないわけにはいかないけど
何もする必要がないときは普通pass文を使うよ
http://docs.python.jp/3/reference/simple_stmts.html#the-pass-statement
でもプログラムの設計としてあなたコードが妥当かどうかは
具体的にどういう処理をしているのかがわからないのでなんとも
0957デフォルトの名無しさん
2015/08/30(日) 19:10:33.80ID:xA3qmXiaありがとうございます!本当に何もしないためだけの文があったとは
目的はクリップボードの監視で一つ前のデータを保存したかっただけです
0958デフォルトの名無しさん
2015/08/30(日) 19:23:28.04ID:T6IhtZv4クリップボードが変更されたときだけ保存するってことだね
NameErrorはどこで発生する例外で何で無視してもいいの?
0959デフォルトの名無しさん
2015/08/30(日) 19:29:31.90ID:xA3qmXia初回の呼び出しでは保存用変数が空なために
if文で評価するときに未定義のエラーが出るのでその対策としてのつもりです
検索したら出てきた方法なので
0960デフォルトの名無しさん
2015/08/30(日) 20:03:55.34ID:T6IhtZv4そういう用途なら例外をpassでスルーする形で妥当かな
空文字かNoneで初期化しとくのじゃダメなんかなともちょっと思ったけど
クリップボード周りの実装はしたことないので頓珍漢なこと言ってるかも
0961デフォルトの名無しさん
2015/08/30(日) 20:17:13.79ID:xA3qmXiaあ、うっかりしてました
>>954みたいにグローバル変数を使うなら例外処理もいらなくなりますね
ともかく目的が果たせて満足です。親身にご指導いただきありがとうございました!
0962デフォルトの名無しさん
2015/08/30(日) 23:31:40.78ID:lCIF9vL7GNU系は、Win7 Pro x64 を使うのが定番だが、
ほほう、Win10 Pro x64 でも動きますたか?
0963デフォルトの名無しさん
2015/08/31(月) 20:35:49.34ID:bggRqSurという関数を呼び出すときにarg2だけ省略することってできますか?
0964デフォルトの名無しさん
2015/08/31(月) 20:43:07.51ID:1sJZNQ4o前優先なので、
引数の順序を入れ替えて下さい
foo(arg1, arg3, arg2=None)
とかにして下さい
0965デフォルトの名無しさん
2015/08/31(月) 20:52:04.61ID:bggRqSur分かりました。ありがとうございました
0966デフォルトの名無しさん
2015/08/31(月) 22:53:28.94ID:5tXTMn4R#どうでもいいけど関数宣言の方はparameterじゃ
0967デフォルトの名無しさん
2015/09/01(火) 02:21:11.52ID:sXfua+XAarg2 = kwargs.get('arg2', defaultvalue)
arg3 = kwargs['arg3']
0968デフォルトの名無しさん
2015/09/03(木) 11:21:42.13ID:BG3f8u9ohttp://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/eL7q0970デフォルトの名無しさん
2015/09/03(木) 14:35:21.80ID:twsT9voz0971デフォルトの名無しさん
2015/09/03(木) 15:36:46.15ID:KQppFRcC"{0:.2f}".format(1)
0972デフォルトの名無しさん
2015/09/03(木) 19:22:37.06ID:MJyzegUy0973デフォルトの名無しさん
2015/09/03(木) 20:40:51.42ID:26WurM6Vtitle = 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 = '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> 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ご回答有り難うございます。
>titleがshift_jisでエンコードされたbytesと仮定して答えます
申し訳御座いません。データ型の情報が不足しておりました。
type(title)の出力結果は、<class 'str'>です。
0978デフォルトの名無しさん
2015/09/03(木) 21:31:53.74ID:ACT9XNdq0979デフォルトの名無しさん
2015/09/03(木) 21:33:09.40ID:twsT9vozうん、だから、
> type(title)の出力結果は、<class 'str'>
の時点で誤りだよね。
>>976をもう一度読んで。特に、
> Webサイトが送ってくるページタイトルはsjisでしょ?
を百回音読して。
0980デフォルトの名無しさん
2015/09/03(木) 21:44:17.93ID:26WurM6V回答有り難うございます。
> 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>> んー、バカなので難しいですな。。
に、むかついたから、もう教えてやんない
馬鹿な>>977には無理だから諦めろ
0982デフォルトの名無しさん
2015/09/03(木) 22:19:08.88ID:Hq1TyWtWもしかして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まず根本的に、特定文字コードの文書は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仰るとおりWindows版インストーラーで導入したPythonを使っています。
cp932で無いと文字化けするのはminttyの仕様だったのですね。納得しました。
>>983
Selenium+BeautifulSoupでスクレイピングを試しているところでした。
>>984
>特定文字コードの文書はbytesであり、デコードするとstr(unicode≠UTF)になります
デコード済みの内容をエンコードしてから再びデコードするという意味無い事してたのか・・・。
分かりやすい解説、その他サンプルの提示ありがとうございます!後ほど試してみたいと思います。
文字コードの理解が浅くターミナルが原因だという事まで考えに及びませんでした。
ご回答下さった皆様ありがとうございましたm(__)m
0986デフォルトの名無しさん
2015/09/04(金) 04:06:01.59ID:x7fRT8f0これだな
他の香具師は的外れ
>>985
違うよ
考え直せ
0987デフォルトの名無しさん
2015/09/04(金) 07:08:04.13ID:6Gds/3zThttp://peace.2ch.net/test/read.cgi/tech/1441317912/
0988デフォルトの名無しさん
2015/09/04(金) 10:24:20.27ID:efXmgHpK0989デフォルトの名無しさん
2015/09/04(金) 11:30:39.46ID:efXmgHpK>type(title)の出力結果は、<class 'str'>です。
↓を読んだ上で↑の返事はさすがに無いわ
>>976
>なので、Webサイトから取得する文字列はsjisなんだから、
>titleをbytesとして受け取らないといけない。
0990デフォルトの名無しさん
2015/09/04(金) 17:37:20.44ID:HNXLj6zd0991デフォルトの名無しさん
2015/09/04(金) 19:25:26.13ID:Z77fhgK9> んー、バカなので難しいですな。。
と書いて、自分の頭が悪いのを盾にして、
人の書き込みを読まないから、さすがに怒ったの
初心者いじめたかったら、そもそも何も教えてない
0992デフォルトの名無しさん
2015/09/04(金) 20:27:20.03ID:F3w9cE+J0993デフォルトの名無しさん
2015/09/04(金) 20:44:09.48ID:EI4y/sV7>>980のレスのおかげでWindows版を使ってることを推測できた
つまり一連のやりとりは十分な情報を引き出せた
0994デフォルトの名無しさん
2015/09/04(金) 21:28:58.95ID:B3/17KX+0995デフォルトの名無しさん
2015/09/04(金) 21:35:03.89ID:Z77fhgK9ちょっと改変するけど、
>>989の
>>976
>なので、Webサイトから取得する文字列はsjisなんだから、
>titleをbytesとして受け取らないといけない。
↑を読んだ上で↓の返事はさすがに無いわ
>>977
>type(title)の出力結果は、<class 'str'>です。
0996デフォルトの名無しさん
2015/09/04(金) 23:58:33.05ID:x7fRT8f0そいつが browser.title を str に変換するときに間違ったエンコードでデコードして文字化けしたんだろう
既に壊れたデータをエンコードしても手遅れ
決してターミナルのせいではない
0997デフォルトの名無しさん
2015/09/05(土) 01:43:35.09ID:jZ9K/01bTeraPad など、日本人の作ったエディタでは、
簡単に文字コードが変更できるので、
文字化けは起こらない
端末などは外人が作っているため、
日本語などはほったらかし
0998デフォルトの名無しさん
2015/09/05(土) 02:12:09.52ID:ZKXW4+L0話を聞いていないのではなく、理解できていないだけだろう
sjisだからbytesとして受け取らないといけないって説明も
初心者向けじゃないと思うし
0999デフォルトの名無しさん
2015/09/05(土) 02:27:54.77ID:xb8mS1yp1000デフォルトの名無しさん
2015/09/05(土) 02:29:02.99ID:jZwyv5P210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。