[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 11:17 / Filesize : 114 KB / Number-of Response : 569
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part32



1 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:45:30 ]
Pythonオフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
まとめWiki
python.rdy.jp/
関連スレ
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
pc11.2ch.net/test/read.cgi/tech/1230821097/

321 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 14:53:57 ]
>>319
この表紙は人を選ぶな…

322 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 16:16:11 ]
>>321
俺も初めて見たときはこれはさすがにどうかと思ったよ

323 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 16:23:05 ]
>>319
> ttp://www.oreilly.com/catalog/covers/twistedadn.s.gif

グロ
閲覧注意


324 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 17:39:28 ]
ただの模様じゃん
なんも樹に成らん

325 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 23:36:22 ]
俺は樹になる

326 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:06:21 ]
カバーをひっくり返して、好きな絵を描くといいよ。

327 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 07:15:06 ]
へび(そのものあるいはその絵)を嫌うひとは心理的に

328 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 09:21:27 ]
そもそも蛇嫌いはpythonでアウトな気がする。

329 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:36:48 ]
Python の由来は Monty Python であって、ヘビは関係ないと Guido は言って
たんだがなー。まあ O'Reilly の表紙にパイソンズ出すわけに行かないか。




330 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:52:34 ]
>>329
Guido的には、元ネタ的にはそうなんだが
オライリーのPython本の絵が蛇になっちゃうのはそりゃ仕方ないよなーってことで
諦めた(受け入れた)、みたいな感じだったかと

331 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:34:07 ]
日本語版はおっぱいでおk

332 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:03:47 ]
>>331
エロ本コーナーに並びそうだな。

333 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:15:19 ]
ジャイソンかサイソン
   どっち?

334 名前:デフォルトの名無しさん [2009/03/05(木) 15:44:46 ]
get 333

335 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:29:58 ]
ttp://www.python.com

336 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:16:01 ]
Firefoxでアドレスバーにpythonと打つとpython.jpにつながるのでそれを期待して古いMozillaでやったら
大学のワークステーションでpython.comにアクセスしてしまったでござる

337 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:04:38 ]
アイコンの蛇って名前とか付いてないの?

338 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:11:47 ]
やっぱ時代はRubyだよな

339 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:33:09 ]
ぱいちんこ



340 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 14:43:06 ]
>>336
俺も間違えたことあるw
.comのほうは海外のエロサイトなんだよな

341 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 15:47:07 ]
間違えてwww.goo.co.jpを開いちゃったみたいな感じか

342 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 18:31:59 ]
Webポータルのハズがクルマ、はまだ良いだろ
python〜の場合、技術資料のハズがエロサイトだぜ?
自宅で誰も居ないなら別に良いが、会社や学校、家族の目の前で間違えた時は…

343 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 18:38:36 ]
>>342
いや、goo.co.jpもエロサイトだったんだが(今は無いが)

344 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:17:06 ]
>>335
我が家でBフレッツ導入した時に、「セキュリティ対策ツール」という名前で
マイクロトレンドのOEMでウイルスバスター相当のセキュリティソフトが
1ユーザ分ついてくるのだが、このサイト、しっかりと、プロックしてくれました。
めんどくさいので、プロック解除してまでみたいとは思わん。

345 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:24:10 ]
こういうアドレスを買収しようとしたら
いくらぐらいかかるんかね


346 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:37:51 ]
2万円

347 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 11:26:51 ]
既に取られてるドメインは2万じゃキツかろう
逆にまだ取られてないドメインならもっと安いが

348 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:48:43 ]
3万円

349 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:37:25 ]
逆にまだ取られてないドメインなら買収とは言わん罠



350 名前:デフォルトの名無しさん [2009/03/08(日) 10:16:38 ]
def f(hoge=3, fuga=7):
print (hoge, fuga)
または
f = lambda hoge=3, fuga=7: print (hoge, fuga)
という関数に対して
d1 = {'fuga': 8, 'hoge': 4}
という辞書で
f(**d1)
を実行すると期待通りになるのですが
d2 = {'kane': 1, 'fuga': 8, 'hoge': 4}
という辞書で
f(**d2)
を実行すると'kane'が無いと怒られます
どうすればうまくいくのでしょう

351 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 10:19:53 ]
訂正します

誤 f = lambda hoge=3, fuga=7: print (hoge, fuga)
正 f = lambda hoge=3, fuga=7: (hoge, fuga)

352 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 15:09:33 ]
def f(hoge=3, fuga=7, **kwargs):
  print (hoge, fuga)

353 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 15:49:40 ]
eval("foo(param)")
はうまく動くのに
eval("bar.foo(param)")
が動いたりうごかなかったり
特に

#file a.py
def f():
eval("bar.foo(param)")

#file b.py
a.f()

としたときに動いてくれない

354 名前:デフォルトの名無しさん [2009/03/08(日) 16:59:02 ]
質問してるのか、
問題を喚起しているのか、
ツンデレなのか、
はっきりしなさい!

355 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 17:39:14 ]
eval関係無く動くまい

356 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:00:41 ]
ツンデレです

357 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:43:28 ]
適切に sys.path.append していないと予想

358 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 01:13:08 ]
通常の仕事にevalなんて使う事ないなぁ。
皆どんな高度なことやってるの?

359 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 01:32:46 ]
アプリのコマンドライン。
emacsだとM-xに相当か。
制作中はアプリ自身のデバッグにも使える。



360 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 14:10:34 ]
>>353
#a.py
class Handletest:
def handle(self, methodstr):
result=eval(methodstr,globals(),locals())
return result

if __name__ == "__main__":
import numpy
handletest=Handletest()
print handletest.handle("numpy.linalg.norm([1,2])")#動く




#b.py
import numpy
import a
if __name__ == "__main__":
h= a.Handletest()
print h.handle("numpy.linalg.norm([1,2])")#動かない
-------------
golbals localsに違うものいれないといけないみたいなのだけど
どう入れればいいのかわからない

361 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 17:10:33 ]
print h.handle("import numpy; numpy.linalg.norm([1,2])")

362 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:39:03 ]
h.handle("numpy.linalg.norm([1,2])", globals(),locals())
h.handle("numpy.linalg.norm([1,2])", {"numpy":numpy}, {})

363 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 19:35:25 ]
>>360
bでimport numpyしただけだと
bからはnumpyという名前が見えるが
aからは見えないのさ

importはインタプリタにモジュールをロードするだけでなく、
カレントのモジュールにシンボルをインポートするという意味を持っている

364 名前:363 mailto:sage [2009/03/09(月) 19:47:41 ]
こんだけじゃ説明足りんかな
Pythonのグローバル変数(グローバル環境フレーム)ってのは
インタプリタグローバルじゃなくて、モジュールスコープで別れてるんだよ

モジュールのトップレベルの束縛=グローバル変数
だと思っていい
globals()関数が返すのも、あくまで「そのモジュールの」グローバル変数

365 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 20:55:55 ]
>>353
#a.py
class Handletest:
def handle(self, methodstr):
import numpy
result=eval(methodstr,globals(),locals())
return result

if __name__ == "__main__":
handletest=Handletest()
print handletest.handle("numpy.linalg.norm([1,2])")

366 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:40:14 ]
import sys
class Handletest:
    def handle(self, methodstr):
        frame = sys._getframe(1)
        return eval(methodstr, frame.f_globals, frame.f_locals)

367 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:01:48 ]
sys._getframeを呼び出してるメソッドは継承すると酷いことになる

368 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 10:49:07 ]
ウーパールーパーって食えるんだな
ttp://www.fnn-news.com/news/video/wmv/sn2009030908_hd_300.asx

369 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:18:16 ]
おまえら、金融系とか経済系の
ゲーム作るプロジェクトやりたい?



370 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:33:20 ]
>>369
自分で勉強しろ

371 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:51:17 ]
やりたい

372 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:56:48 ]
プロジェクトというからにはキッチリドキュメントがそろってるんだろうな?

373 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:01:34 ]
>>370
どっちの意味?

プログラムを勉強しろっていみ?
それとも、金融知識を勉強しろっていみ?

374 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:04:55 ]
>>371
金融系のプロジェクトでプログラマー募集したら、
なぜか応募してきたのがpythonのプログラマーなんだよね。

他にも自分が見聞きしてる範囲内で、
「学校を作ろう」とかいう、ふざけたプロジェクトに応募
してたのもpythonのプログラマーだったし、ひょっとして
pythonって、せっかく学んでも、いじるアプリがないから
参加するプロジェクトを探してる状態なんじゃないかなーって
思ったわけだ。

もしこれがPHPだったら、wordpressはあるし、joomlaはあるし、
phpbbはあるし、mediawikiはあるし、で、いくらでもアプリも
プロジェクトもあるし、いじり倒すおもちゃは豊富にあるしで、
プルグラマー募集してもきてくんないんだよね。

でもpythonだったら、いじるおもちゃがない状態だから、
プログラマーが余っていて、わりかし捕獲しやすい
状態なのかなと。

375 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:08:59 ]
>>374
学校を作ろうを馬鹿にするな!!

376 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:13:02 ]
すまんが、真面目な話してるんだ、馬鹿は黙ってくれないか

377 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:20:54 ]
そりゃphpなんかと比べてしまえば
pythonを存分に使わせてもらえるところは少ないだろうね

378 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:36:52 ]
そもそもPythonはRubyより劣るからな。利用価値がまったくない。

379 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:41:20 ]
仕事でゲーム作る人募集って事?



380 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:25:34 ]
>>379
Rubyは優秀だからな。

381 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:49:52 ]
面白そうならなんでもやるぜ

382 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 03:00:21 ]
ドモホルンリンクルの計測なんてどうだ

383 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 06:49:10 ]
>>377
phpは優秀だからな。

384 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:52:44 ]
ja.uncyclopedia.info/wiki/Python
わろた

385 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 08:31:02 ]
日本語のプロジェクトじゃなければ結構あるんじゃね

386 名前:デフォルトの名無しさん [2009/03/12(木) 13:19:39 ]
はじパイの第2版が中古で売ってたんだけど今のバージョンって3.0なの?
第2版は2.3までだからもうちょっと新しいのかったほうがいい?

387 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 13:57:08 ]
>>386
個人的には2.4以降じゃないと嫌だなw
generatorなくてなんのPythonよ

388 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 01:55:16 ]
UNICODEの扱いがちゃんと載ってるのにしなよ

389 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 02:56:44 ]
JapaneseCodecsがあれば10年は戦える



390 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:40:57 ]
Windowsで、2.5.2使ってるんだが、code(codeop)の動きがどうもおかしいんだ。

普通にコンソールでは、u''が使えるんだ。

>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\u3042'

だけど、InteractiveConsoleを使うと、

>>> import code
>>> code.InteractiveConsole().interact()
Python 2.5.2 (r252:60911, Mar 27 2008, 17:57:18) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\x82\xa0'

と、u''を正しくdecodeしてくれない。

どうもcodeop.compile_CommandCompilerがこういう動作をしているようで、
IPythonでu''が化けるのも同じ原因のようだ。
Windows版のコンソールは、何か特別なパッチが当たってるんだろうか。
どこか設定をいじってやればコンソールと同じ動きするんだろうか。

まぁunicode('あ')とか書けばいいんだけどなんかくやしい。


391 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:54:02 ]
>>390
2.6.1 amd64 で、 code.InteractiveConsole() では上手く動いたよ。
それでもIPythonはダメ。

392 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:49:33 ]
>>391
2.6.1でやってみた。

>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\u3042'
>>> import code
>>> code.InteractiveConsole().interact()
Python 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 'あ'
'\xe3\x81\x82'
>>> u'あ'
u'\u3042'
>>> unicode('あ')
Traceback (most recent call last):
File "<console>", line 1, in <module>
UnicodeDecodeError: 'cp932' codec can't decode byte 0x82 in position 2: incomplete multibyte sequence
>>> unicode('あ', 'utf8')
u'\u3042'

なぜUTF-8www

2.5でも、codeop.CommandCompilerにunicode渡すとこんな動きになるんで、
ようするに2.6ではraw_inputがunicodeを返すようになっただけでCommandCompilerの挙動は変わってないみたいだ。
IPythonは、渡す前にsys.stdin.encodingでencodeしてるので、2.5と同じ動きになる。

コンソールで使ってるCommandCompilerの正体はいったいどこにあるんだ!?
ソースを読めばいいんだろうが、どこを読めばいいのかすら分からん。

393 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:00:15 ]
【Python】Pylons Web Frameworkスレ
pc11.2ch.net/test/read.cgi/php/1236858951/

394 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:03:12 ]
組み込みのcompileを使うと問題がよく分かる。

>>> exec compile("'あ'", '<input>', 'single')
'\x82\xa0'
>>> exec compile("u'あ'", '<input>', 'single')
u'\x82\xa0'
>>> exec compile(unicode("'あ'"), '<input>', 'single')
'\xe3\x81\x82'
>>> exec compile(unicode("u'あ'"), '<input>', 'single')
u'\u3042'
>>>

どうしろってんだ・・・

395 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:57:47 ]
あんまりいい方法ではないと思うけど

import code
import sys

class MyInteractiveConsole(code.InteractiveConsole):
  def __init__(self, *args, **kw):
    code.InteractiveConsole.__init__(self, *args, **kw)
    self.__compile = self.compile
    self.compile = self.mycompile
  def mycompile(self, source, *args, **kw):
    if sys.stdin.encoding:
      if isinstance(source, unicode):
        source = source.encode(sys.stdin.encoding)
      source = "# coding: %s\n%s" % (sys.stdin.encoding, source)
    return self.__compile(source, *args, **kw)

if __name__ == "__main__":
  MyInteractiveConsole().interact()

396 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 16:15:11 ]
>>395
それだと、結局最初の(2.5の)

>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\x82\xa0'

って挙動になるだけだよね。



397 名前:391 mailto:sage [2009/03/13(金) 16:23:50 ]
なおした
ttp://dsas.blog.klab.org/archives/51390187.html

398 名前:395 mailto:sage [2009/03/13(金) 16:33:49 ]
>>396
自分の環境(Windows)では2.5, 2.6でも↓のようになるのを確認したけど、ならない?
(MyInteractiveConsole)
>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\u3042'

399 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 18:55:32 ]
ならない
sys.stdin.encoding

どこでも同じとは限らない



400 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:57:05 ]
>>397
うん、それでsys.setdfaultencoding("utf-8")すれば使えるようにはなるんだ。
でもそれだとWindows環境でpysh使ったとき、にほんごファイル名が通らなくなる。(UTF-8に変換されるため。)

UTF-8Cygwin使う、ってのも一長一短だしなあ…

401 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:58:11 ]
>>398
ならないなあ…
環境設定でなんとかなるのなら是非教えてほしい

402 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:42:48 ]
>>400
sys.setdefaultencoding('utf-8') するのは何故?
>>397 の修正だけで、全く問題ないよ?
/open u"ソ.txt"
こんなのも余裕。

403 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 21:01:23 ]
>>397の修正だとcp932の環境でstrの'あ'が'\x82\xa0'になって欲しいところ
utf8の'\xe3\x81\x82'になっちゃう

404 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 21:12:13 ]
>>403
なるほど。日本語をcp932でstrで使うなんて発想が無かった。
from __future__ import unicode_literals
して、strと決別しちゃえ。

405 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 10:25:26 ]
>>402
>sys.setdefaultencoding('utf-8') するのは何故?
cp932だとunicode('あ')でエラーになるからじゃないか?

406 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 11:20:45 ]
>>405
もともとの defaultencoding は ascii
インタラクティブシェルじゃなくて普通のスクリプトでも unicode('あ') はエラー。

Python3.0からは utf-8 になるから、from __future__ import ??? でやってることと
同じといえるかもしれないけど。

407 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 12:17:23 ]
>インタラクティブシェルじゃなくて普通のスクリプトでも unicode('あ') はエラー。

馬鹿ですねわかります

408 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 12:17:35 ]
普段はmbcs,cp932あたりをsys.setdefaultencodingしてるんでしょ、きっと

409 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 12:31:56 ]
ttp://fettig.net/images/twisted%20cover.gif
この本の日本語版っていつ頃出ますか?



410 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 12:53:32 ]
>>409
このイラストはスパゲティコードの暗示なのか…?

411 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 13:22:22 ]
MLで翻訳の需要あるか聞かれてたやつだっけ?
とても微妙な反応だったなw

412 名前:406 mailto:sage [2009/03/14(土) 15:17:31 ]
>>407
何が? u'あ' はOKだけど、 unicode('あ') は
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)

>>408
それをさせないように、普通は del sys.setdefaultencoding してあって、
reload(sys)
sys.setdefaultencoding('utf-8')
とかしないと初期値のasciiから変更できないのに、、、

みんなUnicodeはきちんと使おうぜ。外部とのやり取りは encode/decode して、リテラルで使うときは
unicode('ほげ', 'utf-8') じゃなくて u'ほげ' が正解だ。

413 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:10:21 ]
あまりreload(sys)は流行らせるなよ

>>409
twistedは処理がボコボコ切られて正直使いにくいからこれ以上流行って欲しくないなあ

414 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:16:10 ]
>>413
eventletマンセーですねわかります

415 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:16:32 ]
>>408
pyshを長いこと使ってるから
sitecustomize.pyにsys.setdefaultencoding('cp932')と書いて
リテラルはunicode('あ')と書くスタイルが染みついてるw

utf-8にするとマジック関係が動かないからなあ・・・

[C:Documents and Settings/Administrator]|2> cd デスクトップ
[Error 2] 指定されたファイルが見つかりません。: '\xe3\x83\x87\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\x88\xe3\x83\x83\xe3\x83\x97'

IPythonのソースに手を入れたついでに、マジック関係のユニコード化もするか。

とまで考えたところで、なんというか進む方向が酷く間違っている気がしてきたが目をつぶってがんばる

416 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:50:36 ]
つーわけでユニコード化マジックコマンド。

--- C:/Python25/Lib/site-packages/IPython/iplib.py.bak Sat Mar 14 20:41:18 2009
+++ C:/Python25/Lib/site-packages/IPython/iplib.py Sat Mar 14 20:36:39 2009
@@ -936,6 +936,8 @@
valid Python code you can type at the interpreter, including loops and
compound statements. It is added by IPython to the Python builtin
namespace upon initialization."""
+
+ arg_s = unicode(arg_s, 'utf-8')

args = arg_s.split(' ',1)
magic_name = args[0]
@@ -2019,7 +2021,7 @@
# this allows execution of indented pasted code. It is tempting
# to add '\n' at the end of source to run commands like ' a=1'
# directly, but this fails for more complicated scenarios
- source=source.encode(self.stdin_encoding)
+# source=source.encode(self.stdin_encoding)
if source[:1] in [' ', '\t']:
source = 'if 1:\n%s' % source

デフォルトエンコーディングをutf-8にする必要はない(compilerにユニコードを食わせたときにutf-8化するのはデフォルトエンコーディングとは関係がない)。

[C:Documents and Settings/Administrator]|1> cd デスクトップ/
[C:Administrator/デスクトップ]|2>


417 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 05:39:24 ]
あかん・・・ユニコードリテラルをちゃんと扱えるようになったところで、

print 'あ'

が普通に化けるんじゃ本末転倒だなあ。

418 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 10:37:01 ]
>>417
from __future__ import unicode_literals
これで全部解決

419 名前:デフォルトの名無しさん [2009/03/15(日) 10:51:01 ]
「,」と「%」の記号を16進数にエスケープしたいのですが
re.subを使って置換する方法はありますか?


(1) 'A is 20%, B is 80%'
(2) 'A is 20%25%2c B is 80%25'
(1)を(2)に変換したい。

次のコードでは「\1」は通常の文字列ではないのでうまく動作しない。
import re
txt = 'A is 20%, B is 80%'
print re.sub('([,%])', '%02x' % (ord(r'\1')), txt)



420 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:11:14 ]
>>419
re.sub('([,%])', lambda m: '%02x' % ord(m.group(1)), txt)

421 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:18:06 ]
>>419
urllib.quote(txt)






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<114KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef