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

Pythonのお勉強 Part15

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/12(日) 22:51:44
日本 Python ユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
Python 2.5
http://www.python.org/download/releases/2.5/
IronPython
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
まとめ wiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
Pythonの入門書「みんなの Python」
http://www.amazon.co.jp/gp/product/479733665X/

Pythonのお勉強 Part14
http://pc8.2ch.net/test/read.cgi/tech/1161272096/
0412デフォルトの名無しさん2006/11/26(日) 03:58:31
Rubyと違って、組み込みオブジェクトのdictの動作そのものを変えることはできない。
dictを継承したクラスを作って使うことはできる。
分かりやすく書くなら、

class MyDict(dict):
  def __getitem__(self, k):
    return self.get(k)

もしくは、↓でも同様。

class MyDict2(dict):
  __getitem__ = dict.get

dictのデフォルトの動作そのものを変えられるわけではないので、
ご期待には添えないかもしれませんが、
使うときは、こんな感じになるでしょう。

>>> MyDict({'x':2})
{'x': 2}
>>> x = MyDict(a=1, b=2)
>>> x
{'a': 1, 'b': 2}
>>> print x["a"], x["b"], x["c"]
1 2 None

こんなんでどうでしょうか。
0413デフォルトの名無しさん2006/11/26(日) 07:10:59
以下のサイトにPythonからログインするには、どのように書いたら良い
のでしょうか?
https://www.livly.com/login.php

http://d.hatena.ne.jp/kenkitii/20060216/p1 を見ながら色々試して
みたのですがうまくいきません。ご教示お願いできないでしょうか。
よろしくお願いします。
0414デフォルトの名無しさん2006/11/26(日) 09:45:50
はぁ・・・
0415デフォルトの名無しさん2006/11/26(日) 09:50:04
from urllib import urlopen, urlencode
data = urlencode((("nname","名前"),("password","パスワード"),("login","true")))
print urlopen("https://www.livly.com/login.php";,data).read()

*名前を全角で登録してる場合文字コード注意
0416デフォルトの名無しさん2006/11/26(日) 10:06:41
livlyは動的なswfファイルエクスポートとかしてて、微妙に面白かったり・・・
この手のビジネスとしては極端に成功した例らしいと言う記事をどこかで読んだ・・・
0417デフォルトの名無しさん2006/11/26(日) 17:26:58
python 起動すると「KKCFUNC が組み込まれました」 って出ちゃいます

ttp://okwave.jp/qa2201618.html
このページの通り設定したのですがプロントが
C:\DOCUME~1\USER\MYDOCU~1>
見たいな感じでおかしなままです。
対話形式(>>>ってでるやつ)にもなりません
pythonのフルパスから実行すると普通に実行できるのですが
直せるものなら直したいです ><
0418デフォルトの名無しさん2006/11/26(日) 17:40:10
>>417
edlinを起動しても、そうなるな。
0419デフォルトの名無しさん2006/11/26(日) 18:52:42
>>417
command.com じゃなくて cmd.exe 使えば?
98とかそれ以前はシラネ
04204172006/11/26(日) 19:33:24
>>419
cmd.exeで起動してるんですけどKKCFUNC組み込まれちゃいます
0421デフォルトの名無しさん2006/11/26(日) 20:10:40
KKCFUNCとかedlinなんて名前を聞いたのは何年ぶりだろうか。テラナツカシス。
04224172006/11/26(日) 21:12:07
cygwinのpythonが呼ばれてました
しかもexeなのに24バイトでブツブツ.......

お騒がせしました(^ ^;)ゞ
04234132006/11/26(日) 23:05:33
>>415
ありがとうございました。ただ、教えて頂いた方法でPythonからログインする
事はできたのですが、根本的な問題は解決できませんでした(泣 もしよろし
ければなのですが、ソースをアップしたら、見ていただけますでしょうか?
48KB・2000行弱なんですけど・・・どうかお願いしますです。
0424デフォルトの名無しさん2006/11/27(月) 00:55:30
まずなにが問題なのか
04254132006/11/27(月) 02:07:03
今まではlivyにログインしてなくても http://www.livly.com/myshop.php?rid=3dKu
を開くと販売しているアイテム・島が表示されたのですが、先日からログイン
していないと「ログインしてください」と表示されるようになってしまい、
パースしてアイテム・島を拾う事ができなくなってしまいました。更に、
ブラウザからlivlyにログインしても、Pythonからだと「ログインしてください」
になってしまいます。
そこで、Pythonからログインしておけば回避できるかな?と思い、こちらで
教えて頂きログインしてみたのですが結果は同じでした。cookieの管理が
云々ってサイトを見てPython2.3から2.5に変更しcookielibを操作しようと
思ったのですが、やり方がイマイチわからなくて・・・
0426デフォルトの名無しさん2006/11/27(月) 02:26:05
要するにクッキー保存してないんでしょ。
アカウント持ってないとテストできないようなプログラムをアップされても見てくれる
奇特な人は少ないと思う。
04274132006/11/27(月) 02:50:14
>要するにクッキー保存してないんでしょ。
2週間程度cookieの管理と格闘していながら理解できないヘタレです。すみません。
一応、テスト用のアカウントは作成してあります。テストできる環境の準備は
整えてありますので、見て頂ける方おりますでしょうかm(_ _;)m
0428デフォルトの名無しさん2006/11/27(月) 04:03:41
>>427
氏ねばいいと思うよ
0429デフォルトの名無しさん2006/11/27(月) 06:57:59
下手に出ても>>428みたいな返事しか返ってこないんだから、さっさとどっかにうpして添削よろしくって言い放った方がいいよ。
0430デフォルトの名無しさん2006/11/27(月) 07:39:45
>>425
import urllib, urllib2, cookielib
j = cookielib.CookieJar()
opener = urllib2.build_opener(HTTPCookieProcessor(j))
opener.open("https://www.livly.com/login.php";,data=urllib.urlencode((("nname","名前"),("password","パスワード"),("login","true"))))
#ここでjにcookieが入る。print jで確認可能
req = urllib2.Request("http://www.livly.com/myshop?rid=3dKu";)
j.add_cookie_header(req)
#これでreqのヘッダーに必要なクッキーが書き込まれる。req.header_items()で確認可能
print opener.open(req).read()

#毎回本家からクッキーを取ってくるのがアホくさいと思うなら、FileCookieJarという選択肢も可能
04314132006/11/27(月) 08:34:11
>>415 426 429 430
多少書き換えてしまいましたけどできました。ありがとうございました。
これでこのまま寝ずに仕事してもへこたれません。感謝ですm(_ _)m
0432デフォルトの名無しさん2006/11/27(月) 11:13:43
>多少書き換えてしまいましたけど
どうしてここに引け目を感じているような書き方なのか理解出来ない。
0433デフォルトの名無しさん2006/11/27(月) 11:49:31
>>431
多少書き換えたものを晒しておけば、誰かの肥やしになるかもしれん。
0434デフォルトの名無しさん2006/11/27(月) 14:10:03
簡単な質問で申し訳ないんだけど、
数値A":" リストの内容 "文字列="数値B "文字列="数値C
っていう風に出力したいんだけど、どうすればいいの?
0435デフォルトの名無しさん2006/11/27(月) 14:36:26
print """数値A":" リストの内容 "文字列="数値B "文字列="数値C """
04364342006/11/27(月) 14:39:40
自己解決しました。多少無理矢理ではありますが。
print str(strA) + ": " + str(array[0:4]) + " aaa=" + str(strB) + "ccc=" + str(strC)
としました。※len(array) = 4
04374342006/11/27(月) 14:41:48
>>435変数の付け方がおかしかったです。
print str(intA) + ": " + str(array[0:4]) + " aaa=" + str(intB) + "ccc=" + str(intC)
0438デフォルトの名無しさん2006/11/27(月) 14:42:09
文字列フォーマットを使いなさい。
%s数値やリストも勝手に文字列表記に変換してくれます。

http://www.python.jp/doc/release/lib/typesseq-strings.html
04394342006/11/27(月) 14:42:27
>>437
さらにアンカーを間違えました。もうぐだぐだですいません。
正しくは>>436です。
04404342006/11/27(月) 14:58:08
>>438
素晴らしい。使わさせていただきました。ありがとう。
0441デフォルトの名無しさん2006/11/27(月) 15:03:05
指導料300円になります。
0442デフォルトの名無しさん2006/11/27(月) 15:06:59
文字列フォーマットで変数が多くなると、「この位置に表示される変数はどれだっけ」って
後ろの変数リストを指で数えたりすることない?
0443デフォルトの名無しさん2006/11/27(月) 15:19:41
>442
"%(変数名)s" % locals() はどうだろう
0444デフォルトの名無しさん2006/11/27(月) 15:21:07
>>441
安すぎ。もらわない方がマシ。

>>442
そういうときは辞書を渡す。

http://www.python.jp/doc/release/lib/typesseq-strings.html
のまんなからへん。
>>> print '%(language)s has %(#)03d quote types.' % {'language': "Python", "#": 2}
Python has 002 quote types.
0445デフォルトの名無しさん2006/11/27(月) 15:43:24
>>441
つ●○○
0446デフォルトの名無しさん2006/11/27(月) 17:04:05
それは税込み210円。
0447デフォルトの名無しさん2006/11/27(月) 17:30:26
>>441,446
ドカタ価格。
04484132006/11/27(月) 20:10:49
def (url, hoge):

-中略-

urllib._urlopener = ShopURLopener()
j = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(j))
data = urllib.urlencode((("nname","名前"),("password","パス"),("login","true")))
opener.open("https://www.livly.com/login.php";,data)
#リクエストurlは他defで指定
req = urllib2.Request(url)
try:
data = opener.open(req)
except:
print "失敗"
return 0

教えて頂いたソースが最初動かなくて、こんな感じで動きました。その後、
脱字に気が付いて教えて頂いたソースでもちゃんと動きました。書き換える
必要は全くなかったです。ありがとうございました。
0449デフォルトの名無しさん2006/11/28(火) 01:26:07
今日からPythonの勉強はじめますた。

a=u'ちんちん'
b=u'おっき'
print a+b*2
0450デフォルトの名無しさん2006/11/28(火) 02:19:16
結果は!
結果は!
0451デフォルトの名無しさん2006/11/28(火) 02:20:50
???n???n?¨?A?≪?¨?A?≪
0452デフォルトの名無しさん2006/11/28(火) 02:39:39
モジックソさん、○○○さんかわいそう。
0453デフォルトの名無しさん2006/11/28(火) 02:49:27
↑が一番かわいそう
0454デフォルトの名無しさん2006/11/28(火) 04:22:12
もじっくそって何?
0455デフォルトの名無しさん2006/11/28(火) 04:34:52
>>453
○○○さん,遅くまでご苦労なんだぜ?
0456デフォルトの名無しさん2006/11/28(火) 13:15:42
ユークリッド互除法

最大公約数
def gcd(a,b):
  if b == 0:
    return a
  gcd(b,a%b)

print gcd(21,15)

---結果---
None
---------

何故?
0457デフォルトの名無しさん2006/11/28(火) 13:19:57
- gcd(b,a%b)
+ return gcd(b,a%b)
0458デフォルトの名無しさん2006/11/28(火) 13:20:39
プログラムが間違っているから
0459デフォルトの名無しさん2006/11/28(火) 13:25:27
>>457
ありがとう。なるのはなった。
でも理由がピンとこない。
0460デフォルトの名無しさん2006/11/28(火) 13:26:34
理由がピンとこない理由がピンとこない
0461デフォルトの名無しさん2006/11/28(火) 13:28:17
なぜ a と書かずに return a と書くかはピンとくるのか?
0462デフォルトの名無しさん2006/11/28(火) 13:30:10
Rubyとごっちゃにしてる説を唱えてみる
0463デフォルトの名無しさん2006/11/28(火) 13:57:55
今やっと理解できた。
>>461
値を返すのはb == 0のときだけでいいから、gcd(b,a%b)の部分は関数呼ぶだけでいいと思ったので。
>>462
たぶんそう。rubyのスクリプト例見ながら練習してるから。
ソースはなるべく見ないようにしてるんだけど、流れが分からないときだけ見るようにしてて、
それでごっちゃになってるんだと思う。
0464デフォルトの名無しさん2006/11/28(火) 14:14:56
>>462
Perlもだっけ?<最後に評価した値を勝手にreturn
0465デフォルトの名無しさん2006/11/28(火) 15:00:49
>>463
せっかくだから非再帰版も作ってみれ。簡単だから。
04664072006/11/28(火) 20:54:33
>>411,412
おくれましたが、どうもありがとうございます。
サブクラスで対応することにしました。
cgi.FieldStorageからデータをdictにコピーしてHTMLテンプレートで使っているんですが、
params.get('key')よりはparams['key']のほうが喜ばれるので。デザイナーに。
PHPもJavaもRubyもエラーにならなかったので、Pythonでエラーがでるのには驚きました。
0467デフォルトの名無しさん2006/11/28(火) 20:57:28
普通はエラーになったほうが嬉しくないか?
0468デフォルトの名無しさん2006/11/28(火) 21:02:18
悪貨は良貨を駆逐するとはこのことだな。
0469デフォルトの名無しさん2006/11/28(火) 21:31:38
>>467
俺の感覚からすると信じがたいことだが、
プログラムや入力データを書き間違えていてもエラーにはならない方がよい、と考える人が結構いるみたい。

以前、某システムの互換品を作っていて、その元となるシステムが
ありえないぐらい文法エラーや実行時エラーに寛容なのに驚いた。
当然ながらそのシステム用に流通しているプログラムや入力データの中にも
大量のエラーが見つかった。システム側にエラーを指摘する機能が乏しいので
エラー入りのデータがそれと気付かれることなく出回るわけだ。

似たような事例はたぶんたくさんあると思う。ウェブブラウザはその典型ではないだろうか。
タグが閉じてなくても表示してくれる方がうれしいこともあるだろうし(俺はイヤだが)
.cssファイルや.jsファイルが見つからなくてもよきに計らってくれる方がうれしいこともあるだろう(俺はイヤだが)。
0470デフォルトの名無しさん2006/11/28(火) 21:31:49
List.findで要素が見付からなかったときOCamlでは例外が発生してSMLでは
option型のNONEを返すんだが、俺はSMLのほうが好きだなあ。
動的型付けの言語では例外出たほうがいいのかもしれない。
でもRubyでHash#fetchはあんまり使わない気がする。
0471デフォルトの名無しさん2006/11/28(火) 21:45:58
どちらが好ましいかはケース・バイ・ケースだよね。だから [] と get があるわけだ。
でも、>>466のケースは文章を読む限りではエラーになったほうが良さそうだよな。
0472デフォルトの名無しさん2006/11/28(火) 22:08:24
>>469
http://www.radiumsoftware.com/0608.html#060809
0473デフォルトの名無しさん2006/11/28(火) 22:40:38
ウェブブラウザはもちろん、間違ったHTMLでも”正しく”表示してくれるにこしたことはないだろう。
業務システムだって、間違ったデータでも正しく処理できるならエラーを出す必要はない。

問題は、間違ったデータで正しい処理をする超能力がどれだけあるかだが。
0474デフォルトの名無しさん2006/11/28(火) 22:44:05
?
0475デフォルトの名無しさん2006/11/28(火) 22:57:25
pythonのインタラクティブシェルだと

print u'てすと'
てすと

となるのですが、ipythonだと
print u'てすと'
文字化け

となっちゃいます。~/.ipython以下に設定するとことかあるのでしょうか?
0476デフォルトの名無しさん2006/11/29(水) 00:51:17
>>475
print unicode('ほげ', 'mbcs')
とやったときはどうなる?
0477デフォルトの名無しさん2006/11/29(水) 00:59:38
list = [1,2,3]
"".join(list)
じゃ無理だから、似たような方法ない?
0478デフォルトの名無しさん2006/11/29(水) 01:08:02
def hoge(x=[1]):
x.append(1)
print x

>>> hoge()
[1, 1]
>>> hoge()
[1, 1, 1]

はめられたああああ!
初期化してくれねぇのかよ!
0479デフォルトの名無しさん2006/11/29(水) 01:09:29
>>478
横着しないで入門書読めば?
0480デフォルトの名無しさん2006/11/29(水) 01:14:48
>>476
reduce(lambda x, y:str(x)+str(y),[1,2,3])とか?
0481デフォルトの名無しさん2006/11/29(水) 01:20:16
>>479
いや、読み返して絶叫したんだよ。
正しくは「はまった俺はアホ」でした。すみません><
0482デフォルトの名無しさん2006/11/29(水) 01:31:00
>>480
thanx
0483デフォルトの名無しさん2006/11/29(水) 01:46:17
組み込み関数ならlambda使わず一発で出来るよ

"".join(map(str,list))
0484デフォルトの名無しさん2006/11/29(水) 02:00:19
>>481
まともな入門書なら、なぜそのようなことが起こるのか、たいてい書いてあるな。

>>477
冗長に思えるかも知れないけど、リストコンプリヘンションは表記として分かりやすいと思う。

"".join([str(x) for x in [1,2,3]])

あと、listという変数名は使わない方がいい。
0485デフォルトの名無しさん2006/11/29(水) 02:17:23
>>484
>まともな入門書なら、なぜそのようなことが起こるのか、たいてい書いてあるな。

ハマりどころだからね.
初心者がハマりやすい罠を、丁寧に解説してあるのがよい入門書の条件だと思う.
0486デフォルトの名無しさん2006/11/29(水) 03:20:32
pythonの関数名で、アンダーバーをいれる・いれないの基準ってありますか。
例えばdict.has_key()はアンダーバーが入っててhasattr()は入っていないんですが、ここらへんの命名方針があれば教えてください。
0487デフォルトの名無しさん2006/11/29(水) 07:10:49
http://oldriver.org/python/pep-0008j.html
> 関数名
>
> 関数名は lowercase 方式で命名。アンダースコアで単語を区切って可
> 読性を上げてもよい。mixedCase 方式は、既に広く使われているような文
> 脈(たとえば threading.py)で、互換性を保つ場合にのみ許される。
>
> メソッド名
>
> 関数の場合とほぼ同じ。lowercase 方式で命名し、可読性を上げる目的で、
> アンダースコアで単語を区切るのは構わない。

さじ加減次第?
04884752006/11/29(水) 07:32:24
test = u'てすと'
print u
てすと

となりますた。なんでだろう。
0489デフォルトの名無しさん2006/11/29(水) 07:35:49
>>478
http://www.python.jp/doc/release/tut/node6.html#SECTION006700000000000000000
>重要な警告: デフォルト値は 1 度だけしか評価されません。デフォルト値がリストや辞書のような変更可能なオブジェクトの時にはその影響がでます。例えば以下の関数は、後に続く関数呼び出しで関数に渡されている引数を累積します:
0490デフォルトの名無しさん2006/11/29(水) 11:12:18
>>487
Python 3.0で統一されるかも根。
0491Python初心者(復活)2006/11/29(水) 12:14:41
またご指導下さい。
Python2.5ではgeneratorにおいてsend()によって「値を
渡す」ことが出来るようになったとある。
例えば:
lang = ['C','Java','Perl','Lisp',
    'Python','Ruby']
   
def conLang (maximum):
  
  i = 0
  while i < maximum:
    
    val = (yield lang[i])
    if val is not None:
      i = lang.index(val)
    else:
      i += 1    

if __name__=='__main__':

  x = conLang(6)
  print x.next()
  print x.next()
  print x.send('C')
  print x.next()
  print x.send('Python')
  print x.next()

以上のコードから、原則的にyield文の戻り値は代入
出来ないが、send()とは結局(yield ??)の
「代入」を可能にするということですか?
0492デフォルトの名無しさん2006/11/29(水) 12:43:19
知らない
0493デフォルトの名無しさん2006/11/29(水) 13:27:20
>>488

そもそも、環境を書け。
http://lowlife.jp/nobonobo/zine/5/6.html
あたりは参考にならんのか?
0494デフォルトの名無しさん2006/11/29(水) 13:41:43
>>> def mygen():
...  while 1:
...   val = (yield 10)
>>> __import__('dis').dis(mygen)
 2      0 SETUP_LOOP       10 (to 13)
 3   >>  3 LOAD_CONST        1 (10)
       6 YIELD_VALUE    
       7 STORE_FAST        0 (val)
       10 JUMP_ABSOLUTE      3
    >>  13 LOAD_CONST        0 (None)
       16 RETURN_VALUE    
(参考: ttp://www.python.jp/doc/2.4/lib/bytecodes.html)
直前のnext()やsend()が値を返した直後はYIELD_VALUEまで実行されている。
send(arg)を呼ぶとargをTOSに積んでSTORE_FAST以降を実行。
だからval=argになって次のYIELD_VALUEまで進んで値を返す...ということじゃないかな。
next()を呼んだときはTOSにNoneを積むから、next()はsend(None)と等価だと思う。
>>> def mygen2():
...  while 1:
...   yield 10
 2      0 SETUP_LOOP        8 (to 11)
 3   >>  3 LOAD_CONST        1 (10)
       6 YIELD_VALUE    
       7 POP_TOP      
       8 JUMP_ABSOLUTE      3
とにかく2.5ではnext()を呼ぶとTOSに何かを積むらしい。2.4ではYIELDの前後はこうだった。
 3   >>  3 LOAD_CONST        2 (10)
       6 YIELD_VALUE    
       7 JUMP_ABSOLUTE      3
0495デフォルトの名無しさん2006/11/29(水) 13:47:12
> val = (yield lang[i])

> yield文の戻り値は代入出来ないが

してるじゃん。
0496デフォルトの名無しさん2006/11/29(水) 14:00:52
>>495
コードだけみてもの言わないでね^^
0497デフォルトの名無しさん2006/11/29(水) 14:01:51
>>495
早漏ぎみですね・・・ストレスでせうか?
0498デフォルトの名無しさん2006/11/29(水) 14:05:38
ストレス溜まってる時って遅漏にならねえ?
0499デフォルトの名無しさん2006/11/29(水) 14:38:11
質問です。

Tkinterを使おうと思っているんですけど
Microsoft Visual Studioのダイアログエディタみたいに、
GUIでボタンなどの部品を配置するソフトはありませんか?
0500デフォルトの名無しさん2006/11/29(水) 23:32:35
EmEditorやらサクラエディタやらTerapadでコード書く人って、
Pythonにはあまりいなそうだね。
需要が無いからか、色分け設定用意されてないことも多いし…。
0501デフォルトの名無しさん2006/11/30(木) 00:19:50
サクラエディタでやってるけど。
色分け、普通に出来てるよ。

少数派なの?
みんなはなに使ってるのよ。
0502デフォルトの名無しさん2006/11/30(木) 00:23:02
>>499
普通は、RADが裏で勝手なコードを吐くのが
イヤだから、スクリプト言語を使ってると思うんだ。

そういうのがいいなら、僕なら netBeansかなにかに
しとくなぁ。
0503デフォルトの名無しさん2006/11/30(木) 00:30:27
Emacsでしょ、普通
0504デフォルトの名無しさん2006/11/30(木) 00:34:09
ファイル構成が把握できるぐらいの小規模ならEmEditorで書いてますが・・・
0505デフォルトの名無しさん2006/11/30(木) 00:54:04
>>503
日本語の扱いが他のアプリと統一できないのが嫌。
0506デフォルトの名無しさん2006/11/30(木) 01:01:37
>>505
設定が悪いだけでしょ
0507デフォルトの名無しさん2006/11/30(木) 01:04:50
ttp://crooc.com/gtfzm
0508デフォルトの名無しさん2006/11/30(木) 01:34:21
>>507
自動補完って、普通の入力補完と違うの?
サクラエディタで、色分けと普通の入力補完してるけど。

最初に .py の拡張子付きで保存しないと、機能が使えない
のが多少難だけど、特段不満ないなぁ。

キーワードが少し足りないと思うけど、
設定ファイルに自分で書き足せば問題なし。

ああ、自動補完て、もしかして RAD のように
コード生成してくれる機能のこと?

あったら便利かもしれないけど、
コードの雛形をコピペするので十分かも。
05095072006/11/30(木) 02:32:58
>>508
最近調べていないから断言出来ないけど、
サクラエディタの補完機能はおそらく、マクロ実行コマンドを叩いてから実行されるが、
crescent eve の場合はうざい位に候補を自動で出してくれる。※編集中ファイル内の単語から候補を抽出。

EmEditor、秀丸とかも試しんですが、いづれもマクロを使って実現しているだけで、
必ずトリガーが必要で好きじゃない。

サクラで↑のような自動補完機能があれば即乗り換えなんですが、
どうでしょうか?

というか今から調べてみます。
0510デフォルトの名無しさん2006/11/30(木) 02:44:31
terapadで書き起こして、あとはIdleでちまちま修正

>>499
663 名前: 662 [sage] 投稿日: 2006/07/29(土) 11:50:08
SpecTIXというのがあった.
ttp://www.python.net/crew/mike/src/Spectix/Spectix.html
0511デフォルトの名無しさん2006/11/30(木) 02:51:59
もしMac使ってる人がいたら、
TextMateというエディタがおすすめ。
たしかTurboGearのスクリーンキャストで
使われてたので見た事ある人いるかも。
■ このスレッドは過去ログ倉庫に格納されています