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


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

くだすれPython(超初心者用) その4



1 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:25:51 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、
お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>950 辺りで

前スレ
くだすれPython(超初心者用) その3
pc12.2ch.net/test/read.cgi/tech/1232055225/

関連スレ
Pythonのお勉強 Part33
pc12.2ch.net/test/read.cgi/tech/1240678081/

253 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:27:00 ]
あと、上の方にあるベンチマークだが、
あれはかなり古いPythonのベンチ。


リスト内包表記はバージョンがあがるたびにスピードアップしてて、
現在では、lambdaなしのmapに準ずるほどのベンチスピード。
一方、mapでlambdaを使ったら、リスト内包表記どころか、
通常のforループと同じかそれより遅いぐらいになる。

254 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 03:58:35 ]
ということは3.0以上ではreduceは
全部リスト内包に置き換えた方がよい
ということですね

255 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 05:55:35 ]
>>253
それって、リスト内包では評価対象がイテレータになるんで速い、ってことなの?

256 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 06:36:32 ]
>リスト内包表記はバージョンがあがるたびにスピードアップしてて、
>現在では、lambdaなしのmapに準ずるほどのベンチスピード。

現在とは3.0ですか2.6ですか

257 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 07:09:21 ]
>>254
reduceをいったいどういう内包表現に置き換える積もりなんだ?

258 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 12:42:01 ]
>>4-8
おかげさまでうまくいきました
無料の50MBだとコンパイルに失敗(というかソースの展開ですでに失敗)するので
quota3GBのお試し期間を申し込んだら2.5.4をまるごとコンパイルできました
setuptool/mysqldb等も放り込んでMySQLにもアクセスできました
お試し期間が終わるとquotaが50Mに戻るので放っとくとファイルが壊れるそうで
それまでに必要最小限サイズになるように標準ライブラリを削る必要がありました
結局バイナリCGIのケースとやってることはあまり変わらないかもしれません

259 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 13:47:20 ]
>>253
mapで使う関数は、defしたほうがいいってことですか?
defしたリスト内包表記>defしたmap≒lambdaで書いたリスト内包表記>lambdaで書いたmap≒普通のfor
てことなんすかね。リスト内包表記はCで実装した部分を実行するのが多いってことなんだろか

260 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 09:21:38 ]
>>259
普通に自分で def した関数ならば変わらない。
でも、自分で定義しなくても使える関数はC言語で実装されている
事が多いので、同じ事をする lambda よりも高速な事が多い。

速い順に並べると、
1. C関数の内包表記/map
map(str, l)
[str(x) for x in l]

2. Python式による内包表記
[x*2+3 for x in l]

3. Python関数による内包表記/map
def func(x):
  return x * 2 + 3
map(func, l)
[func(x) for x in l]
map(lambda x: x*2+3, l)

なので、mapを使っても悪くは無い場合は、1か、3で既存のPython関数を
使う(map用に用意しなくてもいい)場面のみ。

261 名前:デフォルトの名無しさん [2009/06/18(木) 23:38:12 ]
ユニコード文字列に関して質問させて下さい。
python2.6を使用しておりますが、このVerはユニコード文字列は気にしなくてもいいんですか?
例)
#coding: utf-8

a={"abc":"123","bcd":"456"}
b="コード:%(abc)s 局:%(bcd)s"
print b%a                 #コード:123 局:456

ユニコードのu""は必要ないのでしょうか?
むしろu""を使用するとエラーとなります。




262 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:23:39 ]
>>261
>>1

263 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 01:00:51 ]
>>261
ファイルはちゃんとutf-8で保存してる?
どこに u を付けたの?
なんてエラーがでたの?
それはインタラクティブシェル上?それともファイルに保存したコードを実行したの?
環境はWindows?Linux?Mac?

264 名前:デフォルトの名無しさん [2009/06/19(金) 21:45:53 ]
261です。
utf-8の設定ミスでした。お騒がせ致しました。
違うPCでやったのが原因でした。

265 名前:デフォルトの名無しさん [2009/06/20(土) 21:17:00 ]
くだらない質問で悪い
文字列フォーマットで
>>>print "%+010.2f" % 100.123
+000100.12
となりますが、この10桁ってのは、符号と小数点(.)も含まれるってことでいいんだよね?



266 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:58:48 ]
>>265
桁というか、文字数、と思ってたわ。
"前に符号付き0埋め10文字、小数点以下2桁の小数点表示"
とおれは理解してた。

267 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 01:25:44 ]
C とはちがうんだっけ?

268 名前:デフォルトの名無しさん [2009/06/21(日) 01:51:43 ]
みんなのPython改訂版って誤字脱字多くね?


269 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 02:56:07 ]
>>268
多い。かなりイラッときた。

270 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:05:18 ]
みんパイ(笑)

271 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:27:22 ]
はじめてのPython3も誤字脱字が多いですね
正誤表もいまだ出ていません



272 名前:デフォルトの名無しさん [2009/06/21(日) 16:53:32 ]
やっぱりみんなも気づいてた?
電話してやろうかと思ってたw
日本語どころかコードも怪しい
変な太字のところとかあるしw

273 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:14:16 ]
定期的にウジ虫が沸くな。

274 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:24:03 ]
よう、ウジ虫!

275 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:41:02 ]
馬鹿にすんな、今成長してハエになったところだぜ?

276 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:23:54 ]
迷惑度急上昇だな。

277 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:21:08 ]
>>274
ウジ虫に失礼だ。ゴキブリと呼べ。

278 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 14:27:22 ]
>>277
呼んだ?

       、       /⌒ヽ, ,/⌒丶、       ,
       `,ヾ   /    ,;;iiiiiiiiiii;、   \   _ノソ´
        iカ /    ,;;´  ;lllllllllllllii、    \ iカ
        iサ'     ,;´  ,;;llllllllllllllllllllii、    fサ
         !カ、._  ,=ゞiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!! __fカヘ.
       /  `ヾサ;三ミミミミミミ彡彡彡ミヾサ`´ 'i、
       i'   ,._Ξミミミミミミミ彡/////ii_   |
       |  ;カ≡|ヾヾヾミミミミミミ、//巛iリ≡カi  |
        |  iサ  |l lヾヾシヾミミミミミ|ii//三iリ `サi  |
       |  ,カ ,カll|l l lヾリリリリリ川川|爪ミミiリllカ、カi  |
        |  ;iサ,サ |l l l リリ川川川川|爪ミミiiリ サi サi  |
        |   iカ ;カ, |l l リリリリ川川川川l爪ミミilリ ,カi カi  |
       |  iサ ;サ, |リ リリ川川川川川l爪ミミiリ ,サi サi  |
       |  iサ ;iカ, | リ彡彡川川川川|爪ミミiリ ,カi :サ、 |
       ,i厂 iサ, |彡彡彡彡ノ|川川|爪ミミリ ,サi `ヘ、
      ,√  ,:カ, |彡彡彡彡ノ川川|ゞミミミリ  ,カi   `ヾ
     ´    ;サ,  |彡彡彡彡川川リゞミミリ  ,サi
         ;カ,  |彡彡彡彡リリリミミミシ   ,カi
         ,;サ,   |彡彡ノリリリリミミミシ    ,サi
        ;メ'´    i彡ノリリリリリゞミミシ     `ヘ、
       ;メ      ヾリリリリノ巛ゞシ       `ヘ、
      ;メ        ``十≡=十´         `ヘ、
                 ノ    ゞ

279 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:15:49 ]
IDLEをコンソールから呼び出すにはどうすりゃいいの。
vimと連携させようと思っているんだけど、IDLEショートカットのプロパティを
みても普通のショートカットと違うみたいで呼び出し方がわからないんだわ。

ちなみに、普通のpythonプロンプトなら
nmap <silent>;py :!"C:\python30\python.exe"<CR>
と_gvimrcに書いておけば;pyと書くだけで呼び出せて便利。

280 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:17:05 ]
『書く』じゃなかった、『コマンド』したら。

281 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 12:34:36 ]
うじ虫のAA




282 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 12:36:48 ]
0

283 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:36:18 ]


284 名前:デフォルトの名無しさん [2009/06/24(水) 23:03:37 ]
ファイル名の変換で困ってます。アドバイスをお願いします。

# -*- coding: utf-8 -*-

import os

TargetPath = r"C:\test"

FileList = os.listdir(TargetPath)

for i in FileList:
print i

for cnt in FileList:
c=1
os.rename("%03d.mp3"%c,cnt)
c+=1

※インデントは消えてると思います。。。
WindowsError: [Error 2] 指定されたファイルが見つかりません。
というエラーが出てしまいます。どういうことでしょうか

285 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:10:41 ]
よくわからんが、cをforの前に持ってこないとずっと1のままじゃね?

286 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:28:52 ]
俺だったらenumerate使うけど
まぁいいか

287 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:28:37 ]
>>284
なんかいろいろまちがっててよくわからんけど
こうしたかったんじゃないか?

# -*- coding: utf-8 -*-

import os

targetpath = r"C:\test"

filelist = os.listdir(targetpath)

for filename in filelist:
    print filename

c = 1
for filename in filelist:
    oldpath = os.path.join(targetpath, filename)
    newpath = os.path.join(targetpath, '%03d.mp3' % c)
    os.rename(oldpath, newpath)
    c += 1


288 名前:デフォルトの名無しさん [2009/06/25(木) 18:43:09 ]
>>287
スマートな正解をありがとうございます。
とても参考になりました。
renameへの引数はこのようにするんですね!

289 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:07:30 ]
このプログラム添削してください。

animal = [dog,cat,pig,lion,deer]
num = [1,2,3,4,5,6]

print animal[0] "は"num[0]"番可愛いです。

print animal[2]"は"num[5]"番可愛いです。

あってますか?

ちなみに
dogは1番可愛いです
pigは6番可愛いです
と表示させたいです

290 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:32:36 ]
>>289
1から勉強しなおせ

animal = ["dog", "cat", "pig", "lion", "deer"]
num = [1, 2, 3, 4, 5, 6]

print "%sは%d番可愛いです。" % (animal[0], num[0])
print "%sは%d番可愛いです。" % (animal[2], num[5])

291 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:58:38 ]
>>289
おまえセンス無いわ



292 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 02:27:36 ]
センスとか関係ないし
釣りの可能性はあるが

293 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 02:36:29 ]
でも具体的なコード貼って添削してくれってのはアリだね
初心者に説明してもらってもイミフなケース多いし

294 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 06:18:15 ]
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、

 釣り師 ↓     
.            /| ←竿
     ○  /  |
.    (Vヽ/    |
    <>     |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
             |
  餌(疑似餌)→.§ >゚++< 〜
                 の組み合わせだと思ってたんだけど、

最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、



          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)

かと思うんだけど、どうよ?

295 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:25:30 ]
>>294
そんなコピペで

296 名前:デフォルトの名無しさん [2009/06/27(土) 00:15:10 ]
他にも添削希望いないのかな

297 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:04:04 ]
Pythonは、あることを書くときに「なるべく誰でも書き方が同じになるようにしよう」
というのはいいです。

でもあることをしたい時に「ライブラリがすごいたくさんあっちゃって混乱してるけど
すきなの選んで」って勘弁してほしいんですが

298 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 16:49:36 ]
勘弁します

299 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:27:43 ]
>>297
それはPerlのCPANじゃね?
Pythonは標準ライブラリが充実している分、たくさんのサードパーティー
ライブラリの中からマトモなのを探す手間が省けることが多いよ。

300 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 02:25:50 ]
つきなみだけど
同意

301 名前:デフォルトの名無しさん [2009/06/28(日) 09:18:41 ]
FTPで対象のファイルがディレクトリかどうかはどう判断すればいいでしょうか?
マニュアルを見ましたが、該当のコマンドが見つかりませんでした.
www.python.jp/doc/2.4/lib/ftp-objects.html

nlst() で片っ端から試して例外処理で取得する方法を思いつきましたが
もっとスマートな方法はありませんか?



302 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 11:42:42 ]
ls -lR

303 名前:デフォルトの名無しさん [2009/06/30(火) 22:07:59 ]
すいません添削ってわけではないですが、質問させて下さい。
1から100までの数字で不定期に続くリストがあります。
cnt=[2,3,5,9,12,23,56,62,68,75,85,95]
でどの数値が抜けているのかを調べる。

#coding:utf-8
cnt=[2,3,5,9,12,23,56,62,68,75,85,95]
num=range(1,101)

for i in cnt:
#numから繰り返し変数iを引きたいんだけど、何が一番スマートだろ…

print num

304 名前:デフォルトの名無しさん [2009/06/30(火) 22:13:41 ]
書き忘れました。

#coding:utf-8

cnt=[2,3,5,9,12,23,56,62,68,75,85,95]
num=range(1,101)


for i in cnt:
    num.remove(i)

print cnt

がベストかと思うんですが…間違ってますか?

305 名前:デフォルトの名無しさん [2009/06/30(火) 22:15:36 ]
最後はprint num でした。度々すいません


306 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:16:13 ]
setでも使え

307 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:19:36 ]
[ x for x in range(1,101) if x not in [2,3,5,9,12,23,56,62,68,75,85,95]]

308 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:22:16 ]
set(num) - set(cnt)


309 名前:デフォルトの名無しさん [2009/06/30(火) 22:28:35 ]
そういうのも可能なんですね
ありがとうございます。
どーしょーもない質問ですいませんでした

310 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 18:25:23 ]
ちんこ生えてきた

311 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:41:46 ]
>>310 今度は大事にしろよ。




312 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 05:25:27 ]

    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!



313 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:39:22 ]
if文で一度に複数の変数、たとえば
if a>0 and b>0 and c>0:
みたいなのは無理ですか?

314 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:48:17 ]
>>313
そんなの聞くよりやった方が早いだろ。
普通に対話型でもできるし。

315 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:48:33 ]
可能です

316 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:00:10 ]
if 0 < a < 5:
と書いてもエラーにならない処理系はありますか

317 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:02:38 ]
ある

318 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:07:23 ]
Pythonにはない。
あと、エラーにはならなくとも、おもいがけない意味になることもある
(C言語とか)。

319 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:12:13 ]
>>318
>>318
>>318


320 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:22:05 ]
(回答者が)超初心者用

321 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:27:42 ]
Rubyなら全部できるよ^^



322 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:32:12 ]
>>318

323 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:47:17 ]
>>318
0 < (a < 5)
または
(0 < a) < 5
ということですか?


324 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:53:34 ]
#include <stdio.h>
int main(int ac, char *av[]){
  int a;
  for(a = 0; a <= 5; a++)
    if(0 < a < 5) printf("%d: true\n");
    else printf("%d: false\n");
  return 0;
}

# if(0 < a < 5)
0: true
1: true
2: true
3: true
4: true
5: true

# if(0 < (a < 5))
0: true
1: true
2: true
3: true
4: true
5: false


325 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:05:43 ]
>>318

326 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:24:50 ]
じゃあ、俺も一応

>>318

327 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:11:57 ]
0: false
1: true
2: true
3: true
4: true
5: false
になるようにするにはどうすればいいですか

328 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:18:01 ]
>>324
C/C++スレに帰れ

0 < a && a < 5

329 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:21:22 ]
Cはa < b < cはどうやってもダメだけどPythonは意図通りに動くだろ、確か
>>324はきちんと動いてないし

330 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:24:13 ]
きっちり正しく動いていて、書いたほうがアホと言う方が正しい

331 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:28:31 ]
>>318



332 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:43:56 ]
>>330

333 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:44:45 ]
まいんまいん

334 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:47:34 ]
>>318

335 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:17:47 ]
lispで
(< 0 a 5)
当然Rubyなんかには出来ません

336 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:07:38 ]
(setq a 3)
3
(< 0 a 5)
t


>>> a = 3
>>> 0 < a < 5
True

337 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:22:22 ]
a > b > c > dは

t = b
u = c
a > t and t > u and u > d
ってことか。これはきもいなー。
Python3でも変わってないのね。
まあ、気にしないことにしよう。

338 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:27:34 ]
Cをはじめた初心者がうっかりやりがちなぐらい自然な記法なのに!

339 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:31:57 ]
Pythonの三大ステキ機能のひとつにケチをつけるとはいい度胸だ

340 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:45:06 ]
bが最大であることをテストするのに
a < b > c #これはいただけないよね?だからと言って
b == sorted((a, b, c))[2] #これは頭がおかしい

341 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:50:58 ]
Python > Ruby > C



342 名前:デフォルトの名無しさん [2009/07/04(土) 00:05:09 ]
(a and c) < b

343 名前:デフォルトの名無しさん [2009/07/04(土) 00:09:40 ]
a, b, c, d のなかで bが最大であることをテストするのに
a < b > c に d を加えられない
sorted の方が正解

344 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:11:34 ]
>>342は何がしたいんだ

345 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:12:11 ]
max(a, b, c, d) == b

346 名前:デフォルトの名無しさん [2009/07/04(土) 00:15:07 ]
reduce(lambda x, y: y if x < y else x, [5, 2, 7, 3])

347 名前:デフォルトの名無しさん [2009/07/04(土) 00:16:53 ]
reduce は 2.6 以上では使えないんだっけ

348 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:19:19 ]
functools.reduce に移動しただけだから問題ないよ

349 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:20:23 ]
any(x < b for x in (a, b, c))だろ、常識的に考えて……


350 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:24:28 ]
つーか、もう比較アルゴリズムの話だろ。

351 名前:デフォルトの名無しさん [2009/07/04(土) 00:50:00 ]
web から取ってきた HTML を食わせて、XPath でデータを取り出したい。
正書式でなくても適当によしなに計らってくれるとなお嬉しい。
Ruby だったら Nokogiri みたいだけど、Python では何?



352 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:55:37 ]
>>351
- BeautifulSoup
- lxml

353 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:44:26 ]
>正書式でなくても適当によしなに計らってくれるとなお嬉しい。

lxml だと無理?

354 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 02:18:39 ]
lxmlもがんばってくれるよ

355 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 06:15:05 ]
any(x < b for x in (a, b, c))だろ、常識的に考えて……

356 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 10:06:22 ]
any(b<=x for x in (a, b, c))

357 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 11:50:56 ]
class Hogeがあったとして、
"Hoge"からはどうやってアクセスするんだっけ?

あと、こういうのを一般的に言って、どんな専門用語でしたっけ?

358 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 11:53:48 ]
>>357
globals()["Hoge"]

359 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:01:54 ]
>>358
ありがとうございます。

360 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:11:41 ]
イントロスペクションとかリフレクションとかそのへんの用語を求めてる?

361 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:43:47 ]
>>360
イントロスペクションってのは初めて聞いたので、調べてみます。

単に、eval("Hoge")みたいなのと勘違いしていた模様。



362 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:21:52 ]
Hoge.py 内に
class Fuga があったとして、
"Hoge", "Fuga" からはどうやってアクセスするんだっけ?


363 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:23:23 ]
Hoge.py 内に
class Fuga, method Hage があったとして、
"Hoge", "Fuga", "Hage" からはどうやってアクセスするんだっけ?

364 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:31:07 ]
 

365 名前:デフォルトの名無しさん [2009/07/07(火) 13:34:51 ]
 

366 名前:デフォルトの名無しさん [2009/07/10(金) 09:36:03 ]
age

367 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 09:49:45 ]
おはようございます。
わたし16歳の女子高生ですけど
Python始めるにあたって最初に読むべき本は
ありますか?

368 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:08:35 ]
ないよ

369 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:44:13 ]
こんにちは。
わたし15歳の巨乳グラビアアイドルなんだけど
みんなでPythonやろうよ。

370 名前:デフォルトの名無しさん [2009/07/10(金) 13:59:45 ]
みんなでPython www

371 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:24:24 ]
Good Morning, Everyone!!!!
I am a thirteen years old girl.
I will start learning Oppaithon Programming.
Please teach me chome-chome.



372 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:35:52 ]
chome-chomeとか団塊レベルじゃないと使わないだろう普通

373 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 06:18:10 ]
コメコメ?アスタリスクのこと?

374 名前:デフォルトの名無しさん [2009/07/11(土) 09:33:34 ]
いつもの英語下手なひとか

375 名前:デフォルトの名無しさん [2009/07/11(土) 12:39:50 ]
OptionParserについて質問です


#!/usr/bin/env python
# coding: utf-8

from optparse import OptionParser

parser = OptionParser()
parser.add_option('-f', '--fuga', action='append', type='string', dest='fugaList', help='fugafugafuga')
(options, args) = parser.parse_args()
print options.fugaList


※上記のスクリプト名を仮にfugaとする

実行例1:
$ ./fuga -f hoge piyo
['hoge']

実行例2:
$ ./fuga -f hoge -f piyo
['hoge', 'piyo']

複雑なオプション指定による処理分岐を行いたくてOptionParserを使い始めました
実行例1のように一つのオプションに多数の引数を渡して、
実行例2の結果['hoge', 'piyo']のように"options.fugaList"に
引数を代入したいのですが、可能でしょうか?
可能ならアドバイスをお願いします

376 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 12:55:13 ]
一つのオプションに対して複数のオプション引数を許したら
後に続くであろう固定引数が存在するかしないか確認する術がない気がする

なので素人考えだけど -f"hoge,piyo" でごまかすとか

377 名前:デフォルトの名無しさん [2009/07/11(土) 13:22:26 ]
>>376
レスありがとうございます

>>275にこのスクリプトの使用目的を書いていなかったので
後出しになってしまいますが

$ ./fuga hoge_*

のようにコマンドラインからワイルドカードを使用して、
複数のファイル名をオプション引数に渡して利用するのがメインなので
-f"hoge,piyo" ではちょっとごまかせないです。。。

378 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 17:38:38 ]
そういう場合-fオプションがあったらどういう動作をする、という風に作るものであって
-fオプションにパラメータをぞろぞろ渡すという風にはしないだろ、普通。

379 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 20:33:47 ]
A/B/__ini__.py で変数を定義
hoge = 'hogehoge'
A/B/module_x.py というモジュール内でhogeを使いたい場合、どうすればいいのかを教えてください。

import hoge
ではダメなんですか?

380 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 21:02:00 ]
>>379
コピーでよけりゃ
from . import hoge

381 名前:375 mailto:sage [2009/07/12(日) 02:57:27 ]
>>378
確かに普通はそうかもしれませんね。。。



という訳でOptionParserではワタシがしたいことが出来なさそうなので
自分でモジュールをつくることにしました
どうもありがとうございました




382 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 03:26:51 ]
どういたしまして

383 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 07:40:36 ]
>>377
OptionParserなりgetoptで "hoge_*" を文字列として受け取ってから
glob でワイルドカードを展開すればいいんじゃまいか。

ためしてないけど Linux/Unix 環境だとワイルドカードはシェルによって
展開されてからプログラムに渡されるので

./fuga -f "hoge_*"

のようにコマンド引数をクオートして書く必要がある。

384 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 09:37:55 ]
きたああああああああああああああ
UnicodeDecodeError出なくなった!

385 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 10:08:02 ]
>>384
どうやった?
まさか setdefaultencoding() じゃないよな?

from __future__ import unicode_literals
して、テキストファイルのファイル入出力は
import codecs
codecs.open('foo', encoding='cp932')
のようにエンコーディングを指定してファイルを開くのが正しい方法だぞ。

386 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:45:18 ]
リスト型で日本語を扱う場合一個ずつ取り出さないと文字が化けちゃうんですが
スライスで一度に複数の要素を扱えるようになる方法はないんでしょうか

387 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:54:03 ]
>>386
実際に化ける場合のコードと、「一個ずつ取り出す」のコードを見せてみりゃれ

388 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:11:28 ]
辞書を

hoge = {'fuga': 1}
print hoge.fuga

とJSの連想配列のようにキーをプロパティみたいにして
アクセスしたいんですがどうにか実現できないですか?

389 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:38:09 ]
>>385
フッ…txtをUTF-8で保存することを覚えただけさ

ついでにだけどunicode_literalsって何?
2.5だとimportできなくていいのか?

390 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:48:52 ]
>>389
うん、2.6からしか使えない。
たとえば、
#coding: utf-8
open("あいうえお")
ってやると、"あいうえお"はutf-8のバイト列だから、Windowsとかでは
"あいうえお" という名前のファイルを開けない。
open(u"あいうえお")
と書くと普通にファイルが開ける。

で、 Python 3.0 以降では普通に "あいうえお" と書くと Python 2系の u"あいうえお"
相当になるんだけど、Python2系でもu無しにUnicode文字列を書けるようにするのが
unicode_literals

391 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:51:59 ]
>>388
例えば、
>>> class JSObject(dict):
... def __init__(self, o):
... self.__dict__ = o
...
>>> o = JSObject({'foo': 1})
>>> o.foo
1

他にも __getattr__, __setattr__ を使った方法とかもある。



392 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:10:28 ]
>>387
こんな感じです
#ファイルの2行目からの文字列を3行ずつリストの1要素にまとめて扱いたい
fhnd = open('spam.txt','r')

lines = []
add_up = []

line_start = 2
line_end = 5

for temp in fhnd:
 lines.append(temp)

for temp in lines:
 if (line_start > line_max) or (line_end > line_max):
  break
 add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない
# add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける
print str(add_up[0]) + str(add_up[1]) + str(add_up[2])#←上のfor文内のうち上の行を実行なら化けない
print str(add_up[0:3])#←上のfor文内のいずれでも化ける

393 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:12:35 ]
抜けてたけど
line_max = len(lines)
です

394 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:13:17 ]
>>391
おお!ありがとうございます!
勉強になりました!

395 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:58:36 ]
>>392
>  add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない
> # add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける
上の場合、appendの引数は文字列だけど、下の場合はリスト
なので下を上と同じくするならadd_up.append( ''.join( lines[line_start:line_end]))じゃまいか

> print str(add_up[0:3])#←上のfor文内のいずれでも化ける
リストをstrしたときに得られるのはprintできる文字列

>>> L = [1, 2, 3]
>>> str(L)
'[1, 2, 3]'

396 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:24:04 ]
>>392
まずはstr()とrepr()の違いが判らないとな。

>>> astr = 'あいう'
>>> alist = [astr]
>>> print astr
あいう
>>> print alist
['\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86']

リストを文字列にしようとしたら、リストの要素にはstr()ではなくてrepr()が適用される。
repr()されると、文字列のうちASCII文字以外は\xでエスケープして表示される。

三行分の文字列を配列にして add_up を2重配列にしたい?
それとも三行分の文字列を一つの文字列に連結したい?
lines = open('spam.txt').readlines()
add_up = []
for i in range(1, len(lines), 3):
    add_up.append(lines[i:i+3]) # 2重配列にしたい場合
    add_up.append(''.join(lines[i:i+3])) # 連結したい場合

397 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:36:49 ]
エンコーディング方面の問題かと思って
見当違いな方向に進むところでした
ありがとうございました

398 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:48:35 ]
>>390
ありがとう

399 名前:デフォルトの名無しさん [2009/07/13(月) 22:41:07 ]
[1,2,3,1,4,5]のようなリストの重複した要素を削除して[1,2,3,4,5]のようなシーケンスを作る。
※並び順は問わない。

set型を使わず、for文とif文を組み合わせるなどして作成する。
模範解答をお願い致します。

400 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:50:35 ]
とりあえず、初歩的にはこんな感じだろう。

ListA = [1,2,3,1,4,5]
ListB = []

for x in ListA:
 if not x in ListB:
  ListB.append(x)

print ListB

401 名前:デフォルトの名無しさん [2009/07/13(月) 22:53:49 ]
>>400
レスありがとうございます。
削除する方法ばかり考えてましたが、追加するって考え方もあるんですね
すごく参考になりました。スマートな回答どうもです!



402 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:56:05 ]
a = [1,2,3,1,4,5]
print list(set(a))

403 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:56:27 ]
最初に空リスト作るってのはよくある

404 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:44:04 ]
>>399
set型を使わない理由は?

405 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:52:50 ]
宿題だからでは・・・
あれ、だとすると宿題スレだなw

406 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:09:18 ]
2ちゃんに書き込みたいけどcookieがよく分からん
どうやってResponseから取り出してrequestに追加するの?

407 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:42:01 ]
firefox使えばok

408 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:45:22 ]
というかwgetだけでできるじゃん

409 名前:デフォルトの名無しさん [2009/07/15(水) 06:59:12 ]
インスタンスに勝手に属性をつけられないようにはできませんか?
クラスの定義に書いてある属性だけで打ち止めにしたい・・・

410 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 08:56:43 ]
def __setattr__(self, name, value):
    if hasattr(self, name):
        object.__setattr__(self, name, value)
    else:
        raise AttributeError(name)

411 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:10:10 ]
そうか!
__setattr__ をオーバーロードすればよかったんですね.



412 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:23:09 ]
__slots__ とどこが違うの?

413 名前:410 mailto:sage [2009/07/15(水) 09:58:48 ]
>>409的なことはやらないから忘れてた

414 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:18:58 ]
>>412
何か文句でも?

415 名前:406 mailto:sage [2009/07/15(水) 13:29:32 ]
いやPythonから書き込みたいんだけど

416 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:32:20 ]
>>415
spam業者乙!

417 名前:デフォルトの名無しさん [2009/07/15(水) 13:34:45 ]
過去スレに(r

418 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:51:46 ]
from cookielib import CookieJar

cj = CookieJar()
cj.extract_cookies(res,req)
cj.add_cookie_header(req)

419 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:44:39 ]
これだな
pc11.2ch.net/test/read.cgi/tech/1226830195/14

420 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:52:29 ]
フォルダの中にあるtxtファイルを全て読み込むことってできますか?

421 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:54:12 ]
>>420
import glob
for i in glob.glob('*.txt'):
  d = open(i).read()



422 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:58:45 ]
>>421
ありがとうございます
os.walk使って無理矢理やってました

423 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:02:41 ]
glob() はサブディレクトリ見に行かないぜ

424 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:54:45 ]
paverいろいろおすすめ

from paver.path import path
for f in path('.').walkfiles('*.txt'):
    print f

425 名前:デフォルトの名無しさん [2009/07/16(木) 05:05:09 ]
くそう・・・なんで俺のコードじゃpickleが使えないんだ・・・
もう寝る

426 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 15:49:26 ]
gzip解凍できねえぞくそお

427 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 15:59:39 ]
ttp://blog.kzfmix.com/entry/1187087731
これだ!

428 名前:デフォルトの名無しさん [2009/07/16(木) 16:49:39 ]
文章の中から単語の数かぞえんのどうやんの?
countを使ってどうやんのさ


429 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 16:56:15 ]
wc --words

430 名前:デフォルトの名無しさん [2009/07/16(木) 17:16:57 ]
pythonって何のために使うの?


431 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 17:51:28 ]
汎用です



432 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 21:46:48 ]
夜のお供に使ってみるか・・・

433 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 02:41:08 ]
perlをわすれるため

434 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 07:14:30 ]
雑用を処理させていますよ。
gMailを読んでDBに格納しておいて月末にExcelにまとめさせるとか

435 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 16:20:12 ]
グラフ描くのに色々モジュールあるみたいだけど何がいいかな

436 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:56:36 ]
今os.systemを使ってUNIXコマンドを組み込んでるんですが
bashとかでお馴染のリダイレクトやパイプを
Pythonでも使いたいのですが可能ですか?


437 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:02:23 ]
os.system は system(3) 経由 sh 経由でコマンドを起動するはずだからできると思うが、
subprocess モジュールを勉強したほうがいいと思う。

438 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:13:07 ]
>>437
。。。すまんm(_ _;)m

勘違いして別のコマンド実行してたみたいです。。。
確認したらちゃんとできました。
回答ありがとうございましたm( __ __ )m

439 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:44:54 ]
しかし乗り換えるにはsubprocessは面倒くさい罠

440 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:53:55 ]
popen2.popen3()

441 名前:デフォルトの名無しさん [2009/07/18(土) 05:44:16 ]
4コアでガンガンまわしてるつもりになってても、
実は1コアしか動いていないのが悲しい
スタックレスなんとかをかんとかすればアレなのかな?



442 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 06:57:04 ]
つmultiprocessing
スレッド回すよりは好きだわ

443 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 10:58:43 ]
unko = [1, 3, 5, 7, 11, 13]
for i in unko:
 if i < 10:
  unko.remove(i)
for i in unko:
 print str(i)

3 <---?
7 <---?
11
13

なして?


444 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 11:19:11 ]
ループ中に回してるリストをいじるのはやめましょうという話
どうしてもやりたければ for i in unko[:]: unko.remove(i)

445 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 11:21:12 ]
リストについて舐める操作をしながら、そのリストに副作用が起きる操作をしてるから。
リストの1番めを見て、1を削除。その次はリストの2番めを見るので、1番めに入った
3は無視されちゃう。

446 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 17:05:09 ]
unko.remove(i) ワロス

447 名前:デフォルトの名無しさん [2009/07/18(土) 21:28:25 ]
ちんこ

448 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:13:35 ]
フルーチャートを書けばすぐわかることだろうに

449 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:14:17 ]
フローチャートを書けばすぐわかることだろうに

450 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:17:00 ]
flo'u tʃɑ':(r)t

451 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:14:08 ]
クラスの中で変数を宣言したいのですが、

self.unko = 0

で、いいんでしょうか?



452 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:15:18 ]
はいそれで大丈夫です
外部アクセスを防ぎたい場合はself.__unkoとしてください

453 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:31:21 ]
ありがとうございます!

外部アクセスを防ぐ、ということは宣言した後予期せぬ状況で中身が書き換わるのを防ぐ、ということでしょうか?

454 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 01:45:38 ]
no

455 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:03:46 ]
うーんどういうことなんでしょう。
内容を事ある毎に変化させていくパラメータとして使いたいので普通に宣言すれば良いと思っているのですが、それで問題ないでしょうか?

456 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:18:34 ]
no

457 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:21:19 ]
>>455
余計なことを言って混乱させてすいませんでした
self.__unko
のように先頭に__を付けると外部アクセスのできないいわゆるprivate変数の様な感じになります

458 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:36:23 ]
C言語で言うとstaticをつけたりつけなかったりという話なのでしょうか?


459 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 04:27:42 ]
no

460 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 20:34:26 ]
python楽しいお

461 名前:デフォルトの名無しさん [2009/07/21(火) 22:20:03 ]
python 面白いよね
ショボイのしかまだ書けないけど、(きっと今後もw)
日々の作業が楽で、楽しくなるようなコードが書けるまで勉強するのだ
インタラクティブシェルだけで勉強してたら、ショボーンだけど、ファイルに書き出しとかになると
ちょっとプログラムって感じで楽しい



462 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 11:39:00 ]
Python、神のごときライブラリが色々あって面白いすね。

463 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 12:51:38 ]
python組み込みのhash関数って完全ハッシュ関数ですか?
衝突しませんか?

464 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 14:25:58 ]
>>462
新参の俺にbeautifulsoup意外詳しく

465 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 15:00:29 ]
_mssql、VisualBasic.netでADO.netとか何だったんだろうと。
pyExcelerator、Excelネイティブのファイルが簡単に出来たですよ。
reportlab、PDFが(ry
Barcode for Python、bzr branch lp:barcodesforpython/beta、バーコードが(ry
最近、データベースからの書類生成は全部Pythonで書いてます。

466 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 16:45:56 ]
searchとmatchの挙動の違いを詳しく解説してくれる方いませんか?

467 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 16:52:14 ]
re.match("foo", s) == re.search("\Afoo", s)

468 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:29:48 ]
match(r'foo',unko)のようにrオプション付けるとどういう効果があるのでしょうか?

469 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:34:06 ]
www.python.jp/doc/release/lib/module-re.html

470 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:34:22 ]
>>468
www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000

471 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:43:29 ]
findを忘れないで



472 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 19:00:55 ]
よくわかりました!
ありがとうございます''

473 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:42:42 ]
>>463
なわけないだろ。

474 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:00:30 ]
>>473
明確に記載されている資料があればお願いします

475 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:06:50 ]
www.python.jp/doc/release/lib/module-hashlib.html

476 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:08:54 ]
どのソースに書いてあるかドキュメントに書かれていればいいんだがなー
組み込み関数だとgrepしてもノイズ多くてゲンナリ

477 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:11:08 ]
memo
ttp://mail.python.org/pipermail/python-dev/2003-June/036556.html
ttp://stackoverflow.com/questions/793761/built-in-python-hash-function
ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html

478 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:23:01 ]
>>475
それじゃないww

479 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:29:32 ]
help(hash)したら書いてあるだろうが

480 名前:476 mailto:sage [2009/07/23(木) 10:22:52 ]
>>479
俺へのレスじゃなくて>>463へのレス?
やってみたけど、どちらにしても書いてなかった

481 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:28:17 ]
Summer holidays



482 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:47:47 ]
機能性文盲はつらいよ

483 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:52:46 ]
いいからやってみろよ
上で求められてるような情報は出てこないから

484 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:00:18 ]
求められてるのって、完全hashかどうかだよな?
> Return a hash value for the object. Two objects with the same value have
> the same hash value. The reverse is not necessarily true, but likely.
明快に書いてあるよな、「逆は真とは限らない」って。

485 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:08:54 ]
hash()の入力の値域と出力の値域を比較すれば見当がつくじゃまいか
出力は整数なんだから衝突せずにすむ入力の範囲はせいぜいそれと同程度だ

Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on
win32
>>> hash(0)
0
>>> hash(1)
1
>>> hash(-1)
-2
>>> hash(-2)
-2

486 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:39:32 ]
>>484
完全ハッシュって双方向に一意なんだっけ
って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな

487 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:41:55 ]
>完全ハッシュって双方向に一意なんだっけ

no

>って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな

no

488 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:00:32 ]
えっ

489 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:42:36 ]
>> 完全ハッシュって双方向に一意なんだっけ
>
> no
>

no

>> って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな
>
> no

no

490 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:44:34 ]
> no
no

なんだよおまえらww

491 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:55:19 ]
> なんだよおまえらww
neet



492 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 13:22:51 ]
なんなんだこのスレ

493 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 13:23:49 ]
衆議院議員をめざしている人が、
本当のところどう思っているのか、
きいてみよう。
ttp://moderator.appspot.com/?hl=ja#16/e=9df89
"名前を連呼するだけの選挙宣伝カーを、「スパム認定」して禁止しませんか?"
Lambda  

494 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 16:24:25 ]
>>474
Python 自体のソースを見るのが確実かと。
svn.python.org/view/python/trunk/Python/bltinmodule.c?revision=73776&view=markup
の builtin_hash() が組み込み関数の hash() に相当する。
svn.python.org/view/python/trunk/Objects/object.c?revision=73076&view=markup
に PyObject_Hash() の定義がある。

495 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:07:08 ]
ソースやドキュメントなんて読むまでもないだろ。

もし仮に完全ハッシュだとしたとしたら
論理的に考えてhash関数の引数はシーケンスでないとならない。
そうなってないんだから当然hashは完全ハッシュじゃない。
たまには頭使わないと腐るぞ。

496 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:10:25 ]
そもそも「ハッシュ」の意味さえ知っていれば、あんな疑問は湧かないはず

497 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:31:09 ]
>>495
> 論理的に考えて
Python的に考えて、でしょ
型によって全く扱いが違う関数なんて
他の言語ではありふれてるわけで。
スレタイ読める?

498 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:35:19 ]
例えば数値なら桁毎のシーケンスの生成なんて簡単なことだし

499 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:43:40 ]
スレタイ読めるなら
いちいち「Python的に」なんて書かなくても補完できるはずなのにね。

500 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:12:47 ]
>>498
桁毎のシーケンスって何?
整数型のbit数毎に異なるテーブルを用意する"なら"
整数型の完全ハッシュが作れるってこと?
条件を絞れば完全ハッシュなんていくらでも作れるに決まってるだろ?
たとえば同一性を判定するためだけのハッシュとか、
ある種のFSでファイル名をキーとするハッシュとか。

自分こそスレタイ読めるなら、型によってとか他の言語ではとか
勝手に条件付け加えないでくれ。

501 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:15:53 ]
釣り針でかいなw



502 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:18:49 ]
そんなもんがあるとして、少なくとも、引数の範囲とかも引数にしないと無理なんじゃまいか?

503 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:27:01 ]
引数の範囲?bitwidth?

504 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:28:27 ]
朝生はじめるよー

505 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 19:38:43 ]
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!


506 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 15:51:39 ]
Output folder: C:\DOCUME~1\user\LOCALS~1\Temp
Install dir for actual installers is C:\DOCUME~1\user\LOCALS~1\Temp
"Target CPU handles SSE2"
"Target CPU handles SSE3"

XPにnumpyインストールしようとしたらこうなったんだけどどうしたらいいんだ?




507 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 16:04:23 ]
あーインストーラー保存せずにそのまま実行したらできました

508 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 16:22:10 ]
おれ、C:\temp\downloadsになんでもダウンロードして実行する癖あるんだけど、
俺の場合そうはならなかった気がするな?

509 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:07:06 ]
Mac OS X + Python2.5です
ファイルの出力なのですが、
f = open('hoge', 'w')
f.write('line 1\n')
としても改行されません・・・
なにか間違って理解しているのでしょうか?

510 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:10:45 ]
> write( str)
>
> 文字列をファイルに書き込みます。戻り値はありません。
> バッファリングによって、flush() または close() が呼び出されるまで
> 実際にファイル中に文字列が書き込まれないこともあります。

511 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:13:29 ]
失礼しました。
close() はしているのですが、
ファイルには
line 1\n
と出力されてしまいます・・・



512 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:17:15 ]
f = open('hoge', 'w')
f.write('line 1\n')
f.close()

こちらでは再現できない。

513 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:19:47 ]
原因が少しわかりました・・・
PyDev(Eclipse)を使っていたのですが、\がバックスラッシュにならないようですorz
コンソールからvi で編集しなおして\(バックスラッシュ)で改行されました。
これはPyDevの挙動がオカシイんですかね、それとも仕方ないんでしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:27:11 ]
>>509
脊髄反射でバッファリングだと思ってしまった。ごめん

macのyen signには癖があるって話を聞いたことがある
% od -tx1 hoge して結果を貼ってみて

515 名前:511 mailto:sage [2009/07/26(日) 22:29:39 ]
解決しました
Macに不慣れなので知らなかっただけで、通常に¥キーを押すと円記号、バックスラッシュを入力する場合はOption + ¥キーを押すようです。
ターミナルの場合は強制的にバックスラッシュなのかな?

516 名前:デフォルトの名無しさん [2009/07/26(日) 22:35:46 ]
pythonで皆さんどんなことしてるんですか?
具体的に何をしてるか教えて下さい。

517 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 23:40:35 ]
pass

518 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 00:10:59 ]
ナニしてるんだろうねぇ

519 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 01:55:52 ]
>>516
お仕事に使えるよ?
ユーティリティ色々、前はVB.NETだったけど今は大概Pythonで書いてる。
この間は、ftpサーバーの状態をチェックして警報ショートメッセージ出すのを書いた。

520 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 02:39:53 ]
Windowsアプリ作ってるよ。
Thinkpadとか、ツール類がPython使ってるから検索するとPython関連ファイルが
沢山入ってる。
バージョン古いし、ツール類の大半要らないからアンインストールして自分で最新の
Python入れるけど。

521 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:48:56 ]
Python のコマンドラインシェルや、iPython 等で
タブ幅(tabstop)を指定するにはどうすればよいですか?




522 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:54:50 ]
a = [' ','a',' ','b',' ','c',' ']
のように空白を要素に持つlistがあります.
このlistから空白要素を全部削除するのに,
for a in range(a.count(' ')):
a.remove(' ')
と書いているのですが,もっとスマートに書けないでしょうか.


523 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:01:33 ]
a = [i for i in a if a != " "] とか?

524 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:02:34 ]
a = [' ','a',' ','b',' ','c',' ']
print filter(lambda x: x != ' ', a)

or

a = [' ','a',' ','b',' ','c',' ']
print [x for x in a if x != ' ']

525 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:02:52 ]
[e for e in a if e != ' ']
filter(lambda x: x != ' ', a)

526 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:04:35 ]
>>524
ケコーンしようぜ

527 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:05:28 ]
filterって関数があるんですね.ありがとうございました.

528 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:06:31 ]
全然スマートにみえないんだが気のせいかな?

529 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:22:53 ]
リストそのものの書き換えと、リストから要素を除いた新しいリストを作るののどちらをやりたいんだ?

530 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:25:32 ]
>>528
filterとかlambaとかスマートというか自己満足だよね

531 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:27:06 ]
lambdaはともかくfilterはできる子



532 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:33:19 ]
>>531
>filterはできる子

そういうことにしたいのですね。

533 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:36:59 ]
全然スマートにみえないんだが気のせいかな?

534 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:38:18 ]
全然スマートにみえないんだが気のせいかな?

535 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:44:34 ]
reduce(lambda x, y: x + ([y] if y != ' ' else []), ' a b c ', [])

536 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:45:22 ]
reduceって関数があるんですね.ありがとうございました.

537 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:52:20 ]
[i for i in ''.join(a).split(' ') if i]

or

filter(lambda x: x, ''.join(a).split(' '))


538 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:01:52 ]
filter(' '.__ne__, [' ','a',' ','b',' ','c',' '])

539 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:17:50 ]
それいいね

540 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:53:54 ]
一行野郎め

541 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:18:26 ]
Tkinterで書いたものをwxで書き直してます。DnDが要件にあったので。
wxは初めてです。

wxってウィジェットの位置とかサイズを指定しますが、
あれって環境によってフォントサイズが変わったりした場合、
重なったり、端が切れちゃったりしないんですかね。

TKライクに並べて行けば自動的にサイジングしてくれる
配置のやり方があれば教えていただけないでしょうか。

sizerでどうにかするんだろうとは思うのですが、具体的なや
り方に行き当たっていない状態です。

あと、TKでいうところのLabelFrameってwxにはないんでしょうか。
現状StaticBoxとStaticTextで似たようなことしてます。

よろしくお願いします。



542 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:20:36 ]
XRCed

543 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:21:18 ]
Sizer

544 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 21:13:43 ]
>>540
なんてすばらしい日本語訳かと思ったら
こんなに市民権を得てるとは。。。
www.google.co.jp/search?q=%88%EA%8Ds%96%EC%98Y

545 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 22:19:10 ]
python 一行野郎ってジャンルはまだ無いのな

546 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 22:56:33 ]
インデントのおかげで一行で書くのはむずかしいからな

547 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:06:56 ]
>>544
いつ頃、どこで生まれた訳なんだろうな。
俺が初めて知ったのは『Effective Perl』の邦訳版で、これが10年前の本だけど。

548 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:12:39 ]
Rubyしかないよなあ

549 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 02:46:47 ]
>>516
C言語で書いたシミュレーションプログラムに Python で GUI を付けたり、シミュレーションの
一部で新しいことを試したいとき(例えばある方程式を解く時にニュートン法が有効かどうか確か
めたいときなど)に Python で試作プログラムを書いてみたりしています。

先日、線形計画問題を解く必要があって Python でシンプレックス法を書きました。線形計画問題
というのは、「製品Aには材料Sが3個、材料Tが2個必要で、製品BにはSが1個、Tが4個必要です。
Aは100円、Bは150円で売れます。手元にはSが40個、Tが30個あります。売上金を最大にするには
AとBを何個ずつ作るのが最適でしょうか?」というような問題のことです。この場合、未知の変数は
Aの個数とBの個数の2つなので手作業で解いてもいいのですが、未知の変数が増えるとたいへん
なので適当な計算方法で解きます。シンプレックス法はその1つです。で、Python の float 型で
計算したら計算誤差のせいか問題によっては計算が収束しませんでした。そこで、アルゴリズム
本体はそのままで、入力値(シンプレックス表の要素)のデータ型を fractions.Fraction クラス
に変えたところ、うまく解けるようになりました。Fraction クラスは有理数(分子と分母が整数で
表された分数)を実装したクラスで、float に比べて遅いですが計算誤差がありません。アルゴ
リズムはそのまま変更なしで、入力値のデータ型を変えただけで収束が改善されたので感激しま
した。他の言語(たとえばC言語)でも計算に使うデータ型を変えられるようにプログラムを作る
ことはできますが手間がかかります。その点で Python ははるかに手軽で強力だと思いました。

550 名前:522 mailto:sage [2009/07/30(木) 09:14:17 ]
結局a = [i for i in a if a != " "] が分かりやすいので使わせて貰います.
ありがとうございました.

551 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 09:49:48 ]
filterとかlambdaを無駄に使いたがるヤツには気をつけた方がいい



552 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:36:25 ]
>>550
それで良いのかよw
if i != ' ' だろ?

553 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 16:48:22 ]
俺はlispいじってたもんでホイホイlambdaやfilterを使っちゃうな

554 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:04:20 ]
クラス皆無で関数だらけのスクリプトを量産する漏れみたいなもんだな

555 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:41:54 ]
[e for e in a if e != ' ']
filter(lambda x: x != ' ', a)

どっちが速い?
要素が1000万個くらいあっても大丈夫?

556 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 18:34:06 ]
>>555
速さなら前者の方が(たぶん倍以上)速い
要素の大きさは、速度よりもメモリの問題が発生する。
リストではなくジェネレータの利用を考慮するといい。
(e for e in a if e != ' ') もしくは itertools.ifilter

557 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:26:35 ]
速さなんて考えたこともないぜ

558 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 03:18:40 ]
> 要素が1000万個
PyCUDAとか使うべきだぜ!

559 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 08:43:10 ]
(e for e in a if e != ' ')
[e for e in a if e != ' ']

1000万文字ほど用意して比べたら、
後者が圧倒的に遅く、前者はほぼ一瞬で終ったのですが
なんでここまで差がつくの?

560 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 10:12:51 ]
ジェネレータ

561 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:08:13 ]
そういえば、
1桁〜9桁くらいの数字だけで構成された文字列が大量に格納されたリストって
全部をint型に変換してソートするよりも
全部を文字列のままzfillで0埋めしてソートした方が速かったんだが
そういうもんなの?



562 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:12:48 ]
今ジェネレータの意味がわかったw

関数系だとデフォで全部かYOって思ってわけわかめだったが、
こういう遅延評価ならわかりやすいな。俺でも使えそうだ。

563 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 07:40:35 ]
>>561
kwsk
or
source

564 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 10:55:54 ]
そりゃ文字列だったのをそのままソートと
文字列だったのを数値に変換してソートだと
数値変換の処理が余計なステップになるよね

565 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 12:56:06 ]
みんなエディタ何使ってるの?

566 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:00:11 ]
zfillで0埋めする処理は余計なステップにならないのか

567 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:05:01 ]
Pythonぐらい簡単でゲーム作るのに適した言語ない?

568 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:11:23 ]
sqliteで、最後に挿入した行のrowidを取得する方法ってないのでしょうか?
c/c++なら「sqlite3_last_insert_rowid」というAPIがあるのですが・・・

569 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:28:13 ]
cursor.lastrowid

570 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:36:57 ]
>>561
そりゃ少なくとも2倍以上メモリ消費してるしな

571 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:09:46 ]
>>567
RPGツクールに内蔵されたRubyだな。



572 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:01:12 ]
質問なんですが

Linux上のPyGTK + Gladeで作ったアプリを
Pythonなどがインストールされていない
まっさらの状態のXPで動くようにしたいんですが
一緒にライブラリとかを同梱させれば可能になるんでしょうか?

可能ならそういった情報が乗ってるサイトとかを
教えてください

573 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 23:28:50 ]
py2exeじゃダメなん?

574 名前:デフォルトの名無しさん [2009/08/17(月) 14:06:43 ]
3.1.1 の Windows インストーラ版はまだかな〜

575 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:19:27 ]
Pythonの属性について。

モジュールオブジェクトやインスタンスオブジェクトobjに対して、
obj.x = x
のように、新しい属性をつけることはできますが、
文字列オブジェクト等でこれをやると、AttributeErrorが発生します。

これは文字列オブジェクト等の__setattr__()メソッドがエラーを発生するように定義してある、
という理解で良いのでしょうか?

576 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:02:27 ]
>>575
組み込みオブジェクトは実装上そうなってる。
実際
class myStr(str): pass
と継承すれば望みのことが可能。
Pythonはそのへんの美しさは二の次なので好き嫌いが分かれるかも。

577 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:06:48 ]
文字列はimmutableだし美しさを損なってるってほどでもないような

578 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:50:14 ]
>>576
理解力が悪くてすみません。
strを継承したクラスのインスタンスには属性を追加できる
→ __setattr__()は関係ないってことで良いでしょうか?

579 名前:575 mailto:sage [2009/08/18(火) 00:14:45 ]
連続で申し訳ないです。
今いろいろいじっていたら、そもそも組み込みオブジェクトが
__dict__属性を持っていないことがわかりました。

オブジェクトの属性は__dict__に格納されているみたいなんですが、
じゃあこの__dict__自身はどうなっているのでしょうか。
混乱してきましたw

580 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 13:21:44 ]
>>579
__dict__ は dict型のオブジェクトだよ。
属性の管理方法は、組み込み型ならC言語で自由に管理できるし、Pythonのclassで
__setattr__ を定義しない場合はデフォルトの __setattr__ が __slots__ か __dict__ を使って
管理する。

581 名前:575 mailto:sage [2009/08/18(火) 15:50:11 ]
>>580
ああ、なるほど__slots__ですか。
これを定義しておくと、これに格納されていない名前の属性は付けられなくなるんですね。
ありがとうございました。



582 名前:デフォルトの名無しさん [2009/08/18(火) 17:49:09 ]
# main.py
import mymodule
print mymodule.getmypath()

# mymodule/__init__.py
def getmypath():
  return __file__

引数等に何も渡さずにgetmypath()でmain.pyのファイルパスを取得する方法はありますか?
python2.5を使ってます

583 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 18:06:27 ]
os.fullpath(__FILE__)

584 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 18:35:37 ]
これでいいの?
sys._getframe().f_back.f_code.co_filename

585 名前:582 mailto:sage [2009/08/18(火) 20:25:52 ]
>>584
できました!ありがとうございます。


586 名前:586 [2009/08/19(水) 21:17:25 ]
はじめまして。

BeautifulSoupを使っていて、
<class 'BeautifulSoup.NavigableString'>をstrに
変換するにはどうすればよいのでしょうか?

587 名前:586 [2009/08/19(水) 21:42:58 ]
メソッドencodeを使ってもエラーになります。
<class 'BeautifulSoup.NavigableString'>オブジェクトから
1文字ずつとりだすとunicodeになるので、
無理やりunicodeに変換することはできました。
なので解決といえば解決なのですが、美しくないです…

588 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 02:06:21 ]
unicode(s)
str(s)


589 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 02:09:18 ]
unicode(s.prettify(), s.originalEncoding)

590 名前:デフォルトの名無しさん [2009/08/20(木) 05:33:30 ]
Pythonでは「文字列」と「ユニコード文字列」と「バイト列」
は異なるオブジェクトとして明確に区別されてるのでしょうか?

591 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 07:41:29 ]
2でも3でも文字列とバイト列は同じ
文字列リテラルとしてソースに書く場合はやや注意が必要



592 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 07:49:52 ]
>>591
いや違う
2: バイト列=文字列≠ユニコード文字列
3: バイト列≠文字列=ユニコード文字列

593 名前:590 [2009/08/20(木) 08:40:32 ]
>>592
なるほど,その説明はわかりやすい

encode とか decode とかのメソッド見たとき,
何から何へなんだよ〜元と先が指定できなきゃ
だめなんじゃね?って悩んだ.

594 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 10:59:28 ]
urllib.urlopenで読んできたHTMLをBeautifulSoupに渡すとunicodeにしてくれますが、
その中に囲み数字みたいな機種依存文字があるとencodeでeuc-jpとかにしようとすると
例外が発生しますよね?
これってみなさんどうしてます?


595 名前:デフォルトの名無しさん [2009/08/20(木) 12:37:08 ]
unicode-escape

596 名前:デフォルトの名無しさん [2009/08/20(木) 12:40:43 ]
encode('euc-jp', errors='replace')
encode('euc-jp', errors='ignore')
encode('euc-jp', errors='strict')

597 名前:デフォルトの名無しさん [2009/08/20(木) 12:57:40 ]
ttp://www.python.jp/doc/release/lib/string-methods.html
ttp://www.python.jp/doc/release/lib/codec-base-classes.html

598 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 14:13:08 ]
euc_jis_2004

599 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 14:47:56 ]
ttp://www.python.jp/doc/release/lib/standard-encodings.html

600 名前:594 mailto:sage [2009/08/20(木) 19:51:48 ]
ヒントありがとうございます。
色々試してみましたが、文字コード回りは今一つ良く分かりませんね。
みなさんのヒントとウェブ情報を参考にとりあえず次のようにしてみました。

html = urllib.urlopen(url).read()
html_coding = chardet.detect(html)['encoding'].lower()
soup = BeautifulSoup(unicode(html, html_coding, 'replace').encode('utf-8'))
text = soup......
print text.encode('euc-jp', 'replace')

単純にprintの時に text.encode('euc-jp', 'replace')とかだと、何故か全体がわけわからないコードになりました。
2.5.4でやってるんですが、3.xになるとこの辺もっとスッキリするんでしょうか。



601 名前:デフォルトの名無しさん mailto:  [2009/08/20(木) 22:08:07 ]
「Python 3.1.1」リリース
pc11.2ch.net/test/read.cgi/pcnews/1250773470/



602 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:36:16 ]
>>600

html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
text = soup......
print text.encode('euc-jp', 'replace')


603 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:38:11 ]
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
text = soup......
print unicode(text, soup.originalEncoding).encode('euc-jp', 'replace')

604 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 14:22:39 ]
あのLinux使ってる人が一行目に書くのはなんだ?

605 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 14:42:43 ]
shebang

606 名前:デフォルトの名無しさん [2009/08/23(日) 22:49:29 ]
はじめまして。
最近、pythonを始めました。 ipythonをとても便利に使っています。
ipythonに関して、一つ質問なのですが、代入式の場合に、評価の値が表示されるようにすることはできないでしょうか?

607 名前:デフォルトの名無しさん [2009/08/24(月) 13:03:36 ]
「はじめてのpython」で勉強しています
下記スクリプトを実行したとき、

Winで実行する場合とUbuntuで実行する場合とで
結果が違う(Ubuntuの場合はエラーになる)のですが
どうしてですか?
Ubuntuでエラーを解消するにはどうすればいいですか?

文字エンコード部分を変えたり消したりするのはやってみました。

#! /usr/bin/env python
# coding:shift_jis
while True:
str=input('> ')
print( str )
if str=='bye':
break


608 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:27:59 ]
raw_input() にすれば動くよ。たぶんwinのはpython3なんだろう。
その本がどちらを使ってるかわからないけど、個人的にはまだ2.xを使ったほうがいいと思うよ

python2のraw_input() == python3のinput()
python2のinput() == python3のeval(input())

609 名前:デフォルトの名無しさん mailto:  [2009/08/24(月) 23:54:44 ]
改行コード

610 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:17:27 ]
win32api を使いたいです
ctypes から、windll.[DLL名].[関数名] で呼べるのはわかったのですが、
引数が要求したり、関数が返してくるような定数(?)の実際の値は普通どう確認するものなんでしょうか

他言語から win32api を使った経験は無いです

611 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:29:15 ]
ttp://www.python.jp/doc/contrib/ctypes/tutorial_jp.html
ttp://www.python.jp/doc/release/lib/module-ctypes.html
ttp://www.ueblog.org/blog/entry/ctypesunlha/
ttp://moco.sakura.ne.jp/python/ctypes%E3%81%AEstructure%E3%81%AB%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B3%E3%83%94%E3%83%BC/



612 名前:610 mailto:sage [2009/08/25(火) 17:27:33 ]
えーと WM_CLOSE とかそういったものが定義されてないので、
その実際の値がわからないとそれを要求したり返したりする関数が使えないんです
それで、普通はどうするものなのかと思って質問しました

613 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:31:15 ]
少しぐらいならヘッダファイルから拾ってくれば済むけど
GUIまでやろうとするとものすごく大変な気がする

614 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:34:19 ]
MSDNでしらべる。Mingwのw32apiとかみる

615 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:45:43 ]
>>813
たまたま目に付いたものを書いただけで、今のところは GUI をやろうとしてるわけではないです

ヘッダファイル名でググって、定数名で検索掛けてコピペしてくればいいんですかね
他のコードからコピペして著作権的に大丈夫なんでしょうか

>>614
関数と、対応するDLLは、ググって出てきたMSDNのページを見てるんですが、定数が見つからないです
どこに何があるかいまいちわからない……

Mingwは調べてみます

616 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:25:48 ]
pywin32 の win32con.py

617 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:50:24 ]
>他言語から win32api を使った経験は無いです

618 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:41:44 ]
>>616
おお、大抵の場合はこれで大丈夫そうです

というよりctypesじゃなくてpywin32でwin32apiを呼べるみたいですが、その方がいいんでしょうかね
でもpywin32のヘルプ読んでもどこに何があるのかわかりづらい……

>>617
一応書いておいた方がいいかなと


これから先、どのapiを使うかわからないのであえて書かなかったのですが、
DDEクライアントを書いてました
win32conにddeml.hの定数が見当たらなかったので、
Google先生にお願いしてヘッダファイルからコピペしたところ、とりあえず動きました
(コピペして大丈夫なんでしょうか)

pywin32にddeなるモジュールがあるようですが、使い方がさっぱりなので見なかったことにします
みなさん回答ありがとうございました
今回の件とは別ですが、>>611も参考になりました

619 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 22:00:04 ]
>DDEクライアント

win32com

620 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 22:58:40 ]
COMはDDEとは別物じゃないですか?

621 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:05:06 ]
それはMSに言っといてくれ
死語だけでもWindows DNAとかChromeEffectsとかいくらでも出てくる



622 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:34:06 ]
>>619を読んで、win32comとDDEクライアントの関係がわからなかったので>>620を書いたのですが……

623 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:55:48 ]
COMはOLEクライアント

624 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 04:10:26 ]
拡張子は opyで

625 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 21:05:40 ]
.pyoのほうがいい

626 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 08:19:35 ]
そのうち2.xようと3.xように
.pyo2とかになるのか

627 名前:デフォルトの名無しさん [2009/09/01(火) 22:46:42 ]
Windows環境でもPyreadlineをインストールしていれば
cmdモジュールのデフォルトでbash-like動作が有効になると思ってたんですが
普通に“^A”などと表示されてしまいます。
IPythonでは補完が効くので、cmdモジュールの使い方が間違ってるんだと思いますが
公式サイトのリファレンスではCmd.cmdを継承したクラスを作って
引数無しでインスタンスを作成するだけのように読めます。

何が間違ってるんでしょうか?

628 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 07:39:13 ]
助けてください・・・
これからPythonを勉強しようと思ってるのですが、それ以前に「パスを通す」
ということができません。
Windows XP で、Python2.6.2 をインストールしたんですけど、初心者用の
サイトにある「パスの設定」というのを見ながらやっても
[操作可能なプログラムまたはバッチ ファイルとして認識されていません]と
でてしまい困っています・・・。どうすればパスを通せるのか教えていただけ
ないでしょうか。よろしくお願いします。

629 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 08:12:03 ]
了解

630 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 08:33:11 ]
スレ違い
パソコン入門スレとかにいってこい

631 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 09:24:33 ]

PATHの通し方すら教えられない。
しょせんPyヲタなんて、この程度。



632 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 09:51:29 ]
逃げた?

633 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 09:53:19 ]
>>628
autoexec.bat あたりを弄ったのかな?それはWindows98時代のやり方で、
Windows2000以降ならGUIで設定できる。
ttp://www.daikichi.net/books/lecture_java/setting_jdk.html

634 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 10:08:32 ]
言っちゃった…。

俺はあほの相手するのは疲れるんでぐっとこらえたんだけど。

635 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 14:15:51 ]
>>628
>>633が答えてくれてるけど
うまくいかなかったらまた聞いてくれ

636 名前:628 mailto:sage [2009/09/03(木) 19:12:06 ]
>>629
>>630
すみません。スレ違いという事すら気づきませんでした...。
>>631
ごめんなさい..。私が悪いんです。
>>632
>>633
ご親切に答えてくれて、ありがとうございます。教えて頂いた
ttp://www.daikichi.net/books/lecture_java/setting_jdk.html も、見てみた
のですが、ダウンロードし直したら無事にパスが通りました。本当に、
ありがとうございました。
>>634
ごめんなさい、ほんとに私はアホです。
>>635
ありがとうございます。結局、何が原因だったのかわからないのですが
どうにかパスの設定はできました。

637 名前:デフォルトの名無しさん [2009/09/03(木) 21:35:11 ]
>> 607
一行目の指定宣言ですが?

#! /usr/bin/env python

/* man env 引用 */

NAME
env -- set and print environment

余り どの様な形式の基礎かが理解 出来ないのですが…
この部分の基礎宣言の説明をして頂けますか?

638 名前:デフォルトの名無しさん [2009/09/03(木) 21:51:11 ]
ピートンっておぼえたほうがいいかな

639 名前:BBS戦士ジョソコイダーGID@愛をください [2009/09/03(木) 21:52:46 ]
ジョソコイダーを遊園地に連れてってって

640 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:08:29 ]
>>637
その一行目は shebang という
二行目以降を入力として shebang に指定したコマンドを実行する

ややこしい話をすると
shebang に指定されたコマンドを実行するのはシェルでなくカーネルの仕事
シェルは環境変数PATHを知っているけど、カーネルは知らないので
原則 #!/usr/bin/python などではなく #!/usr/bin/python のように書く必要がある

ただこの方法だと他のマシンでの python インタプリタの場所が
/usr/local/bin/python だった場合に動かないので
env コマンドに環境の設定と python の実行をお願いする

641 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:09:26 ]
o 原則 #!/usr/bin/python などではなく #!/usr/bin/python のように書く必要がある
x #!python などではなく #!/usr/bin/python のように書く必要がある



642 名前:デフォルトの名無しさん [2009/09/03(木) 22:33:38 ]
>>607

/* Line 2 */
# coding: 'Shift_JIS'

これで 通りますが… 何をする Program ですか?

643 名前:デフォルトの名無しさん [2009/09/03(木) 22:38:14 ]
>>642 plus
失礼…
>>640 を読めずに書き込んだので…

644 名前:デフォルトの名無しさん [2009/09/03(木) 22:48:02 ]
>>640
読んだのですが?
文字列を入れても Syntax Error に為りますが?
直接 打ち込んでの作業では無いと云う事か…

645 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:12:28 ]
まずは日本語の構文をマスターしてからのほうが
いいと思うんだ・・・

646 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:17:30 ]
>>644
shebang を使うのはファイルに保存したスクリプトを
% python scriptname
ではなく
% chmod +x scriptname
% ./scriptname
のように実行したい場合
対話型プロンプトではそもそも必要ない

よくわからなかったら、慣れるまで
* スクリプト内でASCII文字だけ使うようにする
* 実行する際は % python scriptname
* 対話型プロンプトは使わない
そうすれば #!/usr/bin/env python や # coding: sjis を書く必要が無くなる

あとできればメール欄に sage って入れて

647 名前:デフォルトの名無しさん [2009/09/04(金) 00:16:11 ]
>>646 本人がレスして居るのでしょうか?
# coding: Shift_JIS
は 始めから省略が出来たと思いましたが…
書く必要性 1: どの coding: を使用して居るかを明確にする為
記憶では二行目は かなり about に書く事が出来る でしたか?
prompt を使用しないですか…
script が まだ入力待ちの状態だったと理解して居りますが?

>>607
「はじめてのpython」で勉強しています
下記スクリプトを実行したとき、
Winで実行する場合とUbuntuで実行する場合とで
結果が違う(Ubuntuの場合はエラーになる)のですが
どうしてですか?

648 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:01:52 ]
どんなエラーが出たのか書けよ

649 名前:デフォルトの名無しさん [2009/09/04(金) 01:05:22 ]
OSが違うからです

650 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:06:22 ]
>下記スクリプト

???

651 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:12:46 ]
異なる環境で動かすことを考えているなら、 coding指定は必ず書いておけ。

標準入力も、inputに頼らず、codecs.getreader()で、
エンコード指定して、sys.stdinからファイル入力として扱うほうが、
トラブルは少ないかもしれない。



652 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:13:36 ]
その変な日本語どうにかしてよ

653 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:20:28 ]
str = codecs.getreader('UTF-8')(sys.stdin)

654 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:23:08 ]
str = codecs.getreader('UTF-8')(sys.stdin).read()

655 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:25:03 ]
っつーかstrをへんこうしたらなにがおこるんだ?



656 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:56:11 ]
うちゅうのほうそくがみだれる

657 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:57:50 ]
変更というよりは邪魔して見えなくしてるだけだ

__builtins__.str

658 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 06:27:01 ]
py3なら文字コード余裕でした。

659 名前:デフォルトの名無しさん [2009/09/04(金) 13:46:11 ]
拙もはじめてのpython3で勉強してます。
本に載ってた下記スクリプトが、WinでもLinuxでも動きませんでした。

本のミスでしょうか?

■エラー内容:
print( gcd(int(sys.argv[1]),int(sys.argv[2])) )
IndexError: list index out of range

■スクリプト:
#!usr/bin/env python
# coding:shift_jis

import sys

def gcd(m,n):

if n>m: m,n=n,m
while n>0:
m,n=n%m
return m


if __name__=='__main__':
print( gcd(int(sys.argv[1]),int(sys.argv[2])) )

660 名前:659 [2009/09/04(金) 13:47:43 ]
カキコしたらインシデントがなくなってしまいました。修正します。

■スクリプト

#!usr/bin/env python
# coding:shift_jis

import sys

def gcd(m,n):

 if n>m: m,n=n,m
  while n>0:
   m,n=n%m
  return m


if __name__=='__main__':
 print( gcd(int(sys.argv[1]),int(sys.argv[2])) )

661 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 14:08:36 ]
>>660
sys.argv[1] と sys.argv[2] はそれぞれ、
python gcd.py 3 5 (もしくは ./gcd.py 3 5) としたときの 3 と 5 が入ります。
引数をつけずにプログラムを実行されたのではないでしょうか?



662 名前:659 [2009/09/04(金) 16:00:32 ]
>>661

そのとおりでした。ありがとうございます。

663 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:15:57 ]
WindowsでPython 2.6.2を使って機種依存文字を処理しようと思ったんですが、
cp932でエンコードして書き出すとき、PythonはNEC選定IBM拡張文字を優先して使うようなんです。
(例えば「掾vの場合、fbb9ではなくee9d)

できたらIBM拡張文字の方で書き出せるようにしたいんですが、何かいい方法があるでしょうか?

664 名前:デフォルトの名無しさん [2009/09/04(金) 16:48:19 ]
>>663
Text 文書を保存して その儘 特定機種で Text を読み込むと どの様に為りますか?

665 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:53:22 ]
>>> u"ケ".encode("mbcs")
'\xfb\xb9'
>>> u"ケ".encode("cp932")
'\xee\x9d'

666 名前:デフォルトの名無しさん [2009/09/04(金) 17:03:13 ]
>>664 plus
否… 表現が悪かった様で… 片方の機種で その文字を Text に保存して
もう片方の機種で その Text を読み込むと どの様に為りますか?

667 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:19:25 ]
>>665
どうもありがとうございます。
何となく、Windowsではcp932を選べばいいのだと勝手に思い込んでました。

>>666
すみません、勉強不足でよく理解できていないんですが、cp932はWindows以外の環境も考慮してああなっているということでしょうか? もっとよく調べてみます。

668 名前:デフォルトの名無しさん [2009/09/04(金) 17:32:22 ]
うにcode か… 素晴らしいな…

669 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:33:07 ]
>インシデント

670 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:10:56 ]
>>665
なんなのその顔文字ふざけてんの?

671 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:18:51 ]
u('-')

たまに出てくるけどかわいい



672 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:06:05 ]
>>670
NEVADA

673 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 00:12:56 ]
>>671
心の汚れた環境では見れないらしい…

674 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:02:15 ]
osごとに異なるモジュールをインポートするにはどうしたらいいのでしょうか?
C言語で言うifdefみたいなことがしたいのですがうまくいきません・・

675 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:03:45 ]
import sys
sys.platform

676 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:18:03 ]
>>675
ありがとうございます
sys.platformで取り込むモジュールを振り分けられました
importは先頭に書くものだと思っていました。。

677 名前:デフォルトの名無しさん [2009/09/06(日) 00:20:31 ]
普通はtry: import hoge except ImportError: import fugaみたいにするんじゃなかったっけ?

678 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:36:49 ]
異なるシステムでもImportErrorでない書き方できるからsys.platform使う方が無難

679 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:42:55 ]
sys.platformというのは初耳だわ
os.nameよりも詳しいのかな

680 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:45:20 ]
platformモジュールとか初めて知った

681 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:05:04 ]
>>680
そういえばそんなのもあったね。程度にしか使われてないよな

sysはビルトインの標準モジュールだから絶対に読み込めるという理由もあるかも
osはパス通ってないとimportできないし



682 名前:デフォルトの名無しさん [2009/09/06(日) 18:33:13 ]
スクリプトでテキストを立ち上げたり、IEを起動させたりは可能ですか?

683 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:40:20 ]
yes you can

684 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 23:46:18 ]
いろいろ試したんだけどwindowsでparamikoが使えない。
これは使えないでOK?


685 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 23:50:05 ]
Windowsでparamikoつかえるよ?
bazaarなんてWindows用のデフォルトのsshクライアントがparamikoだよ。

686 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:08:23 ]
>>685
俺にとってあんたは神様だ。
設定しかたを教えてくれ!

687 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:51:13 ]
>>685
1. paramiko-1.7.5.zip をダウンロード
2. 適当なディレクトリに解凍
3. コマンドプロンプト開いて 2 のディレクトリに cd で移動する
4. python setup.py build
5. python setup.py install
これを順にやっていって、どこで引っかかるか教えて。

今やってみたら、依存ライブラリのpycryptoが手元の環境でインストール済みだったから
すんなりインストール終わった。
ひょっとしたらpycryptoインストールするときに拡張モジュールのコンパイルが必要かも
知れないから、Pythonのバージョンに対応するコンパイラをもっていない場合は
mirror.cameronbergh.com/pycrypto-win/
から対応するパッケージをダウンロードするといいよ。

688 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:54:35 ]
親切にありがとう!
paramiko-1.7.4でやったらすんなりとおった。

689 名前:デフォルトの名無しさん [2009/09/10(木) 16:31:07 ]
n(適当な自然数)次元の実数値関数fを定義するときに
f = lambda x : (x**2).sum()
とか書いてあるコードがあって、意味がわかりません。

lambda式がわからないのではなくて、後ろについてる.sum()がわかりません。
インタプリタで上記定義をして、f(x=1.0)とかf(x=[1.0,2.0])とかやってみると、
sum()についてのattribute errorが出ます。

よろしくお願いします…。

690 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 16:33:31 ]
xがnumpyのarrayなんじゃない?

691 名前:689 [2009/09/10(木) 16:43:10 ]
>>690
それでした!
どうもありがとうございました。



692 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 22:49:04 ]
BitTorrent以外でpythonで実装されたクライアントソフトあるいはスタンドアローンソフトって何がありますか?
砕けた言い方をすると、pythonで実装されていて拡張子がexeなそれなりに有名なソフトって何がありますか?

693 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 22:59:58 ]
BTはPythonやめたんじゃなかったっけ?

694 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 23:03:43 ]
ttp://wiki.python.org/moin/Applications

695 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:52:44 ]
拡張子がexeである必要がよくわからないけど、
bzr, mercurial といったVCSもそうだし、
Editra, Dropbox, TaskCoach, 他にもいろいろあるぞ。
LinuxにいったらさらにPython製デスクトップアプリだらけ。

696 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:57:53 ]
yum


697 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:59:20 ]
とりあえず2chviewerでも作って公開すれば有名になれるんかな

698 名前:デフォルトの名無しさん [2009/09/14(月) 05:56:06 ]
>684
これかも
ttp://d.hatena.ne.jp/lolloo-htn/20090801/1249085650

699 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 09:44:16 ]
bugs.launchpad.net/paramiko/+bug/411910
へぇ。

700 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 12:47:58 ]
>>692
portage, samuraix

701 名前:デフォルトの名無しさん [2009/09/15(火) 21:14:28 ]
wikipediaのPythonのページに
「多くの異なる言語で書かれたモジュールをまとめるグルー言語」
とありますが、これは複数のプログラミング言語で書かれたモジュールを
まとめられるということでいいのでしょうか?



702 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 08:06:50 ]
>>701
文章を途中で切るよな。

703 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 09:50:28 ]
ワロタ

704 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 03:21:16 ]
lambda : 1 + 2
が良くて
lambda : print "hoge2"
がダメな理由って何故ですか?

705 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 03:35:29 ]
lambda式には式(expression)しか書けないから。printは文(statement)。

706 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 03:43:40 ]
lambda : sys.stdout.write("hoge2\n")

707 名前:704 mailto:sage [2009/09/24(木) 04:34:27 ]
ありがとう
・・・Pythonってそう言うのを区別するのか・・・先は長そうだ orz

708 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 06:08:10 ]
python3ではprintは関数だよ^^

709 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 07:27:03 ]
Pythonで
print "x=#{x}\n" if DEBUG (Rubyの例)
みたいに1行で完結させる書き方って可能ですか?
同じ物をPythonで書くと
if DEBUG:
print "x="+str(x)
となると思いますが出来ればデバッグメッセージごときに2行は使いたくない・・・

710 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 08:07:41 ]
if DEBUG: print "x="+str(x)
だが、logging使え。

711 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 10:34:36 ]
if DEBUG:
print "x="+ str(x)



712 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 10:36:08 ]
>>711 ミスったので見なかったことに

713 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 11:42:46 ]
logging.logger

714 名前:デフォルトの名無しさん [2009/09/24(木) 13:37:14 ]
pythonjp.sourceforge.jp/dev/library/functools.html
ここにある
def partial(func, *args, **keywords):
という書き方に出てくるCのポインタみたいな記号(*args,**keywords)ってどういう意味ですか?

715 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 13:43:23 ]
pythonjp.sourceforge.jp/dev/tutorial/controlflow.html#tut-keywordargs

716 名前:デフォルトの名無しさん [2009/09/24(木) 13:53:55 ]
ありがとござます

717 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 17:46:57 ]
PILのpython3対応はまだか!

718 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 22:47:32 ]
>>712
え?どこどこ?

719 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 23:06:30 ]
Python的には字下げだろう。

720 名前:デフォルトの名無しさん [2009/09/27(日) 04:43:59 ]
一度定義した変数を消去することは可能ですか?

python3.0で、
print = 5
とするとprintという名前の変数に5が代入されたのですが、
そのあと元のprintという関数を使いたい場合はどうすればよいのでしょうか?

721 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 04:53:34 ]
__builtins__.print

もしくは

del print



722 名前:720 mailto:sage [2009/09/27(日) 05:15:58 ]
>>721
ありがとうございました。

723 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 11:24:07 ]
urllib2でkeep-alive出来ない。助けて

policy = cookielib.DefaultCookiePolicy( rfc2965=True, strict_ns_domain=cookielib.DefaultCookiePolicy.DomainStrict)
cj = cookielib.LWPCookieJar(cookie_jar_path, False, policy)
cjhdr = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cjhdr, RefererAddHandler())
opener.addheaders = [
 ('User-agent', 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)'),
 ('Connection','Keep-Alive')
 ('Keep-Alive'','300')
]
r = opener.open( uri )
rinfo = r.info()
for key in rinfo.keys() :
 print h, rinfo[key]

## Referer を Autoでつける為のハンドラ ########
class RefererAddHandler (urllib2.BaseHandler) :
 def http_request(self, req) :
  req.add_header("Referer", req.get_full_url())
return req

---------------------------
firefoxなんかでレスポンスヘッダを見ると、
 Connection: Keep-Alive
と出てる。でも上記コードでは
 Connection: Close
になる。なにか足りないですか?

724 名前:723 mailto:sage [2009/09/27(日) 11:26:39 ]
訂正:
 ('User-agent', 'User-Agent: Mozilla/5.0 〜略)
の箇所は
 ('User-agent', 'Mozilla/5.0 〜略)

725 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 11:31:06 ]
HTTPヘッダでkeep-aliveするようにしても
urllib2がそれを想定してないからうまく動かなかったような
ソース読んで絶望した記憶がある

urllib2 keep-alive でぐぐってみるといいんじゃないか

726 名前:723 mailto:sage [2009/09/27(日) 11:34:14 ]
>>725
ありがとう。ここのサイトのをやってみる!
python.blog-slime.com/function/urllib/


727 名前:723 mailto:sage [2009/09/27(日) 11:36:47 ]
↑はurllibだった。下のサイトのを拝借するのが一番楽そうですね。d
memo.jj-net.jp/18


728 名前:723 mailto:sage [2009/09/27(日) 12:03:05 ]
ちなみに・・・

urllib2だとcookieの自動処理が容易に出来るけど、keep-aliveが出来ない
urllib だとcookieの自動処理を容易に出来ないが、keep-aliveは出来る
(www.python.jp/doc/2.4/lib/cookielib-examples.html見ると、cookielibはurllib2での使用を想定している?)

HTTP/HTTPSをやる上で、比較的高機能で知られたライブラリってありますか?
(PerlのLWP、JavaのCommons/HttpClientみたいな)

729 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:42:43 ]
参考になるかどうかわからんけど2.6, 3.0系列の構成は

urllib-gsoc.blogspot.com/2008/06/urllib-package.html
www.python.org/dev/peps/pep-3108/#http-package
www.python.org/dev/peps/pep-3108/#urllib-package

こんなかんじらしい…

730 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:45:28 ]
一番下の example が参考になるかも試練

docs.python.org/dev/3.0/library/http.cookiejar.html

731 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:53:41 ]
おまいらおちつけ
>>723のコードはPython2系列だ



732 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 19:01:48 ]
https://fisheye.toolserver.org/browse/~raw,r=6953/pywikipedia/branches/rewrite/pywikibot/comms/threadedhttp.py

Bingo? 直感で
実は keep-alive の意味がよくわからないw

733 名前:723 mailto:sage [2009/09/27(日) 23:14:59 ]
みんな、アドバイスありがとう!
python 2.4 に拘っている訳ではないんだ。
v3.0に上げて >>730のurllibとhttp.cookie_jarでやってみる。

>>732
ありがとう!参考にさせてもらうぜぃ

734 名前:723 mailto:sage [2009/09/28(月) 01:08:16 ]
python3.1 ってif,for,printが式になってて、今まで書いてたコードが動かねーおwww
なんかLISPっぽいね。
2.6と変わりすぎててわらってしまったw


735 名前:723 mailto:sage [2009/09/28(月) 01:13:56 ]
ひとりごと多くてすまん
>>734は気にしないでくれ。勘違いだったお

736 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 02:44:31 ]
Twitterでやれ

737 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 14:47:48 ]
Tkinterについて質問です

from Tkinter import *

root = Tk()
sub_win = None

def button_callback(event):
global sub_win
print 'button down'
sub_win.destroy()

def message_window():
global sub_win
sub_win = Toplevel()
button = Button(sub_win, text='window close')
button.pack()
sub_win.bind('<Escape>', button_callback)
button.bind('<Button-1>', button_callback)

Button(root, text='about', command=message_window).pack()

root.mainloop()

以上のようなコートなのですが、ESCキーを押してもコールバック関数が呼ばれません
何故でしょうか?よろしくお願いします

738 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 15:28:31 ]
フォーカスの合ってるウィジェットにしか
イベントは送られない。

739 名前:737 mailto:sage [2009/09/28(月) 16:00:47 ]
レスありがとうございます
>>738
>フォーカスの合ってるウィジェットにしか
>イベントは送られない。
もうちょっと単純にしてみて

from Tkinter import *

root = Tk()

def esc_down(event):
print 'esc key down'
root.destroy()

button = Button(root, text='close')
button.pack()
button.focus_set()
button.bind('<Button-1>', esc_down)
button.bind('<Escape>', esc_down)

root.mainloop()

こういう事ですよね?
これの「button.bind('<Escape>', esc_down)」を「root.bind('<Escape>', esc_down)」
としてもきちんとコールバック関数は呼ばれます。
上のコードのTkをToplevelにしてもESCキーのイベントの補足は成功するようです
>>737みたいな形にするとうまく行かないです。よろしくお願いします

740 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 18:59:50 ]
UTF-8にエンコードする方法を教えて下さい。
例えばx = "あいうえお"のときyに"%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A"を代入したいんですが
どのようにすればいいでしょうか?

741 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 19:15:31 ]
元の文字列がShift_JISだと仮定

import urllib
x = 'あいうえお'
y = urllib.quote(x.decode('sjis').encode('utf8'))



742 名前:740 mailto:sage [2009/09/28(月) 20:07:56 ]
>>741
ありがとうございました、出来ました。

743 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:03:12 ]
>>737
好きなのをどうぞ

- 2つ目のウィンドウをクリックしてからEsc押す
- sub_win.focus_set()
- root.bind('<Escape>', button_callback)

744 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:25:29 ]
複数行の文字列xからどうすれば中身を1行ごとに分割して1つずつリストに代入させることが出来ますか?

745 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:40:05 ]
複数行の文字列をどういうデータ形式で持っているのかによる。

746 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:42:06 ]
"abc\ndef\nghi".split("\n")


747 名前:737 mailto:sage [2009/09/29(火) 03:59:51 ]
>>743
レスありがとうございます
2枚目のウインドウは作っただけではフォーカスは動かないのか・・・il||li ○| ̄|_
真ん中の方法を使わせて貰いました

748 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 04:04:20 ]
Tkinterについての質問です。
何らかのイベントが起きたときにフレームの内容を
丸ごと入れ替えるようなプログラムはどの用にする
ば書くことができますか?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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