くだすれPython(超初心者用) その26at TECH
くだすれPython(超初心者用) その26 - 暇つぶし2ch50:デフォルトの名無しさん
15/05/26 21:38:59.86 kkyk1kjT.net
print(1.j)
このjってなんですか?

51:デフォルトの名無しさん
15/05/26 21:46:32.51 oqPKm2sI.net
>>44
全く同じ事を今日やってた 45さんの言う通り逆参照の辞書持つのが一番楽かなと
{}
ただちょっとよくわからないのがそのリストのデータ構造は現実のリストなの?
もし本当にこんなリストだとしてキーの値に重複が無いのなら、
リストを作る時に最初(つまりmylist[0])はNone、値1のものはmylist[1]、
仮にnum:4が無いならmylist[4]=Noneとやっていけば、num=1000はmylist[1000]と保証される
これなら一つのリストで一応管理できる

52:デフォルトの名無しさん
15/05/26 21:56:36.25 oqPKm2sI.net
>>47
確かに一見それで良さそうだけど、それでいけるならそもそも要素をmylistから持って来る必要が無いんじゃないのかな
だってもう手元に{'num':2}ってあるわけだし
お風呂上がりに眼鏡が見つからない何も見えないって言いながら眼鏡かけて眼鏡探してる感じがする
>>48
URLリンク(qiita.com)
print(type(1.j))とやると<class 'complex'>ってなるから複素数らしい
虚部のところにjをつけてやるんだってさ
はじめて知った

53:デフォルトの名無しさん
15/05/26 22:49:00.53 HsCFsvXb.net
みなさんどうもありがとうございます
44です
先に挙げたリストは説明のために極力簡略化したものです
実際はキーに対する値は数値ではあるものの連番ではなく
またリストに追加される順序も不定です
ただし一意であることは保証されています
また実際はこのキー以外にも複数のキーを持っています
このnumキーがリレーショナルデータベースにおける主キーに相当するため
このキーの値でスマートに要素を取り出せたらなと思い質問させていただきました
逆参照mapというのがどのようなものか私にはわからないのですが
ここの例で言うとnumキーの値を辞書のキーにして
その値にリストの該当要素への参照を対応させたものでしょうか
順序は問題にならないのでリストではなく辞書の辞書にすることも考えたのですが
必要であればどのキーを使ってでもすぐにfor ループが回せるという
分かりやすさも捨て難い気がして躊躇していました
48さんのおっしゃる最初からキーの値に対応したインデックスの箇所に収納する方法も確かにありますね
逆参照mapを作る方法と合わせて検討してみたいと思います

54:デフォルトの名無しさん
15/05/26 23:21:56.28 BsJ/nx2f.net
>>50
値じゃなくて、リストのその部分を編集するための参照が欲しいのかなと思ったんです・・・
自分で構造を決められるなら、こんなじゃだめなのでしょうか?
data = {
str(numの値): {他データ},
str(numの値): {他データ},
,
,
,
}
128番の情報が欲しい! → data[str(128)]  みたいな感じで

55:デフォルトの名無しさん
15/05/27 01:16:34.91 gIxiSbR2.net
>>52
それもいいですね
ありがとうございます
ただ今回はリストのフラットなデータ構造のままで
それと同じことが分かりやすくできる方法があればと思い質問させていただきました

56:デフォルトの名無しさん
15/05/27 17:56:08.90 4cyo14pp.net
>>52
余計なことしてたので訂正です
辞書はキーに数字をそのまま使えました・・・
data = {1 : "value1", 2 : "value2", 3 : "value3"}
for key in data:
print key,
>>
1, 2, 3

57:デフォルトの名無しさん
15/05/28 15:38:42.64 +K9YB3fm.net
FacebookのRSSのタイトルを文字化けしないように変換したいのですが
&#xXXXX;を文字に変換するにはどうすればいいのでしょうか
import feedparser, urllib.parse
rssurl="URLリンク(www.facebook.com)
fdp = feedparser.parse(rssurl)
for entry in fdp['entries']:
title = entry['title']
link = entry['link']
print(title, link)

58:デフォルトの名無しさん
15/05/28 23:55:25.53 PkH09g+t.net
>>55
import html
html.unescape(title)

59:デフォルトの名無しさん
15/05/29 10:58:53.01 qxRvZ9TX.net
>>56
ありがとうございます。
変換することができました。

60:デフォルトの名無しさん
15/05/29 11:08:33.75 RwL0vTGq.net
3.5から.pycからSTORE_MAPが削除されるとかあったけど
これって3.0〜3.4で作成された.pycを削除してから3.5の環境でスクリプトを実行して.pycを生成し直さないとトラブルになるってことですか?

61:デフォルトの名無しさん
15/05/29 13:24:15.16 98Ume5mp.net
最近リストの内包が書けるようになってきてコードが綺麗になって楽しいです
dictも同様にできるようなんですが、
text = t for t in [a,b,c,d] #a , b , c , dに入ってる文字列を繋いでtextに
setattr(self , k , v) for k , v in dict.values() #selfのプロパティをdictから作る
なんてできたらいいなあと思ってるんですがさすがに無理なのでしょうか

62:デフォルトの名無しさん
15/05/29 13:25:29.87 ENr5sicU.net
>>58
.pycってhoge.cpython-34.pycって感じでPythonのバージョンごとに
作られるから削除の必要はない

63:デフォルトの名無しさん
15/05/29 13:40:11.39 g6jbltjH.net
>>59
1つ目はstr.join()
2つ目はself.__dict__.update()

64:デフォルトの名無しさん
15/05/30 03:08:46.90 rJ1AgvvX.net
class、並びにオブジェクトの表現方法について質問させてください。
「文」とそれを構成する「単語」の関係をclass化したいです。
文はそれぞれの単語を「持って」おり、また全ての単語は必ず文に「属し」ます。
(質問1) 以下のようにSentenceの中の配列にWordを入れることで表現していますが、どうでしょうか?
class Sentence():
 self.words = [Word,Word,Word…] #ここにWordオブジェクトを入れていく
class Word():
 self.sentence = Sentence #ここに自分が所属するSentenceオブジェクトを入れておく
例えば野菜->タマネギのような関係なら継承を使ったりするのでしょうが、文と単語の関係でそれは使えないと思います。
何かうまい表現方法がありますでしょうか。
(質問2)
WordオブジェクトがどのSentenceに属しているか、という情報をWordクラスにうまく持たせる方法は無いでしょうか?
今はself.sentenceというところにSentenceオブジェクトを入れていますが、なんかスマートじゃ無い気がします。
classを最近ようやく理解したばかりなのでこういう使い方でいいのかどうか悩んでます。
本やネットを読んでもたいていは果物->りんご、のような関係で継承を説明してるのであまり参考になりません。
継承ではなく、上位の概念が下位の概念を「持っている」という関係をどう表せばいいでしょうか。
長くてすみません。

65:デフォルトの名無しさん
15/05/30 07:38:13.51 Lk3iv4vp.net
>>62の文と単語の関係はWordが必ずSentenceに属する必要性に疑問を感じます
質問1は複数あるWordの順序を保持する必要からlistを使うのは妥当だと思います
質問2はSentenceの情報はWordに持たせなくていいと考えてます

66:デフォルトの名無しさん
15/05/30 15:52:41.19 rJ1AgvvX.net
>>63
ありがとうございます
もしWordがSentenceの情報を持たない場合、
Word自身からではどのSentenceに属してるかわからなくなってしまいます
Sentence<--どちらも相手を参照できる-->Word
という関係性は必ず維持しなければならないという前提でアドバイスいただけるとありがたいです

67:デフォルトの名無しさん
15/05/30 20:44:32.94 lFJ1sGxF.net
ネット上からファイルをダウンロードする際に
そのファイルのサイズを調べて一定以上のサイズならダウンロードする
というようなプログラムが書きたいです。
ネット上のファイルサイズを取得する一番簡単な方法は何でしょうか?
urlretrieveでサイズを表示することはできたんですが上手く数字を拾えなくて・・・
なにか簡単な方法をご存知のかた、教えてください

68:デフォルトの名無しさん
15/05/30 21:24:25.22 zOKa2SxY.net
普通はHEADを打ってContent-Lengthを見るだろう
Pythonのurllib2はバカだから
get_methodオーバーライドしないとHEAD打てないけど
意味分からんよな
誰だよこれ設計した奴

69:デフォルトの名無しさん
15/05/30 22:06:26.17 Il/jbsrm.net
httplib2かurllib3かrequestsを標準にして欲しい
requestsはhigh layerすぎるからhttplib2かurllib3が妥当か

70:デフォルトの名無しさん
15/05/31 20:01:30.99 Yx/E9Xi4.net
質問です。
Numpyのarray形式なのですが、
printで表示すると、
内容が長い場合、...,で省略されてしまいます。
savetxtでTEXTで書き出す場合も同様です。
この省略をさせない方法はないのでしょうか?

71:デフォルトの名無しさん
2015/06/01


72:(月) 02:47:52.53 ID:29A8lhcJ.net



73:デフォルトの名無しさん
15/06/02 15:15:37.43 nhaEWMLQ.net
djangoの勉強を始めたのですが、pyファイルで作った連想配列(値に日本語を使用)をhtmlファイルの組み込み関数で受け取るところが上手く出来ません。
{% for val in list %}
{{val.key}}で値を取り出して処理
{% endfor %}
この書き方ならば文字化けすることもなく値を取り出して使える事はわかりましたが、ソースを表示した時に処理がループ分記述されて冗長になるのを避けたいです。
※scriptタグ内に記述
var list[] = {{list|safe}};
for( var i = 0; i < list.length" i++){
var.keyで値を取り出して処理
}
このようにすれば・・・?と思ったのですが、list[]に代入した時に日本語の値がバイト文字列?になってしまいます。
どのようにすれば良いのでしょうか?
宜しくお願い致します。

74:デフォルトの名無しさん
15/06/02 15:59:29.65 sxsqR351.net
なぜバージョンも示さないで質問するのか

75:69
15/06/02 17:30:52.40 44VEslIO.net
失礼致しました。
pythonは2.7.5、djangoは1.6.5でした。
よろしくお願い致します。

76:デフォルトの名無しさん
15/06/02 23:00:09.86 dwjHRJAm.net
djangoは専用スレがあるのでここでしないでもらいたい
今後同じことで悩んでいる人が情報を見つけやすくなるしdjangoスレにいって
スレリンク(php板)

77:デフォルトの名無しさん
15/06/03 00:45:17.77 SWrh59QF.net
>>70
文字列や数値ならJS側に直接渡せるけど、リストとか辞書は渡せない
なのでJSONにしてから渡す
その際にテンプレート側でsafeフィルタは切ること
今Django試せないので推測での回答ですまないけど参考になれば

78:ダメ五郎
15/06/03 23:50:02.93 zww4qzzD.net
Pythonスタートブックのメッソッドの初期化が全然分からないんですけど。
どうすればいいですか?死んだほうがいいですかね?
import random
class Dice:
a = 6
def __init__(self):
print('hello')
def shoot(self):
return andom.randint(1,self.a)
__init__すると何かいいことあるのでしょうか?

79:デフォルトの名無しさん
15/06/04 00:03:57.61 nTFCM4h6.net
その位置にa=6を書くとクラスのフィールドになるので
self.aじゃなくてDice.aで参照する
スタートブックに何が書いてあるのか非常に興味深いな…
新手のステマだろうか

80:ダメ五郎
15/06/04 00:07:15.15 bBf7LCLq.net
>>76
a=6は
class Dice:
a = 6
def __init__(self):
の位置にかいてありました。。

81:ダメ五郎
15/06/04 00:09:36.09 bBf7LCLq.net
import random
class Dice:
a = 6
def shoot(self):
return random.randint(1,6)
インタラクティブシェルから上記を実行
import Dice
sai = dice.Dice()
sai.shoot()
>>>2

__init__の説明の前に上記のようなデーター型をつくる
説明が、あって、実は、初期化が必要!!__init__を
使え!!みたいな説明です。さっぱり分からない状態です。

82:デフォルトの名無しさん
15/06/04 03:23:18.28 oidqcGvt.net
Diceクラスを改変したものを書いておきます
class Dice:
    """出目の上限を設定できるサイコロクラスです"""
    def __init__(self, limit):
        """サイコロオブジェクトを初期化します"""
        self._limit = limit  # サイコロの出目の上限を記憶します
        print('サイコロオブジェクトが


83:初期化されました!')     def shoot(self):         """サイコロを振って出目を返します"""         # 初期化したときに記憶した出目の上限を使います         return random.randint(1, self._limit) このクラスを使うときは下のように出目の上限を指定します sai = Dice(6)



84:デフォルトの名無しさん
15/06/04 05:29:12.39 yBrKCk54.net
>>78
__init__(self,,,) はクラスをインスタンス化したときに「自動で実行」される特別なメソッドちゃん
一般ピーポのメソッドちゃん、shootは実行されてないでしょ 
sai = dice.Dice()  ← インスタンス化ってのはこの部分ね
てことで引数を受け取ったり、初期化したりは __init__(self,第一引数,第二引数,,)のところでやるのが作法なのさ

85:デフォルトの名無しさん
15/06/04 05:35:09.80 UvhoGikT.net
どこが適切な相談場所なのかわからないため、こちらで失礼いたします。
webページ上に配置したgooglemapに対して、スマホからサーバに一定間隔で送信される位置情報を使って場所を示す仕組みを作りたいと思っています。
(ページのリロードはしないで、googlemapだけ更新されるイメージ)
このような時、websocketを貼ってやれば出来るのかなと思うのですが、他のやり方を知らないのでそれが最適解なのかどうかがわからないです。
他に推奨されるやり方があったら教えて頂けませんか。
サーバはpython+flaskで、googlemapはjavascriptで呼び出しています。

86:デフォルトの名無しさん
15/06/04 07:08:46.96 yBrKCk54.net
>>81
クライアント側の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)
参考
URLリンク(www.youtube.com)
URLリンク(www.w3schools.com)

87:80
15/06/04 08:43:54.57 GeWtCH2J.net
>>82
レスありがとうございます。
自分自身の位置を見るのではなくて、あくまでも送られてきた位置情報を使いたいのです。
例えば管理者が、部下の位置を確認するのに近いイメージかなと。

88:デフォルトの名無しさん
15/06/04 10:30:22.88 ixdJmRIH.net
そのまんま部下の端末から位置情報を管理者サーバに送るコードを書けばいいじゃないの
30秒毎に位置情報をajaxでサーバ送るとかな

89:デフォルトの名無しさん
15/06/04 10:40:42.64 5pAAiATn.net
Pythonまったく関係ないな
JavaScriptスレ行ってこい

90:デフォルトの名無しさん
15/06/04 16:22:20.43 GK2i9TQ1.net
メーリングリストにpaizaの規約違反する奴
URLリンク(www.python.jp)
最近のMLはレベルが低いねぇ

91:デフォルトの名無しさん
15/06/04 16:41:18.19 9wvQs+dO.net
いつハイレベルだったのか教えて欲しい

92:デフォルトの名無しさん
15/06/04 16:47:51.55 GdYLO45N.net
Jythonを使っています(sikuliというGUIスクリプトで)
csvファイルをスクリプト側からExcelで開きたいのですが、
ググってもいい解決方法が見つけられませんでした。
どなたか解決策を教えていただけませんでしょうか?

93:デフォルトの名無しさん
15/06/04 16:51:05.40 inTZReOp.net
・ダメだった方法とどうしてダメなのか書く
・Google先生に聞く

94:デフォルトの名無しさん
15/06/04 16:57:19.45 9wvQs+dO.net
まずexcelは起動できるんですか?



95:csvはおいといて



96:87
15/06/04 17:44:40.55 GdYLO45N.net
>>89
今家なんで試せないんですけど
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])
こんな感じで試したのですがうまくいかなくて
>>90
もちろん起動できますよ

97:デフォルトの名無しさん
15/06/04 18:27:53.93 Gjm6CwJx.net
>>81
websocketみたいな新しいのは知らないんだけど、俺ならajax使うかなあ
スマホから位置情報送るときはflaskで送ってるんだよね?
その時にajaxでやればページリロードしなくていいはず

98:ダメ五郎
15/06/04 19:42:09.83 6dpaJYI0.net
>>80
解説ありがとうございます。なんとなく分かったような気がします。
>てことで引数を受け取ったり、初期化したりは __init__(self,第一引数,第二引数,,)のところでやるのが作法なのさ
とのことですが、selfは引数ではないのでしょうか?
さらに、__init__(self,第一引数,第二引数)で、
第一引数を使う時(初期化?)は、self.第一引数
第二引数を使う時 (初期化?)は、self.第二引数
とするのでしょうか?

99:デフォルトの名無しさん
15/06/04 22:10:08.62 6dpaJYI0.net
>>> class Dice1:
... def __init__(self):
... face_num = 6
... print('初期化OK')
... def shoot(self):
... random.randint(1,self.face_num)
...
>>> b = Dice1()
初期化OK
>>> b.shoot()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 6, in shoot
AttributeError: Dice1 instance has no attribute 'face_num'
なんでエラーになってしまうのでしょうか?

100:デフォルトの名無しさん
15/06/04 22:22:38.40 TmBikWH3.net
AttributeError: Dice1 instance has no attribute 'face_num'
だから。
def __init__(self, face_num=6):
self.face_num = face_num
にすれば問題解決。

101:pythonスタートブックww
15/06/04 23:20:53.90 6dpaJYI0.net
<-質問->
class Dice1:
i = 6
def __init__(self):
print('初期化OK')
def shoot(self):
return random.randint(1,self.i)
i = 6はなぜdef shoot(self)メソッドの中で使えるのでしょうか?
メソッドの引数(self)は、自分自身を参照するとのことですが、
def __init__(self):のselfは、class Dice1、つまりクラス全体を
参照しているということでしょうか?
def shoot(self)のselfは、shoot()という自分自身を参照している
のでしょうかそれともclass Dice1を参照しているのでしょうか?
selfは自分自身を参照するといいますが、いったい自分自身とは
どこのことを言っているのでしょう?
どなたか分かるかたいますでしょうか?
pythonスタートブックの説明が分からなすぎます。。。。

102:デフォルトの名無しさん
15/06/04 23:42:12.44 YagePnQ/.net
>def __init__(self):のselfは、class Dice1、つまりクラス全体を
>参照しているということでしょうか?
違う
>def shoot(self)のselfは、shoot()という自分自身を参照している
>のでしょうかそれともclass Dice1を参照しているのでしょうか?
そのどちらでもない
>selfは自分自身を参照するといいますが、いったい自分自身とは
>どこのことを言っているのでしょう
Dice1クラスのインスタンス
>>class Dice1:
i = 6
def __init__(self):
print('初期化OK')
def shoot(self):
return random.randint(1,self.i)
def get_id(self):
return id(self)
>>> d = Dice1()
初期化OK
>>> d.get_id() == id(d)
True
その本読んだことないけど、ちゃんと読んだら書いてありそうだけど。
ていうか質問みてたら、明らかに本ちゃんと読めてなさそうな質問してるし、もう一度読み直したほうがいいよ
わからないところあれば公式のチュートリアルを補足に使うのもいいと思う
URLリンク(docs.python.jp)

103:pythonスタートブックww
15/06/04 23:58:28.26 6dpaJYI0.net
>>97
>もう一度読み直したほうがいいよ
10回以上読み直してます。
インスタンスを参照するなんて文言は一言も書いていません。すべて、自分自身を参照
とか、インスタンスを「self」と呼ぶことが決められています。と記載してあります。
Pythonスタートブック P233
で、
>def __init__(self):のselfは、class Dice1、つまりクラス全体を
>参照しているということでしょうか?
違う
→じゃあ、何を参照しているのですか?
>def shoot(self)のselfは、shoot()という自分自身を参照している
>のでしょうかそれともclass Dice1を参照しているのでしょうか?
そのどちらでもない
→じゃあ、何を参照しているのですか?

pythonスタートブックには、自分自身と記載してありましたよ。

104:デフォルトの名無しさん
15/06/05 00:17:06.98 3MWYDBgR.net
「Dice型のインスタンスを用意するとき、ユーザーがどのような変数名を割り当てるかはわかりません。(...)どのような名前でDice型のインスタンスが作られても良いように、メソッドの第一引数でインスタンスを『self』と呼ぶことが決められているのです」(P.233)
「インスタンスとは、ある型に属する実際のデータ(実体)のことです」(P.94)
「データの実体のことを、インスタンスと呼ぶ
インスタンス(実体)は、初期化メソッドで作る」(P.80)
「初期化メソッドで、インスタンスを作るときの動作を細く制御できる」(P.240)
「初期化メソッドの本当の名前は、__init__というちょっと変わった名前なのです」(P.235)
(いずれも『Pythonスタートブック』より引用)
a = Dice()
b = Dice()
aとbはそれぞれDiceクラスのインスタンス。
同じクラスから作られるが実体は別。
トヨタカローラアクシオという同じ型の車であっても、
Aさんの所有しているアクシオとBさんの所有しているアクシオは実体は別、というのと同じ。
aのselfはa自身(aというインスタンス)を参照し、
bのselfはb自身(bというインスタンス)を参照している。

105:デフォルトの名無しさん
15/06/05 00:28:18.57 lsMoUydE.net
なんかいちいち煽り口調だよねこの人…
別にその本に限らないけど入門書でクラスの概念をちゃんと説明するのはページ数足らないよ
一つ上の書き込みすら読まずに「じゃあ何を参照してるのですか?」連発って何なんだこの人
クラスから作られるインスタンスを指すって書いてるじゃん
クラスはそのまま使うんじゃないんだよ
例えば車2台あるんなら車クラス1、車クラス2なんて同じクラス定義コードを書かないよね
2台なら2つの「車クラスのインスタンス」を作る
car1=Car()
car2=Car()
ここまではわかる?

106:pythonスタートブックww
15/06/05 00:30:47.44 15nsAZUD.net
>>99
class Dice1:
i = 6
def __init__(self):
print('初期化OK')
def shoot(self):
return random.randint(1,self.i)
>aとbはそれぞれDiceクラスのインスタンス。
>同じクラスから作られるが実体は別。
でも、
a=Dice1()
a.shoot()と実行しても
b=Dice1()
b.shoot()と実行しても
上記コードの場合同じ結果ですよね?aもbも同じDice()を参照していますよね??

107:デフォルトの名無しさん
15/06/05 00:31:11.27 lsMoUydE.net
あらめっちゃ被った…
>>99さんの書き込み10回読んでもわからないなら、とりあえずクラスのことはよくわからないままトライ&エラーするといいよ
そのうち体でわかってくると思うので

108:デフォルトの名無しさん
15/06/05 00:38:03.45 lsMoUydE.net
同じ設計図を元に作られたからといって、そのサイコロとか車は現実世界で同じものなんですか?
違うよね?
あなたのプリウスと他人のプリウスのハンドルは同じ形してるし機能も同じだけど、別の物体だよね?
それともあなたのプリウスのハンドルは回したら世界中のプリウスのハンドルが一斉に回る?
回らないよね?
ここまでわかる?わからない?どっち?教えて?

109:デフォルトの名無しさん
15/06/05 00:59:32.98 Hxz0Gz0r.net
JavaじゃなくPythonでこのぶつかり稽古感嫌いじゃないな
クラスを理解するのにここでつまづく人も少なくないと思うから

110:デフォルトの名無しさん
15/06/05 01:07:15.59 lsMoUydE.net
selfが引数にあるから余計にわからなくなっちゃう人は多そう

111:デフォルトの名無しさん
15/06/05 01:38:05.86 CO7i0u7Y.net
サイコロ工場長の視点で解説しよう
机の上にサイコロの設計書があります class Dice1
これが 【クラス】
設計書に基いてつくったサイコロを作ろう ガッチャンガッッチャン a=Dice1() , b=Dice1() 
これが 【インスタンス】
サイコロは基本6面だから、共通の変数作っとこ  i=6   
これが【クラス変数】
ちょ 全サイコロ共通じゃなくて一個一個カスタマイズできる変数が欲しいよね  self.a = a って書くことにしよう
これが【インスタンス変数】
self はインスタンス自身を指すよ

112:デフォルトの名無しさん
15/06/05 02:07:56.35 CO7i0u7Y.net
a.shoot() はサイコロa を振ってる
b.shoot() はサイコロb を振ってる
設計書Diceを振ってるわけじゃない
クラス変数とインスタンス変数の違いについては、自分でいろいろ代入して試しながら解説を読まないとピンとこないと思う
URLリンク(bacspot.dip.jp)

113:デフォルトの名無しさん
15/06/05 02:40:12.22 3MWYDBgR.net
>>101
「データ型は、よりシンプルなデータ属性(アトリビュート)と関数(メソッド)の集まりでした。どのようなアトリビュートとメソッドがあるのかを決める仕組み(設計図)が、クラスという概念なのです」(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()を繰り返し実行した場合でもその都度違う結果になる。

114:デフォルトの名無しさん
15/06/05 05:01:22.18 0CNX1oFz.net
クラスのメソッドを関数として書くと下のようになります
class構文がないプログラミング言語ではこのような形のOOPを見ることがあります
import random
class Dise:
    pass
def dise_init(self):
    self.n = 6
def dise_shoot(self):
    return random.randint(1, self.n)
def main():
    sai = Dise()
    dise_init(sai)
    kekka = dise_shoot(sai)
    print(kekka)

115:デフォルトの名無しさん
15/06/05 08:02:54.15 8RwZ5SRI.net
お前らやさしいな

116:デフォルトの名無しさん
15/06/05 08:19:25.89 BJJqeoyH.net
暇なんだろ

117:デフォルトの名無しさん
15/06/05 10:06:46.46 j5ZekPWl.net
こんなとこで解説するならブログにでやったほうが有益なのに

118:デフォルトの名無しさん
15/06/05 10:26:56.43 GyFRMyRF.net
それはどうだろ?
検索すらできないからここで聞いてるんでしょ
ブログに書いたところでたどり着かないだろうし
そもそもこんな初歩を解説しているところは既にある
情報の再生産は賢くない

119:デフォルトの名無しさん
15/06/05 11:02:22.23 j5ZekPWl.net
ってことはここで解説することも再生産になるな
なるほどなるほど

120:デフォルトの名無しさん
15/06/05 11:13:23.82 C29rFbOn.net
上の質問者ではないけど、車の例えやサイコロ工場の例はすごくわかりやすかったです。
私の中では日本語だからたまたまなんだけど、Classは型、
つまり鋳型みたいなものという理解だったのだが、だいたい合っているようでよかった。

121:デフォルトの名無しさん
15/06/05 22:31:30.92 lsMoUydE.net
ここ掲示版、それも質問スレってわかってる?

122:デフォルトの名無しさん
15/06/05 22:32:37.25 CO7i0u7Y.net
2chで解説してもブログでやっても大差ないもん
情報がばらばらになってる時点で、stackover flowみたいなとこに集積されてる英語圏とは比べものにならにあ
日本語版stackover flow�


123:ェリリースされたら移住しよで



124:デフォルトの名無しさん
15/06/05 22:39:58.60 8RwZ5SRI.net
>>117
URLリンク(ja.stackoverflow.com)

125:デフォルトの名無しさん
15/06/05 22:47:21.99 lsMoUydE.net
いやそういう問題でもなくて
質問スレでわからないっていう書込みがあったからみんな答えてるわけで、それに対してブログでやれってのは意味がわからない
目の前で出血多量で倒れてる人がいるのに止血しないで「こういう人を救うために僕は医者になるんだ」と決意するぐらい遠回り

126:デフォルトの名無しさん
15/06/05 22:56:04.78 Po70kg5k.net
金曜だからハイになってるのかな?

127:デフォルトの名無しさん
15/06/06 10:40:09.46 fshGdHb4.net
PyQt5の勉強しようとIPythonでサンプルプログラム打ち込�


128:セらカーネル死亡してわろたw どうやらIPythonもPyQtでできてるので干渉してるらしい しょうがないからSpyderでやるかーと思ったら、SpyderもPyQtでできててわろた



129:デフォルトの名無しさん
15/06/06 11:38:16.40 DEqjSCNd.net
>>119
意識不明になりかけの緊急手術の直前に本人に同意書へのサインを何枚も書かせるような感じ?

130:デフォルトの名無しさん
15/06/06 13:27:48.72 MyhE4x2q.net
>>121
ipythonはコマンドラインツールだからpyqt使ってないんだけど

131:デフォルトの名無しさん
15/06/06 17:52:09.89 /Aft5CBs.net
withが気になってるんですがどこ見てもファイルへのアクセスに便利だぐらいのことしか書かれてなくて、
それ以外の利用法がいまいち思い浮かばないです
皆さん使ってますか?

132:デフォルトの名無しさん
15/06/06 18:00:31.27 9TAyXKx2.net
それはなぜ便利なのか理解してないからでは
with使わずに書いてみればなぜ便利なのか分かるよ
どういう風に使えるのかも

133:デフォルトの名無しさん
15/06/06 18:06:40.87 9TAyXKx2.net
ブロックに入るときと出るときに定型処理を要求されるなら何にでも使える
ロックしかりセッションしかり
ってのが全てだけど、想像できないでしょ

134:デフォルトの名無しさん
15/06/06 20:54:41.78 2JQblal0.net
Withの機能って英語ネイティブの連中だと
ふだんの用法から類推できるのかな?
いまExcelでVBA書いてるけどWithの機能が
Pythonとはまた違うような…

135:デフォルトの名無しさん
15/06/07 04:49:37.07 P+H+q5eJ.net
>>123
おかしくなる原因わかった 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だとカーネルごと死んじゃう

136:デフォルトの名無しさん
15/06/07 05:57:06.55 J7/rKSpK.net
かよこってだれだよ

137:デフォルトの名無しさん
15/06/08 01:17:40.83 FYS9ZuUR.net
質問です
Win8.1にPython3.4をインストールしたのですが
そこにwxPythonを導入できません
色々試しているのですがすべて失敗します
コマンド
c:\Python34\Scripts>pip install --pre –f URLリンク(wxpython.org) 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を使うことは可能なのでしょうか?

138:デフォルトの名無しさん
15/06/08 01:50:38.99 kUihiJyv.net
-fのハイフンがおかしい。
どっか変なとこからコピペでもしたんだろう。

139:デフォルトの名無しさん
15/06/08 03:05:46.27 1CV/YMqS.net
今月Cythonの書籍が2冊ほど発売されますが、CythonはBottleやFlaskでWebページを作る場合にも高速化に役立つのでしょうか?

140:デフォルトの名無しさん
15/06/08 04:48:57.05 TkpGbpl3.net
いいえ

141:デフォルトの名無しさん
15/06/08 07:31:43.53 UvAzbTzo.net
問題設定が奇妙だ
Q.Webアプリを作る際のボトルネックがPython側にある場合、Cython高速化の役に立つのでしょうか?
A.立ちます

142:デフォルトの名無しさん
15/06/08 09:16:47.89 PuuH78/z.net
Cython ―Cとの融合によるPythonの高速化
ともう1冊はなんだろ?

143:デフォルトの名無しさん
15/06/08 09:19:35.76 xp3ZJS47.net
>>130
wxpython使うならpython 2.7を使え
どうしてもpython 3.4でやりたいならpyqt5とかpysideを使え

144:デフォルトの名無しさん
15/06/08 10:34:15.07 IBO2jVeF.net
3に対応してるwxPython開発者バージョンってどのくらい安定してるのかね?
せっかくだし是非人柱になっていただきたい

145:デフォルトの名無しさん
15/06/08 10:42:07.07 IBO2jVeF.net
>>130
てかコマンドがいろいろおかしくね?
fの前のハイフンと、末尾wxPythonのアンダーバー
pip install -U --pre -f URLリンク(wxpython.org) wxPython_Phoenix

それでもエラーでたらファイルをDLしていれたらうまくいったって報告がいくつかあるよ
URLリンク(wxpython.org)
ここから下のほうにある最新版のwhlファイルを落として、
コマンドプロンプトでwhlがあるフォルダにいって、
pip3 install -U --pre wxPython_Phoenix-3.0.3.dev1820+49a8884-cp34-none-win_amd64.whl

146:デフォルトの名無しさん
15/06/09 07:41:01.24 CCwBvSiM.net
129です
>>138にあるwhlをダウンロードする方法でうまくいきました!
問題なく動くっぽいので今日から色々作ります
>>131>>138ありがとう!

147:デフォルトの名無しさん
15/06/09 08:41:14.82 il7QxJ4a.net
どういたしまして

148:デフォルトの名無しさん
15/06/12 14:45:46.94 P6xkiuvh.net
setattrでクラスのインスタンス変数は動的に作れるようですが、
普通の変数は動的に作ることはできないのでしょうか?

149:デフォルトの名無しさん
15/06/12 15:09:07.35 quZXc/6x.net
モジュール内のスコープなら
globals()['hoge'] = 1
print hoge
でいける
関数内のスコープでは該当機能なし
locals()には書き込めない

150:デフォルトの名無しさん
15/06/12 19:14:44.56 z8625JCz.net
ubuntu pyenv
.
~/pyenv/versions/3.4.3/lib/python3.4/curses/__init__.py, line 13, in <module>
from _curses import *
ImportError: No module named '_curses'
どうすればいいんでしょうか?

151:デフォルトの名無しさん
15/06/12 19:24:56.91 qp6MkQCv.net
URLリンク(github.com)
URLリンク(stackoverflow.com)

152:デフォルトの名無しさん
15/06/12 23:36:54.43 P6xkiuvh.net
>>142
ありがとうございます
globals()とlocals()というdictの存在は知りませんでした 勉強になりました

153:デフォルトの名無しさん
15/06/13 03:17:49.96 NUKk6CPY.net
どういたしまして

154:デフォルトの名無しさん
15/06/13 11:48:55.19 AciwpV5F.net
>>143
GoogleでImportError: No module named '_curses' でググれば一発だろうが・・・

155:デフォルトの名無しさん
15/06/13 12:11:35.04 AmgidL1k.net
そういう発想に至れないから聞いてんだろうが馬鹿か
ゴミのお前らを多少なりとも社会の役に立ててやろうとしてるのに何様だ
役立たずは土に帰れ

って思ってるでしょうから代弁してあげました

156:デフォルトの名無しさん
15/06/13 12:57:33.62 NUKk6CPY.net
ありがとう
って伝えたくて

157:デフォルトの名無しさん
15/06/13 13:45:05.39 d6cyRLaO.net
検索したけど、ディレクトリがないとかコマンドが無効とかでわかんなかったから。
他のでもエラー出たし、超初心者用って書いてあるからいいのかと。
>>144
>>147
解決しました。ありがとうございました。
>>148
思ってない。

158:デフォルトの名無しさん
15/06/13 14:30:05.53 AmgidL1k.net
それは失礼した

159:デフォルトの名無しさん
15/06/14 03:21:19.95 heCu4ibl.net
一部変な奴もいるけど気にせずに初心者はどんどん質問してくださいな

160:デフォルトの名無しさん
15/06/14 06:00:50.39 zPXILR6N.net
>>91
notepad.exe はExcelではなく、
最初から、Windowsに付いている、メモ帳ソフトだよ

また、試してうまく行かないのなら、
そのエラーメッセージも書くこと!

161:デフォルトの名無しさん
15/06/15 11:57:46.42 UXrUNkbZ.net
#!/usr/bin/python
これ書く必要ないと思うんですが何で皆書いてるんですか?

162:デフォルトの名無しさん
15/06/15 12:27:08.68 CEFvwvlb.net
なぜ書く必要がないんだ
ドザかキサマ

163:デフォルトの名無しさん
15/06/15 12:40:00.85 /ZcDX49o.net
常にpythonコマンドの引数として実行してるから
プログラム中に書く必要が無いっていう意味かもよ

164:デフォルトの名無しさん
15/06/15 12:53:12.01 CEFvwvlb.net
なるほど

165:デフォルトの名無しさん
15/06/15 14:12:49.62 nCXuemSD.net
sympyのチュートリアルにtype(_)みたいに引数がアンダーバーの例が結構出て来るんですけど
どういう意味なんですか?

166:デフォルトの名無しさん
15/06/15 14:12:58.25 +3PE6uzO.net
{'a': 0.1, 'b': 0.4, 'c': 0.5}
こういう確率分布に沿ってランダムにa~cを返すようなスマートな書き方って無いでしょうか
今はこんなリストを生成してrandom.choice(list)してるんですが酷過ぎますよね
[a,b,b,b,b,c,c,c,c,c]

167:デフォルトの名無しさん
15/06/15 15:12:19.08 6FCFdlNB.net
>>158
直前に実行した結果の値

168:デフォルトの名無しさん
15/06/15 15:13:37.21 6FCFdlNB.net
>>159
それでいいよ

169:デフォルトの名無しさん
15/06/15 15:50:40.17 23esbdI0.net
>>159
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)

170:デフォルトの名無しさん
15/06/15 16:15:41.68 /ZcDX49o.net
>>158
もう回答ついてますが、補足すると、
対話モードでPythonを実行しているときに、
Pythonインタプリタが最後に表示した式がその都度、
ビルトイン変数である _ に代入されます。
>>> 2
2
>>> _
2
>>> _ + 8
10
>>> _
10

171:デフォルトの名無しさん
15/06/15 16:24:13.59 /ZcDX49o.net
>>159
randomモジュールの公式ドキュメントの最後のところに、
「ありがちな作業として、重み付けされた確率のrandom.choice()を作ることがあります」
として、コード例が二つ、挙げられていますよ。

172:デフォルトの名無しさん
15/06/15 16:47:22.20 +3PE6uzO.net
>>164
3系のドキュメントには確かに書いてありました
ramdomにそういう関数があるんじゃないかと思って隅から隅まで読んでたんですが、
検索で最初に出て来たのが2.7のドキュメントだったのでそっちを読んでました
新しい方のドキュメントを読むようにしないとダメですね
ありがとうございました

173:デフォルトの名無しさん
15/06/15 17:11:38.07 23esbdI0.net
確率なら私は、>>162
を押すけど・・・
何これ滅茶苦茶になってる。
書き直し
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)

174:デフォルトの名無しさん
15/06/15 17:18:53.77 23esbdI0.net
3分ルール。
3分以内だから書き直して良し。
import random
def get_random_abc_smart(random_abc):
 r = random.random()
 for name, value in random_abc.items():
  if r < value:
   return name
  r -= value
 raise ValueError()
if __name__ == "__main__":
 random_abc = {'a': 0.1, 'b': 0.4, 'c': 0.5}
 for i in range(10):
  abc = get_random_abc_smart(random_abc)
  print(abc)

175:デフォルトの名無しさん
15/06/15 20:33:01.67 TKCLtNo1.net
向いてないよお前

176:デフォルトの名無しさん
15/06/15 23:57:55.27 kyy3xBtw.net
>>155
CGIで動かすなら書く必要はあるけどそれ以外で書く必要ある?

177:デフォルトの名無しさん
15/06/16 00:01:08.17 b7Inp4eU.net
なぜCGIで動かすために必要なのか分かれば用途も分かるんじゃ?

178:デフォルトの名無しさん
15/06/16 07:25:00.65 5/n3i9e1.net
cron が実行する時とか書いておいた方がいいじゃん

179:デフォルトの名無しさん
15/06/16 08:32:21.66 550Q7INi.net
cronだろうがCGIだろうがその気になれば書かんでも動くけどな

180:デフォルトの名無しさん
15/06/16 19:45:46.31 RI7md6Vl.net
むしろお前の気分など微塵も関係ないわw

181:デフォルトの名無しさん
15/06/16 19:50:16.97 A7ypZhpv.net
長すぎるスクリプトがあって2つに分割したいのですが、
最初のスクリプトに定義した定数(みたいなもの)に後のスクリプトからアクセスできません
foo.py
--------------------
FOO = "foo"
import bar
bar.py
--------------------
print foo.FOO #エラー

2つのスクリプトから共通に定数を参照することはできないのでしょうか?

182:デフォルトの名無しさん
15/06/16 20:01:32.04 VP0cCW3e.net
bar.pyの中で先にimport fooしてからfoo.FOOを使う

183:デフォルトの名無しさん
15/06/16 20:10:01.18 A7ypZhpv.net
ありがとうございます
循環的にimportしてもいいのでしょうか

184:デフォルトの名無しさん
15/06/17 00:11:28.65 zdNvSItr.net
>>1
hをわざわざ抜かんでもいいよね
リファラー漏れたって構わんだろ

185:デフォルトの名無しさん
15/06/17 05:37:25.05 kNv7Xml9.net
>>174
これどうするんだろ 試してみたけどエラーになるし
共通変数だけ3つ目のスクリプトを作ってそこに記述するとか?

186:デフォルトの名無しさん
15/06/17 06:32:07.61 LjoNHjol.net
共通定数を定義した3つ目を作ってimportするしかないんじゃないの

187:デフォルトの名無しさん
15/06/17 07:01:05.48 81IWqnhU.net
モジュールから公開するものは定数、関数、クラス
つまり再代入しない書き換えない前提のものだけにするべきだ

188:デフォルトの名無しさん
15/06/17 09:21:43.00 7KhQ6AFD.net
Cのincludeとかと勘違いしてんじゃね

189:デフォルトの名無しさん
15/06/17 09:57:22.15 oj1Iwp6E.net
フレームワークとかで見かける@app.routeって書き方が何なのかを学びたいんですが
この機能についてPythonのドキュメントのどこに載ってますか?

190:デフォルトの名無しさん
15/06/17 10:44:14.01 IK4mFl8b.net
デコレータのことなら
用語集のdecoratorの項目
言語リファレンスの複合文の項目の関数定義およびクラス定義の項目
英語でよければPEP318とPEP3129

191:デフォルトの名無しさん
15/06/17 10:57:46.10 0Srw9Hnu.net
お前もデコレートしてやろうか

192:デフォルトの名無しさん
15/06/17 12:01:08.92 l25RfAPf.net
>>176
URLリンク(docs.python.jp)
関数の中とかでimportするようにすれば循環を解消出来る

193:デフォルトの名無しさん
15/06/17 12:31:24.46 r36nFuSU.net
デコレータの使い所がつかめない

194:デフォルトの名無しさん
15/06/17 13:17:06.78 0Srw9Hnu.net
無理につかむ必要なし
スルーして先に進め

195:デフォルトの名無しさん
15/06/17 15:58:52.42 QfA6ONQ8.net
今からpythonを始めるなら3系がいいの?

196:デフォルトの名無しさん
15/06/17 18:06:59.25 Qul178yg.net
何をしたいのか明確で必要なライブラリがPython3対応なら3
そうでないなら2
何をしたいのか分からないボクちゃんは2にしとけ

197:デフォルトの名無しさん
15/06/17 19:22:24.73 /LVZEvtO.net
何いってんだ
やりたいことが決まっててそれが2しか対応してないなら2
それ以外でいまから2やる理由などない
時代遅れも甚だしい

198:デフォルトの名無しさん
15/06/17 19:39:54.69 lLs1gGcm.net
パイソンをやめたいんだが

199:デフォルトの名無しさん
15/06/17 19:56:55.43 Qul178yg.net
お前はもう家の子じゃない
勘当だ!でてけ!

200:デフォルトの名無しさん
15/06/18 00:54:51.07 847qU7kl.net
いまさら2から始めるのはないと思う。
ある程度使えるようになることにはサードパーティのライブラリでも3対応になってるはず。

201:デフォルトの名無しさん
15/06/18 04:26:12.53 R8kyw3Rj.net
言語本体だけ見れば2系を選ぶ理由はもう全く無い
日本人が2系で入門するとUnicodeDecodeErrorを最低100回以上は見る事になって辛いよ
いまだに2を使ってる人が多い理由は大きくわけると2つあって
・言語本体以外のライブラリが3系に対応していない
・今まで書いて蓄積して来た2系のコードを3系に移植するのが大変なのでそのまま2で開発続行
今から始めようっていう人にとって2と3どっちを選ぶかは結局のところ使うライブラリが対応してるかどうか
ここ1~2年で急激に3系へのライブラリ対応が完了つつあるので絶対3をお勧めしたい
3系やるなら3.3か3.4で 3.0~3.2は色々な事情でダメ もうすぐ3.5が出るけど初心者は様子見で3.3か3.4で入門して欲しい

202:デフォルトの名無しさん
15/06/18 06:16:54.84 qj3FW4Pj.net
なんで3から2のライブラリを使えるようにしなかったんだ

203:デフォルトの名無しさん
15/06/18 06:44:21.31 Zk4Vy/pu.net
使えるようにしつつ満足のいく言語仕様の変更ができなかったから
に決まってるだろうがよぉー

204:デフォルトの名無しさん
15/06/18 07:42:22.87 SQas+mXZ.net
残ってるサードパーティーライブラリの癌はgeventだな
あれのせいでイベントループ系のフレームワークが全滅

205:デフォルトの名無しさん
15/06/18 07:59:34.32 aPbhwQoO.net
3.5はバラ色の未来ですねわかります

206:デフォルトの名無しさん
15/06/18 08:01:31.33 rHijCFtm.net
そんなに3が凄いならいっちゃおうかな

207:デフォルトの名無しさん
15/06/18 08:06:55.17 7/h/PzkV.net
>>197
kwsk

208:デフォルトの名無しさん
15/06/18 09:44:38.69 Gsq65laO.net
GAE待ちとか

209:デフォルトの名無しさん
15/06/18 09:51:46.91 7/h/PzkV.net
それな

210:デフォルトの名無しさん
15/06/18 19:37:20.29 rESrKy3o.net
G!A!E!

211:デフォルトの名無しさん
15/06/18 20:00:46.48 qj3FW4Pj.net
GAEと言えば7月にMasterSlave店じまいセールだな

212:デフォルトの名無しさん
15/06/19 00:29:37.61 pwEd9MNq.net
>>186
デコレータは機能を追加する
例えば、ログを表示する、log() という関数がある時、
f1() の内部で、log()を呼び出すと、
f1()のソースコードを変更しなければならない
def f1():
 log()
デコレータなら、f1()のソースコードを変更しなくてもよい
@log
def f1():

また、イベントのように、複数の機能も追加できる
@log
@sort
def f1():
下のデコレータから呼ばれるので、
ソートしてから、ログを表示する

また、関数宣言として、デコレータを使うこともできる
@atexit.register
def f1():
f1()はプロセス終了時に、呼び出される

213:デフォルトの名無しさん
15/06/19 05:26:58.65 XxXXr7Os.net
pythonのatexitがマルチプロセスなプログラムと相性が悪い件
URLリンク(taichino.com)

214:デフォルトの名無しさん
15/06/19 09:58:16.55 u8L6JLuV.net
>>194
IronPythonとJythonが今のところ2系だからって理由も追加しておいてくれ

215:デフォルトの名無しさん
15/06/19 10:21:50.56 Rpgf6TLH.net
そういえばJython2.7出てたね
つい先月まで2.5相当の骨董品だった環境を
使っている人間がどれだけいるのか知らんが

216:デフォルトの名無しさん
15/06/19 11:25:33.18 gzzqdCD8.net
質問スレはここでいいでしょうか?
こんな感じのテストパターンを計算でiPython Notebookで作りたいのですけどどのライブラリを使うのがいいでしょうか?
グレーの濃度をガンマ2.2用に変えたものを作りたいのです
URLリンク(commons.wikimedia.org)
本当に作りたいのはAAPM-TG-18-PQCのパターンです(輝度が0.2%違うラインが一杯並んでいる)

217:デフォルトの名無しさん
15/06/19 11:26:22.69 gzzqdCD8.net
追記
URLリンク(upload.wikimedia.org)

218:デフォルトの名無しさん
15/06/19 11:47:20.00 DjrbuAgm.net
質問です
----------------
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 です

219:デフォルトの名無しさん
15/06/19 12:40:35.57 Rpgf6TLH.net
正しく取得できてるから0じゃないんだよ
subprocessとos.forkは違う

220:デフォルトの名無しさん
15/06/19 12:43:26.32 Rpgf6TLH.net
期待を裏切っておくと
Windowsでfork相当のことはできないよ
考え直すんだね

221:デフォルトの名無しさん
15/06/19 12:44:25.26 DjrbuAgm.net
>>212
そのようですね
ありがとうございます
後出しで済みませんが
子プロセス側で自分が子プロセスかどうかを判別する方法はどうすれば良いのでしょうか?

222:デフォルトの名無しさん
15/06/19 12:47:40.56 Rpgf6TLH.net
手っ取り早いのは起動する時に引数を指定することだろう

223:デフォルトの名無しさん
15/06/19 12:52:56.49 Rpgf6TLH.net
>>206
これよお
forkとatexitシステムコールのman読めば分かることだが
forkはatexitの登録も継承するんだよ(execは継承しない)
だからforkした回数だけ起動されて当たり前だ
Pythonがどうとか御託を並べる前と後にRTFMしろ脳プリンが

224:デフォルトの名無しさん
15/06/19 13:12:03.39 4Vx29HIc.net
えっ?RTFM?
retweet format?
aRT fm radio?
> RTFMしろ脳プリンが
脳プリンさんってコテハンがRTFMするんです???

225:デフォルトの名無しさん
15/06/19 13:17:30.92 X0p5IxAK.net
>>216
実は私もそう思ったんです
>どうするのが綺麗なのか解りませんが、今のところ終了処理にpidを渡して無理矢理処理を振り分けています。
みたいなふざけたこと言ってるので
例えば
atexit.register(exitfunc)
fork_process(5)
fork_process(10)

fork_process(5)
fork_process(10)
atexit.register(exitfunc)
にするだけで良いんじゃないかと

226:デフォルトの名無しさん
15/06/19 13:23:36.39 r/oYBuQO.net
お客さん意外と辛辣ね…

227:デフォルトの名無しさん
15/06/19 13:42:54.95 FzphauAa.net
少なくとも
「相性が悪い」
というのは的外れな表現ですね

228:デフォルトの名無しさん
15/06/19 17:54:53.41 yCMOiWgQ.net
>>209
作ったことないから適当に言うけど
計算はNumpy
描画はPIL(Pillow)って感じでは

229:デフォルトの名無しさん
15/06/20 00:39:34.78 m/GPi3MC.net
いまどきなぜ cv をつかわずに Ipl なのか

230:デフォルトの名無しさん
15/06/20 04:18:02.13 q1zQqH1k.net
ざーっと基礎を押さえたあとネットでDive into pythonを読んだんだけど良書すぎて困惑した
日本語訳もけっこういいし
これ日本語のpython入門本とか立場ないよなw


231:



232:デフォルトの名無しさん
15/06/20 05:02:07.47 05xfGfjh.net
あれはまさにPythonを知ってる人向けの再入門本じゃないかなあ
少なくともプログラミング未経験者にはわけわかめだと思う

233:デフォルトの名無しさん
15/06/20 06:02:17.49 YRdpRuuN.net
立場ないとか意味不明

234:デフォルトの名無しさん
15/06/20 08:24:30.35 ZS6UT+M0.net
デコレータ関連で調べていくうちに出会った組込関数のstaticmethod
これは何をする関数なんだろう
ドキュメントには以下の解説があるが、これでわかる人いる?
staticmethod(function)
function の静的メソッドを返します

235:デフォルトの名無しさん
15/06/20 08:41:42.24 837NZnyd.net
>>225
>>223 は Dive into Python の翻訳者かな?

236:デフォルトの名無しさん
15/06/20 08:42:52.18 837NZnyd.net
>>226
@classmethod と @staticmethod の違いについて述べよ

237:デフォルトの名無しさん
15/06/20 08:57:58.95 ZS6UT+M0.net
>>228
メソッドってクラス内にある関数のことでしょ
それが静的・動的という言葉と何の関係があるのかさっぱりですわ

238:デフォルトの名無しさん
15/06/20 09:17:31.21 837NZnyd.net
なんだアスペか

239:デフォルトの名無しさん
15/06/20 09:43:41.94 VCJJENu0.net
超初心者に分かるように説明するのは難しいなあ

240:デフォルトの名無しさん
15/06/20 10:02:36.41 ZS6UT+M0.net
>>230
中傷はお腹いっぱいだから解説が欲しいなあ
>>231
公式ドキュメントがアレな時点で覚悟はしていたが
人に説明するのが難しい概念なのか
じゃあ追い求めるのはやめとくよ
クラスを作ることのない自分にはたぶん不要でしょ

241:デフォルトの名無しさん
15/06/20 10:47:37.17 EgcPeahS.net
>>214
multiprocessingを使え

242:デフォルトの名無しさん
15/06/20 11:15:04.01 JS1ARM9p.net
>232
staticおじさん乙

243:デフォルトの名無しさん
15/06/20 11:32:33.23 q1zQqH1k.net
>>232
公式ドキュメントの日本語は酷いよなw 
自分がググったなかではこれが一番分かり易かった
URLリンク(stackoverflow.com)

244:デフォルトの名無しさん
15/06/20 18:06:53.98 EIopszoh.net
wxpythonで、例えばwx.Panelクラスを継承する場合
class MyPanel(wx.Panel):
  def __init__(self, *args, **kwargs):
    wx.panel.__init__(self, *args, **kwargs)
    pass
と書きますが、このときコンストラクタに任意の引数を追加したい場合はどうすれば良いのでしょうか
class MyPanel(wx.Panel):
  def __init__(self, value=0, *args, **kwargs):
    wx.panel.__init__(self, *args, **kwargs)
    self.value = value
このようなことをしたかったのですが、これだとエラーが出てしまい困ってます

245:デフォルトの名無しさん
15/06/20 18:13:02.77 BwBYUmlz.net
value=0, *args
を逆にしたら通らないか?
今試せないから間違いならごめんよ

246:デフォルトの名無しさん
15/06/20 18:35:54.79 m1xwf2/2.net
>>236
class Parent(object):
def __init__(self, *args, **kwargs):
print("in Parent()")
print("args =", args)
print("kwargs =", kwargs)
class MyChild(Parent):
def __init__(self, *args, **kwargs):
# print("MyChild() kwargs =", kwargs)
if not "value" in kwargs:
kwargs["value"] = -1
self.value = kwargs["value"]
Parent.__init__(self, *args, **kwargs)

247:デフォルトの名無しさん
15/06/20 19:02:56.23 n/MPx6ZH.net
Parentにvalueを渡しても良いなら
value = kwargs.setdefault('value',0)
渡したらダメなら、上の後で
del kwargs['value']

248:デフォルトの名無しさん
15/06/20 20:01:07.38 m/GPi3MC.net
class MyPanel(wx.Panel):
  def __init__(self, *args, **kwargs):
    super(self, MyPanel).__init__(*args, **kwargs)
    pass

249:デフォルトの名無しさん
15/06/20 23:07:53.60 vDkYH4Pd.net
>>211
linuxでは、ps コマンドや、
/proc/[pid]/stat で、プロセスの状態を見れる
pid は、プロセス ID。
ppid は、このプロセスの親プロセスの PID
つまり、PIDから、ppidがわかる
逆に、親から子は、簡単にはわからない。
親子は、1対多の関係だから
Windowsでも、同じだと思う

250:デフォルトの名無しさん
15/06/21 02:00:24.62 4AMULbus


251:.net



252:デフォルトの名無しさん
15/06/21 05:40:21.64 w9NVD211.net
説明はしないけど標準ライブラリを使って下のような例を挙げておく
import functools
@functools.lru_cache(maxsize=None)
def fibonacci(x):
    if x <= 1:
        return x
    else:
        return fibonacci(x-1) + fibonacci(x-2)

253:デフォルトの名無しさん
15/06/21 07:11:08.54 DNozaEUf.net
>>242
前にselfで質問してた人かな?

254:デフォルトの名無しさん
15/06/21 08:40:34.98 /JS5ft5/.net
decorator で引数の型チェックするとかはあったな
実用化成功してるとするなら普及しないのが不思議だけど

255:デフォルトの名無しさん
15/06/21 10:04:24.99 WzG+ayAj.net
>>234
そいつは static おじさん以下だろ
static おじさんの方が百倍マシ

256:デフォルトの名無しさん
15/06/21 14:19:07.26 cvS/M2oc.net
初めてのプログラミングでpython学ぼうと思うんだけど
おすすめのサイトとか本とかある?

257:デフォルトの名無しさん
15/06/21 18:44:15.00 0g6EdVmv.net
料理の本でも書った方がマシ

258:デフォルトの名無しさん
15/06/21 23:02:16.53 YQGPuxlq.net
100円のKindleのん

259:デフォルトの名無しさん
15/06/22 21:35:08.52 cyUuMoVS.net
GUIやりたいんだけど、
GTKとかQtとかwxとかいろいろあるみたいだけどどれがいいの?

260:デフォルトの名無しさん
15/06/22 22:37:04.46 mEuvJOmb.net
Tkinter

261:デフォルトの名無しさん
15/06/22 22:53:48.77 1mBrqKiW.net
邪道な選択肢かもしれんが
IronPythonでWindows FormとかXAMLとか

262:デフォルトの名無しさん
15/06/23 00:53:22.47 KSGpzryS.net
Tkinterはないわ
鉄板だけどライセンスが欠点の Qt
ライセンスが緩い Wx、 PySide(開発停滞中)
モバイル端末のマルチタッチでも遊べる kivy

263:デフォルトの名無しさん
15/06/23 02:29:50.57 VWqqouSb.net
python3 以降でeasyDialogs の代わりになるものってないのですか?

264:デフォルトの名無しさん
15/06/23 02:34:00.43 C02P46O1.net
>>247
みんなのPython 第3版

265:デフォルトの名無しさん
15/06/23 02:38:55.91 oDIwBgEe.net
Qtって鉄板なんだ
Wxのほうがポピュラーなのかと思ってた

266:デフォルトの名無しさん
15/06/23 07:44:24.48 p2719NN5.net
pygameのことも忘れないで

267:デフォルトの名無しさん
15/06/23 08:15:33.54 rzZlb/rV.net
ブラウザだってguiだわ

268:デフォルトの名無しさん
15/06/23 08:24:15.40 p2719NN5.net
ブラウジャはjavascriptだからつまらん

269:デフォルトの名無しさん
15/06/23 08:48:29.15 LQs/3Np0.net
Brython

270:デフォルトの名無しさん
15/06/23 16:31:27.73 pUNJxfqT.net
横レスだけど、Tkinterってダメなの?
これから勉強しようとしてる初心者ですが、最終的にGUIアプリを作りたいので
一番簡単そうに思えるTkinterを勉強しようと思ってた
見た目がダサくなるらしいのはちょっと調べて分かったけど
それ以外にも難点があるんですか?

271:デフォルトの名無しさん
15/06/23 17:26:52.29 y0iv9VtA.net
何度でも言うよ
GTK は糞

272:デフォルトの名無しさん
15/06/23 19:38:47.63 fcD/yaWG.net
tkinterでつく


273:ったことあるけど、別に悪くないよ tkdocsのチュートリアルが結構しっかりしてる



274:デフォルトの名無しさん
15/06/23 19:56:55.85 R8jZDKIo.net
pathで躓いてる
binというディレクトリの下でしか動かないバイナリ を別のディレクトリから動かすにはどうすればいい?

275:デフォルトの名無しさん
15/06/23 20:06:10.26 kckphfdj.net
>>264
そのディレクトリをbinにリネームする以外に打つ手はない

276:デフォルトの名無しさん
15/06/23 20:21:51.72 wv+JII7F.net
スレちだし、聞き方が生意気だから教えてやらない

277:デフォルトの名無しさん
15/06/23 20:23:57.19 wv+JII7F.net
>>265
余計な事、言わんと黙ってて悩ませれば良かったのに!

278:デフォルトの名無しさん
15/06/24 01:29:41.38 e2++j1ht.net
>>262
開発環境と手に入る情報量の差?
GUIをコードだけで開発してたら効率悪いってんで、PyQt・PySideにはQtDesighner(QtCreator)、
wxPythonにはwxGladeっていうビジュアル的な開発環境がある
TkInterにもあるんだろうけどこれだってやつを聞かない
使用人口の差で困ったときに答えが見つかりやすいのが前者2つなんじゃないかと

279:デフォルトの名無しさん
15/06/24 02:30:10.98 D119baBl.net
>>266
きもちわる…

280:デフォルトの名無しさん
15/06/24 09:12:24.62 qjEYFQ4L.net
>>263
安心しました
ありがとう

281:デフォルトの名無しさん
15/06/24 10:00:21.60 ySM4xiac.net
>>205
なんで変更しなければならないんですか?

282:デフォルトの名無しさん
15/06/24 10:04:20.61 L+KbIIX3.net
>>268
Gladeもと元々GTKな気がする

283:デフォルトの名無しさん
15/06/24 10:47:21.39 GWC9jKuq.net
>>271
どこぞのNPO代表小学生みたいなこと言ってんじゃねえ

284:デフォルトの名無しさん
15/06/25 12:36:40.01 rwNizRxv.net
windowsならpyqt5一択
pythonでgui作る時点でそーすこーど公開を気にしてんじゃねえよ
個人ごときがpythonで作ったguiを有料で配るのなんてなんて需要ねえよ
仕事でやるなら会社がライセンス買うだろ
だから個人でwindows向けはpyqt5でいい

285:デフォルトの名無しさん
15/06/25 12:38:03.35 rwNizRxv.net
macでもlinuxでもwindowsでも動かしたいならtkにしろ
tkかpyqt5の二択で十分

286:デフォルトの名無しさん
15/06/25 20:14:15.78 VjgLzB4a.net
Linuxメインで簡単なGUIツール作るんだったら何がいいの?

287:デフォルトの名無しさん
15/06/26 03:39:38.77 TeHEn9G0.net
何度も言うよ
GTK は糞

288:デフォルトの名無しさん
15/06/26 09:30:50.13 /s2R/Gz1.net
pythonにCでいうところの#ifdef DEBUGみたいのないの?

289:デフォルトの名無しさん
15/06/26 09:55:38.57 /s2R/Gz1.net
すまん自己解決。if __debug__で、消すときは-Oオプションつけて実行か。

290:デフォルトの名無しさん
15/06/26 09:59:29.10 FScQfCb1.net
インデントの闇は深い

291:デフォルトの名無しさん
15/06/26 23:30:23.51 lmpExqE6.net
if a == b and c == d:
こういう文があるんですが行が長くなる場合があるので複数行に分ける方法を教えてください
if a == b and
c == d:
だとエラーになりました

292:デフォルトの名無しさん
15/06/26 23:42:02.09 tcE5k47V.net
()

293:デフォルトの名無しさん
15/06/26 23:45:24.88 Ni9a9rCI.net
全体を括弧で括るか、バックスラッシュを継続させる行末に置く
(a == b and
c == d)
a == b and \
c == d

294:デフォルトの名無しさん
15/06/27 00:22:25.19 KOTMWkTF.net
ファイルを読み書きモードで開いた場合、書き込み前の文字列が残っちゃうんですが
どうやって上書きできますか?
[a.txt]
a
b
c
[test.py]
with open("a.txt", "r+") as fp:
____fp.write("z")

295:デフォルトの名無しさん
15/06/27 00:25:49.25 KOTMWkTF.net
ぐぐってすぐ解決策見つかりました

296:デフォルトの名無しさん
15/06/27 04:40:06.78 8NDoKwy7.net
ぐぐってからききなさい

297:岡村隆史「嫌なら見るな」
15/06/27 08:29:56.28 yJT4XZQ/.net
新聞購読を止めて、月3000~4000円、年間36000~48000円の節約
新聞にそのような金を払う価値はない
ただでさえ要らない
なぜなら新聞は国民の方を向いておらず、広告主のための報道しかしないからだ
それに金を払って購読することは自らの首を絞める自殺行為に等しい

298:デフォルトの名無しさん
15/06/27 08:41:08.09 p3jpLBAy.net
class MyClass:
  def __init__(self):
    self.data = (1, 2, 3, 4, 5)
    self.index = 0
  def __iter__(self):
    return self
  def next(self):
    if self.index < len(self.data):
      self.index += 1
      return self.data[self.index - 1]
    else:
      raise StopIteration
for n in MyClass():
print(n)
Python2でエラーが出なくて、Python3でエラーが出るのですが理由がよくわかりません
超初心者にもわかるように解説お願いします

299:デフォルトの名無しさん
15/06/27 09:08:16.96 ZoA4Szzx.net
__next__() を使うとうまくいくと思います。
下記に関連する説明があります。
URLリンク(diveintopython3-ja.rdy.jp)

300:デフォルトの名無しさん
15/06/27 09:09:19.67 Z90g4rXx.net
仕様が変わったからです
next(self)は廃止され__next__(self)になりました

301:デフォルトの名無しさん
15/06/27 09:18:56.46 p3jpLBAy.net
>>289
>>290
理解しました、ありがとうございます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

MS Word なら win32com で全部 python で桶

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

print(test)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


421:FVg.net



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

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

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

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

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

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

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

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

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

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

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

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


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