Pythonのお勉強 Part4
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGhttp://www.python.jp/Zope/
python オフィシャルサイト
http://www.python.org/
前スレ
http://pc2.2ch.net/test/read.cgi/tech/1053955472/
ログや関連リンクは >>2-3
0002デフォルトの名無しさん
NGNG1 http://pc.2ch.net/tech/kako/965/965815778.html
2 http://pc3.2ch.net/test/read.cgi/tech/1020718991/
3 http://pc3.2ch.net/test/read.cgi/tech/1020718991/
pythonユーザー掲示板
http://mentai.2ch.net/prog/kako/965/965058106.html
人生の敗北者でも使えるPythonのお勉強
2 http://pc3.2ch.net/test/read.cgi/tech/1020682294/
3 http://pc2.2ch.net/test/read.cgi/tech/1053955472/
【インデント】ぱいそんぱいそん!3【ムネオたん】
http://pc3.2ch.net/test/read.cgi/tech/1036811974/
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
【愛と】人生の脱北者でも使えるPythonのお勉強 Part4【信頼】
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
0005デフォルトの名無しさん
NGNG自然に必要な事を理解できる所がまだある言語だと思う。
0006デフォルトの名無しさん
NGNG手が震えるそんな毎日。リロードなんか当たり前。しない時ない。
おかげで腱鞘炎です。腱鞘炎。2ちゃんのリロードで腱鞘炎。
トイレいってるときに限ってスレが立つ。そんなとき・・・!
腹立ちます。ほんっと、腹立つ。考えてない。
俺のトイレの時間を考えてない。。
そんな無責任で身勝手な1ばかりの中でこのスレの1は違った。
俺がリロードした瞬間に立ててくれた。これは1にとっても、俺に
とっても幸運だったといえる。ネタとしてはいまいちよく分からないでも
ないが、それでもこのタイミング。まさに阿吽。まさに以心伝心。
俺はいま2を取れる感激で胸がいっぱいだ。腱鞘炎を見てもらってる先生に
なんて言おうか?この喜びが伝わるだろうか?
いつか自伝の映画作成をさせて下さいと言われたらこのことはクライマックスに
持って来よう。 なにしろいつも2ゲットできませんでしたから。(笑
さて、、、記念すべきこの瞬間。悔しがる3や4の連中の姿が目に浮かぶ。
もう、おまえらとはレベルが違うぜ! 俺はこの瞬間から2ゲッターだ。
ちょっとどきどき、いまから「書きこむ」頂きます。
かろやかに、しなやかに、そしてスタイリッシュに! 2ゲットでございます!
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGインスタンス属性とクラス属性が頭の中でぐぢゃぐぢゃです。
例えば、オブジェクトを格納する配列をクラス内で使う場合、
class Spam:
def __init__(self):
self.hairetu = []
def addInstance(self, eggsobject):
self.hairetu.append(eggsobject)
とすればいいか、
class Spam:
hairetu = []
def addInstance(self, eggsobject):
Spam.hairetu.append(eggsobject)
のどちらがいいのでしょうか。
0013デフォルトの名無しさん
NGNGすべてのインスタンスで共通に使いたいんなら、後者。
インスタンス毎に別々にしたいんなら、前者。
0014デフォルトの名無しさん
NGNGインスタンス変数とモジュール変数で十分だ。
0015デフォルトの名無しさん
NGNGわかりますた。
はじめはメソッドを通さないと取り出せないのがインスタンス変数で、
そうでないのがクラス属性だと思っていました。
0016デフォルトの名無しさん
NGNG常駐していてキーが押されたときのイベント?を横取りするような
アプリケーションが作りたいのですが、Pythonで
このようなアプリケーションを作るにはどうしたらよいでしょうか?
0017デフォルトの名無しさん
NGNGhttp://sourceforge.net/projects/uncassist から入手できますが,
ソースコードは別のプロジェクトのCVS,
http://cvs.sourceforge.net/viewcvs.py/uncpythontools/pyHook/
にあります.詳細はソースコードに付属する example.py を参照してください.
from wxPython.wx import *
from pyHookManager import *
class myFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, None, -1, '',
style=wxTRANSPARENT_WINDOW| wxFRAME_NO_TASKBAR)
self.hm = HookManager()
self.hm.KeyDown = self.OnKeyboardEvent
self.hm.HookKeyboard()
def OnKeyboardEvent(self, event):
key_face = event.Key
if key_face == 'Q':
self.Show(False)
self.Destroy()
raise SystemExit()
else:
print 'Key:', key_face
if __name__ == '__main__':
app = wxPySimpleApp(0)
frame = myFrame(); app.SetTopWindow(frame); frame.Show(True)
app.MainLoop()
0018デフォルトの名無しさん
NGNGfrom wxPython.wx import *
from pyHookManager import *
class myFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, None, -1, '',
style=wxTRANSPARENT_WINDOW| wxFRAME_NO_TASKBAR)
self.hm = HookManager()
self.hm.KeyDown = self.OnKeyboardEvent
self.hm.HookKeyboard()
def OnKeyboardEvent(self, event):
key_face = event.Key
if key_face == 'Q':
self.Show(False)
self.Destroy()
raise SystemExit()
else:
print 'Key:', key_face
if __name__ == '__main__':
app = wxPySimpleApp(0)
frame = myFrame(); app.SetTopWindow(frame); frame.Show(True)
app.MainLoop()
0019デフォルトの名無しさん
NGNGWindows のものをつかってます。
0020デフォルトの名無しさん
NGNG思います.
http://www.wxpython.org/CHANGES.txt
0021デフォルトの名無しさん
NGNG乙カレー。
そういえば「乙」ってヘビみたいな形しとんなあ。
0022デフォルトの名無しさん
NGNG2.3.4.1 の Windows installer prompts to uninstall old version first.
ですか?
0024デフォルトの名無しさん
NGNG今パイソンできる人探してるんだけど?と言われた。見事に落とされ
ましたけど。
0025デフォルトの名無しさん
NGNGたぶん保守要員が欲しいんだと思うけど。
0026デフォルトの名無しさん
NGNGfor i in range(10):
l.append(1)
とやるのと
l = [1] * 10
とやるのではなにか違いはありますか?
0027デフォルトの名無しさん
NGNGつまり「1」が10個つくられる。
後者は、リストの各要素が同じオブジェクトを指す。
つまり「1」は1個つくられ、10箇所から参照される。
数値はimmutableだからこの場合問題ないけど、listみたくmutableな
オブジェクトでこれをやるとはまることがあるので注意。例:
l = []
for i in range(10):
l.append([1])
print l
l[0].append('spam')
print l
l = [[1]] * 10
print l
l[0].append('spam')
print l
0028デフォルトの名無しさん
NGNGいや、パイソン知らないんで名前しか知りませんって答えた。
おいらはPHP,PERL派なので・・・っていうかスクリプトはそれしか
知らない。で、テクノサービスで日本ではあまり人気の無いと
言われてる言語を使うということで少し感動したが、保守だったのかなー
あれは。
0029デフォルトの名無しさん
NGNGKaaEditっていうのがあるらしいけど、どこにも置いてない・・
普段は秀丸、Terapadとか使ってるんですけど
Pythonキーワードの強調ファイルとかどこにもない
仕方がないんで簡単なのは作ったんですけど・・なんか違う
あと、キーワード強調だけじゃなくって
例えば
if ....:
hoge
pass
って書くとpassに反応してオートインデントが解除とか
そういうのはないかなと
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG003229
NGNGだから、関連付けにはさくっと秀丸,Terapadとかにしてて
そのまま使い続けるみたいな
一応Meadowならpyモードあるかなと思って起動してみたことあるんですけど
何も起こらなかったのでそこで終了してました。
なんでpython mode が標準でついてないんだ・・・_| ̄|○
ttp://www.python.org/emacs/python-mode/
ここからスクリプトはとってこれたんですがモード設定の仕方がよく分かりません
Meadow\1.15\lisp\progmodesの中に入れるだけじゃダメ?
0033デフォルトの名無しさん
NGNGwindowsならxyzzyでもいいんじゃない。
(autoload 'python-mode "python-mode" "Python editing mode." t)
(nconc auto-mode-alist '(("\\.pp$" . python-mode)
("\\.pyw$" . python-mode)
("\\.py$" . python-mode)))
0034デフォルトの名無しさん
NGNG自分でエディタを作るとした場合なんだけど、
構文強調っていうの?
キーワードなんかに色つけるやつ、
あれってどういう仕組みで実現すればいいんですか?
003529
NGNGperl-modeとかjava-modeの設定まんま写そうとして.も場所分からずで止まってました
>>34
プログラム内部で構文木作ってるなら、キーワードとマッチングとか
行ベースでデータ持ってるなら、行の文字列を正規表現とかで
マッチングとって強調表示させてるんじゃないの?
0036デフォルトの名無しさん
NGNGPeggyは?
http://www.interq.or.jp/japan/s-imai/python/peggycrec.html
Free版のPeggyでも動作するはず。
その場で実行とかはできないかも。
>>34
仕組みはいろいろ。
yaccとかでやる人から、正規表現という人もいる。
単純のならPython スクリプトをHTMLにするスクリプトとか参考になるかも。
http://www.egenix.com/files/python/py2html.py.html
http://aima.cs.berkeley.edu/python/py2html.html
0037デフォルトの名無しさん
NGNG最近お気に入りのサクラエディタにキーワードファイルが付いてるね。
でもパイソンモードの設定がないから、自前で設定しないといけないみたいだね。
0038デフォルトの名無しさん
NGNG自分はMeadowとxyzzy両方使っているんですが。
003916
NGNGWindows上でイベントをフックすることは出来るようになったのですが、
キーをプログラムから入力(スクリーンキーボードの様に)
するにはどうしたらよいでしょうか?
0040デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/scripting/default.htm?/scripting/windowshost/doc/wsMthSendKeys.htm
# the above URL also documents the codes to use with SendKeys
import win32api
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("calc")
win32api.Sleep(100)
shell.AppActivate("Calculator")
win32api.Sleep(100)
shell.SendKeys("1{+}")
win32api.Sleep(500)
shell.SendKeys("2")
win32api.Sleep(500)
shell.SendKeys("~") # ~ is the same as {ENTER}
win32api.Sleep(500)
shell.SendKeys("*3")
win32api.Sleep(500)
shell.SendKeys("~")
win32api.Sleep(2500)
0041デフォルトの名無しさん
NGNGいわれたのですが、この2つを解決するには具体的には何をインストールしたら
いいのですか?
0042デフォルトの名無しさん
NGNGhttp://www.pygame.org/
ページ右側にDependenciesってかいてるっしょ。
0043デフォルトの名無しさん
NGNGオートインデントさせることはできますか?
0044デフォルトの名無しさん
NGNGunicodeに変換してやらないと正しくマッチングできないんですよね?
なんとか高速化したいのですが、術はあるのでしょうか?
0045デフォルトの名無しさん
NGNG当LWの記事におけるRubyの扱いと、諸Ruby記事における
Pythonの扱いの差に思わず笑いがこみ上げますた。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG検索したい文字列が英数字なら EUC-JP のままで特に問題ない。
ただしプログラムは文字のバイト長を考慮したものにしなければならない。
検索したい文字列が日本語なら Unicode を介するのが無難。
EUC-JP だとこんな↓おかしなことになっちゃうけど
>>> "こんにちは".find("海")
1
Unicode だと正しく処理できる。
>>> unicode("こんにちは", "euc-jp").find(unicode("海", "euc-jp"))
-1
検索文字列が英数字なら↓こんな風に EUC-JP のままでも正しくマッチングできるけど
>>> "日本語EUC".find("EUC")
6
日本語が2バイトで1文字であることを考慮したプログラムにしないといけない。
その点、Unicodeなら↓こんな風に文字単位になる。
>>> unicode("日本語EUC", "euc-jp").find(u"EUC")
3
0048デフォルトの名無しさん
NGNGBoyer-Moore アルゴリズムで文字列検索するクラスをごりごり書いたことがある。
>>> wstring.WString("こんにちは").find("海")
-1
>>> wstring.WString("日本語EUC").find("EUC")
3
>>> print wstring.WString("日本語EUC")[:3]
日本語
けど、今だったら素直に Python 2.x の Unicode を使って書いちゃう気がする。
こんなトリッキーな手段を使っても早くなるかどうか分からんしね。
0049デフォルトの名無しさん
NGNG生産性も悪いし。PEP 263 に従っておけば、任意のエンコーディングで
u"なんたら" って書けばそれと等価になるようにして欲しい。
0050デフォルトの名無しさん
NGNGサンクスコ
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGPython の問題じゃなく Unicode とレガシー文字コードの併用の本質的な問題。
実行時の変換コストが問題なら予め UTF-8 とかに変換しとくとか。
変換テーブルの参照が起こらない分、レガシー文字コードよりは早そう。
0053デフォルトの名無しさん
NGNGよんでみたけど、Embedded UNIX のほうはすごく参考になった。
自分が普段使っている Python と方向性が異なっていたので
最近の Python もきっちりおさえてあったし。
Linux World のほうは、、、
執筆者の力量が思いっきり反映されている内容だった。
0054デフォルトの名無しさん
NGNGPythonからWindowsを弄ることについてもっと深く勉強したいのですが、
何処を見るのが良いでしょうか?
0056デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/0596000960/
ちなみに Cookbook は Web より本のほうが好きで愛蔵してますです。
そんなぼくは PSL 買って幸せになれるでしょうか。
0057デフォルトの名無しさん
NGNGそれはネットで公開されているし、対応している Python のバージョンも古いよ。
どうせ買うなら、nutshell とかは?
005856
NGNGPython in a Nutshell は附属ドキュメントとかぶる部分が多いので躊躇しているんですよね…
でもふんぎりがついたです。思いきって両方注文しちゃおうかと思います。どもでした。
0059デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGというように file 型を継承したときに、デフォルトで w モードでインスタンスを作るようにするのと、
IOException をキャッチするようにするにはどうすればいいのですか?
いまは
a = A(filename, 'w')
とやっているのですが、少しダサいので。
0063デフォルトの名無しさん
NGNGdef __init__(self, name):
file.__init__(self, name, 'w')
f = A('name')
f.write('spam')
f.close()
0064デフォルトの名無しさん
NGNGなんか処理
except IOException, ex:
キャッチした時の処理
else:
キャッチしなかった時の処理
0065デフォルトの名無しさん
NGNGwxFrame(None, -1, "Hello World")
のこの場合では-1のIDについてよくわからないのですが、
どのようなことをやっているのでしょうか?Noneじゃだめですか?
0066デフォルトの名無しさん
NGNG割り当てます. ID は整数型でなければならないので None は使えません.
割り当てた ID は GetId() メソッドで取得できます.
0067デフォルトの名無しさん
NGNGlistの持つメソッドで禁止したいもの(append, extend, remove, sort など)
はどう実装すればいいのでしょうか?
0068デフォルトの名無しさん
NGNGlist を継承して当該メソッドをオーバーライドすればよいと思われ。
006967
NGNGそれはわかっているのですが、どう禁止するかってことがわからないんです。
何か例外投げるのがよいと思うのですが、定石があるのかと思ってお聞きしました。
#ま、どーせ自分しか使わないんで、その辺適当でもいいんですが、
#勉強を兼ねて。
0070デフォルトの名無しさん
NGNGそういう場合は継承しない。という手もある。
委譲を利用する方が手としては妥当と思う。
Javaなどでは、継承はめったにしない方向が基本で、継承する場合は継承元が
継承をする事を規定したクラスでないといけない。(Abstractなど)
0071デフォルトの名無しさん
NGNGNotImplementedError例外がある。が勉強以上の用途にはお勧めしない。
0072デフォルトの名無しさん
NGNG> file.__init__(self, name, 'w')
__init__ の最初の引数に self を指定しないとだめなんですね。
これではまった。
0073デフォルトの名無しさん
NGNGclass A(file):
def __init__(self, name):
file.__init__(self, name, 'w')
def __getattribute__(self, name):
if name == "write":
raise AttributeError
else:
return super(A, self).__getattribute__(name)
という手もある。
007467
NGNGなるほど。
「委譲」というのはOOPの用語でしょうか?
class MyList:
def __init__(self,len):
self.data = [None for i in range(i)]
の様にして、__getitem__とか必要なものだけ実装してやるという
ことでいいのかな?
0075デフォルトの名無しさん
NGNGもれも時々混乱する時がある。
- インスタンス.メソッド() を呼ぶ時は、暗黙にselfがcalleeの引数に加えられる。
- クラス.メソッド() を呼ぶ時は、それはならない。
と最近理解したのだが、よいのかな?
0076デフォルトの名無しさん
NGNG使ったこと無いけど。
0077デフォルトの名無しさん
NGNGそうOOPの用語。
もとのクラスの機能に自分の動作をゆずりわたすように作成する。
継承はあまり好ましくない、というのがOOPの現在の流れ。
0078デフォルトの名無しさん
NGNG桶。ちなみに、インスタンス (self) に結びつけられたメソッドのことを
bounded method (束縛されたメソッド) と呼ぶ。
>>> A.f
<unbound method A.f> ← クラスオブジェクトのメソッドはインスタンスに束縛されていない
>>> a = A()
>>> a
<__main__.A instance at 0x40246e6c> ← インスタンス
>>> a.f
<bound method A.f of <__main__.A instance at 0x40246e6c>> ← インスタンスに束縛されている
>>>
束縛されていてどのインスタンスに対するメソッド呼び出しなのかは明らかなので
self を書かなくてもいい、というわけ。クラスについては正反対のことが言える。
007978
NGNG× bounded method
○ bound method
(bound は動詞 bind の過去分詞だっつーの>漏れ)
0080デフォルトの名無しさん
NGNG委譲を使った簡単な例をおながいします。
0081名無しさん
NGNGなんで?
isaなものは継承すべきじゃないの?
0082デフォルトの名無しさん
NGNGってことが、最近になって明らかなってきたってことじゃないの?
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGそれぞれに一長一短があるし。すべて委譲でやろうとすると無理が出る気がする。
デザインパターンの Templete Method とか Visitor は継承を前提にしてるよね。
この二つのパタンを委譲で実現するのは何か違うなーって感じ。
それにひきかえ Mediator パタンは委譲そのもの。継承で書くのはムリポ。
流行りとか比較的いい(悪い)とかじゃなくて「適材適所」なんじゃないかなぁ。
008584
NGNGcodecs モジュールの StreamReaderWriter が委譲の例になってると思われ。
委譲先の Reader と Writer (StreamWriter クラスと StreamReader クラス) は
Codec クラスを継承してる。委譲と継承が使い分けられている。
0086名無しさん
NGNGなんで?
0087デフォルトの名無しさん
NGNGhttp://www.faqts.com/knowledge_base/view.phtml/aid/4332
>>81
何をもって is-aとするのか、が判断つかない場合の方が多いって事が証明された。
>>82
最近でなくちゃんとした最初の論文は1999年あたりに出ていると思う。それ
より前にもあったかも。
2000年のJava読書会 http://www.t3-jpn.com/bof/kakugen1.html ですでに委
譲が普通になりつつあるとの記述がある。
0088デフォルトの名無しさん
NGNG実装方法によります。
>>84
それは確かです。
ただ単純化すると、
元のクラスよりメソッド数減少とか、機能低下する場合は委譲
元のクラスを拡張する場合は継承をまず考えてみる
というのが一つの方法。
議論元になったやつはメソッド数や機能減らすので委譲の方が比較的安価に作
成できるはず。
0089デフォルトの名無しさん
NGNG補足
is-a とか has-a とかで継承、委譲判断するのは古い考え方です。
Javaでは継承はFrameWorkを利用する時以外ではほとんど利用されなくなってき
ている。
FrameWorkの継承を is-a というのはかなり変だと思う。
0090デフォルトの名無しさん
NGNGひらがなをカタカナに変換するのに、
正規表現で簡単に書くことってできるでしょうか?
自分は結局それぞれの組を定義してやったんですが、
もっと簡単にできるはずだと思いまして。
0091デフォルトの名無しさん
NGNG無理だと思う。正規表現は集合間の写像は表現できない。
ひらがなとカタカナの文字コードの連続性を利用するといいかも知れない。
>>> print re.sub(u"[\u3041-\u3093]", lambda m: unichr(ord(m.group()) + 0x60), unicode("ぴちょん", "euc-jp")).encode("euc-jp")
ピチョン
>>>
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGJava での方法論って Python でどれぐらい当てはまる?
個人的にそのうちちゃんと比較検討してみたいなぁと思ってるんだけど、
オブジェクト指向の議論、特に Gamma のデザパタの実現例なんかは
型付けの厳しい言語を前提にしているところが多いなぁという印象がある。
Python だったらこうは書かないかも、みたいな(うまい例が出ない。スマソ)
Python に特化したデザパタの本が欲すぃ。誰か書いてくんないかな。
0094デフォルトの名無しさん
NGNGpykfとか利用してshift-JISをEUCに変換しちゃえば?
もしくはpykfを改造すればできるかも。
0095デフォルトの名無しさん
NGNG> Python に特化したデザパタの本が欲すぃ。誰か書いてくんないかな。
洋書ならある。
OOPの方法論はOOPとして利用するかぎりだいたいあてはまる。
そもそもデザパタとかは再利用をかなり強く意識してるから、pythonで巨大ア
プリ書く場合は結構役に立つ。
書きすての場合はいらない。
あと、デザパタは関数型言語利用するとその存在意義はほとんどない。
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG型付けがが弱いのとオーバーロードがないことから、「いわゆる」デザインパターンの
いくつか(多く?)は Python, Ruby などにはあまり関係がないと思う。
0098デフォルトの名無しさん
NGNGDesign Patterns in Dynamic Programming
ttp://norvig.com/design-patterns/
0099デフォルトの名無しさん
NGNG委譲 = メソッドの一部を書き換える?書き換えたもの以外はもとのものを利用?
0100デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGclass ShopClerk:
def occupation(self):
return 'shop clerk'
class Lumberjack:
def occupation(self):
return 'lumberjack'
class Person(ShopClerk):
pass
#######
>>> man = Person()
>>> man.occupation()
'shop clerk'
>>> man.__class__.__bases__ = (Lumberjack,)
>>> man.occupation()
'lumberjack'
0103デフォルトの名無しさん
NGNG0104103
NGNG0105デフォルトの名無しさん
NGNGttp://www.python.org/cgi-bin/moinmoin/PatternProgramming
ttp://www.thinkware.se/cgi-bin/thinki.cgi/PythonPatterns
ttp://dales.rmplc.co.uk/Duncan/accu/pythonpatterns.html
ttp://europython.org/Talks/Slides/ep03_pydp.ppt (from ttp://europython.org/sessions/talks/slidespapers)
0106デフォルトの名無しさん
NGNGお。感謝。読み応えありそう。
0107デフォルトの名無しさん
NGNGhttp://www.python.jp/Zope/articles/tips/regex_howto
0108デフォルトの名無しさん
NGNG和訳は http://www.python.jp/pub/doc_jp/lib/module-re.html
にあります.
「ニシキヘビを飼おう」にも正規表現の話題があります.
http://www.f7.ems.okayama-u.ac.jp/~yan/python/python09.html
また,Google で「Python 正規表現で」検索したら,
「Python reモジュールで使える正規表現演算子」
http://www.kt.rim.or.jp/~kbk/regex/pythonre.html
をはじめ3210件もヒットしました.ご自分でも探してみてください.
0109デフォルトの名無しさん
NGNGhttp://www.amk.ca/python/howto/regex/
0110109
NGNG0111デフォルトの名無しさん
NGNGふるかわさんの日本語訳はよみやすくていいね。
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNGls -lt ~/python してみるとこんな感じ。
dml2html.py 日記データ(独自XML形式)をHTML形式に変換
dailynews2html.py NHK World Daily News のニュース記事を一括ダウンロード
dailynews2text.py 同上。こちらはテキスト形式で出力。cronで定期実行して自分にメール
namiki.py IRCロガー。某チャンネルで24時間ログを取っている。よく落ちる
daisy.py PILを使った画像ビューワ。サムネイル表示でグロ画像のダメージを最小化
gtkhtmlconv2.py UnicodeのテキストをHTMLの実体参照に変換するための簡易GUIエディタ
jst.py www2.crl.go.jp/cgi-bin/JST.cgiから時刻データをゲット
asahi_upload.py FTPでプロバイダにファイルをうpするためのコマンドラインツール
shuffle.py 入力されたテキストの行をランダムに入れ替えるフィルタ(sortコマンドの反対)
wvHtml2txt.py wvHtmlコマンドを利用してWord文書をプレインテキストに変換
konbu.py Pythonのコデックを使った文字コード変換フィルタ(iconvコマンドみたいなもの)
swf2html.py SWFファイル表示用のHTMLファイルを自動生成
codecs_kr/ 韓国・朝鮮語コデック
post2ch.py 2ちゃんにカキコするためのライブラリ
こうして見るとおもちゃ箱をひっくり返したようだ。
0115デフォルトの名無しさん
NGNGC:\>dir /b "%HOMEDRIVE%%HOMEPATH%\My Documents\Python\*.py"
accesspoint.py - telnetlibモジュールでルータを操作
arkanoid0.py - ブロック崩し風
check_dns.py - 特定のDNS名がリゾルブできるかをテストする
discard.py - UDP Discardクライアント
grep.py - たぶんgrep
hexdump.py - BSDのhd風ダンプツール
LED.py - 7セグメントLED
ledit.py - Tkinterのテキストエディタ
linux.com.py - japan.inux.comのRDFファイルを編集して表示
makeram.py - Realmediaの"ram"ファイルを作る
ping0.py - ICMP Echo送信
ripv2send.py - RIPv2アップデート送信
sstp.py - SSTPプロトコルクライアント
t21dnd.py - Tkinterドラッグアンドドロップ(試作)
tkgrep0.py - Tkinter版grep風
tkicon1.py - Tkinterでウインドウアイコン設定(試作)
udpecho.py - UDP Echo クライアント
udpechosv.py - UDP Echo サーバ
unzip.py - 複数のzipファイルを一挙に展開(特殊用途)
videobot.py - Webサイトを巡回してvideoファイルをダウンロード
win32saeko1.py - ms officeの冴子先生を操る
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG> dailynews2html.py NHK World Daily News のニュース記事を一括ダウンロード
> dailynews2text.py 同上。こちらはテキスト形式で出力。cronで定期実行して自分にメール
この2つを特におながいします。
0119デフォルトの名無しさん
NGNGそんなだから
スキルが上がらないのだ
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGむう。意外なものがリクエストされてるな。
NHK World Daily News のニュース記事は8ヶ国語あって、
漏れのはポルトガル語用なんだけどいいかな?
うpするのは構わないけど、こーゆーのはウェブページの構成が変わると
すぐ動かなくなるから自作&自力で修正できないとツラいかも。
全然難しくないプログラムだからよかったらチャレンジしてみて。
作り方は以下の通り。
1. 目的のウェブページのソースを見て、欲しい部分の前後の特徴(タグ、コメント等)を探る
2. urllib でウェブページをダウンロード
3. テキストを走査して欲しい部分を切り出す(1行ずつチェック、もしくはre.search()で検索)
4. 切り出した部分を整形(段落詰めしたりエンコードをかえたり)して出力
コツが分かればいろんなウェブページから必要な部分だけ抽出できるようになるよ。
ちなみに、同じ URL で内容が定期的に更新されるウェブページの場合、
プロキシのキャッシュが邪魔なことがある。その場合は以下のようにするといい。
urlopener = urllib.FancyURLopener()
urlopener.addheader("Pragma", "no-cache")
file = urlopener.open(URL)
漏れは同じ要領で CNN.com と The Japan Times の記事も毎日自分にメールしてる。
ぴちょんは語学の友。
(それでもやっぱり欲しかったら言ってちょ。うpします)
0122デフォルトの名無しさん
NGNGperl の while (<>); #だっけ?とか、
ruby の while line = gets に対して
python だと
while 1:
lines = sys.stdin.readlines(8*1024)
if not lines: break
for line in lines:
pass
みたいになったりするので、そーいう用途に使い辛いそという
個人的厨房的感想を持っていたりするのだけれど。
0123デフォルトの名無しさん
NGNGfileinput使え
0124デフォルトの名無しさん
NGNGPython 2.3 だとこういう風に書けるよ。
for line in sys.stdin:
...
もっとも漏れは古参の蛇使いなんで昔ながらの書き方がクセになってる。
打鍵数の多寡とかは気にしないことにしてる。むしろクドい方が好きかも(w
while 1:
line = sys.stdin.readline()
if not line:
break
...
0125デフォルトの名無しさん
NGNG明示的なほうが分かりやすいことが多い
ただし明らかに処理内容が分かる場合は
省略したほうが分かりやすくなる
0126デフォルトの名無しさん
NGNGfor line in fileinput.input():
process(line)
0127デフォルトの名無しさん
NGNGほのぼのとした話題がくるとほっとするね。
0128121
NGNG記法は今風にしてみた。要 Python 2.3。
# -*- coding: EUC-JP -*-
import codecs, re, sys, urllib
# Expected page structure:
# <a href="/business/"><font size="-1" color="#000000"><b>円相場</b> 108円42銭 (18:39)</font></a>
PATTERN = u'<a href="/business/"><font size="-1" color="#000000"><b>円相場</b> '
re_yen = re.compile(ur"(\d+)円(\d+)銭 \((\d\d):(\d\d)\)")
Reader = codecs.getreader("EUC-JP")
urlopener = urllib.FancyURLopener()
urlopener.addheader("Pragma", "no-cache")
file = Reader(urlopener.open("http://www.asahi.com/"))
for line in file:
pos = line.find(PATTERN)
if pos < 0:
continue
match = re_yen.match(line, pos + len(PATTERN))
if not match:
raise RuntimeError, "unexpected page structure"
output = u"%s時%s分現在の円相場は%s円%s銭です。\n" % (
match.group(3), match.group(4),
match.group(1), match.group(2))
sys.stdout.write(output.encode("EUC-JP")) # environment dependent
break
else:
raise RuntimeError, "unexpected end of file"
file.close()
0129デフォルトの名無しさん
NGNGPython で仮名漢字変換を制御するのに
うまい方法はありますでしょうか?
0130デフォルトの名無しさん
NGNGmigemo つくれ。
0131デフォルトの名無しさん
NGNGどもありがとうございます。Pythonは触ったことすらなく、今から
勉強してみようかと思ってた所存でございます。Perlなら少しわかります。
参考にさせていただきますね。
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGwindowsならwin32comあたりを経由してIME制御のAPIを叩くくらいで、
特にイイ方法というのは思いつかない。
UNIX系だとどうしたもんかな。
cannaとか仮定してサーバーとお話しか。かなりめんどくさそう。X-(
0135デフォルトの名無しさん
NGNGmailman 専用の(日本語)メーリングリストがあったと思うけど。
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNGSJIS とか EUC.JP とかのテキストを、unicode に直してからパースするのは
遅くないですか? regular expression とか。
0138デフォルトの名無しさん
NGNG遅いよ。でも必要なら仕方ない。
>>128のスクリプトは安全側に倒して書いた。Asahi.com のページの文字コードは
EUC-JP で、漏れは EUC-JP がデフォの OS を使ってるから、サンプルとして書く
のでなければ文字コード変換を一切使わなかったかも知れない。
これがもっと複雑な文字列操作になると Unicode を使わざるを得ない。
文字のバイト長を意識しながら書くのは結構大変だからね。
Unicode に変換することによって楽になる部分があるのは確か。
それに、遅いと言ってもたかが知れている。
高速化のためのトリッキーなコードにはバグが発生しやすい。
遅いのが問題なら速いマシンを使う。それが賢いプログラマってもんだよ(ナンチャッテ
0139デフォルトの名無しさん
NGNGttp://pitecan.com/fugo.html
0140デフォルトの名無しさん
NGNGそうそう(w
なんでソニーCSLのアドレスじゃないんだー?と思ったんだけど
そーいえば増井さん、産総研に移ったんだっけ。
この人の考えること、面白いよねー。ストトン音楽とか。大好きだ。
0141デフォルトの名無しさん
NGNGUniocdeスクリプト(書記体系)とかを使ったマッチングって
サポートしてますか? ……恐らく当分使わないけど(ぉ
0142デフォルトの名無しさん
NGNG対応してないんじゃないかな。最新のドキュメントにそれらしい表記がない。
http://www.python.org/doc/current/lib/re-syntax.html
0143デフォルトの名無しさん
NGNGどうして自前で仮名漢字変換エンジンを制御したいの?
その必要があるケースはあまり多くないような気がするんだけど。
0144129
NGNGアナグラムを自動生成できるかなと思いまして。
それで入力文字列をひらがなにして、
それを並び替えた後で仮名漢字変換したらどうかな、と思ったわけです。
でも考えてみると、仮名漢字変換できたとしても、
それが文として成り立ってるかどうかを判定するのは難しそうですね。
0145デフォルトの名無しさん
NGNGttp://www.unixuser.org/~euske/doc/niwatori/
みたいな奴?
0146デフォルトの名無しさん
NGNG「コレクション」の「リスト」という項目で微妙に躓きました。
>>>aList=[ ]
>>>another=[1,2,3]
>>>print another
[1,2,3]
とあったのですが、一行目なしにしてみても問題なく表示できました。
一行目の >>>aList=[ ] はどういう意味があってつけているんですか?
あと、「コレクション」の意味がわかりません。
「Pythonでサポートされているコレクションについて説明する」といきなりあり、
その後リストについての説明です・・・。
0147デフォルトの名無しさん
NGNGデモじゃないでしょうか.
コレクションには,「集合」とか「集団」という意味があります.ここでは
データの集合を表すデータのことをコレクションと読んでいます.
例えば another は 1 と 2 と 3 という三つの数値データの集まりを表す
コレクションです.Python のドキュメントでは,他のデータを中に入れて
いるという意味でコンテナと呼んだり,複数の要素の組み合わせを表すので
コンパウンド(複合体)と呼ぶこともあります.
http://www.kab-studio.biz/Programing/Dictionary/Words.html#Collection
http://www.kab-studio.biz/Programing/Dictionary/Words.html#Compound
http://www.kab-studio.biz/Programing/Dictionary/Words.html#Container
なども参考にしてみてください.
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG閉じられていないタグを管理するスタックがある
コメントやスクリプトタグの処理は自分で書かなければならない
エンティティ文字の処理を自分で書かなければならない
HTMLParser.HTMLParser()
タグの対応や入れ子は自分で管理しなければならない
エンティティ文字を処理するためのメソッドがある
スクリプトやコメントタグを処理するためのメソッドがある
0150デフォルトの名無しさん
NGNG仮名漢字変換は候補や文節区切りを人手で決めないといけないから
自動処理には向かないんじゃないかな。読みに対応する単語のリストが
欲しければ仮名漢字変換エンジンの辞書を流用する方が手っ取り早い。
それよりは>>145のリンク先でeuskeさんがやってるみたいに、
品詞情報と文を構成するための規則(文法)を与えておいて、
読みに現れる平仮名が順不同でたまたま同じになる文の組合せを
探す方が簡単な気がする(時間はすごくかかりそうだけど)。
0151デフォルトの名無しさん
NGNGむ、なんか見覚えあるような。確かその後に aList 使って
メソッドの説明してたような...
0152デフォルトの名無しさん
NGNGコマンドラインベースのシンプルなものだけど、
ちょっと生活が便利になるものを自分で作るのって楽しいね。
0153デフォルトの名無しさん
NGNG\共有共有!ぱいそんぱいそん!/
nyヽ( ´∀`)人(´∀` )ノpy
0154デフォルトの名無しさん
NGNG(・∀・) オッ?
(・∀・) L、M、N、O、P、Q、R・・・
Σ(゚∀゚) オオッ!!
(゚∀゚) ny → oy → py
(゚∀゚) キター!!
0155デフォルトの名無しさん
NGNG至言です.
0156129
NGNGうーん、そうですか。
となると1文か文節単位でデータを切り分けてから
chasenとかで形態素解析してそれぞれの読みを求める、って感じかなあ。
やればできそうだけど、これだとあんまり面白みがないですね。
他に面白そうなネタを探してみます。
ありがとうございました。
0157デフォルトの名無しさん
NGNG0158超初心者
NGNG円の面積を求めるプログラムを書きました。
で、Run script(実行はこれですよね?本にはRun moduleとあったのですが)を
クリックしたのですが、なんかダイアログが出ます。
一度保存してから実行したらいけたのですが。
実行前に保存しないと駄目なんですか?
0159デフォルトの名無しさん
NGNGそのとおりです。IDLEでスクリプトを実行するには、
一旦ファイルに保存する必要があります。Ctrl+S, F5 です。
編集バッファが未保存の状態であるとき、ウインドウタイトルが
*muwahaha.py* のように“*”で囲まれた形になります。
IDLEはPython2.3で大改修されたので、あなたの“本”と
若干違うことがあるかもしれません。
円の面積って、こんなんでしたっけ?
import math
def circle_area(r):
"""circle_area(radius) -> area"""
if r<0: raise ValueError, 'radius should not be negative'
return r**2*math.pi
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGVCは持ってないのでBCCで。
ドキュメント通りにやってbuildまでは成功したんですけど、
installができませんでした。
setup.py installすると「VCを出せ」とか言って止まるし、
かといってinstallと--compilerは併用できんとかぬかすし。
どうすればいいんだか。手動コピーで問題ないんですか?
0162デフォルトの名無しさん
NGNGsetup.py install がやってることは実質的にはファイルのコピーだから
手動で site-packages ディレクトリにインスコすれば良いと思うよ。
うまくいったら動作報告きぼーん。
0163デフォルトの名無しさん
NGNGpython setup.py bulid --compiler=bcpp
とかでコンパイラ選べるです、JapaneseCodecsに限らず。
>うまくいったら動作報告きぼーん。
単純にコピって動かしてみました。
import japanese とか、 # -*- coding=sjis -*- とかはうまくいってる模様。
# ……ってやってる間にPyJUGにWin32用インストーラが上がってた罠。
0164デフォルトの名無しさん
NGNG>>> r = re.compile(r"([a-z]+)(?:[ \t]+(?:([0-7]{3})|(text|binary)|([a-z]+)))*")
>>> r.match("file").groups() # 1
('file', None, None, None)
>>> r.match("file 604").groups() # 2
('file', '604', None, None)
>>> r.match("file 604 text").groups() # 3
('file', '604', 'text', None)
>>> r.match("file 604 text alias").groups() # 4
('file', '604', '', 'alias')
>>>
4 番目で \3 に 'text' ではなく空文字列が入るのですが、
何故なのでしょうか?
0165164
NGNGPerl で同様のことをしてみたのですが、
$r = '([a-z]+)(?:[ \t]+(?:([0-7]{3})|(text|binary)|([a-z]+)))*';
@a = ("file", "file 604", "file 604 text", "file 604 text alias");
foreach $i (@a) {
$i =~ m/$r/;
print "$i: `$1', `$2', `$3', `$4'\n";
}
出力を見てみると、
file: `file', `', `', `'
file 604: `file', `604', `', `'
file 604 text: `file', `604', `text', `'
file 604 text alias: `file', `604', `text', `alias'
と、$3 に 'text' が入ってますし……
0166デフォルトの名無しさん
NGNGどの段階で fix されたかわからないけど、 2.4 ブランチでは fix されています。
Python 2.4a0 (#1, Dec 15 2003, 08:37:53)
[GCC 3.3.1 (cygming special)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> r = re.compile(r"([a-z]+)(?:[ \t]+(?:([0-7]{3})|(text|binary)|([a-z]+)))*")
>>> r.match("file 604 text alias").groups()
('file', '604', 'text', 'alias')
2.3.3c1 ではテストした限り直ってないから、さっきリリースされた 2.3.3 でも駄目だと思う。
0167デフォルトの名無しさん
NGNGPython 2.3 をお使いでしょうか?
いまちょっと 2.2.3 & 2.1.3 でテストしてみると、両方のバージョンで
#3
('file', '', 'text', None)
#4
('file', '', '', 'alias')
になりました。
0168164
NGNG>>167
Python 2.3.2 (#1, Oct 9 2003, 12:03:29)
[GCC 3.3.1 (cygming special)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
です。
>>166
ありがとうございます。
まさか Python 側が原因とは……
2.4 が来るまでは正規表現以外で処理するしかないですね。
0169デフォルトの名無しさん
NGNG> さっきリリースされた 2.3.3 でも駄目だと思う。
http://www.python.org/
つながらねー
ヲレだけか?
0170デフォルトの名無しさん
NGNG表示するページなし http://www.python.org/ こんなんでました。
0171デフォルトの名無しさん
NGNG仕事で忙しいのか?
0172デフォルトの名無しさん
NGNG新しい何かが増えたわけでもなし、語るべきこと自体はそうない感じ。
0173デフォルトの名無しさん
NGNGwhile j<=12: #条件指定
print "%d×12=%d" %(j,j*12)
j=j+1 #最後にjをインクリメントする
と本にあったのですが、最初と最後の分の意味がわかりません。
j=1 #変数の初期化 これはなんなんでしょう?
なしでコードを書いたら実行できませんでしたし。
最初にこれを書く意味がわからない。
j=j+1 #最後にjをインクリメントする
この文は矛盾してませんか?
j=j+1って。
それにインクリメントの意味がわからない。
プログラミング辞書にも載ってません。検索してもよく判らない。
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG【インデント】ぱいそんぱいそん!3【ムネオたん】
http://pc3.2ch.net/test/read.cgi/tech/1036811974/
0176デフォルトの名無しさん
NGNGwhileとprintの行は分かるんですね。すごいすごい!
0177デフォルトの名無しさん
NGNGj = 1 のような文を代入文と呼びます。
この代入文は、j という名前の変数に 1 という値を代入する、という意味です。
同様に、j = j + 1 は変数 j の現在の値に 1 足した値を j に代入するという意味になります。
つまり、代入文に使われる = は数学の等号の意味とは違います。
また、インクリメント (increment) は「増やす」という意味の英語です。
プログラミングの文脈では「値を1増やす」という狭い意味でも使われます。
逆に、「(値を1) 減らす」ことをデクリメント (decrement) と言います。
0178177の続き
NGNGPython では、二つの値が等しいかどうかを調べるには == という比較演算子を使います。例:
>>> j = 1
>>> j == 1
True
>>> j == 0
False
>>>
ここで、j == 1 のような式を条件式と呼びます。値は真偽値です。
また、数学の等号の意味で「等しい」という主張は次のように表現できます。
>>> assert j == 1
>>> assert j == 0
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
>>>
assert は「主張する」という意味の英語で、assert 文は (代入文と同様に) 一種の Python の文です。
最初の assert 文は条件式の値が真なので何も起こりません。
次の assert 文は条件式の値が偽なのでエラーが起こっています。
このような assert 文は、プログラムの実行途中で変数に予期しない値が入っていないか
チェックするために利用することができ、プログラムのデバッグの際に役に立ちます。
>>174
お前の方こそネタスレに逝け。そのまま帰ってくるな。
0179デフォルトの名無しさん
NGNG>>> ←これの説明は?
0181デフォルトの名無しさん
NGNG>お前の方こそネタスレに逝け。そのまま帰ってくるな。
マターリ逝こうよ。ヽ(´ー` )ノ
0182デフォルトの名無しさん
NGNG勝手に表示されて、この後に命令を書けばいい。
人が入力する必要はない。
... ←これも同様。
Unixとか知ってる人は、シェルの$とか%とか#とかと同じモンだと思えば、それでだいたいあってる。
0183177
NGNG173がネタ(釣り)だと思う方がどうかしてる。相当2ちゃんに毒されてるな(w
つーか、釣りだと思っててもクソ真面目にマジレスしてやれ。
このスレがいつか HTML 化されて Google で引っかかるようになったときに
インクリメントだの assert だので検索した香具師の役に立つかも知れないだろ?
0184デフォルトの名無しさん
NGNGいちいち糞真面目に答えるやつも邪魔だ。アホが集まってくる。
0185177
NGNG|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽそんな煽りで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
0186デフォルトの名無しさん
NGNGpygtkとかpyqtとかいろいろありますよね
何かお勧めはありますか
使用環境としては、
・家:Linux ,職場:windowsでシームレスに使いたい
・職場ではあちこちのパソコンに入れるのでセットアップの手間が
小さいのがありがたい
・やっぱり簡単にプログラムが組みたい
なんですが...
0187デフォルトの名無しさん
NGNG標準で付いてくる威力は大きい
0188デフォルトの名無しさん
NGNGどうしようも無いですね
0189デフォルトの名無しさん
NGNG見た目にこだわらず、凝ったことをやらないのなら、 tk
0190デフォルトの名無しさん
NGNGWindowsインストーラ版引っ張ってきてフルインストールすりゃ入ってるけど。<Tkinter
0191デフォルトの名無しさん
NGNG「Python をインストールしないと、、、」という意味だと思う。
0192デフォルトの名無しさん
NGNGPythonに限らずだが、そういう手間すら惜しむなら、そもそもLinuxとWindowsで
クロスプラットホームなGUIなんてあり得ないと思うんだけど……。
だからひとつインストールするだけってのが目的を果たす最少構成って話。
0193デフォルトの名無しさん
NGNGPythonなしで使いたいならpy2exeで全部ぶちこんでしまうとか。
ぐぐっても日本での使用例が少ないが、
http://kumiki.c.u-tokyo.ac.jp/~ichiyama/projects/wxpythonmascot/
これで使えるとおもったらTkinter+py2exeにすれば?
0194デフォルトの名無しさん
NGNGものはありますか?
Iwataさんのブロッグなどもそうだと思うのですが、他に手ごろな例がないかなって。
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNGそういうためのRunAsサービス
0197デフォルトの名無しさん
NGNGいまどきの Python アプリって内部文字コードが Unicode になってて、
UI も Unicode 対応のライブラリで作ってあったりして、日本語化の努力って
必要なかったりしない?
もし内部文字コードが ASCII や Latin-1 限定なら、
ソースを追いかけて入出力や文字列操作の箇所を見つけ出して
文字のバイト長を考慮するように書き換えるのが基本。
これは Python だろうが他の言語だろうが同じだと思われ。
ソース読んだことないけど Mailman の日本語化パッチは所望のものに近いかも。
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGmultiplier=input("乗数を入力してください:")
for j in range (1,13):
print "%d×%d=%d" %(j,multiplier,j*multiplier)
と書かれています。「乗数を入力してください:」の部分に
数字を代入すると(たとえば3)、
1×3
2×3
3×3
4×3
・
・
12×3
と表示されるのではないのでしょうか?
実際には「乗数を入力してください:」の部分に代入した数字が
表示されるだけなのですが。
どうなってるのかよく判りません。
0200デフォルトの名無しさん
NGNG漏れのところでは期待通り動いた。プログラム的にはまったくおかしくないよ。
どういう風にプログラムを実行してる?
問題の3行だけから成るファイル (例えば mul.py) を作って
python mul.py
のように実行すればいけると思うんだけど。
0202199
NGNGttp://cgi.io-websight.com/index2/uploarder/img/hare7105.jpg
IDLEからではもしかして駄目なのでしょうか?
0203デフォルトの名無しさん
NGNGいかどうかを確かめることを考えるだろう。1つのやり方だけに固執せずに。
0205デフォルトの名無しさん
NGNG()の中に""をつけてませんでした。
お騒がせしました。
ついでに聞きたいのですが、>>200,>>203の言っているほかの方法とは
どのようにやるのでしょう?
MS DOS プロンプトでしょうか?
これ開くとC:\DOCUME^1\名前>とでます。
Cの下のディレクトリにおいているので、C:\Python Program>pyhon d.pyと
するのでしょうか?でも、C:\DOCUME^1\名前>が変更できません。
書いていても、物凄く初歩的なことだとは判るのですが、全然やりかた判らないです。
0206200
NGNGDOS 窓から Python を使うには、cd コマンドとか dir コマンドとか
環境変数 PATH の設定とか、そういう MS-DOS 由来の知識が要ります。
興味があったら自分で調べて下さい。しかし郷に入ったら郷に従えで
Windows では IDLE を使うのがいい気がします。
漏れは Linux 使いなので>>200のように使うのが楽なのです。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNGクラスで、何をクラスにしたらよいのかわかりません。
ネットでも調べてみましたが、よくわからなかったので
よければ教えてください。
0210デフォルトの名無しさん
NGNG>>> python number.py
と入れて実行しようとしたのですが
SyntaxError: invalid syntax
と出て起動できません。原因はなんでしょうか?
非常に初歩的な質問ですみません・・。
0211デフォルトの名無しさん
NGNG使い方がわからないうちは使う必要ないです。
一部でなんでもクラスにしないと気がすまない悪い子さんとかいますし、、、
0212デフォルトの名無しさん
NGNGプログラムはコマンドラインから実行する。
$ python number.py
Python のシェルから実行しても駄目だよ。
0213210
NGNGし、知らなかったです・・。すみません、勉強不足で。
しかしコマンドラインから実行しても
File "<stdin>", line 1
$ python number.py
'
と出て起動できません・・・。一体どうすれば良いのでしょうか?
0214デフォルトの名無しさん
NGNGglade+Cの方が簡単か?
0215デフォルトの名無しさん
NGNG>>213 の表示は、 >>212さんが言っている「コマンドライン」
ではないように見えます。推測ですが、python インタプリタの
「>>>」というプロンプトの直後に、「$ python number.py」のように
タイプしたものでしょう。そのような操作は誤りです。
「>>>」というプロンプトに対しては、Python言語のプログラム
(の断片)を入力します。
>>212さんがいっている「コマンドライン」は、
もしWindowsの場合であれば、「コマンド プロンプト」または
「MS-DOSプロンプト」のことだし、
Linuxまたはその他のUnixの場合であれば、シェル(bashなど)
のことです。
実は、それぞれのOSにおける「コマンドライン」の使い方について
質問するには、このスレッド(またはプログラム板全体)は
最適ではないです。PC初心者板などきくのがよいのでは
ありませんか。
0216デフォルトの名無しさん
NGNGどこからコマンドを実行してる?
OS は?
0217デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGWindows なら number.py をダブルクリックするだけでは?
0220デフォルトの名無しさん
NGNG標準ライブラリのソースを読んで、クラスがどのように使われているかを
調べてみたらどうだろう。一部のクラスは継承することを前提に書かれている。
単にインスタンス化するためだけのものもある。そういう用例をたくさん
知っていれば自分でクラスを設計するときに役立つよ。
Python では必ずしもクラスを使う必要はないから、最初はいつ使えばいいのか
分からないかも知れない。ひとつの指針として、こういうのはどうだろう。
関数が増えて大域変数をいくつも使う必要が出てきたら、
それらをクラスとしてまとめることを考えてみる。
つまり、大域変数をメンバ、関数をメソッドにして、プログラムをクラスとして
再構成してみる、ということ。オブジェクト指向の方法論からすれば邪道だけど
実践的なアプローチとしては「あり」じゃないかなと思う。
0221デフォルトの名無しさん
NGNGsakito 並に支離滅裂だな。
0223220
NGNG「sakito並」と言ってみたかっただけのお花畑だったのね。ヽ(´ー`)ノヤレヤレ
ご愁傷様。>sakitoタソ
0224デフォルトの名無しさん
NGNG[1,2,3,6,7,10,11]みたいなリストがあったとして、
[[1,2,3],[6,7],[10,11]]みたく、連続した部分を切り出すような処理をしたいんです。
再帰使ったりとかの定石的な書き方ってありますか?
0225224
NGNG1 def pf(args):
2 if not args:
3 return []
4 r = []
5 r = pf(args[1:])
6 if not r:
7 r.append([args[0]])
8 else:
9 if abs(r[-1][-1] - args[0]) == 1:
10 r[-1].append(args[0])
11 else:
12 r.append([args[0]])
13 return r
こんな感じなんですけど。なんか再帰感薄いっつーか、逆から回してるだけじゃんかと。
そんなもんなんですか?
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG全角スペースかタグを使ったスペースよろしく!
0228デフォルトの名無しさん
NGNGキーワードに注目すれば
ブロックが見える
こんなかんじ?
def pf(args):
if not args:
return []
r = []
r = pf(args[1:])
if not r:
r.append([args[0]])
else:
if abs(r[-1][-1] - args[0]) == 1:
r[-1].append(args[0])
else:
r.append([args[0]])
return r
>>>pf([1,2,3,5,6,8,9])
[[9, 8], [6, 5], [3, 2, 1]]
で,ひっくり返ってるが,これは桶なの? >> 225
無理に再起使う必要ないんじゃ?
0229224
NGNGひっくり返ってんのは、入力データを降順にするからいいですw
def pf2(args):
prev = None
r = []
for i in args:
if i - 1 == prev:
r[-1].append(i)
else:
r.append([i])
prev = i
return r
非再帰だとこれ...おもしろくもなんともなかったw
あんまりリスト操作ってやったことないので、すいません
0230デフォルトの名無しさん
NGNG>>> def split_list(seq, test=lambda seq, i: True):
... chunk = []
... for i,x in enumerate(seq):
... if (i==0) or (not test(seq, i)):
... chunk.append(x)
... else:
... yield chunk
... chunk = [x]
... else:
... yield chunk
...
>>> def not_consecutive(seq, i):
... return seq[i] != seq[i-1]+1
...
>>> print [c for c in split_list([1,2,3,6,7,10,11], not_consecutive)]
[[1, 2, 3], [6, 7], [10, 11]]
0231224
NGNGなんか全然C(つかVBか不本意ながら)だもん>>229
ジェネレータでやってみようとも思ったんだけど...
yieldの動きがよくわかんなくて、もろよくわかんなかったとこなんですけど、
.. if (i==0) or (not test(seq, i)):
... chunk.append(x)
... else:
... yield chunk
で、ループ中でyieldするじゃないですか。でその後
... chunk = [x]
でループの続きが動く、というのは、呼び出し元でまだ続きがあるとわかってるってこと??
... else:
... yield chunk
こっちのyieldは終わりであると。なんかよくわからんのですよ。
後、内包表記って評価された時点で全部メモリに乗っちゃうんですか?
例えば
result = [c for c in split_list([1,2,3,6,7,10,11], not_consecutive)]
ってやって、
for i in result:
print i
とかだと、resultにバインドした時点で全てメモリにあるのか、for文で取り出した時に
メモリに乗るのか...長くてすいませんできたら教えてください
0232デフォルトの名無しさん
NGNG・pthonの関数はreturnはオプションで、やるべきことを済ませば勝手にreturnする。
・pythonのfor文はシーケンスの終わりにstop iterarion例外を捕らえてループを抜ける。
・リストコンプリヘンションはlistを生成するための表記法の一つなので、代入した場合の格納されるオブジェクトは当然list。
すなわち230の例ではstop iteration例外によってfor文を抜けて暗黙のreturnで関数を終了してる。
resultは(リストコンプリヘンションで生成した)listオブジェクトその物を指している。
、、、なんか答えになってねーっぽい。
0233デフォルトの名無しさん
NGNGyieldを含んだ関数は、関数の値を計算しないで、ジェネレータを返す。
ジェネレータは、nextメソッドを呼ぶと、関数を頭から実行して、yieldのところで値を返して一時停止する。
もう一回nextを呼ぶと、一時停止した直後から実行再開。
関数の終わりに到達すると、もう実行再開できなくなる(StopIteration例外がでる)。
最後のyield文じゃなくて、あくまで関数の終わりね。
普通の関数なら、暗黙の無返値のreturnがある位置。
あと、内包表記はresultにバインドした時点で全部メモリに乗る。
ジェネレータは呼び出すたびにいちいち計算するもんなので、計算結果全部をメモリに乗せない。
for i in split_list(...):
print i
と、内包表記を経由しなければOK。
for文がnextとかStopIterationとかの面倒を勝手にやってくれるから。
0234デフォルトの名無しさん
NGNG>>230の方法は callable でテストを可変にした点がいいとオモタ。
つーことで足して2で割ってみた。
def split(L, test):
buffer = [[L[0]]]
for i in range(1, len(L)):
if test(L[i-1], L[i]):
buffer[-1].append(L[i])
else:
buffer.append([L[i]])
return buffer
print split([1, 2, 3, 6, 7, 10, 11], lambda x, y: x + 1 == y)
print map("".join, split("abcmnrst", lambda x, y: ord(x) + 1 == ord(y)))
0235デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG微妙。
0238デフォルトの名無しさん
NGNGなにがどのように
0239224
NGNGどうもわかりやすかったです。
yieldが含まれる関数はジェネレータオブジェクトを返すってことなのか。
それでdefのかわりにgeneraterって予約語作ったほうがいいって話もあったりするんすね。
pythonはじめてから一番違和感ある...そんなことないのかな。いやあるなあ。
むしろ内包表記なんかも全部ジェネレータ的に動いてくれりゃいいのにとか勝手なこと思いますけど。
バインドした時点ではジェネレータオブジェクトを抱えたジェネレータオブジェクトで、
みたいな感じだとむしろ理解しやすいっつーか巨大ファイル扱う時も内包表記でいけるじゃんと。
>>234だと隣あってる要素の比較っていうのが固定されるんすね。
普通どのへんで手を打つべきなんだろう。
ちなみにこれはgeniconvtblのcondition以下の生成をしようっつーので必要なんです。
どうもありがとうございました。
0240デフォルトの名無しさん
NGNGhttp://python.org/peps/pep-0289.html
0241デフォルトの名無しさん
NGNGあるので、全部ジェネレータというのもちょっと……。
PEP 289が入れば>>239の望みもかなうかな。
0242デフォルトの名無しさん
NGNGPython のファイルオブジェクトは実質的にジェネレーターの一種だと思う。
辞書の iterxxx 系統とか。
0243224
NGNGああそう、こんな具合で。いいっすねー。
>>242
そもそも指摘の意図がわかんないですすいません。
巨大ファイルってとこになんかあるですか
後、そもそもジェネレータとイテレータの違いってyieldの特性によるもの?
0244デフォルトの名無しさん
NGNG(一定の規則に則って)繰り返し値を返してくれるオブジェクトをイテレータといって、
イテレータの中でも、予めメモリ上に全部乗ってるデータを順番に返すのではなくて、
値が必要になったらその都度計算して返すオブジェクトをジェネレータという。
最近のファイルオブジェクトは、値を全部メモリに読み込んで返す他に、
必要な分だけその都度読み込んでは返すことができるので、そういう意味で
ジェネレータに近いんじゃないかと。メモリも圧迫しないし。
0245デフォルトの名無しさん
NGNGC# にもつくらしいけど。
0246デフォルトの名無しさん
NGNG漏れの知る限りでは、Smalltalk-80には既に存在していた。
0247デフォルトの名無しさん
NGNG0248246
NGNGyieldを使って構成するようなものではなくて、例えばpython風に書くと
|class RandomGenerator:
|def __init__(self, seed = None):
|#何かseedを使って初期化する
|def next(self):
|...
|return XXX
みたいなクラスを定義して、
| random = RandomGenerator()
| while 1:
| r = random.next()
| print r
みたいな形で、next()を呼ぶ毎に次の値を計算する。
こういうのが、一種のパターンして確立していた。
別の似たようなものとしては、関数型言語の無限リストがある。
これも漏れの知る限りでは1980年に発表されたMirandaで実装されていた。
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGソースきぼn
0252デフォルトの名無しさん
NGNGyield はゲネレータ かと名前から思っていたのだけど、今調べたら、単なるイテレータのようですね。
スマソ。
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGむかーし読んだ 1980 年代の lisp 入門書にもちゃんと載ってたし。
そんな漏れも Norvig タンの Python for Lisp Programmers で Python 使い
始めたクチです。ぱいそんイイ!
0255デフォルトの名無しさん
NGNGlisp 系の人は Python より Ruby のほうがいろいろ遊べるんじゃないの?
そんなことないですか?
0256デフォルトの名無しさん
NGNG違うんだから lisp らしさなんて期待しないので。クロージャとかじゃくて
クラス作って〜と頭が切り替わってるから全然平気っす。
個人的には言語仕様はバランスイイと思うし、ドキュメントや環境もひっくるめて考えると
Python 良いと思うよ。たまに Windows 相手の時も頼りになるし。計算主体の場合は Lisp
コンパイラにお出まし願えばいいわけだし。(でもなんだかんだで C++ ばっかで鬱なわけだが)
0257デフォルトの名無しさん
NGNG仕様と処理系が一緒な python, ruby, perl,,, には強みが多いですね.
0258デフォルトの名無しさん
NGNG別に Lisp が頼りにならないわけではないんだが…Allegro 買わずとも
Python で済んじゃえばそれでいいやってくらい。ところで Ruby って
Windows での COM サポート充実してたっけ?今 RAA で探したら RubyCOM
というライブラリがあったけどリンク切れだった。
0259デフォルトの名無しさん
NGNGのよう構成を妄想。
0260デフォルトの名無しさん
NGNGこの本を買ってみようかと思っているのですが、どうでしょうか?
持っている方がいらっしゃったら、感想とか教えてください。
0261デフォルトの名無しさん
NGNGまだでたばかりだよ。
中身を見ていないのでなんともいえないけど、Pythonのスキルをどのくらいもっているかで価値が変わるかもね。
0262デフォルトの名無しさん
NGNGLineage/II を開発してますね.Origin の Ultima Online 2 の計画では
サーバの拡張に Python を使う案がありましたが,NCSoft は Origin からも
何人か Python プログラマを引き抜いているようです.
http://dmc.ic2.org/publications/gamedev_wkshp_02.pdf
0263デフォルトの名無しさん
NGNG「まずはPythonからはじめよう」の購読者ですね?
0264デフォルトの名無しさん
NGNG注文したけど、まだ届かねー
0265264
NGNG0266デフォルトの名無しさん
NGNGそのクラスを使ったPythonスクリプトを
C++から呼び出すサンプルを書いてくれ。
できればコールバックを使ったやつ頼む。
0267デフォルトの名無しさん
NGNGTraceback (most recent call last):
File "hoge.py", line 9, in ?
import cgi
File "/usr/foo/lib/python2.2/cgi.py", line 39, in ?
import urllib
File "/usr/foo/lib/python2.2/urllib.py", line 26, in ?
import socket
File "/usr/foo/lib/python2.2/socket.py", line 41, in ?
from _socket import *
ImportError: No module named _socket
_socket.so は /usr/foo/lib/python2.2/lib-dynload にあるわけですが,
これはちゃんと sys.path に含まれているんです.
うちではちゃんと動きます.
どうなっているんでしょう...?
0268267
NGNG始めたばっかりで考えられる原因を挙げることさえできないんです.
スレはageます.
0269デフォルトの名無しさん
NGNGC++(クラス) -> Python -> C++
って事ですね?
http://www.strawhat.net:8080/python/pythondoc-jp/ext/callingPython.html
とかは?
>>267
http://mm.tkikuchi.net/pipermail/mmjp-users/2002-June/000229.html
0270デフォルトの名無しさん
NGNGSolaris だと機種によっては socket でちょっとはまっていたきがする。 HP-UX だったかな?
サーバーのマシンは Linux じゃないですよね?
0271267
NGNGはい.Solaris なんです.向こうは.
いやー.つい r... という言語を試してしまいました.
CGI のライブラリがあればすぐに出来るものでしたので,
python でできず本当に残念です...(⊃д`)
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNGたぶんサイトのCGIポリシーでしょ。
cgiから直接コネクション貼りにいかせたくないんじゃない?
0275デフォルトの名無しさん
NGNGそのマシン管理者なり、サービス提供事業者のサポセンに訊けよ。
そしてその装置にpython2.2をインストールするのを失敗してるやつに直させろよ。
社会の掟でしょ。
ところで cgi モジュールは socket に依存しているんですね。知りませんでした。
よく見ると socket は urllib が使っていて、cgi は urllib の URL unquote 関数を
使っているだけだから(わたしはPython 2.4を見ていますが)、ワークアラウンド
として socket に依存しないバージョンのcgi.py を自分で用意するのは容易(pun intended)。
(1)まず cgi.py の「import urllib」の行を消します。
(2)次に、cgi.pyの「urllib.unquote」を「unquote」のように非修飾名に書き換えます。
(3)urllib.py から 「def unquote」という関数定義部分をcgi.pyにコピーします。
(4)できあがったcgi.py を自分のCGIスクリプトと同じディレクトリに置きます。
cgi.py の許可モードは 0444 とでもします。
(5)python -v で起動して、(-vの意味はマニュアルを見よ)
>>> import cgi
します。ここで _socket が表示されなければokです。
0276デフォルトの名無しさん
NGNGドキュメント和訳されないかなぁ・・・
英語の文献だと著しく学習効率がさがるんだーわし。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNGどちらの国の方ですか?
日本語がお上手ですね。
0280デフォルトの名無しさん
NGNGオーバーヘッドがすごそうだね。
プロジェクトの中にPython信者が一人でもいると、
そういうことまでしないといけなくなるのかな…
0281デフォルトの名無しさん
NGNG信者云々は関係ないと思われ。Python を C++ のアプリの拡張言語として使おうとすると>>266のような要求が出てくる。
この主従関係は Python と Tcl/Tk にも当てはまる (Python アプリから Tk を呼出し、コールバックを Python で書く)。
0282デフォルトの名無しさん
NGNG部分的な和訳なら以下にある。
http://owa.as.wakwak.ne.jp/zope/Python/Boost/Boost/libs/python/doc/index.html
0283デフォルトの名無しさん
NGNG何をやらせてもダメ
デキるやつは
何をやってもデキる
ただそれだけのことだ
0284267
NGNG次の段階に行かれました.ありがとうございます.
ImportError: No module named time
また lib-dynload の中です.
もしかすると >>274 かも知れませんが,相談してみます.
某所というのは,某大学なんです.
python が満足に動かない環境のままでは大学全体の知的活動に関わる問題に
なってしまいますから,相談しなければと思います.
0285デフォルトの名無しさん
NGNGActivePython の Solaris (SPARC) 版っていうコンパイル済みのパッケージがあってSolaris 2.6以降で使えるそうです。
superuser権限がある場合: Solaris package
superuser権限がない場合: Generic AS package
superuser権限があるかどうかさえもわからない場合: このレスのことは忘れてください。
なおこれらのインストール方法について訊かれても、ActiveStateがwebに掲載している以上の情報は知りません。
0286デフォルトの名無しさん
NGNGあの人たちは無事 Python(やその他のプログラミング言語)を使えるようになっているのかな?
0287デフォルトの名無しさん
NGNGそれはPythonがプログラムの入門としては適してないっていいたい?
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG……まあそこらへんは Ruby でもそうだけど。
0290デフォルトの名無しさん
NGNG電卓として使うならいいかもしんないけど
型を明示的に扱う系の方が後々伸びるかと
個人的にはJava推奨、デバグが楽だと言う点で
ところで、Zopeのプロダクト作るときってデフォルト引数にTrue
って使えないの?
def function(x, y, z=True):
hogehoge....
みたいなコードで
起こられるんだけど・・
Exception type: NameError
Exception value: name 'True' is not defined
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG偉そうなこと言うわりには基本ができていないやつの典型
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG必要に迫られて憶えた、なんか弄ってる内になんとなく分かってきた、って人が多い気がする。
>>290
そのZopeが使ってるPythonのバージョンはいくつ?
旧いPythonには定義されてないので、
True, False = (0==0), (0==1)
とか自分で定義してお茶を濁すべし。
0295デフォルトの名無しさん
NGNGPythonのバージョンは2.1.3です。
Zope2.6.1のをそのままで
引数を整数にして逃げときました
0296デフォルトの名無しさん
NGNG(´・ω・`)
0297デフォルトの名無しさん
NGNGTrue, False = 1, 0 じゃなぜダメなんですか?
0298デフォルトの名無しさん
NGNG組み込みの True (boolean 型) を整数 1 (plain integer 型)
でオーバライドするからじゃないかな. (0==0) は真偽テストだから,
True/False のある Python では True, そうでない Python では 1 を
返すので,バージョン間の定義の違いをうまく吸収できるというわけ.
0299デフォルトの名無しさん
NGNGダメじゃないよ。無問題。
0300デフォルトの名無しさん
NGNG中級以上のレベルの話をするには
ある程度プログラムの分野を絞らないと
いけないと思うんだけど、日本のPython本は
数が少ない上に、総論・概論本ばっかりですからねぇ。
結局、Perl,Java,Cのコードをヒントに勉強していくしかない。
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG言語自体に慣れないうちは
手元にリファレンス本などあったほうが便利
慣れてきたら
他人のソース読むとか
ライブラリーリファレンス読むだけなので
本は不要
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG本はあった方がいいと思うよ。
リファレンス本は、付属ドキュメント見ればいいだけだからいらないと思うけど。
0306デフォルトの名無しさん
NGNGZopeから Cのプログラム を起動させたいんですけど
PythonならばいけるんですけどZopeから何とかならないでしょうか?
import sys
target = sys.argv[1]
command = "ping.exe %s" % target
result = os.popen2(command)[1]
print result.read()
Zopeでファイルシステムベースのプロダクトを作って(非ZClass
このようなコードを埋め込んでも結果はNoneになってしまうのですが・・・
環境は
WindowsXP Plone 1.0.5 Python2.1.3です
0307デフォルトの名無しさん
NGNGprint するとどこに表示されるはずなの?
None て何?
0308デフォルトの名無しさん
NGNGExternalMethod を使います.ExternalMethod を知らなければ,勉強するか,
Zope 関連のスレッドや ML へどうぞ.
import os
def bar(target):
return os.popen2('ping.exe %s' %(target))[1].read()
を foo.py に保存して,例えば baz という ExternalMethod として登録し,
print container.baz("www.spambacon.egg") のように使います.
Zope の Script (python) や ExternalMethod は CGI ではないので,
sys.argv にスクリプトの起動引数が入ったりはしません.Python プログラム
である Zope の一部として実行されるので,sys.argv には z2.py の起動時の
引数が入ります.
0309デフォルトの名無しさん
NGNGdef invoke():
address = 'www.google.co.jp'
command = "ping.exe %s" % address
result = os.popen2(command)[1]
print result.read()
実際はこのようなメソッドをPortal.pyに加えて
dtml側で
<dtml-var expr="invoke()">のように呼び出したんですけど
コマンドが実行されていないようなのです
そして、ページにNoneが返ってきているという意味です
0310デフォルトの名無しさん
NGNGprintしないでreturnすれば?
0311デフォルトの名無しさん
NGNGzope は zope スレがあったと思う。どの板か忘れたけど。
0312デフォルトの名無しさん
NGNG・・・と思ったらreturnにしたらコマンドが実行されて出力結果が表示されてました・・
お騒がせして、すいません
みなさん、ありがとうございます
ExternalMethodも勉強したんですけど、
どうせプロダクトを作るならコードに組み込んだ方がいいかなと思いまして
やりたいことはPlone上で編集中の文章を外部プログラムで形態素解析するとかなんですけど
編集中の文章を取ってくる方法がわからなかったりつまづいています
ドキュメントのURLのようなものからドキュメントが取れればいいのですが・・・ わかる人いますかね?
たまに<dtml-var text>で取れたりするのですが・・ (編集中のDocumentクラス内のtextがそのまま残っているから?)
CMFの海に溺れている様な状態です・・・未熟な私にはグローバルまみれでよくわからないように見える
0313デフォルトの名無しさん
NGNGプログラム、プログラマ板にはそれらしいのはなかったです
WebProg板にZopeスレがあったんですけど
”Zopeってどうよ?”なスレだったんでプログラム的な質問は違うかなと思いまして
2ch以外のZope関連サイトのBBSも結構 探したのですが
更新が止まっているものが多く、このスレが一番活発に見えたので質問した次第です
0314デフォルトの名無しさん
NGNGどんなことができるの?"高性能なサイトを作れる"の?
それとも、ぞーぷってうまいのか?
0315デフォルトの名無しさん
NGNGうまいっていうか、香ばしいみたいよ
Zopeってどうよ? 〜 もういいよ。モジタソ 〜
ttp://pc2.2ch.net/test/read.cgi/php/1045704268/
0316デフォルトの名無しさん
NGNGZope では貧弱な権限で動かせません...
0317デフォルトの名無しさん
NGNG仕事で必要といった理由がないなら、近づかない方がいいと思う。
0318デフォルトの名無しさん
NGNGWyPy: A Minimal Python Wiki
ttp://infomesh.net/2003/wypy/
0319デフォルトの名無しさん
NGNGwarata
http://infomesh.net/2003/wypy/wypy.txt
Perl かと思ったよ。
0320デフォルトの名無しさん
NGNGコーディングスタイルガイドを守った上で
この行数ですがなにか?(w
ttp://c2.com/cgi/wiki?ShortestWikiContest
を見ると
パクリ癖のあるR言語の実装が
一位になっていて萎えるな(´・ω・`)
0321デフォルトの名無しさん
NGNG何だ、ソースコードかと思ったら「ウォーリーを探せ」か。懐かしいな。
('w') ← ウォーリー
0322デフォルトの名無しさん
NGNGmoinmoinがいいかと。
ttp://twistedmatrix.com/wiki/moin/
python.org でも使われてるし。
ttp://www.python.org/cgi-bin/moinmoin/
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG( ・∀・)つ〃∩ ヘェーヘェーヘェーヘェーヘェー
0326デフォルトの名無しさん
NGNGC-c c でスクリプトを実行できて重宝していますが引数を渡したい場合、いちいちshellモードで実行してますので。
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGうう、まだよくわかりません。
例えば以下のようなスクリプトがあって
import sys
print sys.argv[1]
このバッファでC-u 'foo' C-c C-cとかやるとfooを表示するような機能を使いたいんですが。
py-shellによるとC-u C-!でインタープリタに引数を渡せるようですが、これはいわゆるPythonのオプションのように見えます。
0329デフォルトの名無しさん
NGNGM-x describe-bindings したら?
py-execute-* あたりかな。
0330デフォルトの名無しさん
NGNGといっても既存のプログラムを書き換えるんですけど。
で、書き換えた結果、
AttributeError: 'int' object has no attribute 'self'
って出ました。属性がない?みたいに取れますけど原因がよくわかりません。
質問として足りないと思うのですが、何書けばいいのかよくわからないので。
わかりにくいと思いますがお願いします。
0331デフォルトの名無しさん
NGNGプログラムを見せないのはなにか狙っているのですか?
0332330
NGNGやたら長いプログラムの一ヶ所に追加しただけなので。
主に原因として考えられる例などを挙げてもらえればいいと思ったのですが。
とりあえず周辺数行を載せます。
if (self.plotDataType == "lowd"):
query = "SELECT time_utc FROM ceilo "
query = query + "WHERE paramset = '%d' AND " % (paramsetID)
query = query + "time_utc >= '%s' AND time_utc <= '%s' AND " % \
(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(self.options.startTime)),
time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(self.options.endTime)))
query = query + "cb_height_1 IS NOT NULL AND"
query = query + "cb_height_l >= '%d' AND cb_height_l <= '%d' " % (self.lowLimit. self.highLimit) ←エラー出る行
query = query + "ORDER BY time_utc;"
self.db.executeWithoutCommit(query)
self._initGPFile()
0333デフォルトの名無しさん
NGNG(self.lowLimit. self.highLimit)
->
(self.lowLimit, self.highLimit)
コンマがドットになってる。
4.self.hightLimit
という風に解釈されているということですね。
0334デフォルトの名無しさん
NGNGself.lowLimit. self.highLimit
じゃなくて
self.lowLimit * self.highLimitとか
self.lowLimit.highLimitとかじゃないか
0335デフォルトの名無しさん
NGNG〜 % (self.lowLimit, self.highLimit)
では? ピリオドとコンマが。
0336デフォルトの名無しさん
NGNG0337334
NGNG下の行はおかしいや、取り消し
0338330
NGNG別のとこでエラー出ましたがとりあえずこれは解決されました。
即レス感謝です!
0339デフォルトの名無しさん
NGNGキーバインディングは一番最初に調べたのですが、どうもぴんとくるものがなかったんです。
中でもpy-execute-stringあたりは怪しかったけど、これバッファ二つ開いておいてインタプリタに文字を送るようなもので、これはこれでなんかすごい便利でうれしかったんですが。。。
いや、そう考えてみると質問を変えみたりして、
Pythonインタプリタに対話的に引数を渡すのってどうするのでしょうか?
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNGimport sys
print sys.argv[1]
2. M-x py-shell として次の2行を打ち込む。
>>> import sys
>>> sys.argv = ["a.py", "foo"]
3. a.py のバッファに戻って C-c C-c でプログラムを実行する。結果は以下の通り。
>>> ## working on region in file /usr/tmp/python9exnr0 ...
foo
>>>
0342デフォルトの名無しさん
NGNGありがとうございますた。
これだとpy-execute-stringあたりの便利さが実感できそうです。
0343デフォルトの名無しさん
NGNG例えば全角スペースを半角スペースに置き換える場合、
import string
mystr="わたしは ほげ"
print string.replace(mystr," "," ")# 出力 "わたしは ほげ"
で実現できるのですが、マルチバイト文字のコードレベルの置換ってどうすればいいでしょうか?
つまり以下のようなことです。
mystr="I am a hoge"
print string.replace(mystr,chr(32),chr(33))# 出力 "I!am!a!hoge"
これはだめな例。
mystr=u"わたしは ほげ"
print string.replace(mystr,chr(0x3000),chr(20))#出力イメージ "わたしは ほげ"
0344デフォルトの名無しさん
NGNG何がどうダメなのか分からないけど、少なくとも以下の例は漏れの環境では動く。
$ cat test.py
# -*- coding: EUC-JP -*-
s = u"ぴ ち ょ ん"
print repr(s)
print repr(s.replace(u" ", u" "))
$ python2.3 test.py
u'\u3074\u3000\u3061\u3000\u3087\u3000\u3093'
u'\u3074 \u3061 \u3087 \u3093'
注意点:
・Python 2.3 以降を使う。
・スクリプトの先頭に # -*- coding: エンコード名 -*- と書く。
この2点を満たさないと u"漢字" のような Unicode リテラルの書き方はできない。
代わりに unicode("漢字", "euc-jp") のように組込み関数 unicode() を使う必要がある。
あと、chr(0x3000) ではなく unichr(0x3000) だよね。
0345デフォルトの名無しさん
NGNGだめといったのはchr(0x3000)はエラーになるということでして。unichr()ですね。ありがとうございます。
string.replace(mystr," "," ")ではそのスクリプトの文字コードに依存するかなとおもったのですが、どの道スクリプトの文字コードは関与するか、あるいは明示的にエンコーディングを指定しなければならないということですね。
勉強になりました。
0346デフォルトの名無しさん
NGNGImplicitness is evil. Make everything explicit.
0347デフォルトの名無しさん
NGNG属性名のリストがあるときに、
「オブジェクト.属性名 = 0」という式を属性名に
ついてループしたい場合はどうしますか?
for attr in ["giko", "hanyaan", "itteyoshi"]:
exec("obj.%s = 0" % attr)
これをexec文なしに書ける人よろしく。
0348デフォルトの名無しさん
NGNGsetattr()
0349デフォルトの名無しさん
NGNGZopeではなくて、PythonアプリとしてStructured Textを扱おう
と考えています。そして、このアプリは、主にWindowsを対象とし
て配布したいと思っています。
その場合、Python23jpにStructuredTextのライブラリを入れる
方法と、ZopeをインストールしてZope内のPythonを使う方法のど
ちらがよいと思いますか?
そもそも、WindowsにインストールするZopeディレクトリ内の
Pythonって、日本語化が十分なのでしょうか?十分なんだったら、
Python23jpよりもZopeを入れちゃったほうが、初心者には簡単・
すっきりだと思うんですが。。
0350デフォルトの名無しさん
NGNG>>> class C: pass
>>> obj = C()
>>> obj.__dict__.update({}.fromkeys(attrs, 0))
>>> obj.giko, obj.hanyaan, obj.itteyoshi
(0, 0, 0)
0351デフォルトの名無しさん
NGNGいちいちstringをsplitしてリストをつくる理由がわからん
シングルクオーテーションをたくさん打つのが面倒だからか?
0352351
NGNG0353デフォルトの名無しさん
NGNGZopeインストールさせるのはやめておいた方がいい。
あれはサーバなので、影響が大きい場合がある。
あと純粋にPython利用してもらった方が後に続けやすい。
0354デフォルトの名無しさん
NGNG最初に行列サイズを指定するいい方法はないでしょうか
いまは
matrix=[]
for i in range(n):
line=[]
for j in range(m):
line.append(0)
matrix.append(line)
とかして0行列を作ってるんだけど
もっと楽な^h^hスマートな方法はないかな、と
0355デフォルトの名無しさん
NGNG素朴な疑問ですが
Python ←なんて読むの ルソン?パイソン?
0356デフォルトの名無しさん
NGNGクズの親に育てられたクズですね。
0357デフォルトの名無しさん
NGNG_、_
( ,_ノ` ) まあ飲め
|^^|
 ̄
0358デフォルトの名無しさん
NGNGhttp://dictionary.goo.ne.jp/search.php?MT=Python&kind=jn&mode=0&ej.x=43&ej.y=8
0359デフォルトの名無しさん
NGNGPythonのプロフィール
ttp://www.daikin.co.jp/ad/pi_pro.html
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGa = [[0]*m]*n
または Numerical Python: http://numpy.sf.net をインストールして
from Numeric import *
a = zeros(m, n)
0362デフォルトの名無しさん
NGNGwritelines()ってのやってみたんですが、定義されてないとか言われて、
定義とかよくわからんのでどうにも。
printみたいに簡単に出力できるコマンドはないのでしょうか?
0363デフォルトの名無しさん
NGNG0364362
NGNGNameError: global name 'writelines' is not defined
って出てそこまで。
なんか聞き返し方がネタっぽいんですがひょっとしてここはプログラム初心者お断りですか?
0365デフォルトの名無しさん
NGNGfileオブジェクト作成して書けばよい
というかtut読むとファイルIOわかるかと
0366デフォルトの名無しさん
NGNGPython初心者でもよいのですが、質問の初心者に対しては冷たいです。
以下を読めば解決するかと。
http://www.python.jp/pub/doc_jp/tut_2.3.3/node9.html
基本的にtut読んで解決する事にはあまり回答が得られないかも。
0367362
NGNGなるほど、そういうことですか。すいません、以後気をつけます。
で、そこ読んだのですが、既存ファイルを呼び出してそれに追加するのではなく、
プログラム内で目的のデータを書き込んだファイルを新規に作成することはできないのでしょうか?
変数(中身はデータ列)のファイル出力が目的なのですが。
0368デフォルトの名無しさん
NGNG少しむずかしめなのでしょうか?
(貴方が)一番良いと思うPython学習法はどんなものでしょう?
0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGプログラム初心者なのかPython初心者なのかによるとおもう。
0372デフォルトの名無しさん
NGNGfile() または open() に使うファイル名は,
指定したファイル名のファイルがすでに存在すれば上書き
指定したファイル名のファイルがまだ存在しなければ新たなファイルを作成
します.
二次元のデータ列 a をカンマ句切りで出力したいのなら,
file('data.txt', 'w').write('\n'.join(map(lambda row: ', '.join(map(str, row)), a))
と書けばカンマ句切りで出力できます.
愚直に書くと,
datafile = file('data.txt', 'w')
for row in a:
for col in row:
datafile.write('%d, ' %(col))
datafile.write('\n')
datafile.close()
です.
map() については,http://www.python.jp/pub/doc_jp/lib/built-in-funcs.html#l2h-49
lambda 形式は,http://www.python.jp/pub/doc_jp/tut/node6.html#SECTION006750000000000000000
を参照してください
0373デフォルトの名無しさん
NGNG> file('data.txt', 'w').write('\n'.join(map(lambda row: ', '.join(map(str, row)), a))
これは反則でしょう?
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG> a = [[0]*m]*n
試せば分かるけどこれはNG。
>>> a=[[0]*3]*4
>>> a[0][0]=1
>>> a
[[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
>>>
正解:
>>> a=[[0 for i in range(cols)] for j in range(rows)]
>>> a[0][0]=1
>>> a
[[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>>
0378デフォルトの名無しさん
NGNG372ではないが、何がどう反則なのか分からん。
漏れも>>372のようなワンライナーはよく使う (特に対話モードで)。
0379デフォルトの名無しさん
NGNGこの lambda の用法はむしろ簡潔な方だと思われ。
list comprehension を使うと余計に難読度が上がる(藁
file('data.txt', 'w').write("".join([",".join([str(n) for n in row]) + "\n" for row in array]))
0380デフォルトの名無しさん
NGNGもっと可読性の高いコード書けや
Guidoパパも
海の向こうで泣いているぞ。・゚・(ノД`)・゚・。
0381名無しさん@Emacs
NGNG", ".join(map(lambda (x,y): "%s=%d" % (x,y), dic.iteritems()))
とかやるけど、1行 80字を越えたら考え直すようにしている。
ところでみんな引用符にはシングルクォートを使うのが普通なの?
オレはときどきカンマとシングルクォートがわけわかんなくなるので、
ダブルクォートを使うようにしてます。
たとえば以下のような場合:
print 'result:',a,',',b,',',c
0382デフォルトの名無しさん
NGNG「"〜\"spam\"〜"」より「'〜"spam"〜'」のが楽。それだけ。
0383368
NGNGプログラム初心者。初めて挑んだのが、今やってるPython。
0384デフォルトの名無しさん
NGNG"""〜"""
ってダブルクォーテーション3つ使うけど
シングルクォーテーション3つでも桶なのね
さっき試してみて始めて知った
ここは良スレかも(´ー`)
0385デフォルトの名無しさん
NGNG漏れはダブルクォート派。
文字列に " を含むときは ' で、' を含むときは " で囲う。
一文字の文字列定数のときはシングルクォートを使うこともある。
あと、トリプルクォートはダブルクォート三つで書く。
0386デフォルトの名無しさん
NGNGシングルクオートが入るリテラル (SQL 文など) は三重ダブルクオート,
で使い分けてるなぁ.
0387デフォルトの名無しさん
NGNG進捗状況を聞きたいな。
0388デフォルトの名無しさん
NGNGシフトキーなんて押してラン内。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG「静的メンバ変数」などという変態的なものはない。
クラス変数もしくはクラス属性ならば、チュートリアル読め。
0394デフォルトの名無しさん
NGNGmysql> SELECT * FROM foo;
...
100 rows in set (0.01 sec)
^^^^
0395デフォルトの名無しさん
NGNGjavaのstaticを言っているのだろうが、そんなのはないです。
クラス属性とインスタンス属性をつかいこなしてください。
class spam:
data = 'giko' <<クラス属性
def __init__(self, value):
self.data = value <<インスタンス属性
print self.data, spam.data
0396デフォルトの名無しさん
NGNGしかしstaticmethodはあるわけだが、これは変態的ではないのかと小一時間(ry
0397デフォルトの名無しさん
NGNGありません.おそらく MySQLdb にもないと思います.
mysql フロントエンドが表示している検索所要時間は,フロントエンド
自体が計測しているんじゃないかなぁ.
0398267
NGNGすみません.おかげで解決しました.
連絡したら,1, 2 日後にはパーミッションが変わっていました.
ポリシーではないみたいです.ところが,pydoc のパーミッションが
--x で,依然使いづらい環境です.交渉はちょっと面倒なんでそのままです.
メールでは受け付けてなく,直接交渉に言っても分かる人が常駐していなくて,
紙に書いておかなければならないんです.
r... 言語は別の学生による要望でインストールされていますが
(しかも /usr/bousho/ruby という特等席),パーミッション周りも
ちゃんと出来ていて鬱です.
0399デフォルトの名無しさん
NGNGありがとうございますた。あきらめます。
0400デフォルトの名無しさん
NGNGよく分からないが google から借用すれば? >検索にかかった時間を取得する関数
0401デフォルトの名無しさん
NGNG...
db = MySQLdb.connect(...)
cursor = db.cursor()
...
clock_before = time.clock()
cursor.execute("SELECT somequery")
elapsed_for_query = time.clock() - clock_before
print "検索にかかった時間: %4.2f 秒" %(elapsed_for_query)
とやればいいのでは?
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGMySQLの対話モードのプログラムってソースコードないの?
あるなら読めば検索に要した時間を取得する方法が分かると思われ。
0404デフォルトの名無しさん
NGNGなるほど。そういう手がありますね。
後で試してみます。
0405デフォルトの名無しさん
NGNGprint "".join(map(lambda x:unichr(x+12395), [1,32,18]))
0406デフォルトの名無しさん
NGNG... print x
...
をlambdaをつかって表すにはどうすればいいのですか?
なにも考えずにやると、
>>> lambda x:print x
File "<stdin>", line 1
lambda x:print x
^
SyntaxError: invalid syntax
といわれてしまうのですけど。
lambda の使い道をなにか勘違いしている?
0407デフォルトの名無しさん
NGNGその用途では def を lambda で代用することはできないにゅ。
def の本文には文 (statement) を書くことができるのに対して
lambda の本文には式 (expression) しか書くことができない、
というのが理由にゅ。print は式ではなく文にゅ。
ちなみに print 文は sys.stdout.write() という式で代用できるにゅ。
>>> import sys
>>> f = lambda x: sys.stdout.write(str(x) + "\n")
>>> f("foo")
foo
>>>
でもこんなのは sys.stdout のアブユースもいいところにゅ。
良い子は素直に def するにゅ。
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGprint "".join(map(lambda x,f=lambda y,s=[3],m=[1,6,2,3,4,1,8,2,0,4]:m[(s.append((s.pop()+7)%10),s[0])[1]]:unichr(reduce(lambda x,y:x*10+y,map(f,range(5)))),range(2)))
0410デフォルトの名無しさん
NGNGわかりやすい説明、どうもにゅ。
0411デフォルトの名無しさん
NGNGは思うのであった。高階関数+lambda とかじゃなくてジェネレータとか
使おうよ!という気になる。itertools とか見てると。
0412デフォルトの名無しさん
NGNGGuidoパパは高階関数が嫌いみたいです
0413デフォルトの名無しさん
NGNGまぁexecutable pseudo codeから遠ざかるってのには同意。
0414デフォルトの名無しさん
NGNGこれってActivePythonのほうにしかついてないんですかね。
0415デフォルトの名無しさん
NGNGwin32conモジュールは Mark Hammond さんのwin32allに含まれています。
http://starship.python.net/crew/mhammond/win32/Downloads.html
0416デフォルトの名無しさん
NGNG混じれ酢しといてやるから、もうちょっと勉強して出直しておいで。
> オブジェクト指向や可読性ではRubyに負けてるし
Pythonにもオブジェクト指向機能ありますが。RubyみたいにOOPマンセーじゃないだけ。
pure OO だと何か良い事あるんですか、プププ、ってのがPython流。
可読性で負けてるとも思わないね。Pythonの方が断然読みやすい。
> 拡張つってもたとえばTcl/TkやCPANのような
> 他言語のコミュニティに依存してんじゃないの?
してません。
これはちょっと新しいな。どっからこんな妄想拾ってきた?
> 速度ではlispやperlに負けてるし。何なの?
lispは型指定できるからね。勝負にならん。perl/rubyの方がPythonより速い、と主張
する(matzみたいな)人がいるけど、それは嘘。計ってから言えよ。伝統的フィルタ
処理(テキスト読み込み→正規表現→出力とか)だとPythonの方が遅いケースもあるけど、
大体の場合はPythonの方が速いかほぼ互角ぐらいだ。パフォーマンスの話はいろいろ
あるから、一概には言えないけどね。
0417デフォルトの名無しさん
NGNG(・∀・)ニヤニヤ
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG反省しない奴は
使用言語にかかわりなく
逝った方がいい
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG野良犬(w
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNGはPythonらしくない書き方だと思います
Pythonっぽく書くと例えば以下のようになります
(@´ー`@)
0425デフォルトの名無しさん
NGNG質問のしかたがいいんだと思います。
やりたい事を明示して、今手元にあるコードをそのまま出している。
How To Ask Questions The Smart Way
http://www.catb.org/~esr/faqs/smart-questions.html
0426デフォルトの名無しさん
NGNG(:´ー`:)
だろ、と言ってみる。
0427デフォルトの名無しさん
NGNG[ ' _ ' ]
今市かな?
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNGmoin って、[[日本語]]だめですよね。
0430デフォルトの名無しさん
NGNGドキュメント嫁。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGたとえば、「UNIX」から「UNIX」という文字列に変換したいです。
0435デフォルトの名無しさん
NGNGこんなプログラムを書いてみた。
標準入力に中身をぶち込むと、標準出力からはき出す。それだけ。
適当に追加したり改造したりして使ってくれ。
--- ここから ---
#! /usr/bin/env python
# coding: shift_jis
# ↑環境に合わせて書き換えること
import sys
# ↓環境に合わせて書き換えること
srcenc, termenc = 'shift_jis', 'shift_jis'
# ↓好きな変換マップを定義すること
conv_map = {
u'A': 'A',
u'B': 'B',
u'C': 'C',
u'@': '@',
}
for line in sys.stdin:
for char in unicode(line, srcenc):
if char in conv_map:
sys.stdout.write(conv_map[char].encode(termenc))
else:
sys.stdout.write(char.encode(termenc))
0436デフォルトの名無しさん
NGNG漏れも書いてみた。
# -*- coding: euc-jp -*-
import re
re_alphanum = re.compile(u"[0-9A-Za-z]")
def replace(match):
return chr(ord(match.group()) - ord(u"0") + ord("0"))
print re_alphanum.sub(replace, u"Python2003")
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGそれでは「変換の仕方」の説明にならないよ。
…まあそれの「ソースを見ろ」という意図なんだろうけど。
0439R
NGNGPythonのVers.は2.2.1(SJIS enhanced)。WinのKaaeditで試してます。
こんなコードで試しています。
ーーーーーーーーーー
import random
x = complex(random.choice(range(10,99)),random.choice(range(10,99)))
d=0
while not d: d = complex(random.choice(range(-9,10)),random.choice(range(-9,10)))
print '-- '*10
print 'x =',x,', d =',d
print 'x / d =',x / d
print 'x % d =',x % d
print '( x / d ) * d + x % d =',( x / d ) * d + x % d
ーーーーーーーーーーー
結果はたとえばこんな感じです。
-- -- -- -- -- -- -- -- -- --
x = (47+26j) , d = (8+6j)
x / d = (5.32-0.74j)
x % d = (7-4j)
( x / d ) * d + x % d = (54+22j)
もともと、数値をマイナスで割った時の余りってどうなるのだろうと調べてて、
複素数にまで手を出してしまいました。
0440デフォルトの名無しさん
NGNG結果が決まったものではないと思ってプログラミングすれば良いのでは?
結果を使わないようにするんです.
でも割り算の方は正しいですよ.
一般に,剰余についてはいくつか種類があり,仕様に書いてあります.
負のときはどうなるか,調べてから使いましょう.
ところで,>>439さんが期待した結果は何ですか?
0441R
NGNG私の期待した(複素数 % 複素数)の結果は、
(整数 % 整数)の時は割った値よりも小さい正の整数だったように、
複素数の時でも割った値よりも小さい正の複素数だと思ってました。
具体的には余りの値を a+bj としたら a,b > 0 でかつ、abs(a+bj) < abs(d) です。
ところが、実際は全くそうではなく理由も分からず驚いてました。
(私の複素数の概念の理解がいまいちなのかも知れません)
また、私の期待した値を得ようとすると、一意には定まらない事が机上で分かりました。多分!
また(複素数 / 複素数)の結果をa+bjとすると、a,bはintではなくlongで返ってくる事も整数の時と違ってて驚きました。
ちなみに、(複素数 % 整数)とすると、実数部分だけ計算されて結果が返されますね。
ちなみにこれらの使い道は、、、今から考えます。ははは
0442デフォルトの名無しさん
NGNG複素数の大小は数学的には微妙な話なので、たとえば
ttp://www004.upp.so-net.ne.jp/s_honma/number/complexnumber.htm
こんなのみるといいよ。
0443R
NGNG実は、上で書いた文章にも少し間違いがったあったのですが、
例えばこんな事を試してみると
lst = [[10,-10],[7,-7]]
for i in lst[0]:
for j in lst[1]:
print i ,'=',i/ j ,'*',j,'+',i%j
結果は
10 = 1 * 7 + 3
10 = -2 * -7 + -4
-10 = -2 * 7 + 4
-10 = 1 * -7 + -3
と言うワケで、除数がマイナスの時は%余りもマイナスになるようですね。
と、あれから、この整数の割り算を複素数に拡張できないかなぁと考えてます。
なにか出来たら、またここで報告しますね。では
0444デフォルトの名無しさん
NGNGbsddbとcdbの速度を比較したページとかあるでしょうか?
cdbは速いと聞いていたのでbsddbで使っていたプログラムを
cdbを使うようにしたら、逆に1.5倍から2倍遅くなってしまったので。
0445デフォルトの名無しさん
NGNG使い方がまずいんだと思う。
0447デフォルトの名無しさん
NGNGワラタ
「リンク集ページを見る」という習慣が無い人間て本当に居るんだね。
0448デフォルトの名無しさん
NGNGhttp://python.org/doc/current/ref/binary.html
に記述されています.(和訳はまだ訳了していません)
a, b が浮動小数点数:
a%b -> 剰余は b の符号と同じ
math.fmod(a, b) -> 剰余は a の符号と同じ
複素数の場合:
Python 2.2 まで -> a%b = a - b*math.floor((a/b).real)
Python 2.3 以降 -> 撤廃
です.
0449デフォルトの名無しさん
NGNGユーザ登録とかがあって、Moinじゃないような気がするんですが。
ttp://www.gembook.jp/tsum/page.pys?wiki=TitleIndex
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNGありがとうございます。ソース非公開のようですね。というよりも、
gembook.jpサイト専用Wikiですね。残念。
ttp://www.atransia.co.jp/home/ZenKai/Members/kafka/News/1041268894/view
0452デフォルトの名無しさん
NGNG以前は公開してたよ
漏れ持ってるけどあげない(w
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGバイナリをそのままコピーするだけで使えますか?
Windows2000 以降,一般ユーザはインストーラを実行できなくなった為,
お気軽スクリプティングが難しくなりました.
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG勝手にソフトインストールしたらダメだろ。
0460デフォルトの名無しさん
NGNG自動で判別して欲しいのですが,Kconv が唯一の方法ですか?
python2.2 です.
実は使い方が良く分からないのですが,
日本語処理の教科書みたいなソースがあればキボンヌ〜〜〜v
0461デフォルトの名無しさん
NGNG0462460
NGNG小さな wiki を拾ってきて,それを改良して使おうとしているところなんです.
狂ったユーザーエージェントに wiki ファイルをめちゃくちゃにされたく
ないのです.
rOOy って .toeuc とか書くだけで何とかなったりするらしいんですが,
ちょっと抵抗が...
0463デフォルトの名無しさん
NGNG> 狂ったユーザーエージェントに wiki ファイルをめちゃくちゃにされたくないのです.
なら UA チェックするとかすればいいじゃん。文字コードの話と関係ない。
あと、文字コード推測なら pykf があるよ。
0464デフォルトの名無しさん
NGNG資料などをご存知の方、いらっしゃいましたら、教えて下さい。
0465444
NGNG使用方法は、キーに文字列のパターン、その値にキーのパターンに合う
文字列のリストを持たせるようにしています。
リストは、bsddbを使っていたときは、pickle.dumps してから格納していました。
それで、cdbの方も同様に pickle を使ってみたら、bsddbより遅くなってしまいました。
でもcdbだといちいちpickleしなくてもいいようなので、
その部分を変更したら、bsddbよりも多少速くなりました。
うーん、これでもやっぱり使い方がおかしいでしょうか?
0466デフォルトの名無しさん
NGNG\Python23 の下をコピーすればいいです。
CD-RやUSBフラッシュメモリにコピーすれば
持ち運べます。この場合拡張子とプログラム
の関連付けはなされないので、必要に応じて
エクスプローラで関連づけるか、または、
コマンドプロンプトで 「P:\Python23\python
myscript.py 」のように実行するなどします。
Win2K/XPでAdmin権限の無い場合にPython.orgの
windows版インストーラ(Python-2.3.3.exe)で
インストールするには、「Select Components」
の画面で「Advanced Options」ボタンを押して
「Non-Admin install」のラジオボタンをチェック
します。インストーラを使った場合は、拡張子と
プログラムの関連づけが設定されます。
(もしスクリプトの実行方法がよくわからなければ
「1から学ぶ」スレか、「PC初心者板」の適当な
スレッドでお願いします。)
0467デフォルトの名無しさん
NGNGhttp://piza2.2ch.net/mona/kako/1004/10041/1004165144.html
0468デフォルトの名無しさん
NGNGすごい面白かった! TV版Monty PythonのDVD買おうかな〜。
0469デフォルトの名無しさん
NGNG2.10 Are there any Wikis that use reStructuredText syntax?
http://docutils.sourceforge.net/FAQ.html#are-there-any-wikis-that-use-restructuredtext-syntax
0470デフォルトの名無しさん
NGNGありがとうございます。
でも、普通のMoin ver.1.1 にreStructuredText を使っても駄目ですよね。
このページにあるSample はどういう環境(or 設定)になっているのでし
ょうか?
0471デフォルトの名無しさん
NGNGよくしらんけど、見た感じだと
moin_config.py で default_markup に 'rst' を設定じゃないの。
docutils も入れとく必要があるでしょう。
(ここは「ソフト板」じゃないので、ソフトの設定が
わかりませんではなく、できるだけプログラミングぽい
話題であるかのように見せかけてくだされ。)
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNGありがとうございました。
default_markup = 'rst' で、reStructuredTextが使えました。
markup としては、plain、python、wiki、rst が使えるようです。
ただし、rstではいくつかの書式は使えませんでした。その使え
ない書式によってWiki がエラーを起こすと、ローカルファイル
を修正しなければいけないようでした。
pyBlosxomのように、文書中にparserを指定できて、エラーを起
こすとplain で表示してくれればいいのにな、と思いました。
「ここは「ソフト板」じゃないので〜」
WebProg にはZopeしかなかったのでスレ違いかなと思いつつ、つ
い(^^;
申し訳ありませんでした。
0474デフォルトの名無しさん
NGNG揃っていないと思うがどうよ?
チラッと立ち読みしただけだし、Mac はもっていないから確認できないのだけど。
0475デフォルトの名無しさん
NGNG「インデントにタブを使った & ライター側と編集側でタブ幅が違う」説を推してみる。
0476デフォルトの名無しさん
NGNGインデントは基本的に半角4なのだけど、ところどころ4.4.3(なぜ?)となってたり、4.4.2(why?)とか
コードの細部を見なくても、明らかに縦方向で揃ってなかった。
実際に立ち読みするのが手っ取り早いと思う。
0477デフォルトの名無しさん
NGNGそれは・・・マジで原因不明。
0478デフォルトの名無しさん
NGNGPythonではインデントが重要な意味を持つというのに☆それを理解せず☆ 注意も払っていないってことにょ★
日本語では句読点が重要な意味を持つというのに☆ それを理解せず☆ 全部星マークに置き換えてるのと似たようなものにょ★
まったく怪しからん編集者にょ★
0479デフォルトの名無しさん
NGNG☆マークより個人的には「にょ」が問題だとおもうにょ。
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGダウト
星野鉄郎
0489デフォルトの名無しさん
NGNG大したことない処理でも意外と行数が必要だったりする。
トリッキーな書き方で短くするのもどうかと思うし。
読みやすいコードを示しつつ長いと感じさせないように
説明を加えるのはなかなか難しい。
0490デフォルトの名無しさん
NGNG> Python のプログラムって縦に長くなる傾向があるよね。
具体的には?
0491デフォルトの名無しさん
NGNG可読性犠牲にして詰めこんだ場合より
行数多いってことでしょ。
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNGfrom ruby to python な変換スクリプトを紹介してください
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNGむかしむかし、Ken Tompson がそういうのを使ってたと聞いた覚えがあるようなないような・・・
0499デフォルトの名無しさん
NGNGFrançoisタソ:http://mail.python.org/pipermail/python-dev/2004-February/042535.html
> [...] and [I] am a bit surprised that `bool' refuses to be sub-classed.
(boolが下位クラスの定義を拒否することにややビクーリ)
Guidoパパ:http://mail.python.org/pipermail/python-dev/2002-March/020822.html
> I thought about this last night, and realized that you shouldn't be
> allowed to subclass bool at all! A subclass would only be useful
> when it has instances, but the mere existance of an instance of a
> subclass of bool would break the invariant that True and False are
> the only instances of bool! (An instance of a subclass of C is also
> an instance of C.) I think it's important not to provide a backdoor
> to create additional bool instances, so I think bool should not be
> subclassable.
(昨夜このことについて考えていて、bool の下位クラスを定義することは
まったくもって許されるべきではないとゆーことに気がついた。下位クラス
が役に立つのはインスタンスがあるときだけだが、bool の下位クラスのイ
ンスタンスが存在すると bool の不変性が壊れてしまう。つまり True と
False だけが bool のインスタンスである、という性質がダメになってしま
うんだ!(C の下位クラスのインスタンスは C のインスタンスでもある。)
bool インスタンスを追加するための裏口は用意しないことがじゅーよー。
つーことで、bool の下位クラスは定義可能であるべきではないと思われ。)
0500デフォルトの名無しさん
NGNGapache ログにエラーがでます。でも、エラーメッセージが少な
く、自分には理解ができません。
CGIで、さらに多くのログを得ることはできるのでしょうか?
ご面倒ですが、アドバイスをお願いします。
Traceback (most recent call last):
File "/foo/pyblosxom.cgi", line 47, in ?
p.run()
File "/usr/lib/bar/pyblosxom.py", line 306, in run
tools.run_callback("prepare", {"request": self._request})
File "/usr/lib/bar/tools.py", line 313, in run_callback
output = mem(input)
File "/usr/lib/bar/plugins/comments.py", line 281, in cb_prepare
writeComment(config, data, cdict)
File "/usr/lib/bar/plugins/comments.py", line 148, in writeComment
cfile.close()
UnboundLocalError: local variable 'cfile' referenced before assignment
0501デフォルトの名無しさん
NGNGcontrib/plugins/comments/plugins/comments.py の
バグのようですね。
関数 writeCommentの中で、ファイルのオープン
cfile = open(cfn, "w")
に失敗するとそのようなエラーが出るのだと思います。
こんな感じで書くと、良いのではないでしょうか:
cfile = open(cfn, "w")
try:
…
cfile.write("</item>\n")
finally:
cfile.close()
* * *
バグはさておき、そもそもファイルのオープンに失敗する原因として
考えられるのは、不正なパス指定とか、ディレクトリのパーミッション
不正なので、このへんの設定もチェックする必要がありそうです。
0502デフォルトの名無しさん
NGNGご指摘をうけて、open('/tmp/foo',"w") としてみると途中まで
書き込まれてから、エラー発生。writeの問題であることを確認し
てご指摘の「ディレクトリのパーミッション不正〜」、をチェッ
クしました。
まさにそのとおりでした。たいへん勉強になりました。
ありがとうございました。:)
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG機械らしいから(w
0505デフォルトの名無しさん
NGNG各所でね(w
http://rakunet.org/TSNET/TSpython/index12t.html
0506デフォルトの名無しさん
NGNGmarz、なんか丸くなったなぁ・・・
昔py-ml-jpで(以下自粛
0507デフォルトの名無しさん
NGNG関わりたくないPython関係者の3人目に認定しますた。もぅぃゃ。
0508デフォルトの名無しさん
NGNG一人目と二人目は?
Sさんとsさん?
0509デフォルトの名無しさん
NGNG他の二人はだれさ?
一人は想像つくけど(w
0510デフォルトの名無しさん
NGNGケコーンかよ。
0511デフォルトの名無しさん
NGNGsさんはワカッタけど、Sさんがワカラネ
0512デフォルトの名無しさん
NGNGf = open("/tmp/gomi2","w")
a=unicode("日本語","euc_jp")
f.write(a.encode('utf-8'))
f.close()
もっとよい書き方があると思うのですが、アドバイスをいただけな
いでしょうか。
0513デフォルトの名無しさん
NGNGこんな雰囲気でよく質問できるね。
0514デフォルトの名無しさん
NGNGって、何が気に入らないの?
それはともかく、やっぱムネオタンスレあったほうがよくね? >>513
0515デフォルトの名無しさん
NGNGすごく気に入らないというわけではないのですが、下のような
見やすいコードを見つけたので、お願いしました。
datafile=open(filename, "w")
print >>datafile, form.getfirst("title")
print >>datafile, '#author %s' % user2Link(getUser())
(Pyblosxomの補助ツール、weblog-add.pyより)
0516デフォルトの名無しさん
NGNGimport codecs
f = codecs.open('filename', 'w', 'utf-8')
f.write(u"全ての**は神聖なり!")
f.close()
0517デフォルトの名無しさん
NGNGcodecs.openってのがあるんですね。これを使わせてもらいます。しかし、
まだunicode回り(?)でエラーがあります。
このコードはCGIであり、formの文字コードをutf-8にするために
<meta 略 charset=utf-8">を指定しています。
生成されているページはutf-8なので、CGIの問題ではなく、下の
コードにミスがあるとおもうのですが。
初心者の質問がつづいて申し訳ないですが、ご教授ください。
>>>f = codecs.open(filename,"w",'utf-8')
>>>w = unicode(form.getfirst("title"),"utf-8")
>>>f.write(a.encode('utf-8'))
UnicodeError: ASCII decoding error: ordinal not in range(128)
(ASCII decoding error は見たくない。。(^^;
0518デフォルトの名無しさん
NGNGf.write(w) でいけると思うよ。unicodeをいちいちencodeしなくても良い。
0519デフォルトの名無しさん
NGNGありがとうございます。そのとおりでした!
pyblosxomのツールweblog-add.pyをunicode対応にできました。ご希望の
かたは知らせてくださいね。
0520デフォルトの名無しさん
NGNG日本語化、またはunicode対応になっていないスクリプトって多いです
よね。そういうスクリプトを毎回書き直すのもいいのですが、何かも
っとスマートな方法があればいいですね。
lispだとマクロ?
0521デフォルトの名無しさん
NGNGどうして板内のPythonスレを3つにしたがるかな・・・
0522デフォルトの名無しさん
NGNGのhoopはどういう意味なのですか?
教えてください。
0523デフォルトの名無しさん
NGNGhoop はモジュールの名前。
hoop.py とかCでかかれた拡張モジュールとか何かあるんじゃない?
0524デフォルトの名無しさん
NGNGワラタ(w
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNGSolarWolf by Pete Shinners
http://www.pygame.org/shredwheat/solarwolf/
0527デフォルトの名無しさん
NGNGまず初心者だった、というオチに見えて仕方がないのですが・・・。
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG初心者はもろに引いてしまいそうだ。・゚・(つД`)・゚・
0531460=456
NGNG>>458,466
日本語環境用インストーラしか使ったことがないので
見落としていました.ありがとうございました.ウマウマですよv
でもレジストリは使ってますね.丸ごとコピーが完璧かな.
>>459 Windows には bourne shell も awk も sed も perl もないですから.
0532デフォルトの名無しさん
NGNG鈴木先生もコメントしたら、収集がつかなくなりそう。
何ヶ月か前の Ruby の箱モデルの議論を思い出した。
0533デフォルトの名無しさん
NGNGキレるとしたら機械タンの方だろ
0534デフォルトの名無しさん
NGNG「(x)rangeは分かりにくいから初心者に教えるのは後回しにしよう」ってこと?
だったら漏れ的には+0。「好きにすれば?」って感じ。
漏れもずいぶん長い間 list comprehension を理解できずに放置してた。
もし漏れが入門書めいたものを書くとしたら list comprehension は説明しないか
一番最後に付け足す程度に留めるかのどちらかだ。
0535デフォルトの名無しさん
NGNG書きかたは、
・効率とか言うな! そんなんビギナーに関係ないだろ、
しかもインタープリタで。わかりやすいかどうかが、すべてだ。
・C では、とか perl ではとか説明するのはやめてほしい。
知らない初心者は混乱するだろ。知っている人間には便利なのは
わかるけど。
・言語の詳細についていちいち「ちなみに」とか書かなくてもけっこう。
詳しく知りたくなったら自分でリファレンス調べるだろう。
for x in range(10):
これって分りにくい? 自分がはじめてチュートリアル見たときには、
「そういうものなんだ」と思っただけ。
0536デフォルトの名無しさん
NGNGおはよう&全面的に胴衣。
> これって分りにくい?
漏れ的には分かりにくくない&漏れも「そういうもんなんだ」とオモタ。
0537デフォルトの名無しさん
NGNGfor i in `seq 10`; do
0538デフォルトの名無しさん
NGNGここにある wxGadfly が上手く動かず、
いろいろいじってみて入るんですが、
どなたかお助けください。
0539デフォルトの名無しさん
NGNGfor x in range(10):
hoge()
みたいなの書かれると「その x は何?」とか聞きたくなるけどね。
でもまあそのために新たに
loop 10:
hoge()
とかあるいは Ruby の times みたいなのを追加するよりかは今のままの方がいいとは思う。
0540デフォルトの名無しさん
NGNG例えば、Java の
for(int i=0; i<=10; i++){
hoge();
}
に対して、「その i は何?」という質問が成立すると思いますが?
なにか Python のものと違いがありますか?
0541デフォルトの名無しさん
NGNGていうかRuby以外に知らないっす。
0543539
NGNGfor(int i=0; i<=10; i++){
の場合だと「i をインクリメントしながら10まで数えている」という
内部事情までそこに表記されているので「その i は何」という
質問にそのコード自体が答えている。
でも
for x in range(10):
の場合はシークエンスの要素を x にわざわざ代入する意味が
分からない。
別に数列でなくて
for dummy in [None]*10:
でも同じなわけで、range(10) が生成するリストの中に数列が入っている必要は無いですから。
0544デフォルトの名無しさん
NGNG所詮、whileを見やすくしたようにしか見えん
0545デフォルトの名無しさん
NGNGしかし、カウンタ x の値がコーディングの過程で後から必要になることって
結構ある気がする。デバッグのときに何回目のループか知りたくなることがあるし、
実質的な処理のために必要であることが後から分かることもある。
例えばC言語でもブロック内が1ステートメントなら { ... } は不要なワケだけど、
後でステートメントが増えるかも知れないから敢えて括弧付きにしたりする。
それと同じ。
多少冗長な方が融通が利いて良いと思う。
カウンタ無しのループ構文が導入されても俺はあんまり使わないかも知れない。
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG犯 人 は お 前 か
0548デフォルトの名無しさん
NGNGwxGadfly は wxPython 2.0 のころに書かれてますね.パッケージ構成や
メソッド名,引数の扱い方が今の wxPython 2.4 の設計と違うので,
そのままでは動かないようです.
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGそうでしたか wxPython は随分と仕様が変わってきているんですね
wxGadfly は data 操作と visual な部分がごっちゃっぽいので
理解しづらく感じるんですが
あんなもんなんでしょうか?
取りあえず新規作成とするとリストになにやら出る用にまではなりましたが、
なんか始めから作ったほうが早そうな…
作者さんはアップグレードするきないのかなぁ
0552デフォルトの名無しさん
NGNG空気読め。
0553527
NGNG0554デフォルトの名無しさん
NGNG盛り上がっていることだけは確かなようだ
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGwhile True:
>>556
0558デフォルトの名無しさん
NGNG機械タソもM氏もたいして変わりないな。言ってる事は両者とも違うけど。
鈴木先生がもっと絡んでたら、状況はさらにひどかっただろうねぇ。
python使い(といっても一部の目立つ人たち)ってのは、
なんであんなにくどいんだ?
0559デフォルトの名無しさん
NGNG>>556
^
SyntaxError: 文法的に間違っていると思われ
>>>
0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG初心者専用MLじゃないんだから話題はべつにかまわんと思うけど。
機械タソのお花畑があるんだし。むしろM氏は機械タソと遊んでる暇があったら
和訳しる。
0564デフォルトの名無しさん
NGNGそれはものすげく失礼
おまえがヤレ
0565デフォルトの名無しさん
NGNGすまないにょ
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNGgfsql: ttp://wspiegel.bei.t-online.de/gfsql/info_e.html
もあるなあと思ったけど,wxGadfly ほど高機能じゃありませんでした.
0568デフォルトの名無しさん
NGNGどの程度役に立つかようわからんが、よかったら使ってください。
例えば「継承」と「委譲」で検索するとこんなかんじ。
ttp://2chlinux.dtdns.net/2ch-program-python/index.cgi?query=%B0%D1%BE%F9+%B7%D1%BE%B5&whence=0&max=20&result=normal&sort=score
0569568
NGNGPythonお勉強スレッド
1 ttp://pc.2ch.net/tech/kako/965/965815778.html
2 ttp://pc3.2ch.net/test/read.cgi/tech/1020718991/
4 ttp://pc3.2ch.net/test/read.cgi/tech/1068824510/
人生の敗北者でも使えるPythonのお勉強
3 ttp://pc2.2ch.net/test/read.cgi/tech/1053955472/
です。
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG情報ありがとうございます。
zope に gadfly が付属してくるらしいので
こういった機能を持っているかな?と思って調べたのですが、
残念ながらないんですね。いろんなエンジンを使うから仕方ないか。
0572デフォルトの名無しさん
NGNGfile = open(...)
ってやること多かったけど改め名阿寒のかい。
ほんでさ、
for line in file(...):
なんつーのは普通に使われるわけ?
0573デフォルトの名無しさん
NGNG厳密に言うと close() しないとまずいので書き捨てスクリプト以外ではお勧めしない。
0574デフォルトの名無しさん
NGNGdef foo(func, list):
for item in list:
result = func(item)
if result:
return result
return False
みたいな関数を同じ計算量で内包表記で書くことはできますか?
def foo(func, list):
return [func(item) for item in list if func(item)]
というのを考えたのですが、
1. list の要素すべてにアクセスしてしまう
2. func を 2 回呼びだしてしまう
という点で元の関数と違ってしまいます。
0575デフォルトの名無しさん
NGNGこゆこと?
[func(item) for item in list][-1] or False
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG上はシーケンスの中で最初に見つかったTlueなオブジェクト
下はTlueなオブジェクトのシーケンス
な気がするけど。
上のline5はyield resultならほぼ同じかもしれんが
>1. list の要素すべてにアクセスしてしまう
と噛み合わんね。
基本的にリストコンプリヘンションは
「Listを生成する表現の一つ」なので
帰ってくるのは常にシーケンス。
0578デフォルトの名無しさん
NGNG> def foo(func, list):
> for item in list:
> result = func(item)
> if result:
> return result
> return False
>
> みたいな関数を同じ計算量で内包表記で書くことはできますか?
これに list comprehension を使うのは間違いでは?
itertools を使うのが最適だと思う。
def foo(func, list):
import itertools
for item in itertools.ifilter(func, list):
return item
return False
あと、好みの問題ですが、list は built-in 関数の名前なので、別の名前にした方が
いいと思います。
0579デフォルトの名無しさん
NGNG0580578
NGNG質問の答えになっていないか、、、
あと、他の人も指摘していますが、>>574 だと何をやりたいのかはっきりしません。
関数 foo と list comprehension のコードで食い違いがあるので。
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG言われるまで気付きませんでしたとも。
Traceback (most recent call last):
File ">>577", line 2, in ?
Tlue
NameError: name 'Tlue' is not defined
これから全部/usr/bin/env python の次に
Tlue = Trueって書いてやるからな!
0584デフォルトの名無しさん
NGNG> このとき回数カウンタとかそういった
> 機械的なからくりが実装内部で動いているはずですが
^^^^^^^^^^^^^^^^^
いろんな意味でワロタ。Sタン狙ってやってるの?
0585574
NGNGごめん、質問は 2 点あってそれを一つのコードで聞いてしまったのが間違い
でした。
1. リストの内包表記では、リストの途中で処理を打ち切ることができるかど
うか(break できるかどうか)
=> 必ずリストの要素すべてにアクセスするので、できない
2. リストの内包表記で下のようなことがしたい場合、func を 2 回呼びださ
ないためにどうすればよいか。
def foo(func, lst):
'''これをしたいけど, func を 2 回呼びだすのがまずい.'''
return [func(item) for item in lst if func(item)]
=> itertools を使え
ということですか?
Tlue!
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGパイソンプログラマーならフォトンすきだよな?
http://pc2.2ch.net/test/read.cgi/tech/1068819212/
0588デフォルトの名無しさん
NGNGブラクラ注意
フォトンってあれか、20年ぐらい前にあったナムコのゲームか?
0589デフォルトの名無しさん
NGNG1. 途中で止めたい
リストの要素が10のとき止まる(10は新しいリストに含まれない)例:
>>> list(itertools.takewhile(lambda x: x!=10, range(20)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2. 問題がよくわからんがこれはどう?
def foo(func, lst):
return [b for b in [func(a) for a in lst] if b]
>>> foo((lambda x: x%2==0 and x*2 or 0), range(20))
[4, 8, 12, 16, 20, 24, 28, 32, 36]
1.と2.を組み合わせて:
>>> foo((lambda x: x%2==0 and x*2 or 0),
itertools.takewhile(lambda x: x!=10, range(20)))
[4, 8, 12, 16]
なお、リスト内包がすこし難しく感じるときは、forループでリストを
作ってもよいと思います。
0590デフォルトの名無しさん
NGNGパイソンプログラマーならフォントすきだよな?
かと思ったよ。さすがコードの見た目に気を使う Python ユーザだなと。
0591デフォルトの名無しさん
NGNG1 の答えになっていないと思われ。
「リストの内包表記では,,,」なのだから。
0592デフォルトの名無しさん
NGNGそれにしても、新山さんの日記は面白いね。
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGgembook.jp
0595デフォルトの名無しさん
NGNG胴衣。腹八分目くらいで思索に疲れてメモってる/優雅さ/がにじみ出ててイイ。
0596デフォルトの名無しさん
NGNGプライベートモードで。
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGそうなの? URLおしえて
ていうか
600ゲトズサー
0601デフォルトの名無しさん
NGNGこれじゃない?
http://lowlife.jp/users/0000041/weblog/
0602デフォルトの名無しさん
NGNGサンクス
>>599
はじめたばかりなのによく見つけたな
本人か(藁
0603デフォルトの名無しさん
NGNG18時間後だからそんなことはないと思うが。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG反応早いな
やっばり(ry
0606デフォルトの名無しさん
NGNG'Python': u'〜', 'Lisp': u'λ', 'perl': '駝', }
Rubyは分裂した!Rubyは噛み付いた!Rubyは噛み付いた! [more]
+====+ a) 呪われたタブ置換エディタ
|〜首首邪| b) 「せんぷりに」と書かれた巻物
|首首死首λλλ・・・ c) 祝福されたTimおじさんの石像
|首首首サ|
+==邪=+
・
駝 ・・・・・
0607デフォルトの名無しさん
NGNGPyCon 2003に参加されたようですよ。
www.python.org/~guido/pycon03/
>>598 「実在の人」
c.l.pyへ信じられないぐらい精力的に投稿するので、
実は barryがelispで書いたAI (timbot)で…
などという説があったね。
BeOpen/PythonLabsに移ったとき (2000年?) に
メンバーとしてTim Peters氏の写真が公表された後は、
そうしたジョークはフェードアウトしていったように思う。
Python紹介のビデオにも出演していますよ。
www.ibiblio.org/obp/pyBiblio/pythonvideo.php
0608デフォルトの名無しさん
NGNGhttp://lowlife.jp/yusei/
こっちのほうがいいんじゃない?
無愛想な数字よりも。
0609デフォルトの名無しさん
NGNGそれと、lowlifeの中の人のファッションセンスがすごい。
0610デフォルトの名無しさん
NGNGmoinは、[[日本語]] は書けないけど ["日本語"] ならOK。
ファイル名を独自のエスケープ( _のあとに16進2文字 )で作るので
ちょっとうっとうしいかもしらんけど。
0611デフォルトの名無しさん
NGNGPythonで操れるものってありますか?
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG逆効果だったみたいよ(´・ω・`)
0614デフォルトの名無しさん
NGNGttp://www.roboken.channel.or.jp/er1/030318_01.htm
0616デフォルトの名無しさん
NGNGこういうかんじの出力がほしいです。
<a href="http://example.com">
<img src="http://example.com/x.jpg" />
</a>
0617デフォルトの名無しさん
NGNGtarget オプションが予定されてるみたいだが docutils 0.3 では未実装。
http://docutils.sourceforge.net/spec/rst/directives.html#images
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG↑で全部。みんな対応バージョンが古いけど。
ttp://www.python.jp/Zope/PyLog/1077280652
なので↑を勧めてみる。まだ出てないけど。
# こんなとこにも伯爵の電波^H^H○○が・・・
0620デフォルトの名無しさん
NGNGLAOXのBOOK館が有った頃はあそこで買ってたけど今は。。。
0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNGしょーも無いスクリプト思いついちゃったんで晒します。あんまり丸くないです。
mat={}
for y in range(-20,21):
for x in range(-20,21):
if x*x + y*y <= 400:mat[(x,y)]="●"
for y in range(-20,21):
for x in range(-20,21):
print mat.get((x,y),"○"),
print ""
0623デフォルトの名無しさん
NGNG2.3だと x[::-1]と書けるけどこれではだめ?
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNGfrom Tkinter import Tk, Canvas
root = Tk()
root.bind_all('<Escape>', lambda ev:root.destroy())
can = Canvas(root, width=600, height=400, bg='white')
can.pack(expand=True, fill='both')
for x,y in [(x,y) for x in range(600) for y in range(400)]:
if (x-300)**2 + (y-200)**2 <= 16000:
can.create_rectangle(x, y, x, y, outline='red')
root.mainloop()
0627デフォルトの名無しさん
NGNG↑ここまで Python 2.3
↓ここから Python 1.0.1
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGfrom Tkinter import Tk, Canvas
xRange = 1024
yRange = 768
iteration = yRange/5
yColors = ["red", "yellow", "green", "blue"]
dots = {}
for x in range(xRange):
y = 0.4
for i in range(iteration):
dots[(int(x), int(y*yRange))] = yColors[ i % len(yColors) ]
y = y*(1-y)*(x+0.01)/xRange*4
continue
print len(dots)
root = Tk()
root.bind_all('<Escape>', lambda ev:root.destroy())
can = Canvas(root, width=xRange, height=yRange, bg='black')
can.pack(expand=True, fill='both')
for (x, y), color in dots.items():
can.create_rectangle(x, y, x, y, outline=color)
root.mainloop()
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNGPython 1.0.1 (Mar 1 2004)
Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
File "sparce.py", line 16
can = Canvas(root, width=xRange, height=yRange, bg='black')
^
SyntaxError: invalid syntax
(´;ω;`)グスン
0632デフォルトの名無しさん
NGNGどの ML?
0633デフォルトの名無しさん
NGNG全角スペースでインデントしてるんで、そのせいかも。
$ gzip -c < logistic.py | uuencode - > logistic.py.gzip.uuencode
したんで、
$ uudecode < logistic.py.gzip.uuencode | gzip -dc
とかしてください。
begin 664 -
M'XL(`+GD0D```YV3W6Z;,!3'[_T49T$3-B6$9%DW164WU5Y@RET450XXP8JQ
MD7$:K&GOOF.@:55IFC8NX/CX?[Y^V-$'6%PZNSA(O6B]JXU>92M"CM8TL#U+
M[80%V;3&.ERF\,CU,^\(Z7]P?1)0P#)?K8E_67VY_TJ(Q!CNI-'H&'<6GXE_
M-,K8#EV[F175+(69%TJ9:[!.5@@=C(.ZB-F>D,JX(/WYBQR-A1ZD!AL2T;$N
MVQ#`QZ,DS]:#'73R57?K89*&)R3=41R)]BR%\/7)V!]C^]#KV.(.\WP$)32=
M'`SVMQRAI$_H<NY90ON[/,N7;#$VE:QOJM)H)_5%$-):K#,D"]49L<8X3+$]
MT]'.D'OUQ)6B\</WKN2M^!:GH'ASJ#B(Y\V@J43GK/&4,5+R0'7\"S1LIG"5
ME:N+L8<4:B%/M2O\M#R<BOB@>'F.A]BL19.*ON6Z*K;V@HJC5`HUQM4H"11I
MGX)'0&48/A`-G6<(M.GH1#-D*JW@3CQ943HLI<00EL+X-A>GI!;%D&.:M.%2
M*V-:G)Q$;SE$_P,B^B.)^SR_85@'.S"XUCA`/(;]#4(TG+G4A]EW.)9G\.X4
M8HG1YU]]6(KM-R0*?.01*<X_H2=)5G`'U,]7T^(!KPR&YY/RGVC&>''B%UYO
+</X&N77@`L0#````
`
end
>>632
Python-ml-jp 2815
とか。
0634633
NGNG#! /usr/bin/python2.2
from Tkinter import Tk, Canvas
xRange = 1024
yRange = 768
iteration = yRange/5
yColors = ["red", "yellow", "green", "blue"]
dots = {}
for x in range(xRange):
y = 0.4
for i in range(iteration):
y = y*(1-y)*(x+0.01)/xRange*4
continue
for i in range(iteration):
dots[(int(x), int(y*yRange))] = yColors[ i % len(yColors) ]
y = y*(1-y)*(x+0.01)/xRange*4
continue
root = Tk()
root.bind_all('<Escape>', lambda ev:root.destroy())
can = Canvas(root, width=xRange, height=yRange, bg='black')
can.pack(expand=True, fill='both')
for (x, y), color in dots.items():
can.create_rectangle(x, y, x, y, outline=color)
root.mainloop()
0635633
NGNG#! /usr/bin/python2.2
from Tkinter import Tk, Canvas
xRange = 1024
yRange = 768
iteration = yRange/5
yColors = ["red", "yellow", "green", "blue"]
dots = {}
for x in range(xRange):
y = 0.4
for i in range(iteration):
y = y*(1-y)*(x+0.01)/xRange*4
continue
for i in range(iteration):
dots[(int(x), int(y*yRange))] = yColors[ i % len(yColors) ]
y = y*(1-y)*(x+0.01)/xRange*4
continue
root = Tk()
root.bind_all('<Escape>', lambda ev:root.destroy())
can = Canvas(root, width=xRange, height=yRange, bg='black')
can.pack(expand=True, fill='both')
for (x, y), color in dots.items():
can.create_rectangle(x, y, x, y, outline=color)
root.mainloop()
0636デフォルトの名無しさん
NGNGあああすんまそんぶんぽうえらーになるのはきーわーどひきすうにたいおうしていないばーじょんだからですごめんなさいごめんなさいもうしませ(NO CARRIER
0637デフォルトの名無しさん
NGNGimport marshal, binascii
fleet = marshal.loads(binascii.a2b_base64(
"e3MGAAAAj4SXbYrNWwMAAAAoAgAAAGkHAAAAaQUAAAAoAgAAAGkHAAAAaQYAAAAoAgAAAG"\
"kHAAAAaQcAAABzBgAAAIpqlJqSZVsBAAAAKAIAAABpCQAAAGkIAAAAcwYAAACL7JKAis1b"\
"AgAAACgCAAAAaQMAAABpBQAAACgCAAAAaQMAAABpBgAAAHMEAAAAkO2KzVsEAAAAKAIAAA"\
"BpBAAAAGkDAAAAKAIAAABpBQAAAGkDAAAAKAIAAABpBgAAAGkDAAAAKAIAAABpBwAAAGkD"\
"AAAAcwQAAACL85XqWwUAAAAoAgAAAGkCAAAAaQEAAAAoAgAAAGkCAAAAaQIAAAAoAgAAAG"\
"kCAAAAaQMAAAAoAgAAAGkCAAAAaQQAAAAoAgAAAGkCAAAAaQUAAAAw"))
battlefield = {}
for ship, coords in fleet.items():
for coord in coords: battlefield[coord] = ship
while 1:
instr = raw_input("どこを攻撃しますか? [x, y] = > ")
try:
x, y = map(int, instr.strip().split(','))
except:
print '「3, 7」のように入力しる!'; continue
if not battlefield.has_key((x, y)):
print 'なにも起きまそん、艦長!'; continue
ship = battlefield[(x, y)]
if ship == '核爆弾':
print 'あぼーん、核爆弾を撃ってしまいますた (あんたの負け)'; break
print "%s に命中しますた、艦長!" %(ship)
fleet[ship].remove((x, y)); del battlefield[(x, y)]
if len(fleet[ship]) == 0:
print "%s を轟沈しますた、艦長!" %(ship); del fleet[ship]
if len(fleet) == 1:
print "艦長!全ての敵を殲滅しますた!"; break
0638637
NGNGfleet に SJIS 入れちゃったんで、SJIS 限定でおながいします。
0639デフォルトの名無しさん
NGNGimport codecs, sys; sys.stdout = codecs.EncodedFile(sys.stdout, 'sjis', 'euc-jp')
0640デフォルトの名無しさん
NGNG# coding: base64
なスクリプトが書けるか挑戦したけどできなかった・・・(←馬鹿
# 原理的にできないのかおいらができなかっただけなのかも不明
0641デフォルトの名無しさん
NGNGエンコードした後の字面に coding: *** が見えてないと
エンコーディング名を探してデコードすることができないにょ。
0642640
NGNGそう思って、その二行だけASCIIにして、残りをBASE64にしてcatで繋げたり
してみたんだけど・・・無理ですた。こんなかんじで。
# coding: base64
aW1wb3J0IHN5cwoKcHJpbnQgc3lzLmFyZ3YK
でもNameErrorにならずに SyntaxError: 'bad argument type for builtiin
operation' になるので、実はもう一歩でできるのかも、と思ったり。
0643デフォルトの名無しさん
NGNGcevag h"ahqtr ahqtr?"
0644デフォルトの名無しさん
NGNGrot13 だとできるのね・・・む〜ん
0645デフォルトの名無しさん
NGNG1. default encoding でスクリプトの最初の行を読む→ # coding: base64 発見
2. (最初の2行を含む)ファイル全体を base64 でデコード
→ "# coding: base64" は "r\x87b\x9e\x06\xda\xb1\xee\xb8" になる
3. 最初の行を実行できずクラッシュ
ということだと思います. rot13 は '#' を '#' にデコードするから,
"# coding: rot13" は "# pbqvat: ebg13" に変換され,ただのコメント
として扱われるんじゃないかなぁ.
0646デフォルトの名無しさん
NGNGFile "spam.py", line 2
SyntaxError: 'bad argument type for built-in operation'
なんですよね。二行目に問題があるらしいです。謎。
0647デフォルトの名無しさん
NGNG削ったらどうなるんだろう.
0648デフォルトの名無しさん
NGNG>>642の二行スクリプトの結果が>>646です。
ちなみに中身は、
import sys
print sys.argv
だけです。
0649デフォルトの名無しさん
NGNGbase64コデックのdecode()がunicodeオブジェクトではなく
stringオブジェクトを返すのが原因だったにょ。
漏れの考えではこれはバク(仕様違反)にょ。
次のように修正すると動くようになるにょ。
× output = base64.decodestring(input)
○ output = unicode(base64.decodestring(input), "iso-8859-1")
>>645
調べてみて分かったんだけど、デコードの対象になるのは
エンコーディグ指定の行よりも後の行だけみたいだにょ。
よって、
# coding: base64
aW1wb3J0IHN5cwoKcHJpbnQgc3lzLmFyZ3YK
はOKだけど、
# coding: base64
# by 640
aW1wb3J0IHN5cwoKcHJpbnQgc3lzLmFyZ3YK
はNGにょ。
0650デフォルトの名無しさん
NGNGexeファイルを実行すると正しく動作します。そこで更に
このlibrary.zipをexeファイルにまとめてしまいたいのですが
方法をご存知の方居られませんか? どうぞ宜しくお願いします。
ご参考 setup.py
-----------------
# setup.py
from distutils.core import setup
import py2exe
setup(windows=["hoge.py"])
---------------------------
0651デフォルトの名無しさん
NGNGこのアプリケーションを配布する際に、Pythonの必要な部分だけを添付していも良いのでしょうか?
具体的には、python??.dll と、Lib 以下の必要なスクリプトのみになりそうなのですが、
こういった配布の仕方をしてもかまわないですか?
0652648
NGNGどうもありがとうございます。実は昨晩調べて同じ結論にたどり着きました。
# 思わず徹夜しちまったぃ・・・ねむ・・・
Python VM レベルでの文字コードの変換を
Python Script レベルで記述できるような仕組みが、
なかなかトリッキーな作りになっていて勉強になりますた。
0653デフォルトの名無しさん
NGNGを自分でしっかり読んで自己責任で。
GPL のライブラリやスクリプトと一緒に配布して問題ないかどうかは
よく知らない。
0654デフォルトの名無しさん
NGNGこれpycだけでソースなし?無理ぽ。
とりあえずデコンパイラ見付けたのでギコギコしてみる。
んーうまくpyに戻せるのもあるがそうでないのも多い
0655デフォルトの名無しさん
NGNGそれどころか404ですた。完。
0656デフォルトの名無しさん
NGNGライセンス見てないけどデコンパイルして改造ってのはマズかろう。
改良してもパッチ投げられないし。
0657654
NGNG>>655
http://www.myelin.co.nz/bzero/
のpython2.2用を取って来る。
デコンパイラは
http://www.crazy-compilers.com/decompyle/
のver2.2
debianはすでにパッケージがあるのでそれを使った。
RSS.pyだけデコンパイルに失敗するが、これは元が
www.mnot.net/python/RSS.py
なので問題なし。
>>656
bzero is free for personal use.
It may end up as part of a commercial package, or it may not.
とREADMEに書いてあります。自分の勉強用にとどめておくのが無難ですし、
そうするつもりです。
0658デフォルトの名無しさん
NGNGThanks! おもしろそう。
・・・なぬ、Winで動かないだとぅ! 完。
0659デフォルトの名無しさん
NGNGlibrary.zip は 0.5.0 になってからの仕様で,ここには pure Python の
モジュールが入ります.旧バージョンの py2exe では,実行ファイル本体に
スクリプトをまとめていたと思います.旧バージョンにしても, python*.dll
や zlib.pyd を exe に埋められないのだから,スクリプトだけを埋められた
ところでたいした違いはないのでは? 去年の今ごろに,作者の Thomas
Heller が「ディレクトリごと zip して配ればいいはずから,あまり単一
ファイル化することに興味はありません.どうしても単一ファイルにしたい
なら Gordon McMillan の Installer を使ったらどうですか」という
内容の発言をどこかでしていました.(残念ながら,Installer のページは
なくなっています)
0660デフォルトの名無しさん
NGNG確かに参考とするファイルやビルド方法も古い記述の物でしたの
旧バージョンじゃないとダメなのかなーとうっすら思っていましたが、
ありがとうございます。
出来れば配布するファイルは少なく、大きさが小さい物を良しと考えて
いますので。。。exeならupxで圧縮できますし。。
Gordon McMillan を調べてみます。最後にもう一度、ありがとうございました。
0661デフォルトの名無しさん
NGNG> base64コデックのdecode()がunicodeオブジェクトではなく
> stringオブジェクトを返すのが原因だったにょ。
> 漏れの考えではこれはバク(仕様違反)にょ。
Base64は、任意のオクテット列を、8bit目を通さない通路にも
流せるように変形するためのエンコーディングなんだから、
> 次のように修正すると動くようになるにょ。
>
> × output = base64.decodestring(input)
> ○ output = unicode(base64.decodestring(input), "iso-8859-1")
こんなことしたら本来の役目が果たせないんじゃないかね。
それにデコード後 iso-8859-1 決め打ちもちょっといただけないし。
まぁ「ソースコードの」エンコーディングに使うなんて考えてないコーデック
なわけだし、素直にあきらめるが吉だと思います。ちょっと残念だけど。
0662デフォルトの名無しさん
NGNG単なるネタじゃなかったんだ…
0663デフォルトの名無しさん
NGNG半分冗談でしたよ。ええ。
0664デフォルトの名無しさん
NGNGまあネタなのは重々承知の上で最後に二点だけ。
まず、「base64モジュール」と「base64コデック」の二つがあるというのが一点。
前者はbase64本来のエンコード/デコードを担当するモジュールで普通はこれを使う。
後者はコデックだからstring型とunicode型の相互変換を担当するのが「本来の目的」のはず。
(その目的を果たしてないからバグだと書いた)
デコード結果をiso-8859-1にしたのはunicode型でバイト列を表す手っ取り早い方法だったから。
(というか他にいい方法を思いつかない)
もう一点、base64は入力も出力もバイト列であることが期待される変換方式だから
そもそもコデックを使って変換を実現すること自体がおかしいと言えばおかしい。
類似のuuコデックなどについても同様。ぶっちゃけ、base64コデックの存在自体が
ネタみたいなもんだ。たぶん作者のMALも面白半分で作ったのだと思われ。
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGうぃ。たいへんよく解りますたにょ。
>>665
忘れるくらいなら、わざわざやらなきゃいいのにw
0667デフォルトの名無しさん
NGNG暗黙の変換を行わなければならないという仕様は変更されているようです.
base64, uu, rot13, zip は, string to string の変換ができるように
変更されたのに伴って,MAL がサンプルに作ったパッチらしいです.
そういう意味ではネタ codec なのかもね.
0668デフォルトの名無しさん
NGNG> 暗黙の変換を行わなければならないという仕様は変更されているようです.
ソースきぼんぬ。
0669デフォルトの名無しさん
NGNGttp://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Lib/encodings/base64_codec.py
0670デフォルトの名無しさん
NGNGttp://www.python.org/doc/2.2.3/whatsnew/node8.html
MAL はこんなことも言っていました.
ttp://mail.python.org/pipermail/python-dev/2001-May/014748.html
0671デフォルトの名無しさん
NGNGfrom Tkinter import Tk, Canvas
import colorsys
def gen(coords):
for x,y in coords:
if (300-x)**2 + (200-y)**2 <= 16000:
r,g,b = [i*256 for i in colorsys.hls_to_rgb(y/200.,(x-160)/300., .9)]
yield x,y,r,g,b
root = Tk()
root.bind_all('<Escape>', lambda ev:root.destroy())
can = Canvas(root, width=600, height=400, bg='black')
can.pack(expand=True, fill='both')
for x,y,r,g,b in gen([(x,y) for x in range(600) for y in range(400)]):
can.create_rectangle(x, y, x, y, outline=('#%02x%02x%02x'%(r,g,b)))
root.mainloop()
0672デフォルトの名無しさん
NGNGソースありがと。
unicode-proposal.txt には「.decode() must return an Unicode object」と
ハッキリ書いてあって、漏れの理解はこれがすべてだった。しかし、
2.2で加えられた string 型オブジェクトの .encode() メソッドと
.decode() メソッドのために混乱が生じているみたいだね。
2.2では次のようなことができるようになって嬉しいというわけだ。
>>> "test".encode("base64")
'dGVzdA==\n'
>>> "test".encode("base64").decode("base64")
'test'
それじゃあってことで改めてbase64コデックを Unicode コデックとして
使ってみたらおかしなことになった。
>>> unicode("dGVzdA==\n", "base64")
TypeError: decoder did not return an unicode object (type=str)
>>> u"\u6f22\u5b57".encode("base64")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
つまり、base64コデックは Unicode コデックと同じ方法で実装されているけれど
実は Unicode コデック*ではない*(あるいは
http://mail.python.org/pipermail/python-dev/2001-May/014748.html
のMALの言葉を借りるなら「non-Unicode related codecs」)というわけだ。驚いたw
引用したメッセージの中で /F の「your "decode" design is broken,
instead of just buggy...」という言葉が引用されてるけど全く同感だ。
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNGいやメールアドレスが mal@... てなってるしさ。
0676デフォルトの名無しさん
NGNG現状の docutils でもこんなことならできるようです.
here is an |image|__
.. |image| image:: hodge.png
.. __: hodge.html
<div class="document">
<p>here is an <a class="reference" href="hodge.html"><img alt="image" src="hodge.png" /></a></p>
</div>
0677デフォルトの名無しさん
NGNG.. |image| image:: hodge.png
.. _image: hodge.html
も通りました. `ここ`_ に書いてあったよ.
.. _`ここ`: ttp://docutils.sourceforge.net/spec/rst/reStructuredText.html#substitution-references
0678デフォルトの名無しさん
NGNGメアドもそうなんだけど、例えば Python-Dev Summary では
MAL said ... とか MAL's proposal とか書かれたりする。GvR についても同様。
もっとも、漏れらが私信でこんな書き方したら「なにタメぐちきぃとんねん」って
怒られるかも知れない(w
0679デフォルトの名無しさん
NGNGユニコードをeuc-jpに変換して出力する場合、
s.encode('euc-jp')
というのはわかりますが、
ソースコードがeuc-jpで、CGIなどを書いていて、フォームから入力されるデータの
文字コードが何かわからない場合、unicode(s).encode('euc-jp')とすれば
nkf -eみたいに自動的にeuc-jpに変換されるのですか?
unicode(s, 'euc-jp')とするのは、
あらかじめHTMLにcharset=euc-jpとしておくのが前提でしょうか?
0680デフォルトの名無しさん
NGNGRTFM って言おうと思ったけど,和訳マニュアルの大事なところがごっそり抜けて
ました.直しときます.unicode( [object[, encoding [, errors]]])
は,encoding が指定されていれば encoding を使って object をデコード
して返します.指定されていなければ,object の __unicode__() メソッドを
呼び出そうとします, __unicode__() が定義されていなければ, Unicode
オブジェクトを返す str(object) のような働きをします.つまり文字コード
推定は行いません.
一方, decode( [encoding[, errors]]) は string を encoding で指定
された文字コードでデコードしようとします. encoding を省略すると,
デフォルトエンコーディングを使うだけです.
結論として, unicode にも decode にも,対象文字列の文字コードごとに
適応的な変換をする仕様はありません.
文字コードに柔軟なデコードを実現したければ,pykf など(といっても他に
知らないけど)を使うか,「日本語文字列全般」からのデコードを実現する,
不可逆で tricky な codec を作るか,ぐらいだと思います.
0681デフォルトの名無しさん
NGNG単純になりますか?
一端リストを作成してシャッフルして、4回pop()するのが一つの手だと思うのですが、
ほかにどんな方法がありますかね?
0682デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/module-random.html#l2h-1133
0683デフォルトの名無しさん
NGNGなんちゃって自動判別...
Python で CGI を書く時はこんなので胡麻化してる。
def japaneseToUnicode(s, encodingList=['utf-8', 'japanese.euc-jp', 'japanese.shift_jis', 'japanese.iso-2022-jp']):
'''Convert Japanese string to Unicode.'''
for enc in encodingList:
try:
# print 'trying', enc , '...'
u = unicode(s, enc)
# print 'done:', enc
return u
except UnicodeError:
pass
raise UnicodeError, 'codec can\'t decode: "' + s + '"'
0684デフォルトの名無しさん
NGNGどうも。よくわかりました。
普段Linux上でEUC-JPで完結していたため、
Web上で入出力するとどうなるかわからなかったんです。
0685デフォルトの名無しさん
NGNGブラウザがどういう文字コードでフォームデータを送ってくるかはブラウザ依存。
普通はフォームがあるページの文字コードに合わせて送ってくる。
だから、ページの文字コードがEUC-JPならフォームデータの文字コードもEUC-JPだと仮定していい。
ただし、残念ながらページの文字コードとは異なる文字コードで送ってくるブラウザもあるようだ (具体的にどれかは知らない)。
よって一応文字コード判別をしておくのが無難 (683さんのコードはナイスアイデアだと思う)。
0686デフォルトの名無しさん
NGNGsampleには気づいていなかった。サンクスコ
0687デフォルトの名無しさん
NGNGtest = ['a','b']
hoge = test
del hoge[1]
hoge.insert(1,'c')
print test
print hoge
出力結果:
['a', 'c']
['a', 'c']
となります。
意図としてはtestの値を変えたくないのですが、
どのようにすればよいのでしょうか?
0688デフォルトの名無しさん
NGNGhoge = test[:]
0689デフォルトの名無しさん
NGNGhoge = list(test)
0690デフォルトの名無しさん
NGNGおぉ…。ありがとうございました。
0691デフォルトの名無しさん
NGNGあ、こんな方法もあるのですか。。
ありがとうございます。
0692デフォルトの名無しさん
NGNG初めてのプログラミングでYahoo!天気から
今日の天気と明日の天気を得とくするスクリプトを
書いて見たのですが、アドバイスしてもらえないでしょうか?
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNGhttp://dictionary.goo.ne.jp/search.php?MT=%A4%B7%A4%E5%A4%C8%A4%AF&kind=jn&mode=0&base=1&row=1
漢字の前に(略
0695デフォルトの名無しさん
NGNGJapaneseCodecs は 0x1b 以下の文字が入っててもエラーを出さないので、
それは euc、sjis、utf8 の認識には使えるが、iso-2022-jp の認識には使えないと
思いますが、どうでしょうか。
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNGprint ptn.findall(s)
0700デフォルトの名無しさん
NGNGHTMLページ全体を一度に得とくして page に保存し、
この page 全体にたいして re.findall すると、
プログラムがもっと単純になります。
def main(url):
f = urllib.urlopen(url)
page = f.read().decode('euc-jp')
f.close()
result = re.findall(r'(?im)<font size=-1>\n(.+?)</font>', page)
return result[0], result[1]
if __name__ == '__main__':
today, tomorrow = main(URL)
print 'Today:', today.encode('shift_jis')
0702デフォルトの名無しさん
NGNGttp://www.mobilewhack.com/programming/python/python_on_nokia_screenshots.html
0703デフォルトの名無しさん
NGNGうーん….
0704デフォルトの名無しさん
NGNGんだからやめれと。つかlambdaより関数使えと、そういうことだ。
0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNGPythonだとインデントのことがあるからlambdaを使うと読みづらいのは分かるけど,
やっぱり使いたくなるときはあるんだよなぁ.
>>705
原則としては,実行順序が問題になる場合「文」なんじゃないの?
0707デフォルトの名無しさん
NGNG式と文が分かれてない言語だって、作った人の都合でしかないと思うんだけど。
あんたは何が言いたいの?
0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG「゛」が抜けてる。
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG構文解析器(の実装)の都合で式と文が分かれている、と言いたいんじゃない?(w
つまり、Pythonの文法は実装によって決まった、というわけだ。なかなか興味深い。
0712デフォルトの名無しさん
NGNG生成する関数ってないかな?
0713デフォルトの名無しさん
NGNGtime.strptime() and datetime.fromtimestamp()
0714デフォルトの名無しさん
NGNG/ ̄ ̄ ̄ ̄ ̄ ミ
/ ,――――-ミ
/ / / \ |
| / ,(・) (・) |
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| /__/ / < なわけねぇだろ!
/| /\ \__________
0715デフォルトの名無しさん
NGNG懐かしいな
久しぶりに見たぞ
で、ハゲドウ
0716デフォルトの名無しさん
NGNGしょうか。
プログラムの初学者で、epochってのをはじめて知りました(^^;
0717デフォルトの名無しさん
NGNGPython のバージョンは何ですか?
2.3 以降なら、1970 年を意識せずに実用上の年号ならほとんど扱えるようになったと思います。
試しに、
>>> import datetime
とやってエラーがでるか確認してみてください。
0718デフォルトの名無しさん
NGNGありがとうございます。Python は2.1でした。
>>>> import datetime は"No module named datetime"でした。
実は、Windows版Plone、Zopeなんです。2.3以降にした方がいい
のでしょうか。
少し怖いです。Data.fs めちゃめちゃにならないか、心配です。
(Zope 2.6.1 、python 2.1.3)
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNGあっ、すいません。Zopeネタかと思って、そっちに書き込んじゃい
ました。mxDateTimeはZopeというよりは、Pythonのライブラリですね。
いまページを見て理解しました。
アドバイスありがとうございました。
PS いまインストールで失敗しています(^^;
ttp://pc2.2ch.net/test/read.cgi/php/1045704268/933-
0721デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/linux/1078144088/l50
0722デフォルトの名無しさん
NGNG組もうとしたとき、グラフ描画は何を使えばいいでしょうか?
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGSVG とか。
0725デフォルトの名無しさん
NGNG何でもいいのでは。Tkinter の Canvas とかお手軽で良さげ。
データを受け取る時間隔が長くてグラフの描画手順が面倒なら、
一時ファイルにデータを書き出して gnuplot で PNG ファイルに
グラフをプロットして、その画像ファイルを(再)表示するとか。
gd ライブラリもいいかも。
http://www.boutell.com/gd/
http://newcenturycomputers.net/projects/gdmodule.html
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNG1. キーボードは一本指でしか打てない。
2. 「インストールって何?」
3. プログラミングって何するのかわからない。
4. いくつかの例は覚えたが何もできない。
5. 大きなプログラムを作ろうとして挫折した。
6. まだコンパイラを書いたことがない。
0728デフォルトの名無しさん
NGNGパソコン持ってません 程度
0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG4です。
0733デフォルトの名無しさん
NGNG多分キミは「パソコン買ったけど何に使えばいいのか分からない」って言ってる
香具師と似た状況にあると思われ。
次にすべきことは、自分はどんなプログラムを作りたいかを考えることだ。
最初は小さな、ただ一つの機能を持ったプログラムを考えてみるといい。
普段自分のパソコンで繰り返しやっていて面倒だと思うこと、自動化できたら
便利だなーと思うことを探してみるのもよい方向だ。
やりたいこと(解決したい問題)が見つかったら、それを Python で実現する
具体的な手順を考える。大抵の問題は、あれをやってこれをやれば目的達成と
いうように、小さな問題の列に分解できる。それらの小さな問題の一つ一つを
Python のプログラムコード片に翻訳していく。
やりたいこと(の部分問題)の実現方法や書き方が分からなければ、またこの
スレで聞けばいい。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG726 == 734
ですか?
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNGhttp://www.python.jp/pub/doc_jp/ref/contents.html
http://www.python.jp/pub/doc_jp/tut_2.3/index.html
http://www.python.jp/pub/doc_jp/lib/contents.html
http://hp.vector.co.jp/authors/VA003670/python/index.htm
ここらへん読んでがんばってみたら、どうです?
0738デフォルトの名無しさん
NGNGどうもありがとうございます。
0739デフォルトの名無しさん
NGNGエレガントな方法はあるでしょうか?
というのも、string.split() はそれなりに便利ですが、
たとえば、"aaa, bbb, ccc\n" といった文字列を ("aaa", "bbb", "ccc")
といったトークンに分割したい場合に、それだけでは少し機能が足らないためです。
(split()/my_split()などではない、全く違ういい方法があればご教授ください)
ちょうど、C における strtok()の第2引数のように、
my_split(str, " ,\n") もしくは、my_split(str, (" ", ",", "\n"))
のように指定して使える形にするには、どうすればよいでしょう?
とりあえず、安易なやり方としては以下が考えましたが、あまりエレガントではありません。
(str が長く、sepの個数が多い場合、涙モノの性能になると思われます)
def my_split(str, sep):
for c in sep[1:]:
str = str.replace(c, sep[0])
return str.split(sep[0])
0740739
NGNGstring.split("a ", " ") とやると、['a', '', '', '', '', ''] などとなるんですね。
最後に空白要素を抜く処理を加えないとダメですね。
それはそれとして、別のベタなやり方を考えてみました。
こちらはそれなりに動くようです。
def my_split(str, sep):
ret_list = []
tok = ""
for c in str:
if sep.find(c) == -1:
tok += c
continue
if tok:
ret_list.append(tok)
tok = ""
if tok:
ret_list.append(tok)
return ret_list
0741デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/node103.html#l2h-823
>>> import re
>>> s = "V<asdfas />ia<erfsdas />g<poaacaa />ra<zdfdasd />"
>>> re.split("<[^>]*>", s) # 区切りはマークアップタグ様のパターン (<...>)
['V', 'ia', 'g', 'ra', '']
>>> s = "OIriaYnIgie AylJeirIt!"
>>> re.split("[IiYyJ]", s) # 区切りは I, i, Y, y, J
['O', 'r', 'a', 'n', 'g', 'e A', 'l', 'e', 'r', 't!']
単に末尾の改行が煩わしいだけなら,strip() で剥ぎ取れます.
ttp://www.python.jp/pub/doc_jp/lib/module-string.html#l2h-803
>>> s = "Nudge, nudge, nudge, nudge\n"
>>> s.strip().split(', ')
['Nudge', 'nudge', 'nudge', 'nudge']
ファイルのサイズが小さいなら,file.read().spltlines() すれば,
手軽に改行のないレコード列を手に入れられます.
ttp://www.python.jp/pub/doc_jp/lib/string-methods.html#l2h-197
>>> import StringIO
>>> f = StringIO.StringIO("spam\nspam egg\nspam bacon egg")
>>> for i in f.read().splitlines():
... print i.split(" ")
...
['spam']
['spam', 'egg']
['spam', 'bacon', 'egg']
0742739
NGNGありがとうございます。
def my_split(str, sep):
returnre.split("[%s]+" % sep, str)
で、かなり近い振る舞いはできるようですね。
ただ、たとえば、my_split("#a, b, c ", " ,#") とした場合、['', 'a', 'b', 'c', ''] となって、
前後に空白要素が入ってしまうようです。
この場合、空白要素を入れないような、うまい正規表現はありますかね?
0743デフォルトの名無しさん
NGNG「いるものを取り出す」ようにしたほうが、
すっきりするんじゃないの?
0744デフォルトの名無しさん
NGNG>>> import re
>>> def your_split(str, sep, stripchars=None):
... return re.split("[%s]+" %(sep), str.strip(stripchars))
...
>>> your_split("#!/usr/bin/env/python -u -E -d\n", " ", stripchars="#\n!")
['/usr/bin/env/python', '-u', '-E', '-d']
RTFMA, ttp://www.python.jp/pub/doc_jp/lib/module-string.html#l2h-803
0745デフォルトの名無しさん
NGNGたしかに.
ttp://www.python.jp/pub/doc_jp/lib/node103.html#l2h-824
>>> re.findall("[^#!\n ]+", "#!/usr/bin/env/python -u -E -d\n")
['/usr/bin/env/python', '-u', '-E', '-d']
0746739
NGNGとりあえず、この2バージョンで行くことにしました。
# strtok
def strtok(str, sep):
return re.findall("[^%s]+" % sep, str)
# strtok pre-complied version
def make_strtok(sep):
r = re.compile("[^%s]+" % sep)
return lambda str : r.findall(str)
0747デフォルトの名無しさん
NGNGしないのは何か理由があるのかなぁ
0748739
NGNGxx_strtok()の呼び出しのたびに、
re.compile(..).findall()
の全体が毎回実行されちゃうことにならないですかね?
(lambda は初めて使うので、あまり自信ないですが…)
実際に手元で計測してみたんですが、746と1行バージョンで、
1.5-2倍程度の速度差が出るようです。
0749デフォルトの名無しさん
NGNG>>> b = [2,3]
とした時に、配列aとbの共通する要素の数
を返すような関数はありますか?
0750デフォルトの名無しさん
NGNGsets を使えば OK
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNG2回目のダウンロードで失敗します。(1回目は成功する)
なにが悪くてこうなるのか教えてもらえないでしょうか?
エラー(一部):
File "./autoupdater.py", line 24, in download_file
self.ftp_site.retrbinary( "RETR "+downloadfile, filename.write)
:
ftplib.error_perm: 550 Failed to open file.
関数:
def download_file(self,root,downloadfile):
self.ftp_site = FTP( FTP_SITE )
self.ftp_site.login()
self.ftp_site.cwd(root)
filename = open(downloadfile, 'wb')
self.ftp_site.retrbinary( "RETR "+downloadfile, filename.write)
filename.close()
self.ftp_site.quit()
0755デフォルトの名無しさん
NGNG上書きできないのでは?
0756デフォルトの名無しさん
NGNG「2回目」にダウンロードするリモート側のファイルが
存在しないか、読み出し権限が無いように見えますよ。
550 はFTP(RFC959)のリプライコードです。
# 550 Requested action not taken.
# File unavailable (e.g., file not found, no access).
ローカル側のファイルを開くのに失敗したなら
IOError例外が生じます。
0757デフォルトの名無しさん
NGNGimport sys
from Tkinter import Tk, PhotoImage, Canvas, BOTH
W, H = 300, 200; kx, ky = 256./W, 256./H
if len(sys.argv) != 3: sys.argv[1:3] = ['r', 'g']
exprs = ['0'] * 3
exprs['rgb'.index(sys.argv[1])] = 'int(x*kx)'
exprs['rgb'.index(sys.argv[2])] = 'int(y*ky)'
funstr = 'lambda x, y: (%s, %s, %s)' % tuple(exprs)
fun = eval(funstr) ## fun(x, y) -> r, g, b
# PhotoImage.put takes an image data represented as '{#fafafa #fefefe ...} {#bababa #bebebe ...} ...'
M = []
for y in range(H):
M.append('{')
for x in range(W):
M.append('#%02x%02x%02x' % fun(x, y))
M.append('}')
root = Tk()
root.title('%dx%d - %s' % (W, H, funstr))
img = PhotoImage()
img.put(' '.join(M)); del M
can = Canvas(root, width=W, height=H, highlightthickness=0)
can.create_image((0, 0), anchor='nw', image=img)
can.pack(expand=True, fill=BOTH)
root.bind_all('<Escape>', lambda ev:root.destroy())
root.mainloop()
0758デフォルトの名無しさん
NGNGありがとうございました。エラーの出るファイルを削除した所、無事に動きました
こういった問題(ファイルが見付からない)に対してtry〜exceptで躱すことは
できるんでしょうか? ちなみに
try:
____self.ftp_site.retrbinary( "RETR "+downloadfile, filename.write)
except ftplib.error_perm:
____print "Can't Find File", filename
だと、
NameError: global name 'ftplib' is not defined
になります。
このNameErrorをtry文で捕獲すればいいとか?
0759デフォルトの名無しさん
NGNGfrom ftplib import FTP, error_perm
して
except error_perm:
にすれば?
0760デフォルトの名無しさん
NGNG同じ結果です
NameError: global name 'error_perm' is not defined
0761デフォルトの名無しさん
NGNG本当にちゃんと
from ftplib import error_perm
してる?
つーか、エラーメッセージの意味、わかる?
0762デフォルトの名無しさん
NGNG...
という風にリストを継承したクラスをつくって、
a = A()
a[:]
とやったときのインスタンスのコピーをカスタマイズしたいのですけど、
どこをいじればいいのですか?
0763デフォルトの名無しさん
NGNGおお、直った。ありがとうございました
>つーか、エラーメッセージの意味、わかる?
チュートリアルに載ってる範囲ならなんとか...
0764デフォルトの名無しさん
NGNGPython言語リファレンスの「3.3.5 コンテナをエミュレートする」と
「3.3.6 配列型をエミュレートする」辺りかな。
__getitem__ とか、必要なメソッドを再定義すればおーけー。
0765デフォルトの名無しさん
NGNGそのあたり、眺めてみます。
0766デフォルトの名無しさん
NGNGいわゆるエラーには
・実行時の条件次第で発生するエラー(例えばFTPのエラー)
・プログラムそのもののエラー(文法間違い、バグなど)
があるよ。
前者は try/except で捕捉して処理する必要がある。
後者は発生しないように直す必要がある (try/except で対処するのは誤り)。
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGどうすればできますか?
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNGどっちもエラーというか
前者はエラー
後者はバグ
という位置づけで十分ではなかろうか
0772デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/module-os.path.html
access(): ファイル・ディレクトリのアクセス権限を調べる
ttp://www.python.jp/pub/doc_jp/lib/os-file-dir.html
0773デフォルトの名無しさん
NGNG前者は例外
後者はバグ
のほうが適切かな
0774デフォルトの名無しさん
NGNGどんな blog をイメージしてる?
漏れは手元で月別(日付は昇順)の HTML ファイルを手書きして
Python スクリプトで最新一週間分のダイジェスト(日付は降順)を作ってるよ。
FTP でうpするのも別の Python スクリプトで自動化。漏れ的には結構快適。
あと、独自 DTD の XML で日記を書いて PyXML アプリで HTML や TeX に変換したりもしてる。
こちらはパソコン上で使うだけの単なる日記帳 (一時期 blog 用に使っていた)。
0776デフォルトの名無しさん
NGNGreadline で各行を読みとって、それを変数にどんどん追加していきたいんですが。
while 1:
line = fi.readline()
buf += string.lstrip(line)
こんな感じで。するとこんなエラーが出ます。
TypeError: can only concatenate tuple (not "str") to tuple
0777デフォルトの名無しさん
NGNGbuf が tuple なんじゃないの?
buf を list にして、 buf.append(foo)とするとか、str 型にして、buf += foo としたら?
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGループに入る前に buf="" で初期化するとどうなる?
0780デフォルトの名無しさん
NGNGそれが本当なら糞言語の仲間入りだな
0781デフォルトの名無しさん
NGNG文字列はimmutableだからだよ。Javaと同じ。
StringBuffer/cStringBufferモジュールを使うべし。
0782デフォルトの名無しさん
NGNGレスサンクスです。
ループの前に
h1 = re.compile("^<h1>(.*)</h1>$")
result = h1.match(line)
if result:
buf = result.group(1)
こうしてます。result.group(1)が tuple を返してるんですよね。
list に追加していく方法も考えたんですが、最終的に TextWrapper の
wrap で折り返しを調整したいので、str型の変数にどんどん追加
していこうと思いました。
この場合は tuple を str 型にキャストするのが普通なんでしょうか。
0783デフォルトの名無しさん
NGNG> StringBuffer/cStringBufferモジュールを使うべし。
何それ?
0784デフォルトの名無しさん
NGNG> result.group(1)が tuple を返してる
ソンナコトハナイト思ワレ。
0785デフォルトの名無しさん
NGNGbuf = ""
for i in xrange(20000):
buf += str(i)
$ cat tuple.py
buf = []
for i in xrange(20000):
buf.append(str(i))
buf = "".join(buf)
$ time python2.3 string.py
real 0m19.112s
user 0m15.510s
sys 0m3.600s
$ time python2.3 tuple.py
real 0m1.067s
user 0m1.010s
sys 0m0.050s
この例では15倍の差が出た。
0786754
NGNGgnomeの(正確にはgarnomeの)auto-updaterできた〜!
質問に答えていた方々、ありがとうございます
自分で作っといてなんだけどできたのがうそみたいだ
さて、機能拡充するか
0787デフォルトの名無しさん
NGNG#usage:python stripper.py http://www.python.jp/Zope/ > pujug.html
import string,urllib,sys
def stripAndPrint(url):print "".join(map(string.lstrip,urllib.urlopen(url).readlines()))
if __name__ == "__main__":stripAndPrint(sys.argv[1])
0788デフォルトの名無しさん
NGNGttp://www.asahi-net.or.jp/~dp8t-asm/java/tips/Immutable.html
0789デフォルトの名無しさん
NGNGそうなんですか。。
buf = result.group(1)
buf += string.lstrip(line)
だと
TypeError: can only concatenate tuple (not "str") to tuple
こういうエラーが出て
buf = result.group(1)
buf = ""
buf += string.lstrip(line)
だとエラーが出なかったもんで。型情報を含めて変数の内容を
ダンプしてくれるような関数ってありますか?
なんだか PyJUG のドキュメントって検索できなくてすごい不便
だと思ってるのは漏れだけかな。
0790↑
NGNG0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGおかしいな。
http://www.python.jp/pub/doc_jp/lib_2.3/match-objects.html
> group([group1, ...])
> マッチした1個以上のサブグループを返します。もし引数で一つであれば、
> その結果は一つの文字列です
というわけで文字列が返されるはずなんだけど。
buf = result.group(1)
の後に
print type(buf)
を入れると何と表示される?
>>792
readlines() はリストを返すと思はれ。
0794デフォルトの名無しさん
NGNGまさかmatchがNoneだったりしてないだろうな・・・
0795デフォルトの名無しさん
NGNGヲレもmatch オブジェクトが None に +1
それはともかく、
> buf = result.group(1)
> buf = ""
> buf += string.lstrip(line)
これはなに?
buf で何をやりたいの?
0796デフォルトの名無しさん
NGNGTraceback (most recent call last):
File "<string>", line 1, in ?
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
>>782 にもどるけど、
buf を定義しているのは、
buf = result.group(1)
この場所が最初なの?
それ以前で、buf を定義していない?
それと、
result = h1.search(line)
とやったら、結果が変わると思われ。
0797デフォルトの名無しさん
NGNGOne-linerで真似してみた。
python2.3 -c 'import urllib, htmllib, formatter, sys; \
p = htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(sys.stdout))); \
p.feed(urllib.urlopen("http://www.python.jp/Zope/").read() + "<BR>"); \
print "\n".join(["[%d] %s" % (i+1, j) for i, j in enumerate(p.anchorlist)])'
0798794
NGNGあのさ、matchがNoneってのは、>>782で言えばresultがNoneということで、
buf = result.gourp(1)が実行されていないという可能性を指摘しているんですが。
それがどうしてNone + ''になるんですか?
0799デフォルトの名無しさん
NGNGbuf = result.group(1),
と、なぜか後ろに , をつけてるのを見落としていました。こいつが
いけなかったようです。すいません。。
ついでに質問なんですが
# coding: EUC-JP
import textwrap
wrapper = textwrap.TextWrapper(width=100)
hoge = "文字列"
print hoge
print wrapper.wrap(hoge)
このスクリプトを実行すると、1行目は正常に表示されますが、2行目は文字化けします。
['\xca\xb8\xbb\xfa\xce\xf3']
こんな感じに。何かとんでもない使い方してるんでしょうか。
0800デフォルトの名無しさん
NGNG> resultがNoneということで、
> buf = result.gourp(1)が実行されていないという可能性
そんな可能性はありえない。
>>> None.group(1)
AttributeError: 'NoneType' object has no attribute 'group'
>>799
for line in wrapper.wrap(hoge):
print line
とすればよいと思われ。wrapper.wrap() は文字列のリストを返す。
> ['\xca\xb8\xbb\xfa\xce\xf3']
厳密にはこれは文字化けではない。
日本語を含んだ文字列定数は普通このように表示される。
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGのうしろにカンマが入ってたりして。
0804803
NGNG0805デフォルトの名無しさん
NGNGひょっとして釣りのつもりか?
0807デフォルトの名無しさん
NGNG盛り上がってまいりました。
803 名前:デフォルトの名無しさん[sage] 投稿日:04/03/14 18:41 ID:eghUy09a
buf = result.group(1)
のうしろにカンマが入ってたりして。
804 名前:803[sage] 投稿日:04/03/14 18:41 ID:eghUy09a
やべぇ、出遅れた
805 名前:デフォルトの名無しさん[sage] 投稿日:04/03/14 18:45 ID:eghUy09a
>>803-804
ひょっとして釣りのつもりか?
806 名前:803[sage] 投稿日:04/03/14 18:49 ID:eghUy09a
>>805
ほっといてくれよ
0808デフォルトの名無しさん
NGNG>for line in wrapper.wrap(hoge):
> print line
>とすればよいと思われ。wrapper.wrap() は文字列のリストを返す。
うまく出力できました。文字コードのことはあまりよく分かってないので
勉強の必要がありそうです。
最後の質問なんですが
re.gsub() で後方参照する方法が分かりません。
hoge = re.gsub("<a href=\"(.*)\">(.*)</a>","url:$1 \n title: $2",hoge)
みたいなことがしたいんです。よろしくおながいします。
0809デフォルトの名無しさん
NGNG> あのさ、>>782の"if result:"の意味、わかる?
なるほど。誤解してますた。
0810デフォルトの名無しさん
NGNGimport re
hoge = '<a href="URL">ANCHOR</a>'
def rep(match):
return "url: %s\ntitle: %s" % match.group(1, 2)
print re.sub('<a href="(.*)">(.*)</a>', rep, hoge)
0811デフォルトの名無しさん
NGNGメインスレッドから任意のタイミングで殺したりしたいのですが、
スレッドIDが判明しててもそれをどうしたらいいのか分からない。
0812デフォルトの名無しさん
NGNGところで、tupple.pyという名前の由来は?
0813785
NGNG0814785
NGNG0815デフォルトの名無しさん
NGNGpythonには名前で後方参照できるナイスな機能があったんでつね。
0816デフォルトの名無しさん
NGNGimport urlilb, time, rfc822
u = urllib.FancyURLopener()
url = "http://localhost/index.html"
lmdate = u.open(url).headers['Last-Modified']
date = time.strftime('%Y-%m-%dT%H:%M:%S', rfc822.parsedate(lmdate))
print date
こんな感じでやるとグリニッジ標準時間になっちゃうので東京のタイムゾーンにあわせたいのですが
rfc822.parsedate_tz()でタプルの値から9時間足して整形すればいいのはわかるのですが、そうなると処理がまわりくどくなります。
もう少し簡単な方法があるように思えますがいかがでしょうか。
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGtime.tzset() とかどう?
0822デフォルトの名無しさん
NGNG変身するにはリスト君とのフュージョンが必要です。
だけどたぷるたんはお年頃。
リスト君とフュージョンするときのあの格好が
ちょっと恥ずかしかったりするのでした。
そんなある日、
0823デフォルトの名無しさん
NGNG817 名前:デフォルトの名無しさん[sage] 投稿日:04/03/15 13:40 ID:Kj0IOP58
タプルって素敵だよね
818 名前:デフォルトの名無しさん[sage] 投稿日:04/03/15 14:04 ID:Kj0IOP58
タプルタンハアハア(;´Д`)
819 名前:デフォルトの名無しさん[sage] 投稿日:04/03/15 14:15 ID:Kj0IOP58
たぷるたん擬人化きb
820 名前:デフォルトの名無しさん[sage] 投稿日:04/03/15 14:43 ID:Kj0IOP58
ウホッ、いいタプル
0824デフォルトの名無しさん
NGNGl = []
for i in tup:
l.append(i)
こんなフュージョンの仕方は
たしかに恥ずかしいな(;´Д`)
0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/module-time.html
にPython2.3から使えるようにあるんだけど
Python 2.3.3 (#1, Mar 14 2004, 12:40:47)
[GCC egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> dir(time)
['__doc__', '__file__', '__name__', 'accept2dyear', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']
使えないっす。glibcのバージョンとかも関係あるのかな。
0827デフォルトの名無しさん
NGNGclass tupletan(tuple):
def fusion(self):
listkun = []
for asoko in self:
listkun.append(asoko)
return listkun
・・・・・(((´д`;)))'`ァ'`ァ
0828デフォルトの名無しさん
NGNG長官 「見よ! これが我々の新しい必殺技,コンプリヘンシブ・フュージョンだっ!」
たぷるタン 「長官!」
0829デフォルトの名無しさん
NGNG流浪のスレだな
0830デフォルトの名無しさん
NGNG__,,,,_
/´  ̄`ヽ,
/ 〃 _,ァ---‐一ヘヽ
i /´ リ}
| 〉. -‐ '''ー {! 。
| | ‐ー くー | 〜゚
ヤヽリ /// ,r "_,,>、 ゚'}
ヽ_」 ト‐=‐ァ' !
ゝ i、 ` `二´' 丿
r|、` '' ー--‐f´
_/ | \ /|\_
/ ̄/ | /`又´\| |  ̄\
皇太子様がたぷるタソに興味をお持ちになったようです
0831デフォルトの名無しさん
NGNG色々と見付かりましたが使い分け方とか長所、短所とかがいまいちわかりません
こういうときにはこう、みたいなアドバイスをもらえませんか?
下に行く程速くなって大規模向けなのかなぁと思ってみたり
-普通にopen〜writeで書き込み
-pickleを使用
-データベースへアクセス
-CへのAPIで読み書き用の関数をCで書く
0832デフォルトの名無しさん
NGNG> 普通にopen〜writeで書き込み
そのアプリだけで使うデータならこれでいい。あるいは、同じデータを
利用する別アプリでも同じ入出力処理を書く気があるなら可。
> pickleを使用
これはお手軽で良い。ただし、別アプリの方も Python に限定される。
> データベースへアクセス
別アプリが他の言語(Javaなど)だったりデータが大規模(スケーラ
ビリティが重要)だったりするなら RDBMS はいい選択肢。
> CへのAPIで読み書き用の関数をCで書く
これも Python に特化してるけど Python だけで書いたのでは遅い
場合に有効。まず Python で書いて、遅いところ(ボトルネックの
部分)だけ C の拡張にするのがいい。
0833デフォルトの名無しさん
NGNG> 普通にopen〜writeで書き込み
読み書きするデータを XML にするという選択肢も重要だと思った。
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG(´∇`) たぷるタソ
[・∀・] リスト君
ヽ(*´ω≡∀・]ノ フュージョン!
[´∇`] mutableナノ♥
0836デフォルトの名無しさん
NGNG[for]ヽ(´∇`)ノ[in] スチャチャッ!!
−=≡[for≡*´ω`*≡in]≡=− コンプリヘンシブ・フュージョン!
説明しよう! コンプリヘンシブ・フュージョンとは、たぷるが可変オブジェクト
に変身するための究極の必殺技なのだ! たぷるがフュージョン・ポーズを取ると
for-in ブロックが全身を覆う! この間わずか0.01秒! さらにローカル変数に
エネルギーが充填され、たった0.2秒という驚異的なスピードでコンプリヘンシブ・
フュージョンは完了する!
[´∇`] mutableナノ♥
0837デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/1590593561/
OnLine版のほうは中・韓の訳もあるんですね。
日本はRuby発祥の地ということでRuby優勢のようですが
ほかのアジアの国々ではどうなんでしょうか?
(Rubyは作者が日本人ということで2バイト文字の扱いにも強い、といわれもしますが)
CJKcodecsの作者は韓のひとなんだっけ?
0838デフォルトの名無しさん
NGNG> ほかのアジアの国々ではどうなんでしょうか?
スレ違い。
> CJKcodecsの作者は韓のひとなんだっけ?
そそ。
0839デフォルトの名無しさん
NGNGdate = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.mktime(rfc822.parsedate(lmdate)) - time.timezone))
0841デフォルトの名無しさん
NGNGtzset() が使えるシステムは UNIX 系のみって,
書いてなかったかな...
0842デフォルトの名無しさん
NGNG> [GCC egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)] on linux2
0843デフォルトの名無しさん
NGNG[GCC 2.95.3 20010315 (release) [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> dir(time)
['__doc__', '__file__', '__name__', 'accept2dyear', 'altzone', 'asctime', 'clock
', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 's
trptime', 'struct_time', 'time', 'timezone', 'tzname', 'tzset']
>>>
0844デフォルトの名無しさん
NGNG[GCC 3.3.3 (Debian)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> dir(time)
['__doc__', '__file__', '__name__', 'accept2dyear', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname', 'tzset']
>>>
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGRHLのバージョン何?
0847デフォルトの名無しさん
NGNG>>846
ttp://www.python.jp/pipermail/python-ml-jp/2002-October/001933.html
ttp://www.cubelab.com/ymasuda/python/gadfly-jp/installation_jp.html
ttp://rakunet.org/TSNET/TSpython/9/291.html
0848デフォルトの名無しさん
NGNGできますた。サンクスコ。
0849デフォルトの名無しさん
NGNGそれはcomp.lang.pythonでよく見かける質問なのですが、そういうことはできないという回答以外はみたことがないです。ワークアラウンドとしては自殺を教唆する方法があり、具体的には例えばこんな感じでしょうか。
import sys
from threading import Thread, Event
from time import sleep
def Child(shouldQuit):
i = 1
while not shouldQuit.isSet():
sys.stderr.write('child: %s\n' % ', '.join(['spam']*i))
i += 1
sleep(1.)
else:
sys.stderr.write('child: exitting now\n')
def main():
shouldQuit = Event()
child = Thread(target=Child, args=(shouldQuit,))
child.start(); sys.stderr.write('main: started child\n')
sleep(10.)
shouldDie.set(); sys.stderr.write('main: set event\n')
child.join(); sys.stderr.write('main: terminated child\n')
if __name__ == '__main__':
main()
0850デフォルトの名無しさん
NGNG【誤】
shouldDie.set(); sys.stderr.write('main: set event\n')
【正】
shouldQuit.set(); sys.stderr.write('main: set event\n')
済みませ
0851デフォルトの名無しさん
NGNGところで>>781のはStringBufferじゃなくてStringIOだよな。
まあJythonならどっちもあるけどな。
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNGtermiosのマニュアルと
http://216.239.57.104/search?q=cache:lQJXcJ9HGoAJ:www.kt.rim.or.jp/~kbk/perl5.doc/perlfaq5.html+python+getc&hl=ja&lr=lang_ja&ie=UTF-8&inlang=ja
これを参考に下のようにしてみたのだけど、どうにも。
cursesを使うのは大袈裟だし。
def my_getc():
import termios
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ECHO # lflags
new[6][termios.VTIME] = 1 # cc
try:
termios.tcsetattr(fd, termios.TCSANOW, new)
c = sys.stdin.read(1) # raw_inputも試した
finally:
termios.tcsetattr(fd, termios.TCSANOW, old)
return c
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGimport tty, termios
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
try:
tty.setcbreak(fd)
c = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSANOW, old)
return c
これでよかったのか。スレ汚しスマソ。
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNGサブスレッド側の終了処理をメインからコールするだけやん
0860デフォルトの名無しさん
NGNGPythonがこの先生きのこるには?Part5
Pythonって死滅しちゃうの???Part5
Pythonなら俺に聞け!Part5
【たぷるタソ】Pythonお勉強レPart5【ハァハァ】
萌える!PythonプログラミングPart5
フリーザですよ。Pythonしなさい。Part5
Python!Python!のガイドラインPart5
やったーボクにもPythonできたよ!Part5
0861デフォルトの名無しさん
NGNGに1票
0862デフォルトの名無しさん
NGNGきのこるって動詞?
0863デフォルトの名無しさん
NGNGタイトルというより、あんたが考えてるのはネタだ・・・
0864デフォルトの名無しさん
NGNGPythonのこれ↓について解説してあるページをご存知でしたら紹介してください。
C/C++アプリケーションへの組み込みが簡単
0865デフォルトの名無しさん
NGNGC++Builder なら Python for Delphi おすすめでつ
5分で組み込めます
0866デフォルトの名無しさん
NGNGどうやるんでつか?
0867デフォルトの名無しさん
NGNGどうやったらいいのん?
0868デフォルトの名無しさん
NGNG付属のTutorial.txt、分かりやすいので読むのが吉でつ。
高卒のおいらでも読めたので大丈夫だと思います。
0869デフォルトの名無しさん
NGNGLinux上のpython2.3で、
ttp://130.158.86.5/~keiichi/diary/index.rdf
をeuc-jpに変換しようとしました。
>>> import urllib
>>> page = urllib.urlopen('http://130.158.86.5/~keiichi/diary/index.rdf')
>>> text = unicode(page.read(), 'utf-8')
>>> print text.encode('euc-jp')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeError: EUC-JP encoding error: invalid character \u2014
この\u2014というのは
http://www.asahi-net.or.jp/~hc3j-tkg/unicode
で言っている事だと思いますが、これはどう対処すればいいでしょうか?
0870デフォルトの名無しさん
NGNG問題の文字を適当な別の文字に置換すればいいと思われ。
>>> print u"\uff21\u2014\uff3a".encode("euc-jp")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeError: EUC-JP encoding error: invalid character \u2014
>>> print u"\uff21\u2014\uff3a".replace(u"\u2014", u"\u2015").encode("euc-jp")
A―Z
>>>
0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNG検索ってのは、こういうやつのことか?
ttp://2chlinux.dtdns.net/python_jp_search/
0873デフォルトの名無しさん
NGNGがいしゅつスペックのまとめ:
名前:たぷるタソ
性別:おにゃのこ
年齢:?才
必殺技:
・フュージョン
可変オブジェクトに変身するための技。ポーズがちょっと恥ずかしいらしい。
・コンプリヘンシブ・フュージョン
高速フュージョン。0.2秒で完了するらしい。要 for-in ブロック。
サブキャラ:
・リスト君
たぷるタソがフュージョンする時の補佐役。
・長官
たぷるタソとリスト君のボス。ちょっと熱血ギミ。
・皇太子様
中の人。とてもエラいらしい。
おい、お前ら!肝心の年齢が決まってませんよYO!何才がいい?
漏れは12才に+1。
0874デフォルトの名無しさん
NGNG何でもいいからさっさとネタスレつくってそっちでやれ。
0875デフォルトの名無しさん
NGNG新キャラ追加ヨロ
・番長
「何でもいいから〜やれ」が口癖。でも本当はたぷるタンが好き。
新スレタイは
【はきゅ〜ん】Python関係でハァハァするスレ【はきゅ〜ん】
ぐらいか?
0876デフォルトの名無しさん
NGNG\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ 貴様ごときに釣られクマ━━━━━!!!!!
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ 番長\
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGネタスレ立てそっちでやれ。
0879デフォルトの名無しさん
NGNGムネオたんスレを復活させろと主張するのか!
0880デフォルトの名無しさん
NGNGhttp://www.zob.ne.jp/~hide-t/comp/python/tut-ja/
(・∀・)ドコ?ドコ?ドコニカイテアリマツカ?
0881デフォルトの名無しさん
NGNGそっちではないとおもうにょろ。
Python for Delphiに附属してる文書にょろ。
ネタかにょろ?
0882デフォルトの名無しさん
NGNGにょろ->にょ
0883mand.py (1)
NGNG# 2004-03-20, placed in the public domain.
from Tkinter import Tk, Canvas, PhotoImage
from math import log
from colorsys import hsv_to_rgb
def iteration(z, maxiter):
c, i = z, 0
while True:
i += 1
if i >= maxiter:
return None
z = z*z + c
if abs(z) > 2.0:
return i
def map_color(n):
if n is None:
return 'black'
else:
hue = log(n)*128%128/128
val = 0.8 + 0.2*(n%2)
return '#%02X%02X%02X' % tuple(
[int(elem*255) for elem in hsv_to_rgb(hue, 1.0, val)])
0884mand.py (2)
NGNGzoom = float(zoom)
for y in [(y-h/2)/zoom for y in range(h)]:
yield '{'
for x in [(x-w/2)/zoom for x in range(w)]:
yield map_color(iteration(complex(x+dx, y+dy), maxiter))
yield '}'
W, H, dx, dy, zoom, maxiter = 300, 300, -0.7454265, 0.113009, 5.0e4, 250
root = Tk()
img = PhotoImage()
img.put(' '.join(pixels(W, H, dx, dy, zoom, maxiter)))
can = Canvas(root, width=W, height=H, highlightthickness=0)
can.create_image((0, 0), anchor='nw', image=img)
can.pack()
root.bind_all('<Escape>', lambda ev:root.destroy())
root.resizable(False, False)
root.mainloop()
0885デフォルトの名無しさん
NGNGSet theNatter = CreateObject("HNetCfg.NATUPnP")
Dim mappingPorts
Set mappingPorts = theNatter.StaticPortMappingCollection
'192.168.0.1を自身のプライベートアドレス
'12345を空けたいポートに
mappingPorts.Add 12345, "TCP", 12345, "192.168.0.1", TRUE, "XXX"
'mappingPorts.Remove 12345, "TCP"
MsgBox("Total number of ports after add is " & mappingPorts.Count)
0886デフォルトの名無しさん
NGNGttp://www.pygame.org/pcr/mandelbrot/index.php
ttp://www.cs.unc.edu/Courses/comp144-s02/assignments/2/mandelbrot.py.html
ttp://www.eddaardvark.co.uk/python_patterns/mandj.html
0887デフォルトの名無しさん
NGNGttp://www.icepick.info/2003/09/17/upnp_example.py
0888デフォルトの名無しさん
NGNG( ,,´ω`)っ888
0889デフォルトの名無しさん
NGNGエラーがでるまでの時間を短縮したいんですが、そのような方法はありますか?
0890889
NGNG0891デフォルトの名無しさん
NGNGMac OX10.3.3、Python 2.3の環境で
import EasyDialogs
EasyDialogs.Message("ほにゃらら")
で文字化けしてしまうのですが、どうしたら日本語表示できますか?
ネットで調べたり、文字コード変えたりと試したのですが…(つд`)デキナイヨー
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG間違いなく日本語使えるんだよね?>EasyDialogs
ユニコードで文字列渡したらどーなる?
EasyDialogs.Message(unicode("ほにゃらら", "euc-jp"))
0894891
NGNGすみません例えばどのようにすればいいですか?
>>893
OS9のときは使えたのですが、
OSXでは確認できませんでした・・・モウシワケアリマセン
ユニコードで渡したら
SyntaxError: invalid syntax
ってなりした(つд`)エラーデター
0895デフォルトの名無しさん
NGNGSyntaxErrorってことはプログラムの書き方が間違ってるよ(w
どういうコードを書いた?
0896891
NGNG訂正してもう一度・・・
>>> EasyDialogs.Message(unicode("ほにゃらら","euc-jp"))
UnicodeError: EUC-JP decoding error: invalid character 0xe381 in JIS X 0208
一応utf8でも
>>> EasyDialogs.Message(unicode("ほにゃらら","utf-8"))
TypeError: Str255 arg must be string of at most 255 chars
つд`)マタエラーデス
0897デフォルトの名無しさん
NGNG> UnicodeError: EUC-JP decoding error: invalid character 0xe381 in JIS X 0208
こういうエラーが出るってことは "ほにゃらら" の部分の文字コードは UTF-8 だね。
> >>> EasyDialogs.Message(unicode("ほにゃらら","utf-8"))
> TypeError: Str255 arg must be string of at most 255 chars
unicode("ほにゃらら","utf-8") は正しい unicode オブジェクトのはずだから、
TypeError になるってことは EasyDialogs.Message は unicode オブジェクトを
受け付けない、つまり
全 然 ダ メ ポ
ってことだね(w
0899デフォルトの名無しさん
NGNGファイルの文字コードが UTF-8、Message() の受け付ける文字コードが EUC-JPだとして、
EasyDialogs.Message(unicode("ほにゃらら", "utf-8").decode("euc-jp"))
とか(文字コードは環境に合わせて適宜読み替えて下さいな)。
更に、ダイアログのフォントが欧文になっている可能性もある。
0900891
NGNGAttributeError: 'unicode' object has no attribute 'decode'
エラーで動かないです(つд`)マタマタエラー
ダイアログのフォントいじるには、
どうすればいいんでしょうか?
0901デフォルトの名無しさん
NGNGすんません deocde じゃなくて encode でした(_ _)
0903891
NGNGAppleScriptの文字化けの直し方を真似したら
一応日本語表示できました。つд`)ヤットデキター
(ちなみに文字コードはsjisでした)
アリガトウゴザイマシタ(TдT)
0904デフォルトの名無しさん
NGNGおすすめの本とかありますか?
0905デフォルトの名無しさん
NGNGGame Programming With Python, Lua, and Ruby
ttp://www.amazon.co.jp/exec/obidos/ASIN/1592000770/
Game Programming With Python (Game Development Series)
ttp://www.amazon.co.jp/exec/obidos/ASIN/1584502584/
和書はこれで全部・・・たぶん。ゲームに特化した本はない。
ttp://www.python.jp/Zope/links/python_books
て、今気づいた。Lightweit Languageの本が出るんだ・・・
以前やった、LL Saturdayと関係あるのかな。
0906デフォルトの名無しさん
NGNG> て、今気づいた。Lightweit Languageの本が出るんだ・・・
> 以前やった、LL Saturdayと関係あるのかな。
ASCIIのサイトにおもいっきりそう書いてあるじゃん。
あと、柴田さんのCOREBlogに本の写真が載ってるよ。
・・・ちょっとまてよ、HaskellってLLか?(板違い
0907デフォルトの名無しさん
NGNG> ・・・ちょっとまてよ、HaskellってLLか?(板違い
それは板違いじゃなくてスレ違いだろう。
というわけで逝ってらっしゃい。↓へ。
http://pc2.2ch.net/test/read.cgi/tech/1076418993/
しかしHaskellも載ってるのか……。
ちょっと読みたいかも。
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGざっと調べたが、見つからん。
出版社のサイトはダメダメだし。
てか、LLMってMagazineだから雑誌? それとも実はムック?
いずれにしろオンライン書店には載りづらいしなぁ・・・。
0910デフォルトの名無しさん
NGNGついでに来週頭には、クイックリファレンスも出るね。
0911デフォルトの名無しさん
NGNGこれって描画する時、XのKterm上ではCOLOR_WHITEが灰色で見ずらいんですが
どうすればいいですか?curses.can_change_color()がFALSEで
init_color()もできない。
X上では背景が水色で黒文字ぐらいしかうまく表示できないから、
実質使いものにならないのかなあ。
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG漏れの Kterm (赤帽の kterm-6.2.0-28) では
curses.start_color()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE)
stdscr.addstr(1,1, "spam", curses.color_pair(1))
とやったらちゃんと白地に赤の文字が出たよ。
0914デフォルトの名無しさん
NGNGktermは普通に色が付いていますが?色指定してaddstr()は特に問題ありませんが、
白だけは灰色です。多分コンソール上の白の色設定をそのまま持ってきているようです。
demoフォルダのサンプルを試しても当然同じです。
現在のシェル上の色設定をそのまま引き継げる方法でもあればいいのですが。
RSSや2chのdatファイルのビューワーのを作ってみたかったのですが、
これではカーネルやネットワークの設定コマンドみたいな画面になってしまいます。
メーリングリスト見ても、curses自体の話題が5件のみ。
他に端末表示のライブラリありましたっけ?slangのバインディングみたいのが
ありましたがドキュメントが見付かりませんでした。
0915913
NGNG何が違うのかな。
0917913
NGNG0918デフォルトの名無しさん
NGNG.Xresourcesに
KTerm*VT100*textColor7: LightGray
の1行を追加。デフォルトはgray80みたいです。
whiteでもいいのですが、Chaliceがまぶしくなるのでライトグレイ。
Python単独での変更はは無理かもしれませんね。
0919デフォルトの名無しさん
NGNGif __name__ == '__main__':
function()
等をやっていますがそのメリットがいまいちわかりません
教えてエライ人
0920デフォルトの名無しさん
NGNGスクリプト言語でよくやる手法。
サンプル自体をインタプリタの第一引数に指定して実行すると、
その条件が真になる。インクルードしたときなどには、負になる。
0921920
NGNGちなみにPerlだとこう書く。(スレ違いだが、表現が似ているのは分かると思う)
function() if __FILE__ eq $0;
Rubyなんかでも似たような定型句がある。知ってて損は無いぞえ。
0922デフォルトの名無しさん
NGNG主にライブラリとして import して使うモジュールのテスト用ルーチンを書いておくのに便利。
import せず直接使うのに限るファイルなら
if __name__ == '__main__':
は不用。
0923デフォルトの名無しさん
NGNG> その条件が真になる。インクルードしたときなどには、負になる。
それじゃどっちも真じゃん!
真の対義語は、偽、な。
0924デフォルトの名無しさん
NGNGおまえの負け
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNGcurses.textpadやcursesで日本語を入力する方法を教えて下さい。
getch()はキー入力1文字だけ捕捉なのでうまくいきません。
調べてみてもskkなど特殊なものしか例がなかったです。
0929デフォルトの名無しさん
NGNGPythonの場合requireだろ?
927 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 15:14
>>926
cat だよ.
928 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 16:10
useだってば
929 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 16:30
.だろ。
930 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 16:35
おめーらくだらねぇ論議してるヒマあったら早くOpenMotifとOpenCOBOL使ってCOBOL版かちゅーしゃ作れよ!
うるせー.NET野郎!
キレェオだろ?お前なんで所詮はキレェオなんだろ?
早く言えよ!カミングアウトしちまえよ!
抜くぞ?いいのか?抜かれちまうぞ?本当にいいんだな?絶対だな?
証拠出せよ!早く出せよ!
六角クランクと四角クランクの互換性が無い事くらいド素人でもしってるんだよ!
それを何が飼育係だ?糞以下!うんこ未満!ベクトル演算装置に土下座して謝れよ!馬鹿!
日9ゲそえよ!見えねーじゃねぇだんろ?う?あ?あ?あ?
931 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 17:21
>>930
もちつけ。キレェオ山タソかあんたは。
0930デフォルトの名無しさん
NGNGそこでまたブチ切れですよ。
933 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 20:31
cursesライブラリの質問をしている者ですが、これの日本語入力のやりかたを教えて下さい。
getch()ではうまくいかないし、特にcurses.textpadで入力を可能にしたいです。
curses.meta()あたりか、unicodeに変換してごそごそやるのか。。
あとは文字の折り返しでの文字化け対策もかんがえなきゃいけないな。
日本語(というか2バイト文字)のcursesライブラリのいいサンプルしりませんか?
934 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26 02:37
>>933
redhatのanacondaなんか参考にならんかな?
中身みたことないけどね。
935 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26 07:12
>>930
議論はあまり行われておらず、どちらかというとくだらない雑談と質問でしょう。
936 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26 12:57
>>934
slang使っているみたいでした。
0931デフォルトの名無しさん
NGNG実際に購入して気づいたひとはいますか?
0932デフォルトの名無しさん
NGNGプログラムを書いた 経験のある人向け,実践的に Python を使いたい人向けの
本に思えました. 「Python テクニカルリファレンス」と同じような位置づけです.
2.3 の対応状況は以下の通り(o: 載っている x: ほぼ確実に載っていない):
1 PEP 218: A Standard Set Datatype ... x
2 PEP 255: Simple Generators ... o (p81)
3 PEP 263: Source Code Encodings ... ?
4 PEP 273: Importing Modules from Zip Archives ... x
5 PEP 277: Unicode file name support for Windows NT ... x
6 PEP 278: Universal Newline Support ... o (p230)
7 PEP 279: enumerate() ... x
8 PEP 282: The logging Package ... x
9 PEP 285: A Boolean Type ... o (p47)
10 PEP 293: Codec Error Handling Callbacks ... x
11 PEP 301: Package Index and Metadata for Distutils ... o (p681)
12 PEP 302: New Import Hooks ... x
13 PEP 305: Comma-separated Files ... x
14 PEP 307: Pickle Enhancements ... x
15 Extended Slices ... o (p57)
16 Other Language Changes ...
ほとんど x (作者のAlexが提案した sum() も入っていない!)
16.1 String Changes ... x
16.2 Optimizations ... x
17 New, Improved, and Deprecated Modules ... x
17.1 Date/Time Type ... x (mx.DateTime を取り上げている)
17.2 The optparse Module ... x
18 Pymalloc: A Specialized Object Allocator ... x
19 Build and C API Changes ... x
19.1 Port-Specific Changes ... x
20 Other Changes and Fixes ... ほとんど x
0933デフォルトの名無しさん
NGNGサンプルコードが原書とことなり、2.3ベースでかかれているとかそういったことは
ないということですか?
2.3対応といっても、たとえばジェネレータの説明で
「2.3以降ではfrom... はいりません」
とちょっとした一行コメントがついているとか、その程度?
0934デフォルトの名無しさん
NGNGサンプルコードが 2.3 ベースで書かれている,ってどういう意味ですか?
原著を全然読んでいないからよく分からないんですが,ほとんど 2.2 でも
2.3 でも動くコードみたいですよ.とはいえ,if 文に True/False を
使っているコードはいくつかあるようです.
ジェネレータの説明は,まさにそんな感じでした.が,訳注でつけた文章では
ないようです.原著も同じように書いてあるのでは?
0935デフォルトの名無しさん
NGNG> サンプルコードが 2.3 ベースで書かれている,ってどういう意味ですか?
2.3ではいったものを使えば簡単になる部分があれば書き換えるという意味です。
原著との違いは、ソースコードはいじらずにコメント的な補足説明が追加されていると理解すればいいのかな?
もちろん、英語が日本語になっているというのもあるだろうけど。
0936デフォルトの名無しさん
NGNG> 2.3ではいったものを使えば簡単になる部分があれば書き換える
932にも書いたように, enumerate() や csv や sum() や Set は
そもそも取り上げてないし,サンプルにも入ってないようです.
だいたいそんなことをしたら 2.2 ユーザが理解不能なコードが多くなって
こまるんじゃないのかなぁ. 2.3 ユーザ専用の本じゃないと思いますよ.
> 原著との違いは、... 追加されていると理解すればいいのかな?
さぁ...原書もってないから知りません.細かい書き方が気になるなら本屋で
調べてください.
「2.3 ユーザにも役立つし,2.1 以降の全てのユーザにおすすめできるが,
2.3 を完全網羅した本ではない」と思います.
0937デフォルトの名無しさん
NGNG復旧乙ディス!! ウェーイ!!
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGパンツを脱ぐ
0940デフォルトの名無しさん
NGNGtry:
raw_input("Hit Enter to continue (or Ctrl-C to abort)\n")
except (KeyboardInterrupt, EOFError):
# abort
return False
# continue
return True
とか。文字通り「任意のキー」にしたいなら curses 等を使う必要があると思われ。
0941デフォルトの名無しさん
NGNGトリガーが萎れてました
処理できないです
0942デフォルトの名無しさん
NGNGパンツを脱いだところで母がいきなり部屋のドアを開けるという例外が発生しました。
どのように例外処理を記述すればいいですか?
0943デフォルトの名無しさん
NGNG| book = self.bed.get_item(dir=UNDER)
| self.serve_forever(book)
| except:
| self.mother.destroy(book)
0944デフォルトの名無しさん
NGNG開き直って raise しとけ。
0945デフォルトの名無しさん
NGNGTrue と False が 1 と 2 になっていたり、0 と 1 になっていたり。
0946デフォルトの名無しさん
NGNG日本語が通るようにしようと思いました。でもwxPythonで作られたpearsとzaobaoは
Unicodeが可能になっていないと、wxHTMLに日本語が通らない。
しょうがないのでpython/Tkを探して日本語が通るようにしてみますた。
http://montpython.s13.xrea.com/file/newsfeed1.2j.tar.gz
シンプルですが、当分はこれでいいかな。
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG質問の意図が分からない。
その二つは文字列リテラルとしては等価だよ。
>>> '\x61' == 'a'
True
>>>
0949デフォルトの名無しさん
NGNGprint ord('a')
ttp://www.python.jp/pub/doc_jp/lib/built-in-funcs.html
0950デフォルトの名無しさん
NGNGリテラルとしては同じもだったんですね。
'MZ\x90\x00\x03\x00\x00\x00\x04\x00'のような文字列があったのですが、
英数字や記号以外はreprの際に'\x..'とあらわされているだけなのか、、、
すんまそ。
0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNGPythonがこの先生きのこるには?Part5
0票
Pythonって死滅しちゃうの???Part5
1票
Pythonなら俺に聞け!Part5
0票
【たぷるタソ】Pythonお勉強レPart5【ハァハァ】
0票
萌える!PythonプログラミングPart5
0票
フリーザですよ。Pythonしなさい。Part5
0票
Python!Python!のガイドラインPart5
0票
やったーボクにもPythonできたよ!Part5
0票
【はきゅ〜ん】Python関係でハァハァするスレ【はきゅ〜ん】
1票
0954デフォルトの名無しさん
NGNGフリーザですよ。Pythonしなさい。Part5
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG孫→尊で+20サマディ
0959デフォルトの名無しさん
NGNG+1
0960デフォルトの名無しさん
NGNG+1
3票で断トツだし決まりっしょ。
0961デフォルトの名無しさん
NGNGたぷるタンってこんなの?
ttp://www.42ch.net/UploaderAnime/source/1081166016.jpg
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNGttp://www.42ch.net/UploaderAnime/source/1081166680.jpg
0965デフォルトの名無しさん
NGNGちゃんと描き起こしたたぷるタソきぼんぬ〜。
0967デフォルトの名無しさん
NGNGということで、
↓スレタイ決めるプログラムをささっと書いてくれ。
0968デフォルトの名無しさん
NGNGあと半年ROMれ。
0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNGttp://www.42ch.net/UploaderSmall/source/1081263370.jpg
0971デフォルトの名無しさん
NGNG【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
0972デフォルトの名無しさん
NGNGワラタ
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNGもう次スレ立ってるよ。二つも(藁
0976nyo.py
NGNGENCODING = "EUC-JP"
encode, decode, BaseStreamReader, BaseStreamWriter = codecs.lookup(ENCODING)
class Codec(codecs.Codec):
def encode(self, data, errors="strict"): # unicode to string
data = data.replace(u"\u3002", u"\u306b\u3087\u3002")
data, size = encode(data, errors)
return data, size
def decode(self, data, errors="strict"): # string to unicode
data, size = decode(data, errors)
data = data.replace(u"\u3002", u"\u306b\u3087\u3002")
return data, size
class StreamReader(Codec, BaseStreamReader):
pass
class StreamWriter(Codec, BaseStreamWriter):
pass
def getregentry():
return Codec().encode, Codec().decode, StreamReader, StreamWriter
if __name__ == "__main__":
import sys
sys.stdout = codecs.EncodedFile(sys.stdout, ENCODING, "nyo")
0977デフォルトの名無しさん
NGNG>>> print """\
... 埋め立てのためにこの前作ったスクリプトうpしとく。
... みんなも自慢のヤシをはって欲すぃ。
... じゃあ、あとよろしく。
... """
埋め立てのためにこの前作ったスクリプトうpしとくにょ。
みんなも自慢のヤシをはって欲すぃにょ。
じゃあ、あとよろしくにょ。
>>>
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG>>961
>>964
おまいら不敬罪だぞw
ttp://natu-mikan.hp.infoseek.co.jp/index02.html
0983デフォルトの名無しさん
NGNG(´・∀・`)ヘェー
0984デフォルトの名無しさん
NGNGつーか美化しすぎ。現実見れ。
0985デフォルトの名無しさん
NGNG気付くの遅いよ(w
0986デフォルトの名無しさん
NGNG>(´∇`)ノPythonのお勉強 Part5ヽ[・∀・]
の方が良かったのぅ…
0987デフォルトの名無しさん
NGNG番長避けに
【はきゅ〜ん】
が良かった
0988デフォルトの名無しさん
NGNGチュッチュ〜ン♪
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNGPythonスレ過去ログ全文検索
http://2chlinux.dtdns.net/2ch-program-python
Python日本語化ドキュメント全文検索
http://2chlinux.dtdns.net/python_jp_search
0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNGハアハア(;´Д`)
ttp://natu-mikan.hp.infoseek.co.jp/img02/038.jpg
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNGだれか〜たぷるタソの虹絵きぼんぬきぼんぬ〜。
0996デフォルトの名無しさん
NGNGハアハア(;´Д`)
ttp://cgi.f22.aaacafe.ne.jp/~ochn/och/img/1452.jpg
0997デフォルトの名無しさん
NGNGクリが見えてる(;´Д`)ハァハァ
0998デフォルトの名無しさん
NGNGimmutableなのに
変更を加えようとすると
切ない顔でたしなめられる
ハアハア(;´Д`)
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。