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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その12
http://toro.2ch.net/test/read.cgi/tech/1322115727/
関連スレ
Pythonのお勉強 Part45
http://hibari.2ch.net/test/read.cgi/tech/1321189773/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/

   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
2デフォルトの名無しさん:2012/03/21(水) 13:42:02.69
最新版直リン - 2.Xが推奨。3.Xはライブラリやドキュメントが使えないことも
ttp://www.python.org/download/
Python のコーディングガイド PEP8
ttp://www.python.org/dev/peps/pep-0008/
Python のコーディングガイド PEP8 - 日本語訳
ttp://www.oldriver.org/python/pep-0008j.html
日本語文字列コード問題まとめ
ttp://python.matrix.jp/tips/string/encoding.html
インタラクティブモードのエンコード
ttp://python.matrix.jp/tips/compatibility/interact_encoding.html
SJISから卒業出来ないひとのための禁じ手
reload(sys); sys.setdefaultencoding('cp932')
Pythonの文字化け対策:sys.setdefaultencodingの謎
ttp://hain.jp/index.php/tech-j/2008/01/07/Python%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91
実行時にdefaultencodingを変更する
ttp://d.hatena.ne.jp/perezvon/20070715/1184469534
PEP-8とか
ttp://www.python.org/dev/peps/pep-0008/
ttp://oldriver.org/python/pep-0008j.html
Google Python Style Guideとか
ttp://google-styleguide.googlecode.com/svn/trunk/pyguide.html
ttp://works.surgo.jp/translation/pyguide.html
3デフォルトの名無しさん:2012/03/21(水) 14:00:19.51
>>1乙です

前スレの>>998です。
PythonのTkinterで、メインウィンドウとサブウインドウが立ち上がっているとき、
このサブウインドウが、

1.必ずメインウィンドウの前面に出る設定
2.サブウィンドウを閉じないとメインウィンドウの操作が出来ない設定

が分かりません。どなたか、親切な方、教えてはいただけないでしょうか?

4デフォルトの名無しさん:2012/03/21(水) 14:35:00.35
.wm_attributes("-topmost", 1)
.grab_set()
53:2012/03/21(水) 19:26:25.89
>>4
教えてくださって、本当にありがとう。上手くいきました。

今まで自分は教えてクンにだけはなるまいと思っていたけど、
これだけ迅速に貴重な情報が手に入ると思うと、つい負けてしまいそうです。
教えて下さった方に直接金銭等のお礼は出来ませんが、そのかわりに
Pythonについて私が分かることは出来るだけ、同じように困っている人に
情報提供していくつもりです。本当にありがとうございます。
6デフォルトの名無しさん:2012/03/21(水) 23:11:02.69
本を読む習慣が無いひとには
おおまかに次の3つのタイプがあります

1.目が悪いひと
2.頭が悪いひと
3.文盲(識字出来ない)

頭が悪いひとより文盲の方が深刻です
普通は漢字が読めないレベルとかを想像しますが
アルファベットですら読めないひとが日本には多くいます
7デフォルトの名無しさん:2012/03/21(水) 23:12:00.51
8デフォルトの名無しさん:2012/03/22(木) 09:28:14.93
インプリンタ上に書きこまれる文字列に対しif文を書くにはどうすればいいでしょうか。

a = 1と定義してからaについてif文を書くのではなく、書き込まれる文字列をaとおくという感じで...

ややこしくてすみません。


9デフォルトの名無しさん:2012/03/22(木) 10:37:58.35
日本語でどうぞ
10デフォルトの名無しさん:2012/03/22(木) 10:42:34.18
文章を書く習慣が無いひとには
おおまかに次の3つのタイプがあります

1.自分の考えを整理して他人に伝えられないひと
2.頭が悪いひと
3.文盲

頭が悪いひとより文盲の方が深刻です
普通は漢字が書けないレベルとかを想像しますが
アルファベットですら書けないひとが日本には多くいます
11デフォルトの名無しさん:2012/03/22(木) 11:18:00.78
馬鹿には無理
12デフォルトの名無しさん:2012/03/22(木) 11:58:04.86
プログラムを書く習慣のない人についてもよろしく
13デフォルトの名無しさん:2012/03/22(木) 13:34:00.18
プログラムを書く習慣のない人には、
おおまかに次の3つのタイプがあります。

1.顔が悪い(女の子にもてません。)
2.頭が悪い(常に自分が正しいと思って行動しています。)
3.他人が悪い(なんでもすぐひとのせいにして自分を省みません。)
14デフォルトの名無しさん:2012/03/22(木) 17:44:13.36
インタプリタにaと書き込めば1と表示され、
それ以外の文字を打ち込むと2と表示されるスクリプトはどう書けばいいでしょうか?
15デフォルトの名無しさん:2012/03/22(木) 18:42:34.79
# 2.x
print raw_input() == 'a' and 1 or 2

# 3.x
print(input() == 'a' and 1 or 2)
16デフォルトの名無しさん:2012/03/22(木) 18:56:18.14
>>15
ありがとうございます。
if文とかfor文とか使うのかなと思っていたのですが、完全に盲点でした。
17デフォルトの名無しさん:2012/03/22(木) 19:57:59.56
いや、それネタだから……
読みやすさを心がけてください
18デフォルトの名無しさん:2012/03/22(木) 20:38:51.63
>>17
そうなんですか...
2.xで、ネタじゃないのも書いてもらえるとうれしいです。
19デフォルトの名無しさん:2012/03/22(木) 20:49:38.66
print 1 if raw_input() == 'a' else 2

じゃあかんの?
20デフォルトの名無しさん:2012/03/22(木) 20:54:53.50
>>19
なるほど。
ありがとうございます。
21デフォルトの名無しさん:2012/03/23(金) 01:08:55.22
windows7 64bit Ultimate
pythonのverは3.2と2.7のそれぞれ64bit
使ってるけど、pythonがインストールしても使えない GUIはランタイムエラーとか言われるし
コマンドラインのは勝手に落ちる

CG関係のソフトもpythonがいじれないせいかプラグインとかが使えない
ソフト自体の再インストール、pythonのインストール Visual C++もいろいろぶっこんだけど変わらない
そもそもこの手のソフトって普通に何もしないでインスコするだけで使えるはずだからコレハゼッタイニオカシイ…もう疲れた
22デフォルトの名無しさん:2012/03/23(金) 01:18:39.26
質問だったら具体的に
愚痴だったらチラ裏でどうぞ
23デフォルトの名無しさん:2012/03/23(金) 05:52:05.93
どうしても分からないので質問します。
x=raw_input()

if x == 1:
  print "one"
else:print "others”
というスクリプトを実行し、何らかの数字を入力した時、
そのあと終了させず、続けて他の数字を入力するにはどうすればいいでしょうか。
教えてください。
24デフォルトの名無しさん:2012/03/23(金) 06:02:28.47
x=raw_input()
print "others”
input()
25デフォルトの名無しさん:2012/03/23(金) 06:20:17.37
while True:
x = raw_input("enter a number: ")
if x == "": # 単にEnterが押されたらループを抜ける
break
elif x == "1":
print "one"
else:
print "other"
26デフォルトの名無しさん:2012/03/23(金) 06:22:31.43
インデント忘れた。ごめん
Encode/DecodeErrorとか言われたらコメント(# 単にEnterが...の部分)削ってね

while True:
    x = raw_input("enter a number: ")
    if x == "": # 単にEnterが押されたらループを抜ける
        break
    elif x == "1":
        print "one"
    else:
        print "other"
27デフォルトの名無しさん:2012/03/23(金) 06:26:22.42
>>24
すいません。
書き忘れてました。
続けて入力する文字を、ふたたび同じif文にかける方向でお願いします。
28デフォルトの名無しさん:2012/03/23(金) 06:30:50.62
>>25 >>26
なるほど。ありがとうございます。
29デフォルトの名無しさん:2012/03/23(金) 08:13:45.84
馬鹿には無理
30デフォルトの名無しさん:2012/03/23(金) 20:34:08.72
馬鹿にさせるな
31デフォルトの名無しさん:2012/03/23(金) 23:28:19.38
1、perlのstrictのようなモジュールないですか?
  for,while,if内で変数をlocal運用したいです。
2、変数が組み込み関数、予約語とかぶらないようにしたい
  怖くて安易に変数名がつけられない
32デフォルトの名無しさん:2012/03/24(土) 00:24:04.98
>>31
沢山の関数に分ければいいと思うよ
スコープ広めの変数があるなら、クラスも使うべし
更にモジュール化を進めればかなり気にならなくなるはず
33デフォルトの名無しさん:2012/03/24(土) 00:30:00.26
import datetime
while 1: 
  if datetime.datetime.today().minute == 0:
print datetime.datetime.today().hour
while 1:
x = raw_input()
if x == 1:
   print"0ne"
このスクリプトを実行すると、上のwhileがループしているので、
下のwhileがループしません。
2つともループさせるにはどうすればいいでしょうか?
    
34デフォルトの名無しさん:2012/03/24(土) 00:34:53.93
>>33
indent
35デフォルトの名無しさん:2012/03/24(土) 00:38:02.48
>>34
import datetime
while 1: 
  if datetime.datetime.today().minute == 0:
print datetime.datetime.today().hour
while 1:
x = raw_input()
if x == 1:
   print"0ne"
すいません。直しました。
36デフォルトの名無しさん:2012/03/24(土) 00:39:32.27
>>34
投稿すると崩れるみたいです。
37デフォルトの名無しさん:2012/03/24(土) 00:39:54.80
オフサイドルールはつらいね
38デフォルトの名無しさん:2012/03/24(土) 00:45:03.68
どっかに
行頭の連続したスペースやタブ文字を、対応する数の に変換する
ってPythonコードなかったっけ
39デフォルトの名無しさん:2012/03/24(土) 00:45:53.55
>>36
インデントの半角空白を で置換するか
半角空白2つあたり全角空白1つで置換して
codepad.orgなんかが使えるならそこに貼ってもいい
40デフォルトの名無しさん:2012/03/24(土) 00:53:06.27
今ある数百のhtmlで書かれたページに、コメントフォームを作りたい
ページのファイル名(アドレス)は変えたくない
これを実現するのに、pythonはあまり向きませんか?

手っ取り早いのは.pyファイルに書き換えて、html部をprintで出力する方法でしょうか?
なんかコメントフォームのためにhtml全体をprintを使って書くってあんまりよろしくない感じがするんですが
(ハードコーディング?)pythonの記述にhtmlを載せるんじゃなくて、html上でpythonを埋め込める方法はないのでしょうか?
それともphp等を使わないと無理でしょうか?
41デフォルトの名無しさん:2012/03/24(土) 00:57:48.16
>>39
codepadに投稿しました
http://codepad.org/oafkcpi5
33の解決策も教えていただけると助かります。
42デフォルトの名無しさん:2012/03/24(土) 01:09:00.35
>>41
単に一つのループの中に
ttp://codepad.org/vKQFmwno
ではダメなの?
43デフォルトの名無しさん:2012/03/24(土) 01:10:20.25
>>41
まず、どうなりゃ正解なのか分からん
44デフォルトの名無しさん:2012/03/24(土) 01:19:22.04
マルチスレッドにするという話?
45デフォルトの名無しさん:2012/03/24(土) 01:40:17.86
外れててもその発想は凄い

>>40
テンプレートエンジン Pythonでぐぐってみて
46デフォルトの名無しさん:2012/03/24(土) 02:42:17.90
>>42
そうだと思うのですが、どう書いたらいいのか分かりません
>>43
二つのループを同時に走らせたいのです。説明不足ですいません。
47デフォルトの名無しさん:2012/03/24(土) 02:57:44.95
まさかのマルチスレッドw
48デフォルトの名無しさん:2012/03/24(土) 02:59:56.21
>>39
使ってる2chビューワで
PC系の板だけdat内のスペースのまま表示・コピーできるようにした方が何かと楽。
49デフォルトの名無しさん:2012/03/24(土) 05:02:13.31
>>46
基礎から勉強しましょう
50デフォルトの名無しさん:2012/03/24(土) 06:58:53.10
>>45
ありがとうございます
Django等見つかりましたが
pythonが使えるってだけの共用サーバーだと、やはり厳しいようです
単純なhtmlとpythonだけじゃ無理っぽいですか?
51デフォルトの名無しさん:2012/03/24(土) 07:06:00.64
>>46
マルチスレッドの話をしていると考えて、こんなかんじ。
1時間ごとじゃテストが動作チェックが面倒なので10秒ごとにしてある。

import threading, time, datetime

def disptime():
    while True:
        t = datetime.datetime.now()
        if t.second % 10 == 0:
            print t.strftime('%H:%M:%S')
        time.sleep(1);

t1 = threading.Thread(target=disptime)
t1.daemon = True
t1.start()
while True:
    x = raw_input()
    if x == '1':
        print"0ne"
52デフォルトの名無しさん:2012/03/24(土) 07:59:15.55
>>50
Makoっていうのがよく使われてるみたいだけどどう?たぶんPythonで実装されてる

% cat hello.html
<html>
    <head><title>mako test</title></head>
    <body><p>Hello, ${name}!</p></body>
</html>

% cat hello.py
from mako.template import Template
mytemplate = Template(filename='hello.html')
print mytemplate.render(name='mako')

% python2 hello.py
<html>
    <head><title>mako test</title></head>
    <body><p>Hello, mako!</p></body>
</html>
53デフォルトの名無しさん:2012/03/24(土) 08:11:33.78
痛々しい
54デフォルトの名無しさん:2012/03/24(土) 08:51:46.05
>>51
ご丁寧にありがとうございます。
55デフォルトの名無しさん:2012/03/25(日) 18:00:18.23
unittestの書き方についてなんだけど、
例えば
hoge/main.py
hoge/module/__init__.py
hoge/test/testmain.py
みたいなディレクトリ構造で、
main.pyにimport moduleが記述されてるとして、
python main.pyで実行したときはうまくいくけど
python test/testmain.pyのときはmoduleが見つからない
これってどうやって解消するの?
56デフォルトの名無しさん:2012/03/25(日) 21:01:25.72
sys.path.append(os.path.realpath(".."))
import module
57デフォルトの名無しさん:2012/03/25(日) 23:35:39.70 BE:1199519036-2BP(0)
>>56
質問者55ではありませんが,同じ疑問を持っていたいので
助かりました。
関連質問ですが,自作のモジュールを
/Volumes/vol_1/WebServer/CGI-Executables/01pythonMod01/
の下においている場合には,どのようにパスを指定すれば
よろしいのでしょうか?
58デフォルトの名無しさん:2012/03/26(月) 00:10:00.29
.bashrcなどに
export PYTHONPATH=/Volumes/vol_1/WebServer/CGI-Executables/01pythonMod01:$PYTHONPATH
を書き加える

http://www.python.jp/doc/2.7/tutorial/modules.html#tut-searchpath
http://docs.python.org/release/3.2/tutorial/modules.html#the-module-search-path
を読んだほうが早いよ
59デフォルトの名無しさん:2012/03/26(月) 12:03:18.88
if文でよく%が使われたコードを見るのですがどういう意味なのでしょうか?
下のコードにおいて説明していただきたいです。変換指示子かなと思ったりしたのですが...
for num in range(100):
if num % 10:
continue
print num
60デフォルトの名無しさん:2012/03/26(月) 12:11:00.73
剰余
61デフォルトの名無しさん:2012/03/26(月) 12:58:16.54
どの言語でも基本的な演算子
62デフォルトの名無しさん:2012/03/26(月) 12:59:03.21
いくら「超初心者用」でもこれはありなのか
63デフォルトの名無しさん:2012/03/26(月) 13:57:29.32
>>59
Pythonにおいて
・数値に対する % は左辺の数値を右辺の数値で割り算したときの「余り」を返す
・ゼロ以外の数値は真(条件式としては成り立っているとみなす)であり、ゼロは偽(条件式としては成り立たないとみなす)である

よって、if の条件式として数値 % 数値という式を書いた場合
「左辺を右辺で割ったときの余りがゼロ以外」=「左辺を右辺で割ったら余りが出る(割り切れない)」
という意味になる
64デフォルトの名無しさん:2012/03/26(月) 14:38:32.52
共通一次の数IIBの問題に毎年必ず出てくるパターン
65デフォルトの名無しさん:2012/03/26(月) 18:54:08.58
そんなんで人のコード見てなんか役に立つのかな
ああ、コピペできるコード探してるだけだからそんな事はどうでもいいのか
663:2012/03/27(火) 19:35:10.13
例えば、Command 
という関数があるとき
文字列str = "Command"
を上手く変換して、strを使ってCommandを実行する方法はありますか?
同様にLIST = [1, a, x]
があるとき、
文字列str = "LIST"
を上手く変換してstrを使ってこのリストオブジェクトそのものを指定する
ことは出来ますか?つまり、
str[2] = aみたいなことがしたいのですが・・・
67デフォルトの名無しさん:2012/03/27(火) 19:43:50.54
>>> a = "['a', 1, 2]"
>>> a
"['a', 1, 2]"
>>> b = eval(a)
>>> print b
['a', 1, 2]
>>> print b[1]
1
68デフォルトの名無しさん:2012/03/27(火) 19:47:17.37
あんま馬鹿なことはしねえほうがいいよ
69デフォルトの名無しさん:2012/03/27(火) 20:47:20.36 BE:4798073298-2BP(0)
>>58
>bashrcなどに
非常に分かりやすい解説をありがとうございます。
(bashrcの設定はMac上で何度もやってきたので
よく理解できました。)

>http://www.python.jp/doc/2.7/tutorial/modules.html#tut-searchpath
>http://docs.python.org/release/3.2/tutorial/modules.html#the-module-search-path
>を読んだほうが早いよ
読みましたが,貴殿の解説の方が遥かに分かりやすいです。
本当に感謝します。
70デフォルトの名無しさん:2012/03/28(水) 00:44:59.07
pythonmagickで(Imagemagickがつかえれば何でもいいだけど)
台形変形させるにはどうしたらいいですか?
C:\Progra~1\ImageMagick-6.7.6-Q16
%im%\convert.exe tt.jpg -matte -virtual-pixel transparent -distort Perspective "38,11 0,0 475,46 500,0 475,282 500,333 38,314 0,333" ttyy.jpg
てな感じで画像の四隅を指定して変形させたいんだけど
コマンドの描き方が分からない・・・。
71デフォルトの名無しさん:2012/03/28(水) 02:53:24.60
>>70
PythonMagick-0.9.7のソースをGrepしてみたけど
バインディングされてないみたいよ
72デフォルトの名無しさん:2012/03/28(水) 08:53:59.62
馬鹿には無理
73デフォルトの名無しさん:2012/03/28(水) 10:25:56.87
>>70
コマンドでやれ。パイプを使えばファイルを作らなくてもいい
74デフォルトの名無しさん:2012/03/28(水) 11:31:24.63
75デフォルトの名無しさん:2012/03/28(水) 12:02:39.06
__init__.pyは空にしておくのが一般的?
76デフォルトの名無しさん:2012/03/28(水) 12:23:19.80
パッケージの初期化はそこに書くんだからそんな事ないよ
77デフォルトの名無しさん:2012/03/28(水) 13:22:22.08
import threading

def fnc()
print "Hello"
timer = threading.Timer(3, fnc)
timer.start()

のように、書くとキチンと3秒後にHelloと表示されるのですが、
fncが引数を持つとき、fnc(5)などと指定して、
timer = threading.Timer(3, fnc(5))
などとすると、暴走してしまいます。どうしたら引数を持つ場合に
3秒後に動作させられますか?
78デフォルトの名無しさん:2012/03/28(水) 13:23:22.12
あ、上のコードにミスがありました。

×def fnc()
○def fnc():
79デフォルトの名無しさん:2012/03/28(水) 13:36:06.58
Timer(3, lambda: fnc(5))
80デフォルトの名無しさん:2012/03/28(水) 14:11:05.61
>>79
そのやり方で上手くいきました!!
ありがとうございます!!

…それにしても、このスレマジで使えるな。
分からないことはたいがい教えてもらえる。
逆に言えばそれだけ、俺の能力が低いってことだがorz...
81デフォルトの名無しさん:2012/03/28(水) 14:59:38.21
馬鹿には無理
82デフォルトの名無しさん:2012/03/28(水) 20:13:16.52
なんでfncで良くてfnc(5)が駄目なのか、理由を理解しないと根本的な解決になってないよ。
83デフォルトの名無しさん:2012/03/28(水) 20:31:13.61
コピペしかできないならVBでもやってろ
84デフォルトの名無しさん:2012/03/28(水) 20:38:34.70
コードと文字列の区別が付いていないから
85デフォルトの名無しさん:2012/03/28(水) 20:44:59.90
http://www.python.jp/doc/release/library/threading.html#timer
class threading.Timer(interval, function, args=[], kwargs={})(原文)
interval 秒後に function を引数 args 、キーワード引数 kwargs つきで実行するようなタイマを生成します。

functionは実行できなければいけない
典型的にはtypes.FunctionType

んで、fnc(5)はどうなってるか
という話
86デフォルトの名無しさん:2012/03/28(水) 20:45:24.73
釣れますか?
87デフォルトの名無しさん:2012/03/28(水) 20:53:31.07
爆釣です
s=abc s="cd ef"
という一行から、
abc "cd ef"
の二つを抜き出すにはどうしたら良いでしょうか?
>>77
import threading

def fnc(args)
print("Hello")
print("args =", args)

timer = threading.Timer(3, fnc, args=5)
timer.start()
args=5じゃ動かないよ
○ timer = threading.Timer(3, fnc, args=[5])
馬鹿には無理
有難うございます

>>71
なんという・・・orz

>>73
その手があったか・・・
>>88
>>> re.findall(r's=([a-z]+|"[a-z ]+")', 's=abc s="cd ef"')
['abc', '"cd ef"']

>>> 's=abc s="cd ef"'.split("s=")
['', 'abc ', '"cd ef"']
こんにちは、初めてここに質問させていただきます。

http://d.hatena.ne.jp/dix3/20100513/1273760327
↑youtube-dllというpythonのスクリプトを使ってようつべをDLするスクリプトが
あるのですが、上のURLを参考に試してもFile "<stdin>", line 1と表示された後
エラーでSyntaxError: invalid syntaxと返ってきます。
pythonは2.7.2、実行はPython (command line)というexeから実行しています。
なお、OSはwin7で64bitです。
もしご存じの方がいらっしゃいましたら宜しくお願いします。
都合の悪い箇所があれば伏せたうえでコマンドラインとエラー表示をそのまま貼ってみて
SyntaxError: invalid syntax 以外にも表示されてるだろうから
>>95はマルチポスト
>>96
返信ありがとうございます。以下エラー表示です。

>>> python youtube-dl.py http://www.youtube.com/watch?v=○○
File "<stdin>", line 1
python youtube-dl.py http://www.youtube.com/watch?v=○○
^
SyntaxError: invalid syntax
Pythonの対話モードじゃなくてWin7のコマンドプロンプトから実行しないと
>>99
ありがとうございます。
ググってもう少し調べてみます。
python 2.6.2で一生懸命勉強したりして何とかプログラム組んだ事あるけど
今は3が主流なの?
どうなんだろ…。もうpython 3をこれからは勉強した方がいいのかな…
Python 2.7.1ですが、正規表現で鬼車やPCREのような再帰のパターン検索をしたいと思うのですが
ライブラリ等で対応は出来ているものはあるでしょうか?。
((ab)(cd)ef(gh(ij)))
のようなもので()内を取り出したいんです。
ドキュメント読んだか?
http://www.python.jp/doc/release/library/re.html
読みましたけど、そのことを実現してくれる記述はどこにありますか?
わたしにはわかりませんでした。ご存知なら教えて下さい。>>103さんへ。
不愉快だから教えない
読んでる暇があったら実行してみた方が早いんじゃないかと思うよな
わざとドキュメント読んだか?って言ったんだろうけど
そりゃ幾らなんでも穿った見方過ぎだろw
>>> import re
>>> re.match(r'((ab)(cd)ef(gh(ij)))', 'abcdefghij').groups()

どこのスレも春爛漫って感じ
ついでに名前欄も
馬鹿には無理
無理って言う奴が馬鹿
馬鹿は死ね
>>102
どこに再帰があるんだ?
オレオレ用語はやめろ
再帰した正規表現を使いたいのかも

Ruby 1.9(鬼車)の\g とかPerlの(?PARNO)や(?R)が使えるのか
って話なのでは?
一般的にはグループ化のネストとか入れ子とか言いますね
上手くいかないんだけど。
$ bison youtube-dl http://www.youtube.com/watch?v=○○
youtube-dl:1.1: invalid character: `#'
youtube-dl:1.2: invalid character: `!'
youtube-dl:1.3: invalid character: `/'
youtube-dl:1.4-6: syntax error, unexpected identifier
>>115
また斜め上に行ったな
というかbisonインスコされているのか…
>>113
そいうことですが、なぜ、こんなにたたかれるか不明です。
recursiveな正規表現パターンという言葉がオレオレだとは思わなかったです。まあわたしが悪いんでしょう。
でも、>>108の脳みそはどうなってるんですかね。信じられませんw
馬鹿には無理
pythonのおまんこ要員とは何ですか?
pass
bytesの値をそのまま出力するにはどうしたらいいのでしょうか?

print('{:s}'.format(data))

として、出力をbytesの生のままで出したいのですが、
print(data)
とした時の値がaaa.dataに出力されてしまいます。

python3 test.py > aaa.data
sys.stdout.write(data)
では駄目ですが、

with open('a.data', 'wb') as f:
f.write(data)

とすれば書込み自体はできると分かっていますが、
後々、|で連結して色々変態的なことをしたいのです。
python docを読んでいたら、

sys.stdout.buffer.write(b'abc')

と思いっきり書いてありました。
スレ汚し失礼しました。
googleのDeveloper's guide(https://developers.google.com/youtube/1.0/developers_guide_python?hl=ja#Playlists)に、

playlist_entry_id = playlist_to_be_updated.id.text.split('/')[[]-1]

という記述があるのですが、最後の[[]-1]というのはどういう挙動を意図したものでしょうか
" unsupported operand type(s) for - " エラーが発生します
窓口に問い合わせるが吉
.split('/')[-1]の間違いじゃないかなあ
他にもauthsub_token = parameters[[]'token' ] とかあるので
どこかでゴミが入っちゃったんだと思う
print u"あいうえお".find(u"う")
で0が帰ってくるんですが、何がいけないんですか?
と思ったらPyScripterで保存すると日本語化けちゃうのか・・・
どうしたら日本語の文字コード保持したまま実行できるんでしょうか
自己解決しました
ファイルの頭に# -*- coding: utf-8 -*-つけたらできました
C:\youtube-dl>youtube-dl.py http://www.youtube.com/watch?v=uEQkVJtyVTc
[youtube] Setting language
[youtube] uEQkVJtyVTc: Downloading video webpage
[youtube] uEQkVJtyVTc: Downloading video info webpage
[youtube] uEQkVJtyVTc: Extracting video information
[youtube] RTMP download detected
[download] Destination: uEQkVJtyVTc.flv

ERROR: unable to download video


エラーになります><
プログラミングではなく単なるツールの使いかたの質問ならDL板のほうがいいんじゃないか
もしあっちで相談するなら youtube-dl -v <URL> のほうが話が早いかも
rtmpdump のスレ行った方が医院で内科医
py2exeでスタンドアローンのウィンドウズアプリもどきが作れたのですが、
バックのコマンドライン用のDOS窓が立ち上がってしまいます。
せっかく拡張子をpywとしているのですが、exeの方はそうなってしまいます。
どうしたらpy2exeで作ったウィンドウズプログラムでDOS窓が立ち上がらない
ように出来ますか?宜しくお願いします。
135133:2012/04/03(火) 17:26:51.26
>>134
ありがとうございました。そのやり方で解決しましたm(_ _)m
open関数でファイルを開いて、writeメソッドでファイルに日本語混じり文字列を書きこみたいのですが、
そのままやると文字コードがShift-JISになります
UTF-8にしたいのですがどうすればよいでしょうか?
Python 3でOSはWindows 7(日本語版)です
fout = open('foo.txt', 'w', encoding='utf-8')
>>136
Dive Into Python 3 くらい読めば?
139営利利用に関するLR審議中@詳細は自治スレへ:2012/04/06(金) 23:54:01.57
# -*- coding: utf-8 -*-
x = raw_input()
if x == u"こんにちは":
print u"こんにちは"
これを実行しこんにちはって打ち込むとUnicodeWarningと出るのですが、どうすればこんにちはと出るでしょうか。
>>139
print type(x), type(u"こんにちは"), type("こんにちは")
したらわかるけど、
if x.decode("utf-8") == u"こんにちは": #端末がUTF-8な前提

if x == "こんにちは":
にしないと比較できない。
141営利利用に関するLR審議中@詳細は自治スレへ:2012/04/07(土) 02:39:29.61
>>140
if x.decode("utf-8") == u"こんにちは":

if x == "こんにちは":
の両方で試してみましたが、UnicodeDecodeError、UnicodeWarningがそれぞれ出ますorz
PythonのバージョンとOSも書かずに、文字コード周りの質問するなんていい度胸してんね
143営利利用に関するLR審議中@詳細は自治スレへ:2012/04/07(土) 03:43:05.13
>>142
すいません。
windows vista 32bitでpython2.7です。
Windows使ってないからわからないけど、raw_inputで受け取るときの文字コードって使ってるシェル(コマンドプロンプト等)の文字コード依存するんじゃないか?
シェルの文字コードがshift_jisだとすると、utf8じゃunicodeにデコードできないし、coding: utf8を宣言してるからstrとの比較でも警告がでる、とか。
>シェルの文字コードがshift_jisだとすると、utf8じゃunicodeにデコードできないし、

↑これが正解
if x.decode("utf-8") == u"こんにちは":
じゃなくて
if x.decode("cp932") == u"こんにちは":
だろう


>coding: utf8を宣言してるからstrとの比較でも警告がでる、とか。

少なくともこの↓元のコードに対するコメントとしては全く的外れ
if x == u"こんにちは":

↓のことを言ってるなら「strとの比較」と言えるが
if x == "こんにちは":
質問者は何をやってるのか自分で判ってるのかな


そもそも
if x.decode(sys.getdefaultencoding()) == u"こんにちは":
でも動きません(キリッ)とか
さらなる突っ込みに発展する話題
Pythonスレでは煽りを入れることなく簡潔に淡々とお願いしますね
setdefaultencodingの話題はタブー
>>140
if x.decode("utf-8") == u"こんにちは": #端末がUTF-8な前提

#端末がUTF-8な前提
ってちゃんと書いてあるのに
無視した >>141 が悪い
コメントを読んでないか
知識がなくて意味が判ってない
と判断されても仕方ない
python インストールした後に sitecustomize.py とか自分でまじめに編集してるひといるの?

●UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。
ttp://d.hatena.ne.jp/SumiTomohiko/20070120/1169300624

●Pythonの文字化け対策:sys.setdefaultencodingの謎
ttp://hain.jp/index.php/tech-j/2008/01/07/Python%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91

>>> import sys
>>> hasattr( sys, 'setdefaultencoding' )
False
>>> reload( sys )
<module 'sys' (built-in)>
>>> hasattr( sys, 'setdefaultencoding' )
True

(以下引用)
文字コードを変更するのはそんな根幹を揺るがすものなのか?
ソースコードの先頭付近に# coding: UTF-8とか打たなきゃならないのに、
エンコーディングの変更をやってはいけないというのはイマイチしっくりこない。
デフォルトエンコーディングがUTF-8と確定している場合ならまだしも、
asciiがデフォルトであることがほとんどだとすると変えざるを得ないのでは?
例えば配布用アプリケーションを作ったとして、利用者にsitecutomize.pyを追加してくださいと
案内をしなきゃならないってのはちょっと難しい。それに内部にある設定ファイルで文字コード設定するのは
ハマリの元だというのは前述の通り。言語が変わったからといってそこが変わることはない。
しかも、sitecutomize.pyはPythonが起動してから”自動で”読み込まれるだけで、スクリプト上にあることに代わりはない。
[禁じ手中の禁じ手]という彼の意見は的はずれだ。

●Python でのエンコード指定
ttp://d.hatena.ne.jp/benikujyaku/20120121/1327142286

なんか bad know how が定着していく悪寒
>>2
馬鹿には無理
UserIntelligenceError: You are too fool to use Python
>python インストールした後に sitecustomize.py とか自分でまじめに編集してるひといるの?

俺はやってない
機種依存とか環境依存のコード書きたくないからね
俺もやってない
入力されたところでdecodeすればいいから
だがargparseがstr返してきて泣いた
Python3よこんにちは
>>149
sitecustomize.pyなんてあるのか
知らんかったorz
freezeするときはsys.setdefaultencodingとlocale.setlocaleくらいしてもいいだろうけど
157営利利用に関するLR審議中@詳細は自治スレへ:2012/04/07(土) 15:14:55.79
>>148
いや
俺はむしろ >>140>>141 は同一人物を装った自演だと考えているよ
Python-list を購読しているのですが、
一通のメールに複数のメールが含まれています。
一通一通受信するにはどうしたらよいでしょうか?
159営利利用に関するLR審議中@詳細は自治スレへ:2012/04/07(土) 18:06:01.99
煽り多すぎわろた
160営利利用に関するLR審議中@詳細は自治スレへ:2012/04/07(土) 21:43:20.68
’alice=%d'%18の意味がよく分かりません。
alice=%dが十進数でありそれを18で割った時の余りを求めていると考えているのですが、
実行結果はalice=18になるので私の考えは間違っていると思います。
>>160
文字列に対する % は文字列フォーマット操作。
左辺が書式指定、右辺がその書式中に埋め込む値になる。
162営利利用に関するLR審議中@詳細は自治スレへ:2012/04/07(土) 21:54:02.04
>>161
なるほど。ありがとうございます。
163営利利用に関するLR審議中@詳細は自治スレへ:2012/04/08(日) 11:10:42.73
Macのドリンクは氷が多すぎる
日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
http://speirs.blog17.fc2.com/blog-entry-4.html
http://atomic.jpn.ph/prog/etc/encode.html
http://d.hatena.ne.jp/kakurasan/20100330/p1

http://pc11.2ch.net/test/read.cgi/tech/1217836194/339
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
    PythonのUnicodeEncodeErrorを知る
    http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html

    よくまとまってた。あとで読む
知らないencodingの文字列が入ってくる事自体がおかしい
crawlerとかで本当に不定なら三番目みたいにchardet使うべき
お前の頭がバッドなだけ
どこでどう変換されるかわからないなら素直にpython3使え
>>163
氷抜きにしてもカサが減らない良心的なとこなのに。。。
使ってみればわかるけど、chardetは物凄く遅いよ
速い必要ないだろ…
一体どんなコード書く気だ
169営利利用に関するLR審議中@詳細は自治スレへ:2012/04/08(日) 17:55:43.70
import tweepy

def authentication():
consumer_key = "****"
consumer_secret = "****"
access_key = "****"
access_secret = "****"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)

api = tweepy.API(auth_handler=auth)

def tweet(tweet_str):
api.update_status(tweet_str.decode("utf8"))

tweet("test")

実行するとAttributeError:"NoneType"object has no attrbute "update_status"
と出ます。
どうすればいいでしょうか?

>>168
何で速い必要がないと言い切れるんだ?
>>169
def authentication()のブロックはどこまで?インデント壊れててわからない
172営利利用に関するLR審議中@詳細は自治スレへ:2012/04/08(日) 19:49:32.38
>>171
auth.set_access_token(access_key, access_secret) までです。
>>172
それだと api = tweepy.API(auth_handler=auth) のとこでエラー出ない?
それか別の場所で auth ってグローバル変数を使ってそうだな。
>>172
import tweepy

def authentication():
    consumer_key = "****"
    consumer_secret = "****"
    access_key = "****"
    access_secret = "****"
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth_handler=auth)

だとすると api = tweepy.API(auth_handler=auth) の時点で
authが定義されてないからNameErrorになるんじゃない?

def authentication():
    ...
    auth.set_access_token(...)
    return auth
auth = authentication()
api = tweepy.API(auth_handler=auth)

としてみるとか
あるいは無理に関数にしないで

import tweepy
consumer_key = "****"
consumer_secret = "****"
access_key = "****"
access_secret = "****"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)

も試してみて
176営利利用に関するLR審議中@詳細は自治スレへ:2012/04/08(日) 21:14:23.72
pythonってpythonが入ってないマシンで動かす方法はありますか?
バイナリにする以外で
>>176
py2.exeを試してみてください。Python2.6に対応しています。
http://www.python.jp/Zope/articles/tips/py2exe
178営利利用に関するLR審議中@詳細は自治スレへ:2012/04/08(日) 21:33:12.83
>>175
このやり方でOAuth認証は通せました。
ありがとうございます。
しかし、あとのtweetする部分でエラーが出ます。
api.update_status("test")と単純にしてもダメでした。
tweepy.error.TweepError:Invalid/expired Tokenとでます。
179営利利用に関するLR審議中@詳細は自治スレへ:2012/04/08(日) 21:35:30.36
>>177
バイナリいが・・・いえ、ありがとうございます。
バイナリ以外なら鯖で動かすしかないよな
>>178
そのエラーにはトークンが間違ってるか期限切れって書いてある
consumer_key/secret, access_key/secret(のいずれか)に問題があるんだろうけど
これ以上のことはわからない
182営利利用に関するLR審議中@詳細は自治スレへ:2012/04/08(日) 22:55:45.56
>>181
Oと0を見間違えてましたorz
ありがとうございます。
183営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 18:02:32.78
BeautifulSoupってwindowsにインストール出来ない感じですか?
出来る感じ
185営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 18:47:41.66
>>184
tar.gzファイルしか見当たらないのですが...
そうすればいいでしょうか?
展開してpython setup.py install
187営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 22:11:07.92
>>186
インストールしたあと、import beautifulsoupするとimport error出るんですが...
import BeautifulSoup
189営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 22:26:50.60
>>188
それでも出ます...
じゃあ、インストールできてないんだろう
191営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 22:35:23.51
unsigned charな値をビット反転させたいです(116が139になって欲しい)。
pythonのビット反転は桁数制限が無いから+1して符号反転させる、
とリファレンスにありますが、なにかその辺便利なライブラリとか
ありませんでしょうか?
192191:2012/04/09(月) 22:36:12.91
256で引けばいいだけじゃねぇかスミマセン自己解決しました。
193営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 22:37:57.44
>>190
4.0.3で無理だったので、3.2.1でやるとインストール出来たのでこれでいきますorz
194営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 22:40:19.89
ubuntuだと4.0.3動いてるぞ
BeautifulSoup4はPython 2.7以上を要求って公式に書いてあるじゃん…
196営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 23:00:21.94
import bs4
197営利利用に関するLR審議中@詳細は自治スレへ:2012/04/10(火) 01:16:07.73
>>196
いけましたっ ありがとうございます!
日本語チュートリアルを見ていたら、
forやwhileがelse節を持つ、というのにびっくりしました。

>>> for n in range(2, 10):
...    for x in range(2, n):
...      if n % x == 0:
...        print n, 'equals', x, '*', n/x
...        break
...    else:
...       # 因数が見つからずにループが終了
...       print n, 'is a prime number'

上記のelseは、ifに係るのではないのですか?
初耳
しかしインデントがある
自分で使ったこともないし、使ってるのもあんまり見たことない。
まぁ俺が見ないだけかも知れないが。

ただtry...except...else...finallyのelseは使ってるの見たな。
無事tryを抜けた場合を扱えるのはなかなかいいと思う。
forのelseって最後のiが入っているんだ。
最後の値だけ何かしたいとか無いからこんなん使わないな。

>>> for i in range(3):
... print('i =', i)
... else:
... print('i =', i)
...
i = 0
i = 1
i = 2
i = 2
>>> for i in range(3):
... print('i =', i)
...
i = 0
i = 1
i = 2
その最後の i を使うため (だけ) に else 節があるわけじゃないでしょ。
break でループを脱出した時には実行されないから、そういう用途でしょ。
else って名前はどうよとは思うけど。
>>198をelseつかわずにフラグ使って書いてどっちがいいか比べるといいかも
for else は番兵的に使ったことならある
Pythonプログラムで2chのレスを読み込んだり、書き込んだり出来る
プログラムを組みたいのですが、どうすればよいのでしょうか?
また、詳しく紹介しているサイトはありますか?
宜しくお願いしますm(_ _)m

(※勿論、荒らし等が目的ではありません。)
206営利利用に関するLR審議中@詳細は自治スレへ:2012/04/10(火) 20:26:00.43
>>192
116 ^ 255
208営利利用に関するLR審議中@詳細は自治スレへ:2012/04/11(水) 10:31:07.90
Pleskの入ったvps(centos)を利用しています。

Python2.7.2をインストールする際に
「Pythonプロフェッショナルプログラミング」のp3にある

$ sudo chmod -R 0775 /usr/local
$ sudo chgrp -R bpbook /usr/local
$ wget http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py

をルート権限で実行した後からPleskの管理画面でエラーが表示されるようになりました。
上の2つは入力しない方が良かったのでしょうか?
それとも#で実行したのが問題だったのでしょうか?

以下、表示されるエラー
Components::componentUpdate() failed: Unable to exec utility packagemng: packagemng: failed to open semaphore file /usr/local/psa/var/utilities.sem: Permission denied
System error 13: Permission denied
簡単な英語ぐらい努力して読め
210営利利用に関するLR審議中@詳細は自治スレへ:2012/04/11(水) 12:54:40.17
>>209
死ね
>>208 です。
サポートから連絡が来ました。
やはりパーミッションの変更が原因だったようです。
本の通りにインストール出来ないって事になるんで他のインストール方法を探さないといけないですね。
Plesk無しのVPSへ変更を検討してみます。
ちなみに >>210 は私ではありません。
212片山博文MZボット ◆0lBZNi.Q7evd :2012/04/11(水) 13:31:46.42
翻訳すると:
ユーティリティ packagemngを実行できません。
セマフォファイル/usr/local/psa/var/utilities.semを開くのに失敗しました:
権限がありません。
システムのエラー13: 権限がありません。
エラーメッセージ読めん奴にVPS弄る資格があるのか
英語厨ってどこにでも出現するよなw
>>208
$ sudo chmod -R 0775 /usr/local
$ sudo chgrp -R bpbook /usr/local

はその本に書いてあったことなの?
-Rは再帰のRだからずいぶん大胆に思えるけど
こいつは日本語で書いてあっても理解できないだろw
>>208 です。
エラーの意味は大雑把にわかってました。
「権限が無いから /usr/local/…を使えないよ」

訳が知りたかったのではなくて、
本当に該当コマンドが原因だったのかという事と、そのコマンドは省略してもいいのかという事が知りたかったのです。

「訳はわかってます」と書くと生意気な気がしたので黙っていようと思ったのですが、スレッドが英語ネタにそれてしまいそうなのでコメントさせていただきました。
ほらなw
>>217
とりあえず>>215に答えてほしい
その二行は本に書いてあったのかどうか
おれは >>217 じゃないが
その本は読んでないし読もうとも思わない
それにもし本当に前後の断り書きなくそう書いてあった
今すぐ捨てろ
他のVPSに乗り換えても遅かれ早かれ同じような結果になることを保証する
221営利利用に関するLR審議中@詳細は自治スレへ:2012/04/11(水) 15:46:48.04
間違った操作をすべて帳消しにしてくれる素敵なコマンド

$ sudo rm -Rf /
はいはい
ステマステマ
223208:2012/04/11(水) 17:24:25.66
>>219
本のまんまを書いてます。
ただ、本ではVirtualboxに入れたUbuntuという設定です。
pythonとかはくわしくても*nixのシステム管理にはド素人の人が書いたんだろうね。
野球のルール知らないけどセリーグ得点王ぐらいありえない話じゃないかそれ
翻訳本かと思ったらまた日本人が書いたやつか…
>>225
そうなんかな。
純粋に仕事はアプリ開発が担当で、普段はWin使いで、*nixは他のシステム管理担当者が用意した環境で
使ったことしかなくて、*nixはズブのド素人だけど執筆する上でLinux環境用意しないといけないんでUbuntu
つかってやってみてます、みたいな。
ググるとpythonに関する内容は素人レベルでひどいってわけでもなさそうじゃんその本は。

ていうか、そもそも>>208が既存のpythonのパッケージをインストールしたいからっていうんなら、distribute
使わなくてもCentOSのリポジトリにあればそれをyumで入れればいいんじゃないの?
CentOSもpypiも使ってないんでよくしらんけどだいたいあるでしょ。バージョン超古そうだけど。
228デフォルトの名無しさん:2012/04/13(金) 17:56:39.37
マシン語やアセンブリに対して、高級言語ってのはFORTRANの時代からずっと
プラットフォームについての知識が最低限でも組める、という方向を目指して進化してきてるからね
Pythonのことはしっかり知ってるのにシステムのことは素人、てのは別に不思議なことでもない
229デフォルトの名無しさん:2012/04/13(金) 18:14:26.28
目次

1 Pythonで開発しよう(Pythonをはじめよう
Webアプリケーションを作る)
2 チーム開発のサイクル(チームの開発環境を整える
ドキュメントの基盤を整える
課題管理とレビュー
モジュール分割設計と単体テスト
パッケージングと環境セットアップの自動化
Mercurialによるソースコード管理
Jenkinsで継続的インテグレーション)
3 サービス公開(環境構築とデプロイの自動化
アプリケーションのパフォーマンス改善
Google App Engine)
4 開発を加速するテクニック(テストを味方にする
Djangoを便利に使う
便利なPythonモジュールを使おう)
Appendix(VirtualBoxのセットアップ
OS(Ubuntu)のセットアップ)

まあ, この内容ならシステム管理の素人が書いてもまったく問題はなさそうだな.
230デフォルトの名無しさん:2012/04/13(金) 20:07:56.19
Pythonスタートブックが良書なのは知ってるんですが、この本以外に分かり易い本ってありますか?
231デフォルトの名無しさん:2012/04/14(土) 10:40:42.69
はいはい
ステマステマ
232デフォルトの名無しさん:2012/04/14(土) 15:35:15.05
Tkinterをインポートしようとしたら

>>> import Tkinter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

と表示されました。help("modules")で確認したら_tkinterが無いのは分かったんですが
導入の仕方が分かりません。
OSはdebian6.0.4 AMD64 です。pythonは2.7.3を使っています。
233デフォルトの名無しさん:2012/04/14(土) 15:42:56.63
apt-get install python-tk
234デフォルトの名無しさん:2012/04/14(土) 15:45:31.44
>>232
aptでpython-tkを入れる
235デフォルトの名無しさん:2012/04/14(土) 15:58:09.04
>>232はマルチ
236デフォルトの名無しさん:2012/04/14(土) 16:15:16.34
>>233
>>234
python-tkを入れて /usr/local/lib/python2.7/lib-tk/Tkinter.py
があることは確認したのですが同じ結果になりました
237デフォルトの名無しさん:2012/04/14(土) 16:20:44.93
>>235
マナー違反だったんですねすいません
238デフォルトの名無しさん:2012/04/14(土) 16:40:53.81
>>236
apt-getで入れてねーだろカス。
239デフォルトの名無しさん:2012/04/14(土) 16:42:34.06
>>238
apt-get でいれてます
240デフォルトの名無しさん:2012/04/14(土) 17:09:10.36
>>232
PythonのバージョンがDebianにしては新しいようだけどどうやってインストールしたの?
241デフォルトの名無しさん:2012/04/14(土) 18:08:06.77
>>240
ソースからビルドしました
242デフォルトの名無しさん:2012/04/14(土) 18:51:43.82
>>241
PythonをビルドするときにTcl/Tkやらのヘッダがなければ
Tkinter使えるようにならないよ
後からpython-tkを入れても手遅れ
243デフォルトの名無しさん:2012/04/14(土) 21:31:59.20 BE:4198314479-2BP(0)
迷惑メールを送り続ける業者に対して,Pythonスクリプト+
hotmailで「迷惑メール送信をやめて下さい」という内容の
メールを,1時間で1000通出したいのですが,参考になる
サイトはございますか?
244デフォルトの名無しさん:2012/04/14(土) 21:39:31.42
>>243
多分向こうにダメージ無いぞソレ
245デフォルトの名無しさん:2012/04/14(土) 21:44:37.29
>>243
あなたがアク禁になる手引きをするつもりはないのでお帰りください
246デフォルトの名無しさん:2012/04/14(土) 22:07:11.09
意味ないどころか、mailer-daemon failureが1000通返ってくるんじゃねーの?w
247デフォルトの名無しさん:2012/04/14(土) 22:07:34.14
問題は迷惑メールを送り続ける業者のメールアドレスをどうやって入手するかだな
248デフォルトの名無しさん:2012/04/14(土) 22:44:19.10
>>236=239=241 ??
apt-get で普通に入れて /usr/local に入るわけないし、python を自分でソースからビルドした
ってのがパッケージ管理の管理外でやったならすべて自己責任の世界。
半分スレチだし、質問するとしても自分がやったことすべて列挙してそれのどこに間違いがあっ
たのかを聞くのが正しい聞き方。
249デフォルトの名無しさん:2012/04/14(土) 22:54:32.56
ごめん
250デフォルトの名無しさん:2012/04/15(日) 19:43:18.41
if "a" in ["a", "b", "c"] == True:
print "True"
else:
print "False"
これの実行結果をTrueとして出したいのですが、Falseとして出ます。
どうしたらTrueと出るでしょうか?
251デフォルトの名無しさん:2012/04/15(日) 19:49:48.14
if ('a' in ['a', 'b', 'c']) == True
252208:2012/04/15(日) 20:05:39.26
>>243
迷惑メール相談センター
http://www.dekyo.or.jp/soudan/
253デフォルトの名無しさん:2012/04/15(日) 20:21:58.06
何でこんなになるんだろうね(2.7.2)
>>> abc = ["a", "b", "c"]
>>> "a" in abc
True
>>> "a" in abc == True
False
>>> "a" in abc == abc
True
>>> "a" not in abc == abc
False
254デフォルトの名無しさん:2012/04/15(日) 20:30:04.23
>>253
演算子の優先順位
255デフォルトの名無しさん:2012/04/15(日) 20:34:33.05
256デフォルトの名無しさん:2012/04/15(日) 20:34:38.75
>>> "a" in abc == True
False
>>> "a" in (abc == True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument of type 'bool' is not iterable
257デフォルトの名無しさん:2012/04/15(日) 20:35:06.66
>>254
具体的にはどこが優先されているの?
258デフォルトの名無しさん:2012/04/15(日) 20:58:38.50
これ、優先順位というか比較の連鎖か。
比較の連鎖ってのは x < y < z みたいな書き方のことね。

だから
"a" in abc == True

"a" in abc and abc == True
とほぼ同じ。(正確には上だとabcが一回しか評価されない)

abc == True は偽だがらFalseが返る。
259デフォルトの名無しさん:2012/04/15(日) 21:04:36.84
>>258
勉強になった
260デフォルトの名無しさん:2012/04/15(日) 21:05:05.53
inでも有効なのか。知らんかったわ
261デフォルトの名無しさん:2012/04/15(日) 21:16:32.54
>>> [] in [[]] == True
False
>>> [] in [[]]
True
>>> [] in [[]] == []
False
>>> ([] in [[]]) == []
False
>>> [] in ([[]] == [])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument of type 'bool' is not iterable
262デフォルトの名無しさん:2012/04/15(日) 21:17:31.07
>>> [] in [[]] and [] == []
True
263デフォルトの名無しさん:2012/04/15(日) 22:43:38.57
>>259
pythonドキュメントにまるっきり同じことが書いてあるわけだが。
264デフォルトの名無しさん:2012/04/15(日) 22:48:46.76
>>263
勉強になった
265デフォルトの名無しさん:2012/04/15(日) 22:52:10.61
>>263
へーpythonドキュメントにまるっきり同じことが書いてあるのか。勉強になった。
266デフォルトの名無しさん:2012/04/15(日) 23:17:43.33
ドキュメント厨か
267デフォルトの名無しさん:2012/04/15(日) 23:41:38.27
DQM
268デフォルトの名無しさん:2012/04/15(日) 23:42:56.16
>>267
採用
269デフォルトの名無しさん:2012/04/16(月) 00:06:59.64
pass
270デフォルトの名無しさん:2012/04/16(月) 01:42:10.33
>>269
おい!なんで俺のパスワード知ってんだよ
271デフォルトの名無しさん:2012/04/16(月) 13:35:30.05
>> 208
$ sudo chmod -R 0775 /usr/local
$ sudo chgrp -R bpbook /usr/local
これやらなくていいです。こんなことしなくてもsudoしてるので、distributeのインストールに問題ありません。
272デフォルトの名無しさん:2012/04/16(月) 14:44:24.70
>>271
そもそも>>208みたいに手動でdistributeを入れなければいけないのかどうかを先に論じるべき。
273デフォルトの名無しさん:2012/04/16(月) 14:51:47.15
258 名前:デフォルトの名無しさん [sage]: 2012/04/15(日) 20:58:38.50
これ、優先順位というか比較の連鎖か。
比較の連鎖ってのは x < y < z みたいな書き方のことね。

だから
"a" in abc == True

"a" in abc and abc == True
とほぼ同じ。(正確には上だとabcが一回しか評価されない)

abc == True は偽だがらFalseが返る。

実行結果が異なるんですけど

>>> [] in [[]] == True
False

>>> [] in [[]] and [] == []
True
274デフォルトの名無しさん:2012/04/16(月) 15:16:37.73
>>275
http://docs.python.org/reference/expressions.html#not-in

[] in [[]] == True は [] in [[]] and [[]] == True といっしょということだろう
( [] in [[]] ) == True ではない

こういう書き方は混乱の元だからやらないほうがいいと思う

>>271
そんなことをするとどんな危険性がありますか?
275デフォルトの名無しさん:2012/04/16(月) 15:17:47.45
>>273 どこが?
276デフォルトの名無しさん:2012/04/17(火) 02:25:28.81
くだらんけど
chgrpするならchmodでグループのスティッキービットたててほしい。
277デフォルトの名無しさん:2012/04/17(火) 03:50:05.54
$ sudo rm -Rf /
278デフォルトの名無しさん:2012/04/17(火) 04:50:23.93
はいはい
ステマステマ
279デフォルトの名無しさん:2012/04/17(火) 23:27:22.37
本も質問者もひどいもんだな。
280デフォルトの名無しさん:2012/04/18(水) 17:24:56.56
pass
281デフォルトの名無しさん:2012/04/19(木) 10:42:32.51
Pythonチュートリアル第2版の10.12節に「電池付属です」と銘打った説があって、「Pythonには『電池付属』の哲学がある。」と書いてあるのですが、これってどういう意味なんでしょうか?
「電池付属」って、英語特有の慣用表現みたいなもの?
282デフォルトの名無しさん:2012/04/19(木) 10:48:21.90
>>281
すぐ使えるようにする、ってこと
283デフォルトの名無しさん:2012/04/19(木) 12:00:15.04
おもちゃのCMとかで最後に必ず「Each sold separately, batteries not included.」
みたいな注意書きがはいる(たいてい1秒程度でしゃべる)。そのもじり。
284281:2012/04/19(木) 12:31:15.81
勉強になりました。thxです。
285デフォルトの名無しさん:2012/04/19(木) 14:24:02.38
核電池
286デフォルトの名無しさん:2012/04/19(木) 20:03:53.82
電池付属もいいんだが、Python付属のは液漏れしてる
287デフォルトの名無しさん:2012/04/19(木) 21:26:21.55
電池で思い出したけど、電池で動くような小型の端末で、ちまちまPythonのコードを書いたり動かしたりできるもんって無いのかなあ???
288デフォルトの名無しさん:2012/04/19(木) 21:55:19.17
289デフォルトの名無しさん:2012/04/19(木) 22:26:34.61
>>287
android電話でsl4a
290デフォルトの名無しさん:2012/04/19(木) 23:19:48.82
おおおお、いつの間にかいろんなのあるんだなあ。
最近でたっぽい、Python for iOSを買ってみるか。
電池じゃ動かないけど・・・・
291デフォルトの名無しさん:2012/04/20(金) 01:09:06.94
え
292デフォルトの名無しさん:2012/04/20(金) 15:50:03.15
pythonでGUIプログラムを作ろうと思って情報収集していたのですが
http://code.google.com/p/pysta/
このようなものを見つけました
そもそもプログラミング初心者の上英語もちんぷんかんぷんで何がなんだかなのですが
これはpythonのGUIをvistaっぽくする何かってことでいいんでしょうか?
もしそうであった場合、こういったデータの使い方は学習サイトのどういう項目で勉強すれば良いのかまでご教示して下されば幸いです
293デフォルトの名無しさん:2012/04/20(金) 16:05:25.12
>>292
どんなものを作りたいのか具体的に書いた方がアドバイスしやすいと思う
リンク先は2009年に更新が止まっているので論外
294デフォルトの名無しさん:2012/04/20(金) 16:24:46.68
ぱっと見では全然開発が進んでないように見える
Vistaの部品を模してとりあえず4つwidgetができて、その後半年かけてバグ取ったと書いてあるが
多分使い物にならんだろう

しかしここにもないものを
http://wiki.python.org/moin/GuiProgramming
よく見つけてきたな〜
295デフォルトの名無しさん:2012/04/20(金) 17:11:26.00
返答ありがとうございます
個人的にはvistaのようにウィンドウを透かす感じのデザインにしたいのですが
そういったことは可能なのでしょうか?
それともそれの開発が滞っているように難しいことなのでしょうか?
296デフォルトの名無しさん:2012/04/20(金) 17:46:16.40
Windowsネイティブの部品を使うライブラリならある程度見た目は
似せられるだろうけど、透明度の変更とか細かいことをやりたいなら
Win32APIを直接操作するしかないと思う
>>294のサイトで言うと"venster"、"Win32All"というあたり

ただこれらは、WindowsのAPIを直接呼ぶはずなので、PythonというよりCやC++でプログラムを
書くのに近い作業になると思う Win32APIの資料も必要
また日本語ドキュメントが揃ってないとくじけると思うけど、こういうマイナーなライブラリには
日本語資料がほとんどないはず

Windowsはあんまり詳しくないんで詳しい人補足お願いします
297デフォルトの名無しさん:2012/04/20(金) 18:00:34.91
>>295
具体的にどこを透かせたいの?
あと、実行環境も書いてね
298デフォルトの名無しさん:2012/04/20(金) 18:04:13.96
>個人的にはvistaのようにウィンドウを透かす感じのデザインにしたいのですが
>そういったことは可能なのでしょうか?

それだけならかなり簡単
あなたの言うリンク先のモジュールとかもいらない
299デフォルトの名無しさん:2012/04/20(金) 18:19:02.57
具体的に
300デフォルトの名無しさん:2012/04/20(金) 18:27:38.69
実行環境とはOSのことでいいのでしょうか?
だとすればwindowsですが、やはりLinuxで類似のデザインにしたい場合は勝手が変わってくるのでしょうか?
窓の後ろがどうなってるのかわかるようにしたいのでフレームの透明度変更の遣り方が知りたいです
301デフォルトの名無しさん:2012/04/20(金) 19:01:11.37
Aero Glass効果が欲しいんなら、DWMAPIってやつを使うようだ
ただし、API一つ呼んで終わりじゃなくて自分で半透明で描画しないといけない
既存のコントロールを透過させたいんならWM_CTLCOLOR、オーナードローや
カスタムドロー
原理的にはウィンドウハンドル取る手段さえあればツールキットは問わないはず
あとはpure Pythonコードでやりたいならctypesで

CやC++でのAPIレベルのプログラミングの経験が無いなら無謀
302デフォルトの名無しさん:2012/04/20(金) 19:41:12.03
Pythonって関数定義やクラス定義の終わりを明示しないのっ!?
ソース見てたら、インデントが入ってることから判断すると内部クラスっぽいのがあんだけど
他の言語やってる経験からするととてもそうには見えない
これ、どうやって内部クラスかそうでないかを判別するんだよ
おせーて、そこのナイスな変態さん!
303デフォルトの名無しさん:2012/04/20(金) 20:33:46.18
API3つくらい呼んで終わりなんだけどなぁ
304デフォルトの名無しさん:2012/04/20(金) 21:07:57.33
>>302
折り畳むかアウトライン解析かな
vimならpython_fold.vim,tagbar.vim
手元にある他のエディタでは
SPE,eclise+pydev,geanyなどは
標準で備わってる機能だね
305デフォルトの名無しさん:2012/04/20(金) 22:18:06.58
>>302
インデントレベルが浅くなる、という形でしっかり明示されてると思うが
306デフォルトの名無しさん:2012/04/20(金) 22:24:06.39
>>302
from __future__ import braces
307デフォルトの名無しさん:2012/04/20(金) 22:27:03.04
なんて親切なスレなんでしょう(棒
308302:2012/04/21(土) 00:42:38.92
どういう誤解なのかわからないが
いやいや、パッケージをインポートするとかどうとかって話じゃない
あるクラスが定義されていてそいつが
内部クラス(インナークラス)なのか、そうではないただのクラスなのかって話だ
Pythonには内部クラスの概念がないってのならまあ、それで解決するんだが
だが、
ttp://d.hatena.ne.jp/hiratara/20080123/1201073976
によると、できるらしい
で、そのソースを見てもやっぱり区別がつかないというわけだ

>>305
そんな曖昧すぎる言語仕様があってたまるか
309デフォルトの名無しさん:2012/04/21(土) 00:47:53.36
>>308
もう面白くないから帰っていいよ。
310302:2012/04/21(土) 01:18:33.18
内部クラスについて聞いているだけなのに、
どうして俺がさもふざけてるような扱いをされるのか
おこちゃまなガラスの自尊心がブロークンハート状態なんですねわかります
君が今回得るべき教訓は、『そういう態度をとる事こそ真に恥ずかしい』だ

この質問を続けていると荒れてしまいそうだから、
ここでの質問は打ち切って2ちゃんねる以外の掲示板で聞くことにする
もし、ム板の「Pythonのお勉強」スレで訊いたら同じやつに絡まれるからな
311デフォルトの名無しさん:2012/04/21(土) 01:25:38.24
内部定義が一見してわからんソース(長かったり空行挟んでないとか)は、
書いたやつがクソって世界だから。
強制力はないけど言語仕様でそういうの排除できるって頭よくない?
312デフォルトの名無しさん:2012/04/21(土) 01:34:22.96
>>310
>>305が的確に回答してるのに
>そんな曖昧すぎる言語仕様があってたまるか
で返すのみたら誰だってふざけてると思うよ。
もしまだ不満なら何が気に食わないかを具体的に書けばいいだけ。

それ以前にまともに相手して欲しかったら普通の文体で淡々とやり取りすればいい。
それができないことこそ真に恥ずかしい。
313デフォルトの名無しさん:2012/04/21(土) 02:13:50.23
まあどこで訊いても>302の答えは>305だから、
>302,310はどこ行っても「自分の欲しい答え」は貰えないんじゃない?
Pythonだけがプログラミング言語じゃないんだし、勝手に他の言語使ってれば? と思う。
視野は狭くなるけど、自分で狭めてるんだからそれはしょうがない。
314デフォルトの名無しさん:2012/04/21(土) 02:24:25.94
emacsのPython Modeでは

[1]def foo():
    [2]def bar(): ...
    [3]def baz(): ...

[3]でC-c C-u (py-beggining-of-block) すると[1]には飛ばず[2]に飛ぶ
[3]から[1]に直接飛ぶコマンドがあってもよさそうだ。ちらし
315デフォルトの名無しさん:2012/04/21(土) 03:37:30.62
ちらしage
316デフォルトの名無しさん:2012/04/21(土) 10:17:00.93
>>308
>そんな曖昧すぎる言語仕様があってたまるか

曖昧でも何でもない
Pythonでは自由なインデントは認められてなくて
インデントの仕方について厳密な規定があるからな
だからインデントレベルが下がるのは必ず何らかの構造の終わりを示す
317デフォルトの名無しさん:2012/04/22(日) 10:05:29.48
すんません
Windows XP環境で、コマンドラインからNTPサーバーに接続して時刻あわせをするスクリプトが欲しいのですが
どうやれば良いか試行錯誤しています。
見本を見せてもらえませんか?
318デフォルトの名無しさん:2012/04/22(日) 10:11:16.04
319デフォルトの名無しさん:2012/04/22(日) 10:29:15.46
320デフォルトの名無しさん:2012/04/22(日) 11:31:29.12
>>318
NTPサーバから現在時刻を取得する
ttp://saekiyoshiyasu.org/pblog/programming/python/gettimefromntp-2007-06-13-00-34.html
IronPythonでも書いてみる。
(略)
あれれー? 原因を探す(pyがPython、ipyがIronPythonでの挙動)。
(略)
この辺に原因がありそう。IronPythonでは、エポックが西暦1年になっている様だ。
従って、time.ctime()の引数に、西暦1年1月1日0時0分0秒から
西暦1970年1月1日0時0分0秒までの秒数を加えてやれば、Pythonと同じ挙動をするはず。
>>> print time.ctime(t - TIME1970 + time.mktime((1970, 1, 1, 0, 0, 0, 3, 1, 0)))
水 6 13 00:28:26 2007


糞ワロタ
321デフォルトの名無しさん:2012/04/22(日) 11:41:37.65
>>317はPythonの話ではなくてXPの話
AD (Active Directory)に参加している端末なら強制的にADの時計に同期させられる
(Kerberos認証のため)
参加していなければ、Admin権限で
  net time /setsntp:[NTPサーバ]
を実行する

Pythonからやりたければこのコマンドをsubprocess.Popen()で呼び出す
322デフォルトの名無しさん:2012/04/22(日) 12:14:17.62
だれか性能の良い隔離スレ立ててくれ
323デフォルトの名無しさん:2012/04/25(水) 00:55:31.53
そもそも、ここが隔離スレだというのに。
324デフォルトの名無しさん:2012/04/25(水) 09:58:08.20
「自分は頭が良くて詳しいです」的な自己満足レスの典型だぞ。
相手は超初心者なんだからもう少し優しく教えてあげないと。
さもなくばスルーでOK
325デフォルトの名無しさん:2012/04/25(水) 18:51:31.58
hardwayのPracticeをeclipseのPydevでやってるんだけど、
どうやってEclipseで実行したらいいのかわからない

python ex13.py first 2nd 3rd
これをコマンドプロンプトとかで打つと別ファイルの内容が
出力できる問題なんだけどEclipseで確認したいです。
初心者すぎる質問だけど教えてください

ttp://learnpythonthehardway.org/book/ex13.html
326デフォルトの名無しさん:2012/04/25(水) 19:59:01.28
>>325
実行の構成>引数>プログラムの引数

first
2nd
3rd
327デフォルトの名無しさん:2012/04/25(水) 21:34:15.24
>>326
できました!ありがとう
328デフォルトの名無しさん:2012/04/26(木) 01:18:32.94
ファイルのreadについて質問させてください

file = open("aaa.txt")
file.read() #一度目のreadではファイルの内容が返ってくる
file.read() #二度目のreadでは空が返ってくる

これは二度以上はreadをしないように自分で気をつけるしかないのでしょうか?
329デフォルトの名無しさん:2012/04/26(木) 01:22:55.38
1回closeするクセをつければいいのでは
330デフォルトの名無しさん:2012/04/26(木) 01:23:37.95
>>328
何で空が帰ってくるかわかってる?
http://www.python.jp/doc/release/library/stdtypes.html#file.read
331デフォルトの名無しさん:2012/04/26(木) 01:30:03.87
たぶん>>328はそれを読んでも分からないんじゃないかな

言語をとわず、一般にファイルから読み込むread()みたいな関数は、
ファイルの現在の位置(カーソルみたいなもんだと思ってくれ)から
データを読み始めて、読んだ分だけカーソルが移動するのがふつうなんだわ

read()は引数を指定しないとファイルの現在の中身全部読み込むので、
その時点でカーソルは終端に移動する
もう一度read()を呼んだら、もう先には何も無いわけだから空が返ってくる

どうしてももう一度読み直したいんなら、seek()でカーソルを先頭まで持っていけば
いいんだが、本当にそれがしたいことなのか考えたほうがいい
332328:2012/04/26(木) 02:38:25.88
ありがとうございます、ファイル読み込みの概念は理解できました
Pythonに限らずどの言語でもファイルを読み込んだ後にcloseしている例が多いので、
なんとなくcloseするのがお行儀のいいやり方だとはわかっていたのですが二度readすると空になるとは思いませんでした
333328:2012/04/26(木) 03:26:00.02
何度もすみません。 実は自分で直接ファイルを扱っているわけではなくて、
MongoDBにファイルを格納できるGridFSという仕組みをPython上で扱える「MongoEngine」というライブラリを使っていまして、
そこで前述した問題にぶち当たりました(http://readthedocs.org/docs/mongoengine-odm/en/latest/guide/gridfs.html)。

ライブラリのコード見てみると、内部でファイルをreadした後に閉じていない?ようでポインタがEOFに到達したままになっているみたいです。
そこで、あまり行儀のいいやり方ではなさそうですが>>331さんの提案してくださったseek()で解決しました。
本当にありがとうございます。
334デフォルトの名無しさん:2012/04/26(木) 04:01:26.09
先頭に戻すのが目的ならrewind()がいいんじゃない?
335デフォルトの名無しさん:2012/04/26(木) 04:50:08.69
馬鹿には無理
336デフォルトの名無しさん:2012/04/26(木) 05:18:24.59
IDはいらねーかなここ
337デフォルトの名無しさん:2012/04/26(木) 06:43:49.28
もう全板強制IDにして欲しいわ
338デフォルトの名無しさん:2012/04/27(金) 20:48:30.72
馬鹿には無理
339デフォルトの名無しさん:2012/04/28(土) 03:27:31.94
a = 1
print "OK" if a == 1 else print "NG"

これを実行すると
else printのtのところでSyntaxErroeになります。
どこが悪いのでしょうか。
340デフォルトの名無しさん:2012/04/28(土) 04:30:13.32
式のなかに文は置けない。なので条件式の中にprint文は置けない
print "OK" if a == 1 else "NG" なら動く
341デフォルトの名無しさん:2012/04/28(土) 04:54:56.95
>>339

print "OK" if a == 1 else "NG"

が正解。elseの後ろのprintが不要。

("OK" if a == 1 else "NG")

printの後ろに来るのはあくまで一つの値であるのが原則だから、
上のカッコ内全体が単一の値にevaluateされるためには、
printが無いほうが自然とわかると思う。つまり

if a == 1: "OK"
else: "NG"

ここで、elseの後ろにprintがあるとアンバランスということ。
別の言い方をすれば、普通のif-else statementでは、あるblockが
実行されるための条件を評価しているのに対し、ここではprintの目的語を
if-elseによって定めている、って感じかな。
342デフォルトの名無しさん:2012/04/28(土) 06:39:08.47
なるほど、2つの式のどちらかの値を返してもらうだけの
限定されたifなのですね。
ありがとうございました。
343デフォルトの名無しさん:2012/04/28(土) 08:58:35.49
条件式のifの方が優先順位が上なのか
344デフォルトの名無しさん:2012/04/28(土) 09:58:10.80
優先順位がどうのじゃなくて、ifって2種類あるんだよ
ステートメントのifと条件演算子のif

これらは優先順位じゃなく文脈によって定まる
345デフォルトの名無しさん:2012/04/28(土) 10:00:19.52
『カッコをつけなさい』
 - 神の声
346デフォルトの名無しさん:2012/04/28(土) 10:01:21.90
こっちが演算子if
conditional_expression ::= or_test ["if" or_test "else" expression]
expression ::= conditional_expression | lambda_form

こっちが分岐文if
if_stmt ::= "if" expression ":" suite
( "elif" expression ":" suite )*
["else" ":" suite]
347デフォルトの名無しさん:2012/04/28(土) 10:04:02.89
しかし条件演算子ifの導入には一悶着あったらしいね
俺は2.6からしか使ってないからよく知らないけど
348デフォルトの名無しさん:2012/04/28(土) 10:06:01.15
>>345
今回のは結合度や左/右結合の話じゃないのでそれはあてはまんない
349339:2012/04/28(土) 12:35:59.22
以下のように書いたら動いてしまいました。
これは関数名が式として解釈されるために
関数の中に文があっても問題ないということでしょうか?
「別にあんたのために動かしてあげたんじゃないんだからね
関数は式だから仕方ないでしょ」って言ってるみたいで
Python可愛いw

def A():
 print "OK"

def B():
 print "NG"

a = 1
A() if a == 1 else B()
350デフォルトの名無しさん:2012/04/28(土) 13:04:34.00
その通り
3.xだとprint文はprint関数になってるので

print('XXX') if a == 1 else print('yyy')

これも通る
351デフォルトの名無しさん:2012/04/28(土) 14:27:55.70
IDはいらねーかなここ
352デフォルトの名無しさん:2012/04/28(土) 15:22:09.19
>>339
わかってるかもしれないけど一応補足しとくと、339が定義した
AやBという関数は、outputとしてはNoneを返しているってのに注意。
だから

(A() if a == 1 else B())

は全体として値はNoneとなり、標準出力には(関数のoutputではなく)
side effectとして文字列が現れているということ。
このことを明確にするには、

print (A() if a == 1 else B())

としてみればよい。
353デフォルトの名無しさん:2012/04/28(土) 17:52:23.30
『自演禁止』
 - 神の声
354デフォルトの名無しさん:2012/04/28(土) 17:54:22.35
馬鹿には無理
355デフォルトの名無しさん:2012/04/28(土) 21:04:58.28
『馬鹿には無理』
 - 馬鹿の声
356デフォルトの名無しさん:2012/04/29(日) 18:23:46.04
連休で勉強中。
リスト・辞書・セットの要素追加・削除メソッドが
統一されていなくて、やけに覚えづらく感じる。
みなさんは慣れちゃって平気って感じですか?
357デフォルトの名無しさん:2012/04/29(日) 18:49:26.32

統一されるわけなくないか?
358デフォルトの名無しさん:2012/04/29(日) 19:27:54.84
馬鹿には無理
359299:2012/04/29(日) 19:38:51.47
>>355
それはスクリプトです。
Akbの清楚な画像とかと同じ。
360デフォルトの名無しさん:2012/04/29(日) 21:21:39.26
pass
361デフォルトの名無しさん:2012/04/29(日) 21:43:33.64
>>357
追加はadd、削除はremoveに統一できるのでは
ないかと思うのだけど、初心者の浅慮ですかね…
362デフォルトの名無しさん:2012/04/29(日) 21:53:57.43
いまさら変えられない
初心者は黙ってろ
363デフォルトの名無しさん:2012/04/29(日) 21:59:07.31
インターフェイスを統一するラッパークラスでも書けば?
364デフォルトの名無しさん:2012/04/29(日) 22:07:55.61
昭和の頃覚えたアセンブラとC言語
これがあったから
いまだに自分が損な業界で飯を食ってる
365デフォルトの名無しさん:2012/04/29(日) 22:14:50.19
>>361
append()、expand()、add()、update()、それぞれ挙動が違うから、 add に統一は難しいんじゃ?
remove と del
366365:2012/04/29(日) 22:16:00.75
とちゅうで書き込んじった。
remove と del はまとめれそうな気がするけど。
367デフォルトの名無しさん:2012/05/01(火) 13:04:58.36
プログラム書ける人はハンサム
368デフォルトの名無しさん:2012/05/01(火) 14:47:04.95
俺ってハンサムだったんだ
街に繰り出してくるは
369デフォルトの名無しさん:2012/05/01(火) 16:14:12.85
Trie/DoubleArrayなどのデータ構造を実装したライブラリって無いのでしょうか
検索してみるとどうやら必要に応じて自分で実装している人が多いので、標準ライブラリ的なものは無さそうですけど
370デフォルトの名無しさん:2012/05/01(火) 16:14:24.19
>>368
待て、街ではハンサムじゃなくなるぞ!
371デフォルトの名無しさん:2012/05/01(火) 18:51:52.75
>>370
ぶw
372デフォルトの名無しさん:2012/05/01(火) 20:10:56.53
pass
373デフォルトの名無しさん:2012/05/01(火) 20:15:23.10
continue
374デフォルトの名無しさん:2012/05/01(火) 21:06:55.49
>>356
メソッド名は、エディタやIDEのサポートがあると覚えてなくても平気。
リファレンスくらいは準備しておいた方がいいかもしれないけど、
# ttp://www.python.jp/doc/nightly/library/stdtypes.html
# ttp://www.python.jp/doc/nightly/library/collections.html#abcs-abstract-base-classes

覚えないといけないのは、del やリストのスライスを使ったイデオム
blist = alist[:] や del alist[:]、alist[:] = [] (コピーと消去)

この辺りは、確かに統一出来る部分もあって、実際 list.copy() や list.clear() は 3.3 で追加されます。
copyはcopyモジュールがあるけど、現行のリストにはclearメソッドがない。(dequeにはclear()がある)

>>366
削除も del alist[n] は n 番目の要素を削除、alist.remove(n) は最初に見つかったnという値の要素を削除
といった挙動の違いがあるので、これも統一のは難しそう。(追加と同様、何処を削除する?何を削除する?といった指定の仕方が複数ある)
375デフォルトの名無しさん:2012/05/03(木) 03:13:59.60
python2.7をwindows7 64bitで勉強中です。
テキストファイルやCSVファイルの読み書きを学んでいるところなのですが
文字コードでたびたび詰まります(特にCSVファイルへの書き込み)。

python3.2で勉強すればこの問題には直面しないのでしょうか?
であればもうpython3.2で勉強してみようかとも思っているのですが・・・
376デフォルトの名無しさん:2012/05/03(木) 08:14:48.49
どんな問題がでるのか書かないとわからん
たまにエスパーいるけど
377デフォルトの名無しさん:2012/05/03(木) 11:52:08.84
すみません

UnicodeEncodeError: 'ascii' codec can't encode character u'\uff12' in position 0: ordinal not in range(128)

みたいなエラーが出ることです。
378デフォルトの名無しさん:2012/05/03(木) 11:54:19.50
ちなみにそのエラーの意味は分かりますか?
379デフォルトの名無しさん:2012/05/03(木) 12:05:49.03
もう解決してるじゃん
勉強中って言うくらいならエラーログくらいちゃんと読むクセつけましょう
380デフォルトの名無しさん:2012/05/03(木) 12:24:04.20
たとえば

import codecs, csv

u = u'2ちゃん'
with codecs.open('2ch.csv', 'wb', 'utf8', 'ignore') as f:
writer = csv.writer(f)
writer.writerow(u)

というスクリプトを実行すると同様のエラーが出るので
python2.7のドキュメント読んでみたら
「csvモジュールはUnicodeの読み書きをサポートしてません」
と書かれていました。

それでも何とかエラーを回避しようと色々調べてはみたのですが
自分の知識不足で「こうすればエラーが出ない」という方法を自分のスクリプトに転用できません。

それならもうpython3の勉強した方がいいのかな?と思い>>375の質問に至りました。
381デフォルトの名無しさん:2012/05/03(木) 12:29:35.23
import codecs, csv

u = u'2ちゃん'
with open('2ch.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(u)

試す気ないけどこれはOKじゃありません?
382381:2012/05/03(木) 12:30:14.37
間違えた
writer.writerow(u)

writer.writerow(u.encode('utf_8'))
383デフォルトの名無しさん:2012/05/03(木) 13:00:02.36
>>381
レスありがとうございます。

エラーは出ませんでしたが
・シ,・・・。,・・・・・・
と書き込まれてしまいました・・・
384デフォルトの名無しさん:2012/05/03(木) 13:35:03.44
>>383
http://docs.python.org/library/csv.html#writer-objects
> A row must be a sequence of strings or numbers

というわけで writer.writerow([u"2ちゃん".encode('utf-8')])
385デフォルトの名無しさん:2012/05/03(木) 13:36:49.60
2.7勉強したって3.2へ移行しないと行けないのに
よくやるよ
386デフォルトの名無しさん:2012/05/03(木) 13:39:00.29
python csv unicode
のキーワードでググって一番上に出てくる個人サイトで
解決策が出ている。
結論としては、csvモジュールに難あり。
他人の作ったモジュールに中途半端に頼ると
不幸になるという見本だね。
できる限り自前で作ることが、最終的に幸せになる鍵。
387デフォルトの名無しさん:2012/05/03(木) 14:31:29.63
>>383
# -*- coding: utf-8 -*-
import csv, codecs
print u'2ちゃん utf8'
s = u'2ちゃん utf8,3 chan utf8'
L = [u'2ちゃん utf8' ,'3 chan utf8']
with open('b.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow([s.encode('utf8')])
uL = [None] * len(L)
for i, x in enumerate(L):
print x
uL[i] = x.encode('utf8')
with open('uL.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(uL)
with codecs.open('u8.csv', mode='wb', encoding='utf_8') as f8:
writer8 = csv.writer(f8)
writer8.writerow(uL)
388デフォルトの名無しさん:2012/05/03(木) 17:35:23.42
文字コードで悩むくらいなら素直に3使ったほうがいいよ
標準モジュールでさえstr/unicodeの暗黙の変換でハマることはあるし
389デフォルトの名無しさん:2012/05/03(木) 18:16:20.69
>>384
ありがとうございます。できました。
文字列ってsequenceだと思ってましたけど自分の理解にまずいところがあったようです
改めて読み込んでみます。

>>386
ありがとうございます。肝に銘じます。

>>387
ありがとうございます。
最後のだけエラーが出ますがcodecs使わない方が良いということなんでしょうか・・・

>>388
ありがとうございます。Django使いたいので2でと思っていたんですが、
今回のようにDjango関係ないところでは3を使うようにします。
390デフォルトの名無しさん:2012/05/03(木) 18:56:05.61
>>389
いや文字列ははシーケンス(の一種)であってるよ。forに添えたりスライスできる
ただwriterow()は文字列のシーケンスか数値のシーケンスを期待しているので
writerow("abc")ではなくwriterow(["abc"])としなきゃいけない

>>383はUTF-8バイト文字列 "2ちゃん" が1バイトずつデリミタ , で区切られてる
391デフォルトの名無しさん:2012/05/03(木) 19:13:16.72
>>388
文字コードへの配慮が抜け落ちていているライブラリが混入してるのは
Python3もいっしょなわけで、あんまり夢は見ないほうがいいかと。
392デフォルトの名無しさん:2012/05/03(木) 19:13:38.09
>>389
いや、分からんけど、codecs使わなくていいなら使わなくていいんじゃない?
試してみたところ、問題はcodecs側に有りそうな気がして>>387書いた。
csv moduleが悪いわけじゃないと思うんだ。
周りの無知・無理解で悪くない奴が責められるのが嫌なんだー。
嫌でしょう?おかしいでしょう?

>>388が言うように、3系使うのをお勧めする。
programmingの本質でない所でハマって往生するのは嫌でしょ?
393デフォルトの名無しさん:2012/05/03(木) 19:17:54.93
またDjangoかよ
足引っ張ってるなDjango
394デフォルトの名無しさん:2012/05/03(木) 19:25:30.00
>>391
CJKへの配慮が足りない程度ならライブラリをfixすりゃいいし
全部unicodeにして渡してるのに訳分からんタイミングでstrに戻されるよりマシ
395デフォルトの名無しさん:2012/05/03(木) 19:32:50.17
どんぐりころころ どじゃんぐりこ
2系にはまって さあたいへん
396デフォルトの名無しさん:2012/05/03(木) 19:55:11.64
おじゃんがでてきて こんにちは〜
ばぐちゃん いっしょに あそびましょ〜
397デフォルトの名無しさん:2012/05/03(木) 20:19:14.54
>>394
残念ながらUTF-8固定になってるライブラリが混入してますた
398デフォルトの名無しさん:2012/05/03(木) 20:36:00.91
みなさんご指導ありがとうございます。大変助かります。

>>390
"abc"は文字列で["abc"]が文字列のシーケンスっていうのが理解できません。
この場合のシーケンスってリストくらいに考えておけばいいのでしょうか?
手元に秀和システムの「Python入門2&3対応」っていう本があるんですが、
確かにwriter.writerow([1, 'taro'])と書かれてます(P316)。何の説明もありませんが。。。

>>391
結局は文字コードの勉強もしないといけないんですね。文字コード技術入門買います。

>>392
確かにこう並べてみるとcodecsにありそうですね。
僕の場合は文字列のシーケンスっていうところの理解が不足していたようですが、
無知を恥じます。
399デフォルトの名無しさん:2012/05/03(木) 20:39:17.43
シーケンスは”順番に並べた一連のもの”ですよ
文字列は文字を並べたもので
文字列のシーケンスは文字列を並べたものです
400デフォルトの名無しさん:2012/05/03(木) 21:21:35.95
>>398
うん。この場合はリストかタプル
文字列もシーケンスの一種だけど文字列の文字列とか表現しようがないしね

シーケンス型とかマップ型って分類を聞いたことなければここらへん見とくといいかも
http://www.python.jp/doc/release/library/stdtypes.html#typesseq
401デフォルトの名無しさん:2012/05/03(木) 21:25:03.61
>>398
一文字を文字と呼ぶ。
ss = 'apple'
とした時に、
ssが文字のsequence。

文字列は文字のsequence。

S = ['abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stu']
N = [2, 4, 7, 1, 3, 8, 9, 5]

とした時に、
Sが文字列のsequence。
Nが数値のsequence。

文字列のsequenceと数値のsequenceの混在も可能。
M = ['abc', 0, 'def', 8]

文字のsequenceを文字列と呼ぶ。
# '' 空文字列, 'a' 一文字の文字列, 'ab' 二文字の文字列

複数の文字列の集まりが文字列のsequence。
# ['', 'a', 'ab']

文字列のsequenceは、
文字のsequenceのsequenceと呼べる。

sequenceは連なりと読み替えると理解しやすいかも。
文字の連なりを文字列と呼び、
文字の連なりの連なりを文字列の連なりと呼ぶ。

文字の連なりの連なりが文字列の連なりと等しい。
402デフォルトの名無しさん:2012/05/03(木) 21:28:53.07
>>401
Pythonでは文字と文字列の区別はしませんYO
403デフォルトの名無しさん:2012/05/03(木) 21:36:34.04
便宜的な話だろ
厳密に言おうとするから「表現しようがない」とか言う話になる

そんくらい分かれ
404デフォルトの名無しさん:2012/05/03(木) 21:37:18.20
馬鹿には無理
405401:2012/05/03(木) 21:59:57.78
つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり
つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり
つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり

一文字の連なりを文字列と呼ぶ。
に修正。

文字列は一文字のsequence。

S = ['abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stu']
N = [2, 4, 7, 1, 3, 8, 9, 5]

Sが文字列のsequence。
Nが数値のsequence。

一文字のsequenceを文字列と呼ぶ。
複数の文字列の連なりが文字列のsequence。

文字列のsequenceは、
一文字のsequenceのsequenceと呼べる。

sequenceは連なりと読み替えると理解しやすいかも。
一文字の連なりを文字列と呼び、
一文字の連なりの連なりを文字列の連なりと呼ぶ。

一文字の連なりの連なりが文字列の連なりと等しい。

(^q^)つらなり、つらなり言ってると分け分からんくなってきた。(^q^)

つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり
つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり
つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり、つらなり
406デフォルトの名無しさん:2012/05/03(木) 22:04:25.27
やめろ!
407デフォルトの名無しさん:2012/05/03(木) 22:09:44.29
馬鹿な僕にもわかりやすく説明してくれて感謝してます。
壮絶なわかりやすさのおかげで理解できました。

直感的に理解できない言葉は固有名詞として覚えてしまう傾向がありまして
今まではそれでうまくいっていたんですが、それだけではダメだと実感しました。

ありがとうございました。次は他の方の質問にも答えられるよう勉強続けます。
408デフォルトの名無しさん:2012/05/03(木) 22:48:30.70
分からんことあったら、またなんか書いてちょ。

連なり、つらなり、(^q^)連なり、つらなり、(^q^)連なり、つらなり、(^q^)連なり、つらなり、(^q^)

    ・  ・  ・

   ∩___∩三 ー_        ∩___∩
   |ノ      三-二     ー二三 ノ      ヽ  ツーラナッテキタァ、ツラナ(^q^)リツラナリ(^q^)ツラナリ(^q^)ツラナ(^q^)リツラナリツラナリ
  /  (゚)   (゚)三二-  ̄   - 三   (゚)   (゚) |
  |    ( _●_)  ミ三二 - ー二三    ( _●_)  ミ  ウオー連なり、つらなり、(^q^)ォオォーア
 彡、   |∪|  、` ̄ ̄三- 三  彡、   |∪|  ミ
/ __  ヽノ   Y ̄) 三 三   (/'    ヽノ_  |  連なり、つらなり、(^q^)ッヒャアアアウオホーオオオオオ
(___) ∩___∩_ノ    ヽ/     (___)
    (ヽ  | ノ      ヽ  /)
   (((i ) /  (゚)   (゚) | ( i)))    あばば連なり、つらなり、(^q^)ばばばば!!!!!!!!!連なり、つらなり、(^q^)
  /∠彡    ( _●_)  |_ゝ \   (^q^)ツラナリツラナリ(^q^)ツラナリ(^q^ツラナリ)ツラナリ(^ツラナリq^)(ツラナリ^q^)ツラナリツラナリ(^q^)
 ( ___、    |∪|    ,__ )    あば連なり、つらなり、(^q^)ばっあびゃば
     |      ヽノ  /´       び連なり、つらなり、(^q^)ゃばば!!!!!!!!!!
409デフォルトの名無しさん:2012/05/03(木) 23:33:48.42
pass
410デフォルトの名無しさん:2012/05/03(木) 23:45:40.40
pythonでクラスつくる意味ってあまりなくないですか
どうなんですか
411デフォルトの名無しさん:2012/05/03(木) 23:52:18.69
大クラス主義
412デフォルトの名無しさん:2012/05/04(金) 00:15:16.94
>>410
なぜそう思うのか簡潔に述べてみなされ
いっしょに考えようじゃないか
413デフォルトの名無しさん:2012/05/04(金) 00:16:25.04
モジュール単位でまとめたほうがわかりやすいと思ったからです
414デフォルトの名無しさん:2012/05/04(金) 00:40:45.42
414
415デフォルトの名無しさん:2012/05/04(金) 00:59:09.10
>>413
ふむ。
君は他の言語ではクラスを使ってバリバリやっていて
その経験を踏まえたうえでそう思うんだよね?
だったら他人が口を挟む余地はないな。
君の思う通りにやりなさい。
416デフォルトの名無しさん:2012/05/04(金) 01:05:05.95
オブジェクト指向ってのが、やっとちょっと分かって来た。
うれしい。涙
417デフォルトの名無しさん:2012/05/04(金) 09:36:30.34
オブジェクト指向は長く複雑なアプリを部品化して
保守しやすくするための概念だからね。
使い捨ての短いアプリを主戦場とするPythonでは
あまり出番はない。

むしろ、部品化したことによって部品間のアクセス
記述が冗長化し、全体の見通しの悪さにつながり
デメリットの方が大きくなる懸念がある。
オブジェクト指向は、使わなくて済むのなら
使わないに越したことはないんだよ。
418デフォルトの名無しさん:2012/05/04(金) 10:06:17.86
>>417
> 使い捨ての短いアプリを主戦場とするPythonでは
> あまり出番はない。
えっ?
419デフォルトの名無しさん:2012/05/04(金) 14:21:32.23
Pythonは使い捨て用って程でもないよな
小規模〜中規模って感じでそれなりに幅は広い
420デフォルトの名無しさん:2012/05/04(金) 21:06:18.73
プログラム書ける人はイケメン
421デフォルトの名無しさん:2012/05/04(金) 22:44:56.05
まじか、ちょっと街に繰り出してk…
やめとこ
422デフォルトの名無しさん:2012/05/04(金) 23:26:50.24
別に使い捨てが主戦場ではないよね
短く書けるから使い捨てる場合にCやらJAVAよりも適してるってだけで
423デフォルトの名無しさん:2012/05/05(土) 09:02:51.93
スレタイがくたばれPythonに見えました
どうすればいいでしょうか
424デフォルトの名無しさん:2012/05/05(土) 09:15:57.52
ねたばれしてみてください。
425デフォルトの名無しさん:2012/05/05(土) 09:55:29.02
殺人ウサギを放て
426デフォルトの名無しさん:2012/05/05(土) 17:58:35.49
>>421
>>370 だからな
427デフォルトの名無しさん:2012/05/05(土) 18:10:41.35
pass
428デフォルトの名無しさん:2012/05/05(土) 21:09:54.73

プログラムはだいたい分かるのですがPythonは本を買って読んだことが無いので一冊買おうと思うのですが
Pythonの本は何を買えばいいでしょうか。現時点までのメジャーなフレームワーク(?)
とかそういうものまでざっと網羅されているものがよいのですが・・・
429デフォルトの名無しさん:2012/05/05(土) 21:20:42.32
英語か日本語かによって回答が変わると思う。
430デフォルトの名無しさん:2012/05/05(土) 21:56:54.27
>>428
経験者なら公式のチュートリアルを見てきてから買う本の検討に入っても遅くないかと
431428:2012/05/05(土) 22:49:53.28
基本、英語はスラスラと読めません。
紙の本のほうが自分には使いやすいので・・・


432デフォルトの名無しさん:2012/05/06(日) 07:27:03.15
何度目だこのやりとり
あえて本買うならきちんと翻訳されたの
一から日本人が書いてるのは残念ながらろくなもんがない
433デフォルトの名無しさん:2012/05/06(日) 20:25:50.37
異論あるかもだけど
・エキスパートpythonプログラミング
・python cookbook
・はじめてのpython

あと英文はだんだん読んでならした方が色々得だと思う
434デフォルトの名無しさん:2012/05/06(日) 20:48:24.19
他言語から移って来てpythonの基本的な仕様を確認するだけならみんなのPythonがベストだと思う
よくまとまってるから1時間ぐらいでも基本的なことを頭に叩き込めてすぐにコード書き始められる
はじめての〜はちょっと分厚すぎるかな
技術評論社の入門本(スタートブックだっけ?)はプログラミング言語自体の初心者なら一番お勧めかも
435デフォルトの名無しさん:2012/05/08(火) 00:03:11.95
馬鹿には無理
436デフォルトの名無しさん:2012/05/08(火) 00:09:55.00
中谷先生のマクロ経済学の教科書は馬でもわかるという触れ込みだったのだけど
当時の自分にはさっぱりわかりませんでした。いまでもトラウマです
437428:2012/05/08(火) 00:54:40.21
どうもありがとうございます。
とりあえず教えていただいたものからなにか選ぼうと思います。

438デフォルトの名無しさん:2012/05/09(水) 02:22:20.72
もうアドバイスは挙がってるので、このレスは読み流して貰っていいんですが、パイソンスタートブックという本がかなり分かり易いらしいです。
439デフォルトの名無しさん:2012/05/09(水) 13:13:44.40
確かにスタートブックはわかりやすいんだけど、
既に他言語でプログラミングを理解している人には平易すぎると思った
本当のプログラミング初心者向けのページが多過ぎるような
440デフォルトの名無しさん:2012/05/09(水) 16:13:09.97
またDjangoかよ
足引っ張ってるなDjango
441デフォルトの名無しさん:2012/05/09(水) 16:33:52.22
pass
442438:2012/05/09(水) 16:37:07.68
>439
アマゾンでパイソンの書籍を検索するとこの本が一番上に来る事から、人気がある事は間違いないです。

みんなのパイソンは、アマゾンではややレベルが高いというレビューが目立ちます。
オライリーの本は詳しそうですが、厚いので読むのに根気が要りそうです。
ただ、私はこれらの本を否定するつもりはありません。
443デフォルトの名無しさん:2012/05/09(水) 16:58:24.39
>>442
人に勧めるなら自分で目を通してからにするか
せめて検証を経たレビューを元にするかしたほうがいいかと
Amazonのレビューがあてにならないのは常識なので
444デフォルトの名無しさん:2012/05/09(水) 17:08:55.27
もうこの際ステマすんなと言ってしまった方がいいな
445442:2012/05/10(木) 01:47:54.48
>443
はい。
>444
ステマではない。
446デフォルトの名無しさん:2012/05/10(木) 02:37:56.63
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
447デフォルトの名無しさん:2012/05/10(木) 10:55:34.79
大学に入ってC言語の勉強を始めた者です。
先生に勧められてPythonの勉強を始めたのですが、
Pythonはすごいのですね。
初めて動的型付けというものを見て、それだけでもびっくりしたのですが、
何よりも驚いたのは、文字列を扱うのがとても簡単であることです。
C言語では以下のステートメントはポインタの比較になってしまいますが、
if (str == "abc")
Pythonでは文字列を比較してくれるのですね!
if str == 'abc':
これだけでも感動でした
Cで文字列の比較するにはstrcmp使ったりするのが多いですものね
448デフォルトの名無しさん:2012/05/10(木) 16:35:27.98
>>447
Python3だよな?
449デフォルトの名無しさん:2012/05/10(木) 17:13:41.39
>>448
2.7.3です
450デフォルトの名無しさん:2012/05/10(木) 17:20:22.62
>>> a = 'abc'
>>> type(a)
<type 'str'>
>>> str == a
False
>>> str == 'abc'
False

ん?
451デフォルトの名無しさん:2012/05/10(木) 17:32:38.17
>>450
str
type(str)
isinstance('abc', str)
452デフォルトの名無しさん:2012/05/10(木) 17:46:12.10
help(str)
453デフォルトの名無しさん:2012/05/10(木) 18:01:13.32
while 1:
str = raw_input()
if str == '1234':
break
454デフォルトの名無しさん:2012/05/10(木) 18:28:19.80
while 1:
str = raw_input
if str() == '1234':
print str.decode('ascii')
break
455デフォルトの名無しさん:2012/05/10(木) 18:44:56.83
クラスの勉強をしているのですが
どういう時に変数やメソッドに
selfを付ければよいのか、よくわかりません。
全部に付けても構いませんか?
456デフォルトの名無しさん:2012/05/10(木) 18:51:54.59
大学生に2を勉強させる老害先生www
457デフォルトの名無しさん:2012/05/10(木) 19:02:08.03
>>455
必要なときに付ける
458デフォルトの名無しさん:2012/05/10(木) 19:19:23.03
たぶん >>447 はPythonも文字列型の型名がstrなのを知らずに
文字列の変数名としてstrと書いたのではないかな
459デフォルトの名無しさん:2012/05/10(木) 19:20:27.70
>>458 訂正
×Pythonも文字列型
○Pythonの文字列型
460デフォルトの名無しさん:2012/05/10(木) 19:23:22.87
Pythonはstrを普通に上書きできるから困るw
なんで予約語にしないんだろうね?
461デフォルトの名無しさん:2012/05/10(木) 19:27:02.55
組み込み型程度を予約するな
他の言語がアホなんだよ
462デフォルトの名無しさん:2012/05/10(木) 19:28:23.49
ごめん
463デフォルトの名無しさん:2012/05/10(木) 19:32:17.18
テストでモックとかスタブとかを組み込みオブジェクトにぶっ込めるのはとても楽チンです。
464デフォルトの名無しさん:2012/05/10(木) 20:45:12.79
自分も初心者のとき>>455で詰まった覚えがあるので練習問題を作ってみた

次のコードを実行したとする:

class MyClass(object):
    num = 2
    def foo(self): num
    def bar(self): MyClass.num
    def baz(self): self.num
    def qux(self): bar()
    def quux(self): self.bar()
    def xyzzy(self): MyClass.bar(self)
m = MyClass()

この状況で、以下の式のうち実行するとエラーになるものを挙げよ。

[1] m.foo()  [2] m.bar()  [3] m.baz()  [4] m.qux()  [5] m.quux() [6] m.xyzzy()
[7] m.num  [8] m.num()  [9] MyClass  [10] MyClass.bar()  [11] MyClass.bar(m)
465デフォルトの名無しさん:2012/05/10(木) 21:28:37.51
こうですか?
>>> m=MyClass()
>>> m.foo()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in foo
NameError: global name 'num' is not defined
>>> m.bar()
>>> m.baz()
>>> m.qux()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 6, in qux
NameError: global name 'bar' is not defined
>>> m.quux()
>>> m.xyzzy()
>>> m.num
2
>>> m.num()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> MyClass
<class '__main__.MyClass'>
>>> MyClass.bar()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method bar() must be called with MyClass instance as first argument (got nothing instead)
>>> MyClass.bar(m)
>>>
466デフォルトの名無しさん:2012/05/10(木) 22:52:03.94
>>465
なぜそうなるか説明できるならそれでおk
467デフォルトの名無しさん:2012/05/11(金) 00:13:56.40
馬鹿には無理
468デフォルトの名無しさん:2012/05/11(金) 14:49:25.10
class Hoge:
 a = 1
 b = 100

のようなクラスがあるときに
hoge = Hoge()
print hoge.c
とメンバ変数cを呼び出したときにbの値が返ってくるようなメソッドは書けるのでしょうか
469デフォルトの名無しさん:2012/05/11(金) 15:02:21.48
>>468
def __getattr__(self, name): return self.b if name == 'c' else AttributeError

# インデントまんどいから一行に書いたけど本意じゃない。
470デフォルトの名無しさん:2012/05/11(金) 15:24:46.81
>>469
たすかりました、ありがとうございます
471デフォルトの名無しさん:2012/05/11(金) 17:21:54.32
いや@property使えよ
472デフォルトの名無しさん:2012/05/11(金) 18:55:14.55
>>457
どういう時に必要なのかがよくわかりません。
以下は正常に動くのですが、変数aやarg1には
selfを付けなくていいんでしょうか。

class Samp():
  def mes(self, arg1):
  a = arg1 * 2
  return a

x = Samp()
x.mes(4)
473デフォルトの名無しさん:2012/05/11(金) 18:57:22.30
>>472
では絶対に付けないようにしなさい
474デフォルトの名無しさん:2012/05/11(金) 19:12:53.60
>>472
aやarg1がオブジェクトの属性(インスタンス変数)ならselfが必要
mesの中でしか使わないローカル変数であればselfを付けたら不正
そのコードのaやarg1はメソッドmesのローカル変数なのでselfはつけてはいけない
475472:2012/05/11(金) 20:05:12.73
>>474
ありがとうございます。
すると、self付きのインスタンス変数というのは
結局のところ、メソッド間で共用する変数という
認識でよいでしょうか?
他のメソッドからアクセスされない変数ならば
selfを付けなくてよいと。
476デフォルトの名無しさん:2012/05/11(金) 20:20:40.96
属してるレイヤーを考えないと泥沼になるぞ
477デフォルトの名無しさん:2012/05/11(金) 20:26:54.00
>結局のところ、メソッド間で共用する変数という
>認識でよいでしょうか?

違う
selfに属する変数
478デフォルトの名無しさん:2012/05/11(金) 20:27:35.88
>self付きのインスタンス変数

ごめん意味がわからない
479デフォルトの名無しさん:2012/05/11(金) 20:47:43.29
>>475
それでほとんどあってる。けどちょっと理解が浅いように見える(だからツッコミが入る)
あとは自分でコード書いたり本読んだりして理解を磨いていったらいいよ
480デフォルトの名無しさん:2012/05/11(金) 20:53:53.57
selfの機能じゃなくてselfが何者かってのをわかるようにすべきでは
で、その答えはもう書いてあるしなんか考え方の要領悪いんじゃないの
481デフォルトの名無しさん:2012/05/11(金) 21:00:50.12
>>475
Python のコーディングガイド PEP8 - 日本語訳
ttp://www.oldriver.org/python/pep-0008j.html

↑は全部読んだ方がいいんだけど、特に以下は熟読した方がいいよ。

命名規則
 規範:命名規則
482デフォルトの名無しさん:2012/05/13(日) 16:36:32.79
>433
pythonスタートブック以上クックブック以下の難易度の本教えてください。
クックブックは良いんですがまだ少し難しいです。
できれば2.6以上対応が望ましいです。
よろしくお願いします。
483デフォルトの名無しさん:2012/05/13(日) 18:13:01.35
馬鹿には無理
484デフォルトの名無しさん:2012/05/15(火) 22:19:23.88
lxmlというXMLパーサーにHTML等をパースさせて返ってくるオブジェクトは特殊な型?なのでストレージ等に保存しておくことができません。
Pickleでもシリアライズ不可能です。
これをメモリ上にずっと載せておいて後から使うことはできませんでしょうか?
lxmlでパースするのはちょっと時間がかかるので、使うたびに生成するのではなく、
生成結果オブジェクトをメモリ上に置いてすぐ使えるようにしたいのです
485デフォルトの名無しさん:2012/05/16(水) 07:15:58.60
memcached
486デフォルトの名無しさん:2012/05/16(水) 10:33:19.75
>>484
ttp://lxml.de/api.html#serialisation
ここみてもXMLを吐くしかないから、そういうシリアライザは自分で書くしかないようね。
XMLでも正規化されてる分HTMLよりなんぼか有利とはおもう。

てかメモリ上にずっとってことなら、処理するPythonを落とさなければいいんじゃないの?
487デフォルトの名無しさん:2012/05/16(水) 11:35:22.05
>>484
jsonにでもしてファイルに保存しといたらいいんじゃないの?
488デフォルトの名無しさん:2012/05/18(金) 02:23:36.39
あるメソッドの内部処理が「ダメだった」場合に空のオブジェクトを返すかnilを返すか自作例外を発生させるかの定まった回答はない
そのメソッドやクラスがどういう場面で使用されるか、をよく考えた上で自分で決めるしかない

B#keysが[]を返すのは、空のHashに対するHash#keysが[]を返すことからの類推と、
そのB#[]の作者が[]メソッドに照会の機能を持たせてるからだと思う
メソッドの戻り値の内容はこっちで吟味するからとりあえず配列を返しといて下さい、という
489デフォルトの名無しさん:2012/05/18(金) 09:28:39.32
プログラム書ける人はIQが高い
490デフォルトの名無しさん:2012/05/18(金) 09:41:22.01
まじかよ街に繰り出してくる
491デフォルトの名無しさん:2012/05/18(金) 12:39:30.67
60%の人間はプログラミングの素質がない
http://cpplover.blogspot.jp/2012/05/60.html
492デフォルトの名無しさん:2012/05/18(金) 15:36:34.75
>>491
そんな事言い出したらなんだってそうだろ。
世の中の90%以上の人間はおそらく野球の素質がないし音楽の素質がないし小説家の素質がない。
むしろ40%の人間に素質があるとしたらいかにプログラミングが誰にでもできることかってことだ。
493デフォルトの名無しさん:2012/05/18(金) 18:43:57.67
馬鹿には無理
494デフォルトの名無しさん:2012/05/18(金) 19:21:31.63
日本人にはプログラムが出来ないと言われていた時代があったんよ。
495484:2012/05/18(金) 21:40:57.68
>>486
>メモリ上にずっとってことなら、処理するPythonを落とさなければ

なるほど、ヒントありがとうございます。
共有メモリ上でオブジェクトをシェアできるPOSH(Python Object Sharing)というものを使って、
lxmlオブジェクトを持つpythonプロセスを常時立ち上げておいて別のプロセスからアクセスというやり方で解決するかもしれません。やってみます。
496デフォルトの名無しさん:2012/05/19(土) 01:11:24.37
>>491
世の中の半数の人間は偏差値50以下ってことですね
判ります
497デフォルトの名無しさん:2012/05/19(土) 01:48:05.15
コマンドラインアプリを作りたいのですが、
Windowsなので文字コードをcp932にしないといけないそうなのですが、
内部がunicodeなので、どうすれば変換できるのでしょうか?
498デフォルトの名無しさん:2012/05/19(土) 01:49:34.09
u"ほげほげ".encode("cp932")
499デフォルトの名無しさん:2012/05/19(土) 02:49:30.18
print u"ほげ"
500デフォルトの名無しさん:2012/05/19(土) 08:09:55.70
Portable Python 2.7.x で、

CGIHTTPServer を立ち上げ

python.exe をキル

再度 CGIHTTPServer を立ち上げ

上をやると、
Could not access runpy._run_module_as_main.
って出て、
2回目以降サーバーが立ち上がらなくなるんですが原因分かる方いますか(´・ω・`)?
501デフォルトの名無しさん:2012/05/19(土) 08:28:28.00
箇条書きにしないでターミナル上の操作(コマンドライン)と出力を
そのまま貼ったほうが回答しやすいと思うよ
502デフォルトの名無しさん:2012/05/19(土) 11:55:52.25
Python 2.7.3をLinux(玄箱 debian)でコンパイルしようとおもってます
おすすめのconfigureオプションなどありますでしょうか?
503デフォルトの名無しさん:2012/05/19(土) 12:21:55.18
>>501
(インストール直後)

C:??>"C:??Portable Python 2.7.3.1??python" -m CGIHTTPServer
CGIHTTPServer Serving HTTP on 0.0.0.0 port 8000.

(タスク マネージャーからpython.exeをキル、その後コマンド プロンプトを立ち上げなおして以下を入力)

C:??>"C:??Portable Python 2.7.3.1??python" -m CGIHTTPServer
Could not access runpy._run_module_as_main.

(以降、ポータブル版を再インストールしない限りサーバーが立ち上がらない)

分かんないですよねー(´・ω・`)
504デフォルトの名無しさん:2012/05/19(土) 12:28:05.82
>ポータブル版を再インストールしない限り

そんな今年なくてもPC再起動でいけるだろ
505デフォルトの名無しさん:2012/05/19(土) 12:50:19.39
>>503
C: >"C: Portable Python 2.7.3.1 python" -m CGIHTTPServer
CGIHTTPServer Serving HTTP on 0.0.0.0 port 8000.

この後にこのコマンドプロンプトからCtrl+Cしたらどうなる?
506デフォルトの名無しさん:2012/05/19(土) 12:54:23.87
あとCtrl+Breakも試してみて
何回か押したり長押しでないと反応しないかもしれない
507デフォルトの名無しさん:2012/05/19(土) 14:54:01.51
portを使用中ってなだけでしょ。
再bind()できてないんだと思う。
optionを--help等で調べてportを適当に変えてみると良い。
--port=8080とかで起動させればうまくいくと思うよ。
508デフォルトの名無しさん:2012/05/20(日) 00:13:26.23
こんばんは。おとといPythonを始めたものです。質問したいのですが、
pascalやC言語では

write('aa');
begin
write('bb')
end

または

write('aa')
write('bb')



printf("aa")
{
printf("bb")
}

または

printf("aa")
printf("bb")

など意味は持たないがインデントを加えたりブロックにすることで視覚的に見やすくするという書き方をたまにしていたのですが、
Pythonでこのような書き方をするにはどのようにすればよいでしょうか
ご教示お願いします
509デフォルトの名無しさん:2012/05/20(日) 00:17:05.55
 write('aa')
  write('bb')
というインデントです
半角だと省略されてしまうんですね;;
510デフォルトの名無しさん:2012/05/20(日) 00:50:17.15
単純に空白4個入れるとかだけど。

if True:
 print('a')
 print('b')

あえて書くならこれぐらい?
でも、改行入れちゃえばそれで事足りる話しだしなー。

おそらく、一つの関数が長大なんでしょう。
きちんと意味単位で関数作ろうよ。
511デフォルトの名無しさん:2012/05/20(日) 01:06:35.42
>>510
ありがとうございます
wxPythonのSizerを

sizer0
 sizer1
  sizer11
   sizer111
   sizer112
  sizer13
  sizer14
 sizer2

大体上記のような親子構造にしようと思っていたのでインデントを加えるかもしくはブロックにできれば見やすいかと思ったので聞きました
あと、Python2.7をPyDevで開発しているのですが空白4つ入れるだけだと実行できなくなってしまいます
512デフォルトの名無しさん:2012/05/20(日) 01:18:00.44
Pythonでは空白を無視しない。
indentを空白で表現するのがPythonの大きな特徴だったりする。

しかし、まあ、落ち着いて。

まずは↓を読んで、
  Dive Into Python 3 日本語版
  http://diveintopython3-ja.rdy.jp/index.html

それから↓も読もう。
  Python のコーディングガイド PEP8 - 日本語訳
  http://www.oldriver.org/python/pep-0008j.html
513デフォルトの名無しさん:2012/05/20(日) 01:42:11.71
>>511
VMのスタック操作とかウィジェットのパッキングとかでやりたくなるよね
でも、Pythonでは諦めたほうがいいと思う
WXFBなどのGUIビルダを使うか
手書きでいくならコメントでなんとかするのがいいと思う
vimなら
# <sizer0> {{{
sizer0
#   <sizer1> {{{
sizer1
#   </sizer1> }}}
# </sizer0> }}}
514デフォルトの名無しさん:2012/05/20(日) 01:52:26.91
>>512
トップレベルの階層に不要なインデントを挿入した
「 print("hello")」
という書き方では実行できず
「print("hello")」
と詰めて書かないといけないので、
ロジック的にCやPascalで意味の無いブロックもしくはインデントを利用するやり方は用意されていないということでしょうか
515デフォルトの名無しさん:2012/05/20(日) 01:59:15.92
>>513
更新してませんでした
月並みな初心者向けの回答ではなく、的確な回答、すっきりと納得しました
GUIビルダーはGUIビルダーで面倒な部分もありコードで乗り切ろうと思ってましたが、これは要検討ですね
ありがとうございます
516デフォルトの名無しさん:2012/05/20(日) 01:59:30.74
  馬鹿
    には
      無理
517デフォルトの名無しさん:2012/05/20(日) 02:00:11.85
こんな感じにするとか
(
  print("hoge"),
   print("fuga"),
  print("foo"),
)
518デフォルトの名無しさん:2012/05/20(日) 02:33:52.86
>>517
レスありがとうございます
タプルを使う発想はありませんでした
ですが見た目のエレガントさは若干落ちますね
519デフォルトの名無しさん:2012/05/20(日) 02:50:39.33
どうしてもやりたいなら

if widget1:
  print('indent1')
  if widget2:
    print('indent2')

だろうね。
520デフォルトの名無しさん:2012/05/20(日) 03:00:05.82
うん、案外使えるかもね。
comment代わりにすればいいんじゃない?

if '色の設定開始':
  self.color = {}
  if '基本的な色の設定':
    self.color['red'] = 0xff0000
    self.color['green'] = 0x00ff00
    self.color['blue'] = 0x0000ff
521デフォルトの名無しさん:2012/05/20(日) 04:23:30.72
>>511
ttp://codereview.stackexchange.com/questions/3989/wxpython-form-builder-sizer-automation
要望とは直接関係無いかもしれないけど参考まで
522デフォルトの名無しさん:2012/05/20(日) 04:25:50.07
523デフォルトの名無しさん:2012/05/20(日) 07:00:58.20
ttp://tvde.web.infoseek.co.jp/cgi-bin/jlab-dat/k/s/dat1337374988433.jpg

1. クウェート国     1961年、イギリスから独立
2. アブダビ首長国  1971年、イギリスから独立
3. ユーゴスラビア   1918年建国、2006年に消滅
4. トンガ王国      1875年建国、1970年にイギリス連邦参加
5. タイ王国       1238年建国
6. モロッコ王国     1956年、フランスから独立
7. サウジアラビア   1932年建国
8. モナコ公国      1297年建国
9. ルクセンブルク大公国 1815年建国
10. レソト王国      1966年、イギリスから独立
11. ベルギー王国   1831年建国
12. ノルウェー王国   1905年建国
13. カタール国     1971年、イギリスから独立
14. ヨルダン国     1946年、イギリスから独立
15. バーレーン国    1971年、イギリスから独立
16. マレーシア国    1963年、イギリスから独立
17. 日本国        紀元前660年建国           ← 俺たちの皇国
18. オランダ王国    1815年建国
19. デンマーク王国   1814年成立
20. ギリシャ       1821年、オスマン帝国から独立
21. ルーマニア     1877年建国
22. ブルガリア      1908年、オスマン帝国から独立
23. ブルネイ       1984年、イギリスから独立
24. スウェーデン王国  1523年建国
25. スワジランド王国  1968年、イギリスから独立
26. リヒテンシュタイン公国 1806年、神聖ローマ帝国より独立


世界唯一のエンペラー表記!!!
属国民族のエベンキ朝鮮猿が土下座しながら、日本に併合支配を願い出たのも当然な気がするwwwwww
524デフォルトの名無しさん:2012/05/20(日) 08:48:23.25
馬鹿には無理
525デフォルトの名無しさん:2012/05/20(日) 11:25:55.96
continue
526デフォルトの名無しさん:2012/05/21(月) 15:34:18.80
>>504-507
遅くなりましてすいません。
実はまだ試せれてないのですが、
家帰ったら色々やってみます(´・ω・`)
ありがとうございす(´・ω・`)
527デフォルトの名無しさん:2012/05/21(月) 19:45:57.63
Pythonをwebサーバ(CGIとしてではなく)として動かす場合について質問させてください
Rubyをwebサーバ(CGIとしてではなく)で動かす場合、webrickとかpassengerとかmongrelとかのプログラムで動かすんですが
Pythonでもそういうwebサーバ(CGIとしてではなく)を動かすプログラムがあるのでしょうか?
528デフォルトの名無しさん:2012/05/21(月) 22:24:03.03
wsgi
529デフォルトの名無しさん:2012/05/21(月) 22:44:19.31
WSGIはCGIといっしょでインターフェース仕様じゃん。
TwistedとかCherryPyでしょ。
530デフォルトの名無しさん:2012/05/22(火) 15:32:39.62
SimpleHTTPServer
531デフォルトの名無しさん:2012/05/22(火) 15:40:37.62
uwsgiとかgunicornとかでしょ
532デフォルトの名無しさん:2012/05/22(火) 22:54:17.84
でしょでしょ
533デフォルトの名無しさん:2012/05/23(水) 08:33:06.94
idleで行番号を表示させる方法ってありますか?
534デフォルトの名無しさん:2012/05/23(水) 20:26:01.56
idle使ってるひとなんているんだw
535デフォルトの名無しさん:2012/05/24(木) 10:40:51.27
>>533
デフォで右下に表示されてるが
536デフォルトの名無しさん:2012/05/24(木) 10:46:59.08
scipyをインストールしたいのですが、
sudo curl -O http://quatramaran.ens.fr/~coudert/gfortran/gfortran-4.6.2-x86_64-Lion.dmg
を実行してその後に
pip install scipy
を実行しても
error: library dfftpack has Fortran sources but no Fortran compiler found
と表示されインストールに失敗します。
どのようにすれば解決しますか?
537デフォルトの名無しさん:2012/05/24(木) 10:48:53.25
すみません、情報載せ忘れていました。
OSはLionの10.7.4でPythonは2.7.1です。コンソールから起動しています。
538デフォルトの名無しさん:2012/05/24(木) 10:50:00.83
読んで字の如し
ScipyにはFortranの環境が必要
539デフォルトの名無しさん:2012/05/24(木) 11:50:59.19
ここで聞く前にエラー文で検索するぐらいはしような
540デフォルトの名無しさん:2012/05/24(木) 13:23:41.07
エラー文で検索するぐらいのことは当然しましたがそれでもわからないので質問したんですけどね。
Fortranの環境作るのも調べてもわからなかったし諦めます。
回答してくれた方ありがとうございます&空気読めない質問してすみませんでした。
541デフォルトの名無しさん:2012/05/24(木) 13:31:19.36
GCCにFortranコンパイラが入っている
542デフォルトの名無しさん:2012/05/24(木) 14:02:05.80
>>540
俺はhomebrewでgfortran入れた。
543デフォルトの名無しさん:2012/05/25(金) 00:17:29.57
windows版最強ですねわかります
544デフォルトの名無しさん:2012/05/25(金) 04:27:44.92
最先端の言語であるPythonが
古代言語Fortranなんぞに頼るシチュってどんなだよw
545デフォルトの名無しさん:2012/05/25(金) 05:00:22.81
俺も最近ScipyをMacに入れようと思ったらFortranコンパイラが入っていないと言うので
試行錯誤してたらOSの重要ファイル上書きしてしまって起動しなくなったw
OS自体は何とかレスキューしたが未だにコンパイラが入らない...
Ubuntuで試したらアッサリ入ったんだけども
546デフォルトの名無しさん:2012/05/25(金) 05:04:15.07
>>540
こういう手のひら返しってどうなの?
つーかそんなアッサリ諦めてる姿勢も意味不明
547デフォルトの名無しさん:2012/05/25(金) 05:04:27.39
動くか知らないけど
https://github.com/fonnesbeck/ScipySuperpack
548デフォルトの名無しさん:2012/05/25(金) 14:29:50.13
seekできないfileオブジェクトを参照なしでコピーしたいのですが、どうすればいいでしょうか
イメージとしては
f = open('test.txt','r')
a = copy(f)

としたときに
a.read()
f.read()
で、どちらも読み込めるようにしたいのですが
549デフォルトの名無しさん:2012/05/25(金) 14:44:19.72
reopen
550デフォルトの名無しさん:2012/05/25(金) 14:46:25.22
不可能。
551デフォルトの名無しさん:2012/05/25(金) 14:47:29.71
f = open('test.txt','r')
b = f.read()
c = copy(b)
552デフォルトの名無しさん:2012/05/25(金) 14:48:03.27
対象ファイルが物理的にどういう配置になってほしいのか文法を離れて考えてみるんだ
553デフォルトの名無しさん:2012/05/25(金) 14:51:32.32
急にレベル落ちたな
554デフォルトの名無しさん:2012/05/26(土) 13:35:33.85
8gbのメモリを積んだpcでも16gbのメモリを積んだ
pcでも
[i for i in range(100000000)]
とかにするとmemorryerrorがでちゃいますが
使えるメモリ量を変更することって出来ませんか?
555デフォルトの名無しさん:2012/05/26(土) 14:13:47.58
Where is the sponge I asked you to buy?
I couldn't see a good one. They all had holes in them.
556デフォルトの名無しさん:2012/05/26(土) 14:14:35.60
[i for i in xrange(100000000)]
557デフォルトの名無しさん:2012/05/26(土) 16:02:05.84
PythonもC言語みたいに分岐予測を活かすために条件分岐のは浅くしたほうが良いんですか?
逐次実行だから関係ない?
558デフォルトの名無しさん:2012/05/26(土) 16:06:20.59
>>554
もちろんPythonは64bitですよね?
559デフォルトの名無しさん:2012/05/26(土) 16:16:56.72
>>557
そんなに速度を気にするならCで書いたほうがいいよ
560デフォルトの名無しさん:2012/05/26(土) 18:57:41.60
処理系自分で作れば良いじゃん
561デフォルトの名無しさん:2012/05/26(土) 19:56:54.50
それなんてLLVM?
562デフォルトの名無しさん:2012/05/27(日) 00:29:54.66
>>> import time
>>> def dofunc(func):
... t1 = time.time()
... func()
... t2 = time.time()
... print t2 - t1
...
>>> def a():
... g = []
... for i in xrange(1000000):
... g.append(i)
... print len(g)
...
>>> def b():
... g = []
... [g.append(i) for i in xrange(1000000)]
... print len(g)
...
563デフォルトの名無しさん:2012/05/27(日) 00:30:10.43
>>> dofunc(a)
1000000
0.375
>>> dofunc(b)
1000000
0.344000101089
>>> dofunc(a)
1000000
0.218000173569
>>> dofunc(b)
1000000
0.343999862671
>>> dofunc(a)
1000000
0.203000068665
>>> dofunc(b)
1000000
0.18700003624
>>> dofunc(a)
1000000
0.141000032425
>>> dofunc(b)
1000000
0.202999830246
>>>
564デフォルトの名無しさん:2012/05/27(日) 01:30:49.13
intを2億個生成すると1.5GBメモリ使うから
[i for i in range(100000000)]
OSの制限で基本的に2GBのメモリ制限を受ける32ビットプロセスでこんなことやった日には即死リーチ
565デフォルトの名無しさん:2012/05/27(日) 12:03:31.80
Content-typeヘッダから拡張子を判断するにはどのライブラリ使えばいいんですか?
566デフォルトの名無しさん:2012/05/27(日) 12:11:31.54
18.7. mimetypes ― ファイル名を MIME 型へマップする ― Python 2.7ja1 documentation
http://www.python.jp/doc/release/library/mimetypes.html#mimetypes.guess_extension
567デフォルトの名無しさん:2012/05/27(日) 12:13:20.31
かぶるけど勿体ないから貼る

>>> import mimetypes
>>> mimetypes.guess_all_extensions("text/html")
['.html', '.htm', '.shtml']
568デフォルトの名無しさん:2012/05/27(日) 12:15:00.52
その逆関数をしたいんです
mimeToExt("text/plain")と入れたら.txtと返ってくる的な
569デフォルトの名無しさん:2012/05/27(日) 12:16:28.30
よく見てなかった、ありがとうございます・・・
570デフォルトの名無しさん:2012/05/27(日) 13:27:19.92
>>564 逆に64bit pythonなら大丈夫何ですか?
64bitだと相性悪くって使ってなかったんですけど
571デフォルトの名無しさん:2012/05/27(日) 16:11:24.22
[i for i in range(100000000)]
64bit版で空きメモリ4.3GBくらいだけど無理だった
int32が100*100万個の配列でも400MBしかならないよね?
何で足りないんだろ
5000万個は通った
572デフォルトの名無しさん:2012/05/27(日) 16:41:59.25
お前ら、

32bit環境
>>> n = 1
>>> n.__sizeof__()
14

64bit環境
>>> n = 1
>>> n.__sizeof__()
28

これ知ってて言ってんの?
573デフォルトの名無しさん:2012/05/27(日) 16:43:23.99
知らない。
初心者はそういう言語の内部構造には興味ないから。
574デフォルトの名無しさん:2012/05/27(日) 16:49:31.72
でも1個28bytesでも1億個で2.8GBだし・・・
575デフォルトの名無しさん:2012/05/27(日) 17:34:41.77
省メモリにするにはarray.arrayを使ったらいいよ
576デフォルトの名無しさん:2012/05/27(日) 17:36:23.26
それよりScipy

そんなクソでかい配列をPythonでいじろうなどとは烏滸の沙汰
577デフォルトの名無しさん:2012/05/27(日) 17:59:37.58
じゃあ、これは?

32bit環境
>>> None.__sizeof__()
8
>>> id(None)
136045584
>>> x = [None] * 4
>>> for i in x:
... print(id(i))
...
136045584
136045584
136045584
136045584
>>> for i in range(27, 30):
... n = 1 << i
... print('i =', i, 'n =', n)
... print('__sizeof__() =', ([None] * n).__sizeof__())
... print()
...
i = 27 n = 134217728
__sizeof__() = 536870932

i = 28 n = 268435456
__sizeof__() = 1073741844

i = 29 n = 536870912
Traceback (most recent call last):
File "tech571_2.py", line 4, in <module>
print('__sizeof__() =', ([None] * n).__sizeof__())
MemoryError
578デフォルトの名無しさん:2012/05/27(日) 18:07:16.50
美しい人生よ 限りある喜びよ
579デフォルトの名無しさん:2012/05/27(日) 18:13:46.97
>>573
内部構造を知ろうとしないで実memory使用量分かるわけないよ。
言い方が悪くて恐縮だけど、
傍から見るとちょっとトンチンカンなことを、あなたたちはやってたの。

また、別途listのためのmemoryが必要なんだけど、
>>577のように、
約2億7千万個の要素を持つlistを作成するのに必要なmemoryは1GB

一億個でも380MBぐらいっぽいね。
>>> ([None] * 100000000).__sizeof__() / (1024 ** 2)
381.4697456359863

Pythonで使用するlistのmemory量を考える時には、
listに突っ込むobjectのみでなく、
listそれ自体のmemory使用量も考える必要があるわけ。

で、>>571が何で足りないんだろ?と疑問に思ったのは、
listの実memory使用量を考慮していなかったからだと思います。
580デフォルトの名無しさん:2012/05/27(日) 22:07:32.67
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
581デフォルトの名無しさん:2012/05/28(月) 03:17:55.36
>>578
それは“I”のメモリーだろw
つまりマイ・メロディーだ
582デフォルトの名無しさん:2012/05/28(月) 04:58:19.19
  ∩∩ 
 (・x・)
583デフォルトの名無しさん:2012/05/28(月) 05:14:57.31
>>582
ミッフィーかよ!
584デフォルトの名無しさん:2012/05/28(月) 11:17:55.38
ずれてる
585デフォルトの名無しさん:2012/05/28(月) 20:57:43.96
大規模行列はnumpyでっていうのはわかるんですが、メモリの使用量も少なくなるのでしょうか?
NumpyのC側で効率のいいデータ構造を使っているとか
586デフォルトの名無しさん:2012/05/29(火) 01:12:29.03
visual studioのスレでも聞いたのですが,回答がなかったのでお願いします

python tools for visual studioを使っているんですが
スペルミスなどをしたときに出るはずの未定義変数の表示が出ません

c++の時はちゃんと教えてくれるのですが、pythonは何か設定が必要なのでしょうか?
587デフォルトの名無しさん:2012/05/29(火) 12:57:36.16
import test_module1
の代わりに
test='test_module1'
import test
のようにimportの引数に変数を使う方法を教えて下さい。
588デフォルトの名無しさん:2012/05/29(火) 13:34:26.10
__import__
589デフォルトの名無しさん:2012/05/29(火) 14:35:43.33
>>588
ありがとうございます!
590587:2012/05/29(火) 15:36:52.18
>>588
module = __import__('test_module1', globals(), locals(), [])
print module.hennsuu1
ですね。トンクス。
http://d.hatena.ne.jp/perezvon/20080129/1201623922
591デフォルトの名無しさん:2012/05/31(木) 15:28:51.75
プログラム書ける人は器が大きい
592デフォルトの名無しさん:2012/05/31(木) 16:55:57.68
マジで
ちょっと街に繰り出してくるわ
593デフォルトの名無しさん:2012/05/31(木) 19:55:47.51
Python 2.7でXMLを編集する方法について教えてほしい。

<XMLTree>
<node name="hoge">
1 2 3
</node>
</XMLTree>

といった構造のXMLファイルを読み込んで、
nodeのnameをfugaに、node内の数列の全要素に
四則演算を行って、変更内容を反映したXMLを
再度XML形式で出力したいんだけど、
XMLを部分的に変更して書き出すような
サンプルがなかなか見つからない。
何かいい方法はないだろうか?
普段XML読むときはElementTree使っているのだが。
594デフォルトの名無しさん:2012/05/31(木) 20:18:53.84
import xml.etree.cElementTree as ET
root = ET.parse("2ch.xml").getroot()
for node in root.findall(".//node[@name='hoge']"):
    node.tag = "fuga"
    node.text = str(sum(map(int, node.text.split(" "))))
print ET.tostring(root)
595デフォルトの名無しさん:2012/05/31(木) 22:36:58.62
>>594
おぉー、即レス感謝!
node.tagはタグ名が変わっちゃうな。
node.set("name", "fuga")でうまくいったわ。
やりたかったことは一通りできそうだ。

textはそのまま代入すればいいんだな。
アトリビュートはsetでテキストは代入ってのが
何となく感覚に合わないが…。
596デフォルトの名無しさん:2012/05/31(木) 23:04:23.02
>>595
代入に統一したければ node.attrib["name"] = "fuga" も可
597593:2012/05/31(木) 23:08:24.04
>>596
おぉ、これまた即レスthx
こっち使うことにするわ。
598デフォルトの名無しさん:2012/05/31(木) 23:12:38.29
attribを直接さわるのは中の人的には非推奨らしいからできればset使うべき
599デフォルトの名無しさん:2012/06/01(金) 00:34:36.96
禿しく同意
600デフォルトの名無しさん:2012/06/01(金) 02:30:26.08
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
601デフォルトの名無しさん:2012/06/01(金) 08:41:19.96
シメジ
602デフォルトの名無しさん:2012/06/01(金) 09:18:13.89
既出ですまないが、「みんなのPython」「PYTHONクイックリファレンス」
「PYTHONクックブック」を揃えてしまったが、今から勉強するなら
やはり3.0以上のほうがいいのかな?
603デフォルトの名無しさん:2012/06/01(金) 10:17:15.73
同時にやればいい
604デフォルトの名無しさん:2012/06/01(金) 11:24:13.98
SyntaxWarning: name 'x' is used prior to global declaration
のようなワーニング表示を止めるようなオプションがあれば教えて下さい。
605デフォルトの名無しさん:2012/06/01(金) 12:43:47.75
警告が出ないように書けよ
606デフォルトの名無しさん:2012/06/01(金) 12:45:57.30
ウォーニング
607デフォルトの名無しさん:2012/06/01(金) 13:46:41.06
python -W ignore
608604:2012/06/01(金) 15:19:52.34
>>607
サンクス!
時間があれば警告出ないようにしてみるお。
609デフォルトの名無しさん:2012/06/02(土) 23:57:33.93
2ちゃんねるのdat落ちスレのdatを●使って取得するときの要求メッセージの仕方がわかりません
sessionidは取得できたんだけど
ttp://www.monazilla.org/index.php?e=205
↑このページの下の方に書かれている GET /test/〜略〜 HTTP/1.1 やら
Acceptを設定してGET通信する具体的な方法がわからないんです教えてください
610デフォルトの名無しさん:2012/06/03(日) 00:08:50.29
header作るだけだよ
611デフォルトの名無しさん:2012/06/03(日) 00:17:20.56
質問させてください。
現在、以下の様なプログラムを作りたいと思っています。
@外部からデータを受け取る
A取得したデータに演算を行い、結果をファイルに書く

Aの演算には少々時間がかかります。

そこで、@Aを別々のスレッドにしたいと思います。
@ではデータを受け取りキューに突っ込むだけで終わり
Aは@が突っ込むキューを監視し、データが入ってきたら処理を行う
のようなプログラムにしたいと思います。

Aでキューを監視する場合、ビジーループにならないようにするためにはどうすればいいでしょうか?


よろしくお願いいたします
612デフォルトの名無しさん:2012/06/03(日) 00:25:08.08
他人の話題にケチつけて自演してでも自分の話題を盛り上げたい奴が居るようだ。
613デフォルトの名無しさん:2012/06/03(日) 00:32:41.23
614デフォルトの名無しさん:2012/06/03(日) 00:33:59.68
>>610
とりあえず下のサイトに辿り着きました。
ttp://www.python.jp/doc/release/howto/urllib2.html
ありがとうございます。ちょっとやってみます
615デフォルトの名無しさん:2012/06/03(日) 00:36:59.06
>>613
ありがとうございます!
こんなに早く回答いただけるとは思いませんでした!!
簡単に見てみましたが、スレッド操作もキューの実装も標準のAPIだけでかなり充実しているみたいですね
ドキュメントよく読んで、何を使うべきか検討してみます

ありがとうございました
616デフォルトの名無しさん:2012/06/03(日) 00:51:22.78
609です。たびたびすみません
GET /test/offlaw.cgi/[板名]/[スレッド番号]/?raw=0.0&sid=[セッションID] HTTP/1.1
↑これはheaderに加えなくていいんですよね?
617デフォルトの名無しさん:2012/06/03(日) 01:29:30.79
馬鹿には無理
618デフォルトの名無しさん:2012/06/03(日) 01:39:17.21
>>617
すいませんできました大変失礼しました
619デフォルトの名無しさん:2012/06/03(日) 01:54:06.51
4進数の桁1つと、2進数の桁2つで000から311までを表示させたいのですが
すべて311の表示になってしまいます
どこが間違っているのか分かりません教えてください

p = 4 * [2 * [2 * [3 *[0]]]]

i = 0
while i < 4:
j = 0
while j < 2:
k = 0
while k < 2:
p[i][j][k][0] = i
p[i][j][k][1] = j
p[i][j][k][2] = k
k = k + 1
j = j + 1
i = i + 1

i = 0
while i < 4:
j = 0
while j < 2:
k = 0
while k < 2:
print p[i][j][k]
k = k + 1
j = j + 1
i = i + 1
620デフォルトの名無しさん:2012/06/03(日) 01:56:44.77
見にくいので訂正します

p = 4 * [2 * [2 * [3 *[0]]]]

i = 0
while i < 4:
  j = 0
  while j < 2:
    k = 0
    while k < 2:
      p[i][j][k][0] = i
      p[i][j][k][1] = j
      p[i][j][k][2] = k
      k = k + 1
    j = j + 1
  i = i + 1

i = 0
while i < 4:
  j = 0
  while j < 2:
    k = 0
    while k < 2:
      print p[i][j][k]
      k = k + 1
    j = j + 1
  i = i + 1
621デフォルトの名無しさん:2012/06/03(日) 02:03:24.34
>619-620
# p = 4 * [2 * [2 * [3 *[0]]]]
p = [ [ [ [ 0 for i in xrange(3)] for j in xrange(2) ] for k in xrange(2) ] for l in xrange(4) ]
622デフォルトの名無しさん:2012/06/03(日) 02:12:30.90
>>621
ありがとうございます!!
できました
623デフォルトの名無しさん:2012/06/03(日) 06:31:54.86
くだらねぇもの貼るなよ。
半年振りのレスがこれかと思うと泣けてくる。
624デフォルトの名無しさん:2012/06/03(日) 08:34:48.97
スレタイの「くだ」って何だっけか
625デフォルトの名無しさん:2012/06/03(日) 08:36:16.27
ザ・マルチ
626! 【15.8m】 :2012/06/03(日) 13:13:57.25
てすと
627デフォルトの名無しさん:2012/06/03(日) 13:52:40.52
マルチというか、ただの能なしbot >> 623
628デフォルトの名無しさん:2012/06/03(日) 13:58:56.32
「くだ」は「くだらない質問はここで」の略
くだらない回答は許されておりません
629デフォルトの名無しさん:2012/06/03(日) 18:02:35.99
腹が下る
630デフォルトの名無しさん:2012/06/03(日) 18:16:00.75
プロプログラマーの皆さんにはくだらない質問かもしれませんが教えてくださいスレ
631デフォルトの名無しさん:2012/06/03(日) 19:02:19.28
>>627
ああ、botだったんだw
632 忍法帖【Lv=5,xxxP】 :2012/06/03(日) 20:33:46.67
本スレにも来てたから分かりやすい、というかそもそも意味が通じてないしな
633デフォルトの名無しさん:2012/06/03(日) 21:05:14.27
川崎重工と東芝、台湾で新幹線48両を受注
川崎重工業と東芝は24日、台湾高速鉄道から、東海道・山陽新幹線で運行されている「700系新幹線」をベースとした
高速鉄道車両を共同受注したと発表した。受注したのは4編成48両で、受注総額は非公表だが190億円程度とみられる。
川重と東芝は、2000年12月に台湾で、三菱重工業や三菱商事など国内7社連合で
360両の新幹線とシステムを3320億円で受注しており、納入実績が評価されたという。

台湾高速鉄道は、海外の高速鉄道としては初めて新幹線を採用し、07年1月に営業運転を開始。
15年には台北〜南港駅を結ぶ5.7キロの路線延長を予定しており、今回、受注した車両を導入する計画としている。
http://sankei.jp.msn.com/economy/news/120524/biz12052417470033-n1.htm
634デフォルトの名無しさん:2012/06/04(月) 17:57:25.33
プログラム書ける人は意思が強い
635デフォルトの名無しさん:2012/06/04(月) 19:07:20.62
マジかよ誘惑と戦ってくる
636デフォルトの名無しさん:2012/06/04(月) 19:21:04.50
今日も原因不明のエラーと戦って日が暮れた
637デフォルトの名無しさん:2012/06/04(月) 19:27:37.82
俺は「ごめんテストデータ間違ってた」とか言われたわ
出勤したくない
638デフォルトの名無しさん:2012/06/05(火) 13:58:48.07
pythonを勉強したら何が作れるようになるの?
639デフォルトの名無しさん:2012/06/05(火) 14:13:05.53
ラーメンタイマー
640デフォルトの名無しさん:2012/06/05(火) 16:15:51.71
pythonはcのように初期化子のない変数は宣言できないないのですか?
641デフォルトの名無しさん:2012/06/05(火) 17:07:11.61
できないないのです
642デフォルトの名無しさん:2012/06/05(火) 17:09:19.01
Noneでも突っ込んでおけ
643デフォルトの名無しさん:2012/06/05(火) 17:59:54.61
グローバル変数を宣言する時はNoneを入れておけばいいのですか。ありがとうございます。
Noneの型は気にしなくてもいいのですか?つまり暗黙の型変換が行われるということでしょうか。
動的型付けの言語の勉強始めてなのですがいろいろと分からなくて。
すみません。
644デフォルトの名無しさん:2012/06/05(火) 18:54:41.27
>>> a = None
>>> type(a)
<type 'NoneType'>
>>> a = 1
>>> type(a)
<type 'int'>
645デフォルトの名無しさん:2012/06/05(火) 18:59:52.61
pythonすげー(´Д` )
cをちょっとかじって、pythonでもopengl使えるというのを知って、pythonの勉強をつい最近始めたのですが......
すげー

ありがとうございます!
646デフォルトの名無しさん:2012/06/05(火) 19:08:41.27
連投すみません。
それから、pythonはcとは異なりインタプリタなので、main()を書かなくてもいいようですが、プログラムの流れが明確になるように、main()のような関数を書くというのはどうなのでしょうか。
647デフォルトの名無しさん:2012/06/05(火) 19:10:53.47
全然構わない
648デフォルトの名無しさん:2012/06/05(火) 19:16:35.91
ありがとうございます!
さっそく勉強してきます。
文字列の比較や結合が簡単に出来てすごい感動(´Д` )
649デフォルトの名無しさん:2012/06/05(火) 19:20:16.67
今時のメジャーな言語で文字列の比較や結合が面倒なのは C/C++ 位じゃね?
650デフォルトの名無しさん:2012/06/05(火) 19:30:33.48
c++のstringクラス使えば同じようなことできるけど、cにはないからなあ。
変にこだわってstrcpy()とかstrcat()とか自作すると、自分のやりたいことから遠ざかったりする思い出w
651デフォルトの名無しさん:2012/06/05(火) 22:51:14.86
文字列比較で感動ってすごいな

何時の時代の人?

.NETとか使ったら失神するんじゃね
652デフォルトの名無しさん:2012/06/05(火) 23:02:20.01
C一筋云十年。
ずっと組み込みをやってきましたが食えなくなりました。
なーんて、よくある話だろう。
653デフォルトの名無しさん:2012/06/05(火) 23:37:30.53
>>643
変数には型がない
だからNoneが入っている変数にその後まったく別の型の値を入れることもできる
ただしC言語などとは違い、入れた値のほうは自分の型をキッチリ把握している
654デフォルトの名無しさん:2012/06/06(水) 16:35:30.51
>>> a = None
>>> type(a)
<type 'NoneType'>
>>> type(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined


aをnot definedにすることは可能ですか?
655デフォルトの名無しさん:2012/06/06(水) 16:35:41.41
del a
656デフォルトの名無しさん:2012/06/06(水) 16:38:22.70
del a
657デフォルトの名無しさん:2012/06/06(水) 16:38:52.77
del a
658デフォルトの名無しさん:2012/06/06(水) 20:54:26.25
善意の回答者が多すぎて泣いた
659デフォルトの名無しさん:2012/06/06(水) 21:02:40.24
exit(1)
660デフォルトの名無しさん:2012/06/06(水) 21:57:39.48
raise SystemExit(1)
661デフォルトの名無しさん:2012/06/07(木) 20:05:54.55
>>655->>657

delaっ
delaっ
delaっ

バーニングハ〜
662デフォルトの名無しさん:2012/06/08(金) 08:49:37.45
既出ですまんが、本当に2.X は無視して3.xに全力注いでいいんですか?
663デフォルトの名無しさん:2012/06/08(金) 13:24:48.36
あんた初めてなんか?
3.x を無視して 2.x に全力で取り組め
664デフォルトの名無しさん:2012/06/08(金) 15:19:19.24
2.Xで予習しつつ3.xに全力を注げ
665デフォルトの名無しさん:2012/06/09(土) 22:54:07.79
python2.7 utf-8です。

>>> a="a"
>>> a
'a'

これはこうなるのに
>>> a="あ"
>>> a
'\xe3\x81\x82'

これが「あ」ではなく、utf-8の「あ」のコードだと思うのですが、それになってるのはなんででしょうか?

printを使うと「あ」がでてきました
>>> print(a)


ちなみに
>>> print('\xe3\x81\x82')

>>> print('あ')

となりました。

666デフォルトの名無しさん:2012/06/09(土) 22:59:37.00
667デフォルトの名無しさん:2012/06/09(土) 23:03:56.60
対話コンソールの出力は特殊なの
668デフォルトの名無しさん:2012/06/09(土) 23:23:38.88
print だと
'あ' と u'あ' の結果が
(勝手にdecodeされて)
一緒になるので区別出来ないよね
669デフォルトの名無しさん:2012/06/09(土) 23:27:48.47

昨年、台湾の雑誌『遠見』が20歳以上の1000人にアンケートしたところ
「一番尊敬する国」「一番移住したい国」などの筆頭に日本が挙げられた
そうだ。

そういえば以前、台湾に旅行をした際に、現地で知り合った人に好意的に受け
入れられ、台湾は「親日」なんだと実感したことがある。
でも、どうして台湾は親日なのだろう。

産能短期大学講師で『日本に恋した台湾人』などの著書で知られる謝 雅梅さん
にお話を伺った。

「やはり歴史背景は大きいですね。日本統治時代(1895〜1945年)、
その目的はどうであれ、日本が台湾のインフラを整備したことは今でも高く
評価されてます。72歳になる私の父は、小学校4年生まで日本の教育を受け
ましたが、不思議と日本人に立ち居振る舞いも似てくるんですね。いわゆる
日本の頑固親父と一緒(笑)」

では、65年生まれの謝さんや若い世代にも親日派が多いのはなぜ?

「私の世代の場合、反日教育も受けましたが、父の世代からいい印象も聞いて
います。日本のテレビ番組や雑誌なども昔からあって、よく見てました。今、
20代くらいの若者には、日本の音楽やファッション、マンガやゲームなどの
サブカルチャーが人気です。彼らの世代になると、もう日本との歴史をよく
知らないんですよ。台湾も、日本のようにアメリカの影響は大きいんですが、
やはり同じアジアの日本文化の方が肌に合う。これは一過性の流行ではなく、
親日感情は昔から繋がっているんです」(同)
http://headlines.yahoo.co.jp/hl?a=20070802-00000002-rec_r-int
670デフォルトの名無しさん:2012/06/09(土) 23:56:37.84
指定されたページを表示できませんでした。

記事がありません。すでに削除された可能性があります。
671デフォルトの名無しさん:2012/06/10(日) 02:38:01.68
マジかよ
672デフォルトの名無しさん:2012/06/10(日) 09:42:20.64
20070802
ニュースサイトなのに過去記事に辿れないなんて糞新聞
673デフォルトの名無しさん:2012/06/11(月) 15:00:39.42
プログラム書ける人はポジティブ
674デフォルトの名無しさん:2012/06/11(月) 15:05:29.91
照れるなー
675デフォルトの名無しさん:2012/06/11(月) 15:54:45.15
>>674
お前のことじゃねーし、俺だし
676デフォルトの名無しさん:2012/06/11(月) 17:07:23.06
pass
677デフォルトの名無しさん:2012/06/11(月) 17:48:30.47
教えてください。

VLCでMPEG2TSをRTSP配信状態にしてPythonで受信するようにしたいのですが
socketで接続まではできていると思うのですが、そのあとでMPEG2TSのデータを
取り出すには何をしたらよいでしょうか?
678デフォルトの名無しさん:2012/06/12(火) 10:28:11.62
水車を何百年もかけて結局普及出来なかった国のお話

 エベンキ朝鮮猿の知能が犬や猿以下だったことの証明www

 ↓中国と日本から何度も輸入しているのだが・・・

1429世宗11年12月3日 日本の水車が凄いと報告
1430世宗12年9月27日 水車を造ろうとする
1431世宗13年5月17日 「中国も日本も水車の利を得ているが我が朝鮮にはそれがない」
1431世宗13年11月18日 日本と中国の水車の研究の記述が散見
1431世宗13年12月25日 水車導入を試みる
1451文宗元年11月18日 20年かけて水車の導入失敗
1488成宗19年6月24日 水車導入の試み(成否不明)
1502燕山君8年3月4日 水車導入の試み(成否不明)
1546明宗元年2月1日 水車導入の試み。琉球(沖縄)と中国から福建式水車輸入
以後百年間水車の記述無し 一方お隣り日本では、鉄砲伝来後3年目にはすでに量産体制。
1650孝宗元年5月15日 水車導入の試み 30年記述無し 一方お隣りの日本では、鉄砲量産10万丁
1679肅宗5年3月3日 水車を造らせたと記述。そして70年記述無し
1740英祖16年4月5日 水車など無くなりました『孝宗大王嘗頒遼瀋水車之制於外方, 今無見存者』
1740英祖16年11月20日 水車を造らせたと記述(18世紀時点でわざわざ記録に残す程?)
1764 1763-64年の朝鮮通信使「日東壮遊歌」(淀城の水汲み水車の感想)
「その仕組みの巧妙さ見習って作りたいくらいだ」と記述
1795正祖19年2月18日 水車之制について盛んに出てくる。つまり試作中
1811純祖11年3月30日 ここの記述で水車なんか必要なのか?と書かれており全く普及していない事が読み取れる
679デフォルトの名無しさん:2012/06/12(火) 10:50:54.03
>>678
嫌韓はよそでやってくれよ、この暇人歴史オタク!
680デフォルトの名無しさん:2012/06/12(火) 16:57:17.48
Pythonで50Gぐらいをメモリに載せてみようと思うのですが可能でしょうか?
Python(64bit2.7系/OSはUbuntu64bit)を考えています
手持ちに50GB載せられるハードが無いので一式買おうと思うのですが、
もし買った後にダメだとなると厳しいので事前に知っておきたいです
681デフォルトの名無しさん:2012/06/12(火) 18:39:19.83
駄目
682デフォルトの名無しさん:2012/06/12(火) 19:52:31.00
>>680
Windowsで30Gくらいでよければ試せるんだけど
試したいコード書いてくれない?

下のは怒られた

>>> l = range(1024*1024*1024*20)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: range() result has too many items
683デフォルトの名無しさん:2012/06/12(火) 21:14:59.60
>>682
ありがとうございます。基本的には単純なリストになります。
リストの中にlxml(>>484)が返す特殊オブジェクトを数十万件格納したいと考えています。

今の環境はMac(64bit)の12GBメモリなのですが10GBぐらいまではpythonの一つのスレッドで問題無く動きました。
それ以上になるとHDDのスワップを使い出します。
pythonが一つのスレッドで扱えるメモリ最大量がわかるとありがたいのですが...調べてもなかなか情報がありません。
もしメモリを積めば積んだだけpythonで使えるようなら、思い切って64GBメモリのPCを自作してみようと思ってます。
684683:2012/06/12(火) 21:26:15.95
結局コードは以下のようなリストになります
list = [o1 , o2 , o3 ,o4 ...... , on ]
一つのオブジェクトoはだいたい300KBぐらいのサイズで、これを数十万件ぐらいリストにしたいのです
685デフォルトの名無しさん:2012/06/12(火) 21:45:16.44
SAXっぽいAPIを使えばメモリはごく少量で済むよ
http://lxml.de/tutorial.html#event-driven-parsing

そもそも数十万件ともなるとXMLを永続化に使うのが適切な事例かどうか怪しい
686デフォルトの名無しさん:2012/06/12(火) 21:48:20.72
力の入れどころ間違えてるよね
687デフォルトの名無しさん:2012/06/12(火) 22:00:09.28
>>683
オンメモリのsqlでも使った方がいいんじゃね
688デフォルトの名無しさん:2012/06/12(火) 22:35:06.51
ホームラン級の(画像ry
689デフォルトの名無しさん:2012/06/12(火) 22:53:31.93
>>684
う〜ん48G積んだマシンで他にもプロセス動いているから31G空き状態で

>>> l = range(1024*1024*1024)

をやってpython.exeが32Gを超えたあたりでスラッシング始めたのでプロセス殺した
テスト用のコードが出せるなら試すけど、そうでなければ自分でやってみたほうが早いかもね
690デフォルトの名無しさん:2012/06/12(火) 23:06:28.91
XMLのパース速度が遅いってんなら当たり前の話なので
たぶんSQLiteをオンメモリじゃなくHDDに吐いても十分間に合う類の事例
691683:2012/06/12(火) 23:55:02.06
皆さん突っ込みありがとうございます。
自分の質問の仕方が悪くてlxmlに焦点があたってしまっていますがそこは関係が無く、
「超大規模データをリストやハッシュなどで持つとどのあたりでPythonの限界に達するのか、
あるいはPython自体に限界は無くてメモリ容量に近いところまではいけるのか」というのが質問の本意なのです。

>>687 >>690
lxmlのオブジェクトはPickleできないのでストレージには保存できませんし、memcached等にも保存できません。
そこで苦肉の策として 1.使うたびにパースする 2.メモリに載せておく の2通りしか無いのです。

>>685
SAXですか!それはいいかもしれません。DOMが便利なのでそれしか頭にありませんでした。試してみます。

>>689
l = range(1024*1024*1024)
自分もこれをやってみたのですがメモリを食いつぶした後はOSがswapを使い出しました。
つまり積んでいるメモリの限界近くまではpythonが処理してくれるということなのでしょうか。
今の所そういう結論に至っています。お手を煩わせてすいませんでした。ありがとうございます。
692デフォルトの名無しさん:2012/06/13(水) 00:04:56.76
ばらしてDBにつっこめばいいじゃん
693デフォルトの名無しさん:2012/06/13(水) 00:07:18.95
頭固いって言われない?
694デフォルトの名無しさん:2012/06/13(水) 00:13:14.51
いや、できるかぎり処理対象をメモリにのっけて高速化しようってことじゃないか
redisとか使えそうだけどどうなんだろ
695デフォルトの名無しさん:2012/06/13(水) 00:27:15.77
永続化しづらいorできないから、いかにメモリにのせて高速に処理するかって話なんじゃないの
lxmlは使った事無いからよく知らないけど組み込み型以外のオブジェクトは永続化できないでしょ
696デフォルトの名無しさん:2012/06/13(水) 00:44:38.00
>>693
じゃあ解決策を提示してあげれば
697デフォルトの名無しさん:2012/06/13(水) 00:46:29.84
SAXならいいかもとか言っているし、もっともっと低次元な問題だと思う
698デフォルトの名無しさん:2012/06/13(水) 00:48:18.34
とりあえずXMLがどんな構造なのか分からんとね
699デフォルトの名無しさん:2012/06/13(水) 01:50:50.56
お前らが馬鹿ということはよくわかった
700デフォルトの名無しさん:2012/06/13(水) 02:00:30.37
質問に答えられない人が質問内容と関係無いところに突っ込んで悦に浸るスレと聞いて
701デフォルトの名無しさん:2012/06/13(水) 02:12:51.86
pass
702デフォルトの名無しさん:2012/06/13(水) 12:05:16.20
プログラム書ける人は懐が深い
703デフォルトの名無しさん:2012/06/13(水) 12:35:14.57
問題分析よりも現金投資の方が早いと踏んでるならそれで良いやんけ
貧乏人じゃないんだよ
704デフォルトの名無しさん:2012/06/13(水) 12:37:03.51
lxmlオブジェクトってそんなにいいものなのか?
705デフォルトの名無しさん:2012/06/13(水) 14:21:24.61
メモリに載せちゃった方が速いから全部載せたいですっていう質問者に対して
「HDDに保存しなさい」とかアドバイスしてて滑稽極まりないんだが
いつから質問スレはこんな意味不明な烏合の衆になったわけ?
706デフォルトの名無しさん:2012/06/13(水) 14:23:04.86
>>683

本スレより引用
>CPythonのobjectだったら、最大メモリ量による制限はないよ。
>メモリサイズを管理してる変数のoverflowチェックが実質的な制限。
>(intだったら桁数、リストだったら最大要素数の様な制限等はある)
707デフォルトの名無しさん:2012/06/13(水) 16:18:06.21
馬鹿には無理
708デフォルトの名無しさん:2012/06/13(水) 18:48:14.82
sqliteでも使えばいいじゃん
メモリでつかe
709デフォルトの名無しさん:2012/06/13(水) 19:04:25.70
何が何でもlxml使うんだよ
例え魂取られるとしてもだ
それ以外の選択肢はない
あるものとは認めない
知らない
710デフォルトの名無しさん:2012/06/13(水) 19:06:26.69
絶対的lxml
711デフォルトの名無しさん:2012/06/13(水) 19:08:52.93
俺は面倒くさいんだ
最初に見当をつけた方法で最後まで押し通すのが好きだ
邪魔をするな
金ならいくらでもあるぞ
712デフォルトの名無しさん:2012/06/13(水) 19:11:49.48
YAML試してみ
標準object以外もserializeされるから
713デフォルトの名無しさん:2012/06/13(水) 19:11:57.21
ちなみに300KBが数千件をどうやって:memoryなSQLiteで扱うつもりなんだ
714デフォルトの名無しさん:2012/06/13(水) 19:14:44.51
XMLって冗長なんだよ
知ってた?
715デフォルトの名無しさん:2012/06/13(水) 19:16:04.86
自殺する人の意思を否定するなら、そいつの人生全部背負う覚悟がいるんだよ
お前らは>>683の全てを背負い込む覚悟があってlxmlを否定してるのか?
716デフォルトの名無しさん:2012/06/13(水) 19:17:31.85
寒いよ
717デフォルトの名無しさん:2012/06/13(水) 19:18:00.51
梅雨寒
718デフォルトの名無しさん:2012/06/13(水) 19:24:32.65
HTML等って言ってるからSQLiteなんか使えるか怪しいわ
素人が
719デフォルトの名無しさん:2012/06/13(水) 21:02:23.75
pass
720デフォルトの名無しさん:2012/06/15(金) 21:31:43.12
Python でGUIアプリ作るにはライブラリ追加してそのライブラリの関数使えばいいの?

Cしか知らないからわからん
721デフォルトの名無しさん:2012/06/15(金) 21:54:11.10
722デフォルトの名無しさん:2012/06/15(金) 21:56:27.77
追加したくないなら Tk
追加して良いなら wxPython とか PyQt とか
723デフォルトの名無しさん:2012/06/15(金) 22:27:28.33
GUI作ろう → 長く使いそう → なら3.xにしよう →
豪華なGUIライブラリがない → ならCUIでいいや
724デフォルトの名無しさん:2012/06/16(土) 06:03:15.22
pygameでpython3のguiを作ろうかと思ってる
725デフォルトの名無しさん:2012/06/16(土) 13:02:12.04
windowsならautohotkeyでフロントエンド作れば捗るぞ
726デフォルトの名無しさん:2012/06/16(土) 19:47:44.92
ところでpython2と3って同一の環境に両方インスコできる?
win7 64bitですが
727デフォルトの名無しさん:2012/06/16(土) 20:05:20.65
できる。

Python x.y.z
のうち y が違っていれば共存できる。
728デフォルトの名無しさん:2012/06/16(土) 20:18:07.27
ありがとう
729デフォルトの名無しさん:2012/06/17(日) 23:38:38.63
ってつたえたくて
730デフォルトの名無しさん:2012/06/18(月) 20:46:07.89
>>723

PyQtなら 3 で動くよ。PySideの方は知らないけど。

ericってIDEのversion 5 が python3/Qt4 ベース

731デフォルトの名無しさん:2012/06/18(月) 21:44:23.29
eric って重たいでかすぎ
732デフォルトの名無しさん:2012/06/19(火) 01:52:32.10
733デフォルトの名無しさん:2012/06/21(木) 21:28:24.96
質問なのですがPythonの変数はバッファオーバーフローを起こすんでしょうか?
ある変数にUnicode型の文字列15万文字ほど食わせると停止する気がします
734デフォルトの名無しさん:2012/06/21(木) 21:30:06.55
>>733
スワップ
735デフォルトの名無しさん:2012/06/21(木) 21:39:04.76
>>734
スワップ領域が一杯になってしまっているんでしょうか?
とりあえず領域を破壊してるのは確かだと思うので分散して処理させるべきなのか・・・
736デフォルトの名無しさん:2012/06/21(木) 22:09:24.89
15万文字ってすごそうだが、高々 150k文字

1MB にも満たないのにスワップとか、ドンだけ貧弱なマシンだよ
737デフォルトの名無しさん:2012/06/21(木) 22:19:16.26
text = text + "hoge"
こんなことやってると死ぬかも
738デフォルトの名無しさん:2012/06/21(木) 22:33:55.59
>>737
これやってました。。。
でも一度で処理できなかったらこれ以外に文字列連結する方法あるんでしょうか?
何度も申し訳ない
739デフォルトの名無しさん:2012/06/21(木) 22:36:59.21
バッファオーバーをバッファローに空目してまたバッファローか!という条件反射が起こった
740デフォルトの名無しさん:2012/06/21(木) 23:06:17.03
バッキャローダメルコウンコレガプラネックソエロデータ
741デフォルトの名無しさん:2012/06/21(木) 23:59:07.80
>>738
適当書くけどJavaのString/StringBufferと同様なら
リストに文字を追加してて、文字列がほしいところで "".join(リスト)
742デフォルトの名無しさん:2012/06/22(金) 08:32:16.32
2.x での + による unicode文字列連結のパフォーマンス問題かな。
下のコードの方が時間かかる。

buf = ""
for _ in xrange(300000): buf += "a"

buf = u""
for _ in xrange(150000): buf += u"a"


文字列連結の他の選択肢
StringIO(cStringIO, io.StringIO), bytearray, 一時ファイル等に書き出す tmpfile, mmap
743デフォルトの名無しさん:2012/06/22(金) 09:38:41.14
>>739
バーロー
744デフォルトの名無しさん:2012/06/23(土) 19:50:30.10
P = A xor B のとき

C(out) = A・B + (A + B)・C(in)

C(out) = ~P・A・B + P・C(in)

になるそうですが
C(out) = A・B + P・C(in)
じゃだめなんですか?
745デフォルトの名無しさん:2012/06/23(土) 21:02:35.87
仕様的な文句はここで言っても意味ないぞ
オランダ語覚えろ
746デフォルトの名無しさん:2012/06/25(月) 20:59:24.88
馬鹿には無理
747デフォルトの名無しさん:2012/06/25(月) 21:22:00.13
>>745
そんなことのために覚えるやつは誰もオランおっとー?
748デフォルトの名無しさん:2012/06/26(火) 01:51:49.82
仕様がねぇなぁ
749デフォルトの名無しさん:2012/06/26(火) 02:34:55.64
>>741-742
遅くなりましたがアドバイスありがとうございました!
色々と試してみたのですがなかなか上手くいかないので一度他の部分のコードも含めて見直してみます。
色々と教えていただき大変勉強になりました
750デフォルトの名無しさん:2012/06/26(火) 10:40:05.08
>>745
c言語で会話すればok
751デフォルトの名無しさん:2012/06/29(金) 21:15:45.30
numpy で一次元 array の線形補間をしたいとき
たとえば
a = numpy.array([10, 20, 30])

a = numpy.array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30])
みたいに拡張するには
どうすればよいのでしょうか?
752デフォルトの名無しさん:2012/06/29(金) 21:21:28.77
numpyじゃないけどこれで足りる?

>>> L = [10, 20, 30]
>>> range(L[0], L[-1] + 1, 2)
[10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
753デフォルトの名無しさん:2012/06/29(金) 21:36:07.77
Pythonの書き方を覚えれば簡単なゲーム等が作れるのですか?
754デフォルトの名無しさん:2012/06/29(金) 21:38:08.67
簡単が何を指すかによるが、それなりに
755デフォルトの名無しさん:2012/06/29(金) 21:40:51.75
勉強し始めたばかりなのでコマンドプロントで日本語を表示させられるレベルなのですが…
ゲーム等はどうやって実行するんですか?
756デフォルトの名無しさん:2012/06/29(金) 21:43:17.82
ここで全部指導はできんけど
「Pythonで簡単なゲームを作ってみよう」みたいなサイトなり本なりあるんじゃね?
少なくとも英語なら必ず1つや2つあるはずだから、それ見ながら作ってみ
757デフォルトの名無しさん:2012/06/29(金) 21:47:38.93
PyGameの本なら日本語版も出てたはず。チュートリアルの邦訳なんかもあるよ

ところでPyGameで作られてるゲームで、これはよく出来てる、お手本になる、っていうのある?
758デフォルトの名無しさん:2012/06/29(金) 22:17:37.67
>>755ですが
まだ、中学すら卒業していないので英語は読めないんです
まぁ、ゲームというより便利なソフトが作れたりプログラミングの勉強の為にと思ってます。
書籍やサイトを探してみます。
どうもありがとうございました。
759デフォルトの名無しさん:2012/06/29(金) 22:18:46.30
中学生時分からこんなスノビーが多い言語触ってると頭が狂ってしまうぞ
760デフォルトの名無しさん:2012/06/29(金) 23:05:03.27
import sysで読み込むsysモジュールってどこにあるのか教えてください。python3.2触ってます。
このやり方だと出てこなかったです。

[ Python ] モジュールの場所 - memlog
http://blog.taikomatsu.com/2008/02/28/python-%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E5%A0%B4%E6%89%80/
761デフォルトの名無しさん:2012/06/29(金) 23:11:22.67
あ、Dive into Pythonに組み込みモジュールって書いてありました。
762デフォルトの名無しさん:2012/06/30(土) 02:14:53.98
>>> import sys
>>> sys.modules['sys']
<module 'sys' (built-in)>
>>> sys.modules['re']
<module 're' from '/home/umedoblock/local/lib/python3.2/re.py'>
>>> sys.builtin_module_names
('__main__', '_ast', '_codecs', '_collections', '_functools', '_io', '_locale', '_sre',
'_string', '_symtable', '_thread', '_warnings', '_weakref', 'builtins', 'errno', 'gc',
'imp', 'itertools', 'marshal', 'operator', 'posix', 'pwd', 'signal', 'sys', 'xxsubtype',
'zipimport')

./Python/sysmodule.c

(http://uni.2ch.net/test/read.cgi/operatex/1337510429/586代行)
763デフォルトの名無しさん:2012/06/30(土) 05:43:13.46
>752
ありがとう
事故魁傑しました
>>> import numpy as np
>>> x = np.arange(1, 4)
>>> y = x * 10
>>> x
array([1, 2, 3])
>>> y
array([10, 20, 30])
>>> np.interp(np.arange(1.0, 4.0, 0.2), x, y)
array([ 10., 12., 14., 16., 18., 20., 22., 24., 26., 28., 30.,
30., 30., 30., 30.])
>>> [int(_) for _ in map(round, np.interp(np.arange(1.0, 4.0, 0.2), x, y, right=
-99)) if _ > 0]
[10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
764デフォルトの名無しさん:2012/06/30(土) 05:49:50.83
こっちのがいいな
>>> map(int, map(round, np.interp(np.arange(1.0, 3.2, 0.2), x, y)))
[10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
765デフォルトの名無しさん:2012/06/30(土) 20:08:34.21
これにやられた
>>> type( '%s' % u'hoge' )
<type 'unicode'>
>>> type( '{}'.format(u'hoge') )
<type 'str'>
766デフォルトの名無しさん:2012/06/30(土) 20:36:06.82
formatのバックポートなんかいらんかったんや! %最高や!
767デフォルトの名無しさん:2012/06/30(土) 21:45:42.79
%がシンプルでいいよね。
format()で8文字取るのがどうにもウザい。
768デフォルトの名無しさん:2012/06/30(土) 23:36:05.94
挙動自体はformatの方がいいと思うけどね
これの暗黙の変換はいつもハマる
769デフォルトの名無しさん:2012/06/30(土) 23:40:02.22
どちらかというと、勝手に型変わる方が好ましくないと思うけど

from __future__ import unicode_literals
770デフォルトの名無しさん:2012/07/01(日) 15:14:12.73
pythonで*.wavファイルのデータを再生したい。
ファイルから直接再生する訳じゃなくデータをpythonで加工して再生したい。
中間ファイルの保存はしたくない。
なるべくOSや環境依存にはしたくない。
winsound とか ossaudiodev とか使うと思うのですが良くわかりません。
771デフォルトの名無しさん:2012/07/01(日) 15:38:53.70
pygameかな
772デフォルトの名無しさん:2012/07/01(日) 15:55:55.18
773デフォルトの名無しさん:2012/07/01(日) 16:12:32.59
なにがしたいの?
774デフォルトの名無しさん:2012/07/01(日) 19:53:16.02
>>770

winsound,ossaudiodev共にrawデータの再生可能だけど、双方とも環境依存。

信号処理とかやってるなら、用途に一番合いそうなのは PyAudio

pygameはrawデータを再生可能(@see pygame.sndarray, pygame.mixer)
フロントエンド(GUI)も合わせて作りたいなら検討してみる余地あり。

audiotools や pygletでは、(API眺めた限りでは)low-levelなレイヤまで降りる必要があるので、
ある程度内部が分かってないと難しいかもしれない。

AVbin(pygletが利用)は、デコーダのライブラリなので、rawデータしか扱わないなら不要。
775 【大吉】 :2012/07/01(日) 21:21:18.26
>>774
ありがとうございます。
PyAudioについてこれから調べて見ますが、
日付が変わる前にお礼しておきます。
776!omikuji:2012/07/02(月) 00:24:21.80
大吉ワロス
777デフォルトの名無しさん:2012/07/02(月) 02:47:03.22
>>774
とりあえずこれで逝けました。あとは色々遊んで見ます。
import sys, wave, pyaudio, progressbar
chunk = 1024
def main(fname):
wf = wave.open(fname, 'rb')
p = pyaudio.PyAudio()
stream = p.open(format = p.get_format_from_width(wf.getsampwidth()),
channels = wf.getnchannels(), rate = wf.getframerate(), output = True)
nframes = wf.getnframes()
count = 0
widgets = ['%s(%s): ' % (fname, nframes), progressbar.Percentage(),
' ', progressbar.Bar(marker=progressbar.RotatingMarker()),
' ', progressbar.ETA(), ' ', progressbar.FileTransferSpeed()]
pgs = progressbar.ProgressBar(widgets=widgets, maxval=nframes).start()
while True:
data = wf.readframes(chunk)
if data is None or data == '': break
count += len(data) / 4 # 2bytes * 2(LR)
pgs.update(count)
stream.write(data)
pgs.finish()
stream.close()
p.terminate()

if __name__ == '__main__':
if len(sys.argv) < 2:
print 'Plays a wave file.\n\nUsage: %s filename.wav' % sys.argv[0]
else:
main(sys.argv[1])
778デフォルトの名無しさん:2012/07/02(月) 10:42:36.12
インデントもまともに貼れない馬鹿か
779デフォルトの名無しさん:2012/07/02(月) 12:14:32.96
>>778
htmlソースも見れない馬鹿乙
780デフォルトの名無しさん:2012/07/02(月) 14:08:54.40
え?これHTMLソースなの?
781デフォルトの名無しさん:2012/07/02(月) 14:29:26.31
>>780
本物のバカだ
782デフォルトの名無しさん:2012/07/02(月) 15:16:33.25
>>781
HTMLじゃなきゃHTMLソースも見れない云々って言う意味ないじゃん
783デフォルトの名無しさん:2012/07/02(月) 15:32:42.26
>>782
くだスレっぽくていいよそのレス
784デフォルトの名無しさん:2012/07/02(月) 15:40:30.55
HTMLソースでも専ブラのポップアップでも閲覧者に一手間要求する時点でよろしくないでしょ
それどころか質問のソースのインデントが失われている場合には
ポップアップしてエラーの原因がようやくわかるなんてことも度々ある

もっとも>>777は後の参考になるようにわざわざ貼ってくれてるので罵るのはどうかと思った
785デフォルトの名無しさん:2012/07/02(月) 16:36:08.29
おもすれぇこれ
786デフォルトの名無しさん:2012/07/02(月) 17:48:07.14
787デフォルトの名無しさん:2012/07/02(月) 18:09:12.93
>>777
コードの投稿自体は歓迎だけど、長かったりインデントが必要だったりする場合は
ideone,pastebin,codepad等のサイトへお願い


折角コード張ってくれたので、ちょっとだけ便利なtips紹介
データ読み込みのループは、2引数のiter関数を使うとすっきりするよ。

while True:
  data = wf.readframes(chunk)
  if data is None or data == '': break
  ...

for data in iter(lambda:wf.readframes(chunk),''):
  ...


----
16bitsステレオ決め打ちっぽいので、24bitsで録音したwavを読み込むとプログレスバーがValueError
定数 4 の所は wf.getnchannels() * wf.getsampwidth() で求めるとモノラルや他のサンプルサイズに対応可。
788デフォルトの名無しさん:2012/07/02(月) 20:20:41.38
>>777
wav が 2ch ステレオなら

    stream.write(data)

の行を

    d = np.frombuffer(data, dtype='int16') # wf.getsampwidth() 決め打ち御免
    a = [((d[n-1] - d[n]) if n % 2 else (d[n] - d[n+1])) for n in xrange(len(d))]
    stream.write(np.array(a, dtype='int16').tostring())

にしたらカラオケになる
789デフォルトの名無しさん:2012/07/02(月) 21:31:48.16
nullpo
790デフォルトの名無しさん:2012/07/02(月) 21:57:34.75
なるぽ?
791デフォルトの名無しさん:2012/07/03(火) 05:02:28.70
>>789 gatt
792デフォルトの名無しさん:2012/07/04(水) 20:19:04.90
あなたのまちをいろどるほっとステーション
793デフォルトの名無しさん:2012/07/05(木) 13:33:46.95
みんなのぱいちんくん、みんなの
794デフォルトの名無しさん:2012/07/05(木) 18:52:45.22
Pythonポケットリファレンスが全然リファレンスになっていない事に腹が立ちます。
795デフォルトの名無しさん:2012/07/05(木) 19:22:16.58
同意
796デフォルトの名無しさん:2012/07/05(木) 20:32:19.31
ポケットにも入らねぇ
797デフォルトの名無しさん:2012/07/07(土) 04:09:49.23
というわけで技術評論社さんには改訂版ポケットリファレンスの出版を求めます。
798デフォルトの名無しさん:2012/07/07(土) 05:02:57.57
あなたのまちをいろどるほっとステーション
799デフォルトの名無しさん:2012/07/07(土) 10:49:40.26
辞書配列の特定の要素をキーにデータを分類したいです。

例えば
[{'name':'nameA','data1':data},{'name':'nameA',,,,},{'name':'nameB',,,}]
というデータを

{'nameA':[data1,data2,],'nameB':[data3,data4]}
のように任意の要素'name'ごとに辞書の中に入れたいのですがどのように記述したらいいでしょうか?
800デフォルトの名無しさん:2012/07/07(土) 11:22:23.19
data1 とは 'data1' の data のことかな?
801デフォルトの名無しさん:2012/07/07(土) 13:54:54.77
>>800
そうです そうです
802デフォルトの名無しさん:2012/07/07(土) 18:44:02.51
>>799
data2,data3,data4 の省略されてる部分がわからない

dataが全部共通のキーでいいなら
ttp://ideone.com/5ehXB
803デフォルトの名無しさん:2012/07/08(日) 09:09:42.64
ありがとうございました。
予想以上に複雑な操作になるんですね。
ゆっくり勉強させていただきます。
804デフォルトの名無しさん:2012/07/08(日) 10:07:08.75
def kansu():
  print (x)

x = 1
kansu()

これをやると1が表示されるんですが
Pythonの変数ってデフォでグローバルなんですか?
805デフォルトの名無しさん:2012/07/08(日) 11:34:32.64
>>804
未定義だとグローバル、関数内で宣言されてるとローカル変数参照になる

ttp://www.python.jp/doc/release/faq/programming.html#id7

一応、不用意にグローバル変数を書き換えることはない様になってるけど、
Pythonでは珍しく暗黙的な振舞をする部分なので注意が必要。pylint等でコードをチェックするといい。

後、グローバルと言っても、スコープはモジュールのトップレベルなので
他のモジュールと名前空間を共有するわけではないよ。
806デフォルトの名無しさん:2012/07/08(日) 12:00:51.24
>>805
ありがとうございます。faqでしたか。
多数のパラメータを必要とする関数に
引数を経由せず直接変数を引き渡せるのは魅力ですが
ちょっと恐い部分もありますね。
気をつけます。
807デフォルトの名無しさん:2012/07/08(日) 13:52:24.65
def kansu():
  x = 2
  print (x)

x = 1
kansu()

してみりゃ判る
808デフォルトの名無しさん:2012/07/08(日) 14:12:07.23
>多数のパラメータを必要とする関数に
>引数を経由せず直接変数を引き渡せるのは魅力ですが

病気だな
809デフォルトの名無しさん:2012/07/08(日) 14:17:44.63
副作用を理解できるならおそらく超初心者ではないので今はOK
810デフォルトの名無しさん:2012/07/08(日) 15:03:59.27
# coding: sift_jis
print"これしか出来ないのですがどうやって勉強すればいいですか?"
print"プログラミングは初めてです。本を買った方がいいですか?それともどこかのサイトで十分ですか?"
811デフォルトの名無しさん:2012/07/08(日) 15:13:44.13
とりあえずチュートリアルをやる
http://www.python.jp/doc/release/tutorial/index.html

本買ってすぐ飽きた場合、本を見るたびに嫌な思い出が蘇ることになるのでまずはコレで
812デフォルトの名無しさん:2012/07/08(日) 15:21:00.52
関数内関数でならよく使うよ>外の変数を引数経由せず # @see closure

残念ながら、モジュール・トップレベルでの関数定義だと外の変数は
クロージャにはならずグローバル変数参照になるけど。
813デフォルトの名無しさん:2012/07/08(日) 23:07:32.39
モジュールレベルの名前空間に登録する(変数も関数もimportしたュールも)
と理解できればすっきりするのだが。
814デフォルトの名無しさん:2012/07/10(火) 07:21:52.64
Javaしか経験したことのないPython勉強中の人間ですが、質問させてください。

他人のPythonのプログラムを見ていると、複数の値を返す場合、タプルを使っていることがよくありました。
例えば、色(RGB)を返す関数は戻り値が(10, 20, 30)の様になっており、戻り値を受け取る側は
(red, green, blue) = 色を返す関数()のように使っていました。

2点疑問点があります。

疑問1
Pythonでは複数の値を返す場合、DTOを作ることはあまりしないのでしょうか?
例えば、上記の場合、Colorなるクラスを作ったりしないのでしょうか?

疑問2
上記の関数の戻り値のうち、redのみ使いたい場合、どう書くのがいいでしょうか?
上記の書き方だと、使わないgreen, blue変数ができてしまいます。
eclipse等をつかうと、green, blue変数に警告がでるので、よくない気がします。


よろしくお願いいたします。
815デフォルトの名無しさん:2012/07/10(火) 07:34:51.27
いやです
816デフォルトの名無しさん:2012/07/10(火) 07:40:46.29
>>814

疑問1 の解答
color = 色を返す関数()
で充分でしょう。
クラスを作ることもあるし作らないこともあるだけかと。

疑問2 の解答
color = 色を返す関数()
として color[0] で参照。
どうしても red という名前が欲しければ named tuple でどうでしょう。
817デフォルトの名無しさん:2012/07/10(火) 08:04:11.68
red, _, _ = get_color()
818デフォルトの名無しさん:2012/07/10(火) 08:45:06.73
>>814
クラスを作る意味がなければ作らないってだけでしょうね。
タプルで済む戻り値を返すためだけ作る意味はないと思います。
819デフォルトの名無しさん:2012/07/10(火) 09:49:42.81
red = get_color()[0]
820デフォルトの名無しさん:2012/07/10(火) 10:12:10.55
codecs.lookup() の返り値とか、昔はタプルだったのに
今は名前でもアクセスできるようになっているものが
いくつかあるね。
821デフォルトの名無しさん:2012/07/10(火) 10:37:28.73
>817
これ時々目にするけど意味あんの?
変数の消費は防げても実行効率は変わらんでそ?
822デフォルトの名無しさん:2012/07/10(火) 12:00:07.16
>>821
使わない変数があると警告でたりするし
823デフォルトの名無しさん:2012/07/10(火) 12:28:04.18
>>814
>>> a, *_ = (100, 200, 300)
>>> _
[200, 300]
>>> a
100
824デフォルトの名無しさん:2012/07/10(火) 12:33:29.67
a, b, c = 1, (2, 3), 4
a, b, c = 1, ((2, 3), 4), 5
a, (b, c), d = 1, ((2, 3), 4), 5

perlとかと違って結構融通利くんだな
825デフォルトの名無しさん:2012/07/10(火) 13:12:57.13
>>823
はじめて見た
ttp://www.python.org/dev/peps/pep-3132/
これか
3で出来るようになったんだね
826デフォルトの名無しさん:2012/07/10(火) 17:08:51.45
ライブラリやフレームワークの提供してるColorクラスを使ってるので
自分で定義することはあまりないけど、DTO用途に使うとしたら collections.namedtuple に1票

from collections import namedtuple
Color = namedtuple("Color", "red,green,blue")
print(Color(0xff, 0, 0).red)


他のコードの気になる点

* color[0] はタプルの内容(RGB)が暗黙的 (=> "Color"より"RGB"と命名した方が多少具体的)
* tupleのunpackは不要な変数代入がある (用途によっては無視していい程度のコストたと思うけど、color[0]に比べると冗長)
827デフォルトの名無しさん:2012/07/10(火) 18:31:32.56
immutable でなくても問題ないなら dict 返すのでも良いんじゃない。
828デフォルトの名無しさん:2012/07/10(火) 18:50:59.59
読みこみしかしないのならimmutableにしたいしcolor['red']みたいにアクセスするのも冗長
メンバがr, g, bぐらいしかないならタプルで足りる

それはともかくDTDって何の略?
829デフォルトの名無しさん:2012/07/10(火) 18:54:46.26
JSONにしている漏れは勝ち組
830デフォルトの名無しさん:2012/07/10(火) 18:58:15.57
>>828
ahoo 知恵遅れによると
Data Transfer Object
831デフォルトの名無しさん:2012/07/10(火) 19:03:43.86
>>830
あー、DTDじゃなくてDTOなのか。どうもありがとう
ADT (Abstract Data Type) のことかとも思ったけどそういう用語があるのね
832デフォルトの名無しさん:2012/07/10(火) 19:29:23.99
Java厨ならxml一択だろ常考
833デフォルトの名無しさん:2012/07/10(火) 20:47:32.12
814です。

回答ありがとうございます。
色々と知識を増やすことが出来ました。
個人的には、named tupleによる実装に興味がわいてきました。
参考にさせていただきます。

また、質問等ありましたら、よろしくお願いいたします。
以上
834デフォルトの名無しさん:2012/07/10(火) 23:00:05.85
>>828
メソッドもあるし、必ずしも冗長でもないんじゃね。
835デフォルトの名無しさん:2012/07/11(水) 03:42:42.47
実際にコードを書いてみよう

辞書を返すって時点で気付くと思うけど

return (red, green, blue)

return {'red':red, 'green':green, 'blue':blue}

冗長じゃないコードがあるなら教えて欲しい
836デフォルトの名無しさん:2012/07/11(水) 08:25:56.67
名前が付くというメリットがあるから、冗長ではないでしょ。
いやもちろん namedtuple でいいのだが。
前者はインデックス 0 が red 、1が・・・だという
決まりが別に必要になるわけだから、単純比較はできない。
837835, not 828:2012/07/12(木) 09:42:44.62
>836 named tuple でいいのと メリットもある点は ok

> 名前が付くというメリットがあるから、冗長ではないでしょ。

「冗長ではない」とは言わなくて、それこそが冗長化によるメリット

国語的には、冗長=無駄って認識で概ね正しいのかもしれないけど
情報系の用語には「冗長化」「冗長性」というのがあって、
しばしば、冗長(redundant=(和訳は 冗長、過剰、余分、重複)) は、無駄(waste) と使い分けられます。

冗長だというのは、余分な部分があるという指摘(タプルと比べて記述が簡潔ではない・過剰にメモリを確保する)で、
冗長化による利点(名前付きアクセス)は否定しない。

同意できる形に言い直すと、こうかな 「メリットもあるので無駄ばかりとは限らない」
838デフォルトの名無しさん:2012/07/12(木) 10:18:53.39
「記述量が多い」ってのを「冗長」って言ってるんでしょ?
839デフォルトの名無しさん:2012/07/12(木) 11:21:58.15
冗長とは「無駄に記述量が多い」ことであって
単に「記述量が多い」だけで無駄が無いなら
冗長性は無いと言える
840デフォルトの名無しさん:2012/07/12(木) 12:44:43.71
>>839
日本語では〜というなら主張は分かるけど、
情報系の用語で「冗長性」って用語の持つ意味を調べてみて
841840:2012/07/12(木) 12:48:51.63
重言になってしまった。

参考url張っておく http://ascii.jp/elem/000/000/114/114881/

「冗長」ってbuzz wordだったりするのかな?
842デフォルトの名無しさん:2012/07/12(木) 13:22:01.71
ん?
843デフォルトの名無しさん:2012/07/12(木) 13:22:08.01
性が付くと付かないでは意味合いが違うのだよ
844デフォルトの名無しさん:2012/07/13(金) 00:27:49.57
>>841
> 参考url張っておく http://ascii.jp/elem/000/000/114/114881/

>> redundancyが最もよく使用されるのは、セキュリティの場面である。具体的なテキストを見てみよう。

自信満々の馬鹿だな。
845デフォルトの名無しさん:2012/07/13(金) 01:49:30.57
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
846デフォルトの名無しさん:2012/07/13(金) 04:27:06.29
周りでパイソンやってるの居な過ぎ。
ruby 2
php 15
c# 3
java 8人
俺の知り合い。
847デフォルトの名無しさん:2012/07/13(金) 07:53:36.52
>844
セキュリティ分野に限らず使われてるよ
urlは、否定的なニュアンスばかりではないってのを示しただけ。
848デフォルトの名無しさん:2012/07/13(金) 08:40:46.34
ファイルへのリダイレクトはどう書きますか。(2)でなく(1)の書き方です。(3)では出来ませんでした。

(1) awk 'BEGIN { print "awk内でリダイレクト" > "file.txt" }'
(2) awk 'BEGIN { print "awk外でリダイレクト" }' > file.txt
(3) python -c 'print >"file.txt", u"python内でリダイレクト"'
849デフォルトの名無しさん:2012/07/13(金) 10:13:14.80
>>848
with open("file.txt",'w') as f:
# f.write(内容)を含む処理
850デフォルトの名無しさん:2012/07/13(金) 22:58:32.25
>>847
セキュリティなんて関係ないだろ。

アホな書き込みの url 示されてもねぇ。
851デフォルトの名無しさん:2012/07/13(金) 23:04:09.48
セキュリティの場面である。具体的なテキストを見てみよう。

といいつつ耐障害性の話をしてるURLを提示したから
お前読んでねえだろとネタにされているわけだけど頭悪くて気付けないよね
852デフォルトの名無しさん:2012/07/13(金) 23:10:22.98
間違ってるのがそこだけだから大事には影響ないでそ
ネットワークやサーバインフラで冗長性って言うもの
なんでそんなつまんないところでつっかかるのか不思議
853デフォルトの名無しさん:2012/07/13(金) 23:15:07.82
>>851
> セキュリティの場面である。具体的なテキストを見てみよう。

その url のなかにあるわけだが、ひょっとしてエスパーがいるとでも思ってるのか? (w
854デフォルトの名無しさん:2012/07/13(金) 23:16:56.51
>>852
なんでそんなつまんないところで間違ってる web を自信満々で公開できるか不思議
855デフォルトの名無しさん:2012/07/13(金) 23:21:00.08
君ほど頭よくないんだよ。よかったね
856デフォルトの名無しさん:2012/07/13(金) 23:57:53.60
つーか間違った用語使う人間の語った言葉を信用できるのか?お花畑よ
857デフォルトの名無しさん:2012/07/14(土) 00:05:18.78
僕は相手が犯罪者でもいいことを言っていると思えば尊重します。
858デフォルトの名無しさん:2012/07/14(土) 00:52:06.03
pyctagsってもう最近のPythonでは使えないんでしょうか
angelscript-cpp-interface-generatorというのがpyctagsの部分でエラーが出て動かなかったので
googlecodeのプロジェクトページから0.5.0を取って来ましたがダメでした
Traceback (most recent call last):
File "C:\Users\\Documents\SVN\angelscript-cpp-interface-generator\generato
r.py", line 358, in <module>
if asig.generateFromFiles(files) > 0:
File "C:\Users\\Documents\SVN\angelscript-cpp-interface-generator\generato
r.py", line 289, in generateFromFiles
tag_file = ctags.generate_object(generator_options={'--fields' : '+afmikKlns
Stz', '-F' : None, '--c++-kinds':'+cegfmnpstv '})
File "C:\Python27\lib\site-packages\pyctags\exuberant.py", line 333, in genera
te_object
line = p.stdout.readline().decode("utf-8")
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd3 in position 303: invalid
continuation byte
859デフォルトの名無しさん:2012/07/14(土) 03:59:47.21
なんか新刊っぽいんですが読んだ人いますか?

PythonでかんたんAndroidプログラミング
ttp://www.amazon.co.jp/dp/4877832912/
860デフォルトの名無しさん:2012/07/14(土) 05:36:25.71
996 名前:デフォルトの名無しさん [sage]: 2012/07/13(金) 17:43:34.21
カットシステムの本を買うなということだ。
こういうのって編集者に依るの?
オライリーの動物本とかさ、編集者が手直ししているの?

PythonでかんたんAndroidプログラミング (-) [単行本]
桑井 博之 (著)
この商品の最初のレビューを書き込んでください。 Like (0)

単行本: 237ページ
出版社: カットシステム (2012/07)
ISBN-10: 4877832912
ISBN-13: 978-4877832919
発売日: 2012/07

WSGIウェブプログラミング [単行本]
桑井 博之 (著)
5つ星のうち 1.0 レビューをすべて見る (2件のカスタマーレビュー) Like (0)
価格: ¥ 2,940 通常配送無料 詳細

登録情報

単行本: 233ページ
出版社: カットシステム (2012/01)
ISBN-10: 4877832882
ISBN-13: 978-4877832889
861デフォルトの名無しさん:2012/07/14(土) 08:27:16.88
>>857
間違った用語を使ってるのにいいこと言ってるとか、お花畑満開だな。(w
862デフォルトの名無しさん:2012/07/14(土) 10:18:40.83
>>851
耐障害性は情報セキュリティに入ってないのと思ってるの?
863デフォルトの名無しさん:2012/07/14(土) 10:40:32.64
いつまでやってんの
864デフォルトの名無しさん:2012/07/14(土) 10:43:29.21
含まれていると何か都合がよろしいのですか?
865デフォルトの名無しさん:2012/07/14(土) 10:46:25.97
傷ついたプライドが埋められるまで続ける。
866デフォルトの名無しさん:2012/07/14(土) 10:52:04.21
はっきり言ってどうでもいいんだけど、
お花畑と息巻いてる人が、本当はお花畑じゃないかと思って、、、
867デフォルトの名無しさん:2012/07/14(土) 10:56:08.48
どうでもいいけどコメントはしたいです(キリ
868デフォルトの名無しさん:2012/07/14(土) 10:59:24.92
>>865
対人関係に支障の出るプライドは
周りが迷惑するから持たないでくれ。
そもそも傷つくってことは、その程度の固さしかない
チャチいプライドってことなんだから。
869デフォルトの名無しさん:2012/07/14(土) 11:00:51.76
その発言もプライドを傷つけるんですが。
センシティブなんですよ、ハゲの頭皮みたいにな。
870デフォルトの名無しさん:2012/07/14(土) 11:18:37.60
2chに書き込みばっかりしてると禿げるの早いよ〜
871デフォルトの名無しさん:2012/07/14(土) 12:16:13.22
スレチ
872デフォルトの名無しさん:2012/07/14(土) 12:32:30.72
冗長性について語った時点でスレチと言わなかったのだから
お構いなく続けさせてもらいます
873デフォルトの名無しさん:2012/07/14(土) 17:13:59.09
本当に今欲しい物 それはその答えですか?
874デフォルトの名無しさん:2012/07/14(土) 17:28:08.23
42です
875デフォルトの名無しさん:2012/07/14(土) 17:41:27.49
>>862
> 耐障害性は情報セキュリティに入ってないのと思ってるの?

誰もそんなこと言ってないが、いきなりどうしたんだ?

件の url で言ってたのは、

>> redundancyが最もよく使用されるのは、セキュリティの場面である。

だよ、「最も」って言葉知ってる? (w

ちなみに、セキュリティの分野では、無理やりこじ開けようとしたら、中に
入っているキーとなるデータが流出しないようにデータをわざと破壊してし
まうような、耐障害性と間逆の仕組みを持ったような奴もあったりする。
(対タンパー性)
876デフォルトの名無しさん:2012/07/14(土) 17:46:57.75
うるせーよ

でもアタック受けてると判断するとルーティング切っちゃうスイッチもありますね
877デフォルトの名無しさん:2012/07/14(土) 17:47:57.38
なぜわざわざ掘りおこしたあげく自分の墓穴にするですか
878デフォルトの名無しさん:2012/07/14(土) 17:48:56.55
今日暑いでしょ
土の中は冷たいんですよ
879デフォルトの名無しさん:2012/07/14(土) 18:57:03.46
Pythonでプログラムの勉強を始めようと思ってます。
おすすめのテキストエディタってありますか?
880デフォルトの名無しさん:2012/07/14(土) 19:01:36.20
メモ帳
881デフォルトの名無しさん:2012/07/14(土) 19:11:04.10
eric4
882デフォルトの名無しさん:2012/07/14(土) 19:13:21.96
>>877
>>862 の悪口はやめろよ。
883デフォルトの名無しさん:2012/07/14(土) 20:06:25.17
マジレスするとPyScripter
884デフォルトの名無しさん:2012/07/14(土) 20:08:12.35
>>875
851を読んでも「最も」が間違っているという風には理解できないんだけど、、、

851には「最も」は一語も入ってないし。

いや、その前にコードの冗長性の話をしていて、いきなりセキュリティの話に
変わってあほにしてるのは理解してるよ。

ちなみに俺はURLを貼った人じゃないよ。
あと、もっと冷静になろうね〜。
885デフォルトの名無しさん:2012/07/14(土) 20:10:16.10
最も冷静なのは俺だ
馬鹿には無理
886デフォルトの名無しさん:2012/07/14(土) 20:25:59.28
ほかでやれカスども
887デフォルトの名無しさん:2012/07/14(土) 20:27:35.58
馬鹿には無理
888デフォルトの名無しさん:2012/07/14(土) 20:28:33.05
>>886
カスとか言ってる暇があったらネタ投下しろよw
889デフォルトの名無しさん:2012/07/14(土) 20:28:37.96
888
890デフォルトの名無しさん:2012/07/14(土) 20:29:12.58
891デフォルトの名無しさん:2012/07/14(土) 20:30:24.01
危険な領域に突入する
892デフォルトの名無しさん:2012/07/14(土) 20:48:58.90
>>884
>851を読んでも「最も」が間違っているという風には理解できないんだけど、、、
>851には「最も」は一語も入ってないし。

いったいどこの琴線に触れたのかわからんけど、なんでそんなに必死なの?

>いや、その前にコードの冗長性の話をしていて、いきなりセキュリティの話に
>変わってあほにしてるのは理解してるよ。
>ちなみに俺はURLを貼った人じゃないよ。

はいはい、そうなんだろうね (棒読み)

>あと、もっと冷静になろうね〜。

お前がなぁ〜 (w
893デフォルトの名無しさん:2012/07/14(土) 20:50:42.03
因もうが因まなかろうが口を挟みたいだけの自己主張が強い人って分かれば十分だものね
894デフォルトの名無しさん:2012/07/14(土) 21:03:22.61
>>892
草生やして、必死なのはどう見てもお前なんだが、、、

嫌なことでもあったか?まぁ頑張れよ。
895デフォルトの名無しさん:2012/07/14(土) 21:06:19.06
>>894
>草生やして、必死なのはどう見てもお前なんだが、、、

はいはい、そうなんだろうね (棒読み)
896デフォルトの名無しさん:2012/07/14(土) 21:06:51.32
お前という存在に出会ってしまったことが、、、
すべての不幸の、、、
始まりだっただろうな、、、


なんつて
、、、
897デフォルトの名無しさん:2012/07/14(土) 21:09:34.39
、、、←なにこれ
Pythoniaならインデントしろ
898デフォルトの名無しさん:2012/07/14(土) 21:16:40.58
もしかして: Pythonista
899デフォルトの名無しさん:2012/07/14(土) 21:19:53.69
蛇使いがどうしたって
900デフォルトの名無しさん:2012/07/14(土) 21:26:42.92
>>892
「気に障る」ね
901デフォルトの名無しさん:2012/07/14(土) 21:31:58.31
デジタル大辞泉 琴線に触れるの用語解説 -
《琴線は、物事に感動しやすい心を琴の糸にたとえたもの》良いものや、
素晴らしいものに触れて感銘を受けること。「心の―・れる」

なんか素晴らしいことありましたっけ
902デフォルトの名無しさん:2012/07/14(土) 21:40:39.17
これは恥ずかしい
903デフォルトの名無しさん:2012/07/14(土) 22:14:16.17
>>879
別にどんなテキストエディタでもいいよ、使ってるOSやDEは何?
904デフォルトの名無しさん:2012/07/14(土) 22:16:22.41
むしろnotepad++のマクロにPython使ってる
905デフォルトの名無しさん:2012/07/14(土) 22:32:42.42
>>900-901
にちゃん初心者かよ…
906デフォルトの名無しさん:2012/07/14(土) 22:37:45.66
日本語初心者が何かいっとるでー
907デフォルトの名無しさん:2012/07/14(土) 22:46:42.22
はいはい、そうなんだろうね (棒読み)
908デフォルトの名無しさん:2012/07/14(土) 23:05:23.50
>>892
こういうのを「墓穴を掘る」って言うんだろうねぇ。
909デフォルトの名無しさん:2012/07/15(日) 07:50:24.49
はいはい、そうなんだろうね (棒読み)
910デフォルトの名無しさん:2012/07/15(日) 11:40:00.71
質問させてください。
あるオブジェクトAがスレッドB、スレッドCからアクセスされるとします。
その場合、オブジェクトAをスレッドセーフにするにはどうすればいいのでしょうか?
911デフォルトの名無しさん:2012/07/15(日) 11:58:16.77
がんばれ
912デフォルトの名無しさん:2012/07/15(日) 11:58:39.25
オブジェクトAの状態を変化させるメソッドにLockを入れる
オブジェクトAをイミュータブルにする
913デフォルトの名無しさん:2012/07/15(日) 13:57:34.34
>>912
オブジェクトAはスレッドB、スレッドCからガシガシ状態変化させられるオブジェクトなので、イミュータブルは無理です。
Lockで調べてみます。
他にもアドバイスありましたら、お願いいたします。
914デフォルトの名無しさん:2012/07/15(日) 14:01:56.88
mutex
915デフォルトの名無しさん:2012/07/16(月) 01:24:23.76
>>910
普通のCPythonなら、基本的にはなにもしなくていい。
グローバルインタプリタロックでロックされるから。
916デフォルトの名無しさん:2012/07/16(月) 01:34:19.14
それは迂闊な発言だなあ
sys.setcheckintervalが返す命令数で、例え関数の途中でもGILは開放されてしまうよ

デフォルトだとバイトコードで100命令ごとにGIL開放されるけど
関数書いたら100命令なんてあっという間だぜ
917デフォルトの名無しさん:2012/07/16(月) 01:46:52.66
GIL
918デフォルトの名無しさん:2012/07/16(月) 01:47:56.46
atomicかどうかを意識しなくて良くなるだけでもGILはありがたい
919デフォルトの名無しさん:2012/07/16(月) 01:55:47.34
該当のコードが実行される時に、毎回猶予が100命令あるとは限らない
当然残り1命令で開放される場合もある

結局の所、アトミック性を持たせなければならない操作が1命令以上必要なら
そこはロックを使用しなければならない
920デフォルトの名無しさん:2012/07/16(月) 02:11:29.34
へえー



・・・沢山書き直さないとだなあ
921デフォルトの名無しさん:2012/07/16(月) 02:20:36.73
内部の状態変化程度なら、GIL頼りでいいんじゃねーの?
922デフォルトの名無しさん:2012/07/16(月) 02:24:05.66
i = j + k + l

こんなんでも駄目だよ
2命令だから
923デフォルトの名無しさん:2012/07/16(月) 02:37:18.39
>>922
なんか勘違いしてる気がするけどローカル変数はどうでもいいんだよ
924デフォルトの名無しさん:2012/07/16(月) 02:45:41.36
オブジェクトの状態を変化させるものは全部だよ
内部も外部も関係ない

GILが保障しているのは>>918が言っているアトミック操作1命令だけが厳密に分割されずに実行されるということだけ
それが理解できない人は素直にLock使いましょう
925デフォルトの名無しさん:2012/07/16(月) 02:48:21.90
GILが100命令でスイッチするってのは
100命令以下ならLock使用しなくていいように、じゃなくて
コンテキストスイッチを頻繁に起こすとパフォーマンスが低下するからって理由
曲解しないように
926デフォルトの名無しさん:2012/07/16(月) 02:55:32.75
そもそもGILはインタプリタ実装の都合上存在してるものに過ぎないので、それを当てにしたプログラムを書くなっていう。
そのうち無くなっても知らんぞ。
927デフォルトの名無しさん:2012/07/16(月) 12:35:58.49
re.searchで日本語検索が出来ない・・・
928デフォルトの名無しさん:2012/07/16(月) 12:38:47.86
再現コード貼って
929デフォルトの名無しさん:2012/07/16(月) 12:42:44.10
>>> re.search(r'あい', 'あいうえお').group()
'あい'
930デフォルトの名無しさん:2012/07/16(月) 12:46:23.96
2chから画像うpスレ検索して表示するプログラムを作ってるんですが,以下のコードでは半角英数では
検索できても日本語だと何も表示せず終わってしまいます.

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

import urllib
import urllib2
import re

URL_2ch = "http://hayabusa.2ch.net/news4vip/subback.html"

word = "画像"

i = 0
for newurl in urllib2.urlopen(URL_2ch).readlines():
m = re.search("(<a(.*?)</a>)", newurl)
if m:
for str1 in m.groups()[0].split('\n'):
if re.search(word, str1) != None:
print str1
931デフォルトの名無しさん:2012/07/16(月) 12:51:02.89
>>> print re.search(ur'あい', u'あいうえお').group()
あい
932デフォルトの名無しさん:2012/07/16(月) 13:00:56.68
import urllib2, re

u = 'http://hayabusa.2ch.net/news4vip/subback.html'
w = u'馬鹿には無理'
for n in urllib2.urlopen(u).readlines():
  m = re.search(u'(<a(.*?)</a>)', n.decode('cp932'))
  if m:
    for s in m.groups()[0].split('\n'):
      if re.search(w, s) is not None:
        print s
933デフォルトの名無しさん:2012/07/16(月) 13:08:35.29
>>932
なるほどそっちをdecodeしなけりゃいけなかったのか・・・
ありがとうございました.期待通りの動作をしてくれました
934デフォルトの名無しさん:2012/07/16(月) 13:19:59.41
えっ?
こっちでも動くけど?
for n in urllib2.urlopen(u).readlines():
  m = re.search(u'(<a(.*?)</a>)', n)
  if m:
    for s in m.groups()[0].split('\n'):
      if re.search(w, s.decode('cp932')) is not None:
        print s
935デフォルトの名無しさん:2012/07/16(月) 13:32:14.86
文字コード揃えればいいだけの話
930の場合はですねえ、wordがUTF8なんですよ
だから引っかかるわけがない
936デフォルトの名無しさん:2012/07/16(月) 14:09:14.33
馬鹿には無理
937デフォルトの名無しさん:2012/07/16(月) 14:41:53.47
馬鹿には無理、はツンデレだった件
>>936 可愛いのう、可愛いのう
938デフォルトの名無しさん:2012/07/16(月) 16:05:17.87
最近はホットパンツが短くなって嬉しい
939デフォルトの名無しさん:2012/07/16(月) 16:11:09.54
素直に「ありがとう」と言えない >>930 であった。
940デフォルトの名無しさん:2012/07/16(月) 16:17:16.30
>>930 じゃなくて >>937
941デフォルトの名無しさん:2012/07/16(月) 20:22:35.99
Dive Into Python 3のpdfないかな?
出来ればmobi形式が尚のこと嬉しい
942デフォルトの名無しさん:2012/07/17(火) 01:45:00.66
見覚えある
どこで拾ったかは忘れた
943デフォルトの名無しさん:2012/07/17(火) 19:22:34.18
>>981
with tarfile.open('a.tar.gz', 'r:gz') as tar: [tar.extract(n, 'C:/temp') for n in tar.getnames()]
944デフォルトの名無しさん:2012/07/17(火) 19:24:45.21
くだすれPython(超初心者用) その14

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その13
http://toro.2ch.net/test/read.cgi/tech/1332304873/
関連スレ
Pythonのお勉強 Part47
http://toro.2ch.net/test/read.cgi/tech/1341819025/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/
945デフォルトの名無しさん:2012/07/18(水) 05:19:32.41
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
946デフォルトの名無しさん:2012/07/18(水) 05:20:45.60
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
947デフォルトの名無しさん:2012/07/18(水) 07:08:57.54
PyPy
948デフォルトの名無しさん:2012/07/18(水) 09:06:18.85
>>944
立てられなかった
>ERROR:新このホストでは、しばらくスレッドが立てられません。
>またの機会にどうぞ。。。
949デフォルトの名無しさん:2012/07/18(水) 10:02:36.15
>>948
俺も駄目だったよ
起てようとして起たないって辛いなぁ。。。。
950デフォルトの名無しさん:2012/07/19(木) 10:11:36.90
くだすれPython(超初心者用) その14
http://toro.2ch.net/test/read.cgi/tech/1342660231/
951デフォルトの名無しさん:2012/07/19(木) 14:17:38.26
ある程度大きい辞書型のデータを保存しようとすると
memoryerrorになってしまうんですが、どうにか保存する方法ってありませんか?
辞書を3分割してもダメだったので他の方法を探しています。
952デフォルトの名無しさん:2012/07/19(木) 16:27:48.88
次スレ立ったし埋めよう
953デフォルトの名無しさん:2012/07/19(木) 16:31:43.02
シャープ、5型のタッチパネル上で"書いて覚える"電子辞書「受験Brain」 2012/07/19
ttp://news.mynavi.jp/news/2012/07/19/082/
シャープは7月19日、モバイル学習ツール「受験Brain(ブレーン) PW-GX500」を発表した。
8月8日発売で価格はオープン。推定市場価格は35,000円となっている。
主に大学受験生をターゲットにした、電子辞書「Brain(ブレーン)」シリーズの派生モデル。
従来式の電子辞書に備えられていたキーボードを省略することで薄型化が実現されている。
シャープの従来モデル「PW-A9200」「PW-A7200」「PW-G5200」「PW-G4200」と比べて、厚さを約46%も削減した。
利用法としては、タッチパネルを用いた"書いて覚える"という暗記学習が主に想定されている。
画面は5型と大きめサイズなので、画面上部に単語帳コンテンツを表示させながら、
付属のタッチペンを使った書いて覚える動作を画面下部で行うことが可能だ。
954デフォルトの名無しさん:2012/07/19(木) 16:33:03.46
また、画面はカラー液晶方式なので、英単語は緑色・和訳は赤色(英単語コンテンツの場合)
というように色分けされた表示で、学習効率の向上も期待できる。
また、大きめサイズのカラー液晶を活用した、動画学習コンテンツの視聴も可能だ。
購入時点で、大手予備校の代々木ゼミナールのセンター試験対策講座
(英語・数学IA・古文、各60分×10回分)を収録。
プリインストールされた講義動画は1講座100時間の視聴制限が設けられているが、
専用サイト「ブレーンライブラリー」から追加の講義をダウンロードすることができる。
なお、ブレーンライブラリーからは、講義以外のコンテンツもダウンロード可能だ。
そのほか、国語辞典や英和辞典といった受験生必須のコンテンツから、
「飯塚センター漢文講義の実況中継」(語学春秋社)や
「代ゼミのセンター照準シリーズ 〜英語編〜」(アスク)といった人気の受験参考書コンテンツまで、
豊富な51コンテンツを収録。
ハードウェアの仕様は、ディスプレイが5型・480×320ドットのカラー液晶方式で、
本体メモリが約1GB、利用可能な記録メディアがmicroSD/SDHCカードとなっている。
電源はリチウムイオン充電池で、連続表示時間は約150時間(明るさ「3」時)だ。
サイズはW151×D99.6×H10.5mm(タッチペン含む)、
重量は約220g(充電池・タッチペン含む、カード含まず)だ。
なお、12桁表示が可能な電卓機能も内蔵されている。
955デフォルトの名無しさん:2012/07/19(木) 17:41:42.17

このスレが埋まるまでに何週間かかるんだろうねぇ
956デフォルトの名無しさん:2012/07/19(木) 17:43:11.69
埋めるスクリプトをpythonで書けばいい
957デフォルトの名無しさん:2012/07/19(木) 17:51:43.51
保存しようとする前にmemoryerrorになると思うけど、
まずどうやってどこに保存しようとしているのか言おうか。

pickle

よく分からんけど、簡単にはこんな感じかな?

f = open('/tmp/dict.pickle', 'wb')
big_L = [None] * (1 << 20) # 書き込むためのbuffer領域を確保
big_dict = {}

try:
  do_something()
except memoryerror:
  del big_L # 書き込むためのbuffer領域を解放
  f.write(big_dict)
  del big_dict
  big_dict = {}
  big_L = [None] * (1 << 20) # buffer 領域を再確保
  goto try

f.close()
958デフォルトの名無しさん:2012/07/19(木) 17:54:28.46
>>956
忍法帳になったときに面倒臭くなってやめた
959デフォルトの名無しさん:2012/07/19(木) 17:58:57.08
       /                    .\
     /                       .\
 \ /                          \ /
   \      ___________     . /
    \   ./                \   /
     | \/                   \/...|
     |  |                       |  |
     |  |                       |  |
  .._ |_|                       |_|_..
     |  |     さあ‥ 逝こうか‥‥     |  |
     |  |                       |  |
     |  |                       |  |
     |  |                       |  |
     |  |/                   ..\|  |
     |  |                       |  |
   .._|/|      _ _ _ _ _ _ _ _     ...|\|_
  / ..|  |   _−_−_−_−_− _   |  |  \
     |  |/_/━ ━ ━ ━ ━ ━\_\|  |
   .._| /_/━ ━ ━ ━ ━ ━ ━ \_\.|_
     /_/━  ━  ━  ━  ━  ━  ━ \_\
   /  /━  ━  ━  ━  ━  ━  ━\  \
960デフォルトの名無しさん:2012/07/19(木) 18:24:21.72


           ゙'.    '.;`i  i、 ノ  .、″
             ゙'.     ,ト `i、  `i、    .、″
                |    .,.:/""  ゙‐,. `    /
             `  .,-''ヽ"`    ヽ,,,、   !
                、,、‐'゙l‐、      .丿 : ':、
               、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''`  .,"-、
              ,r"ツぃ丶  ``````   ../  `i、
          ,.イ:、ヽ/ー`-、-ヽヽヽ、−´    .l゙`-、
         _,,l゙-:ヽ,;、、             、、丶  ゙i、,,、
        ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`":    │ `i、
      、、::|、、、ヽ,、、.    ```: : : ```      、.、'`  .|丶、
     .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´    l゙  ゙).._
    ,、':゙l:、、`:ヽ、`:、  : `"```¬――'''"`゙^`     : ..、丶  .l゙ `ヽ
   ,i´.、ヽ".、".、"'ヽヽ;,:、........、           、、...,,,、−‘`   、‐   |゙゙:‐,
  ,.-l,i´.、".`ヽ,,,.".`   `゙゙'"`'-ー"``"``r-ー`'":      _.‐′  丿  ,!
 j".、'ヽ,".、".、"`''`ー、._、、、           、._,、..-‐:'''′   .、,:"  丿
 ゙l,"`"`''ヽヽ"`"`  ```゙'''"ヽ∠、、、、ぃ-`''''": `      、._./`  ._/`
  `'i`ヽヽヽ`''ーi、、、: :                   、.,-‐'`   、/`
   ``ヽン'`"`  : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^    ,、‐'"`
      `"'゙―-、,,,,..、、               : ..,、ー'"'`
           : `‘"`―---------‐ヽ``"''''''""
961デフォルトの名無しさん:2012/07/19(木) 18:42:01.03
おいやめろよそんなくだらないAAで埋めるなよ(棒読み
962デフォルトの名無しさん:2012/07/19(木) 18:44:24.38
先が思いやられるな
963デフォルトの名無しさん:2012/07/19(木) 18:46:11.70
つーか早く立てすぎなんだよ980でいいだろ埋め
964デフォルトの名無しさん:2012/07/19(木) 18:50:35.87
どうしてこうなった。
965デフォルトの名無しさん:2012/07/19(木) 18:51:50.88
お金に困っています
どうすれば稼げますか?
966デフォルトの名無しさん:2012/07/19(木) 19:20:02.73
2点が与えられたときその2点を結ぶ単純な経路(同じ頂点を通らない経路)
が2つ以上存在するかを判定するアルゴリズムと計算量を述べよ。

深さ優先探索とかでしょうか?
967デフォルトの名無しさん:2012/07/19(木) 19:29:37.18
>>965
もっと働け
968デフォルトの名無しさん:2012/07/19(木) 20:27:41.90
グラフも理解出来ないとかマやめたほうが良いよ
969デフォルトの名無しさん:2012/07/19(木) 20:30:00.89
今日も雑魚しかいねーな
970デフォルトの名無しさん:2012/07/19(木) 20:33:16.75
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
971デフォルトの名無しさん:2012/07/19(木) 20:37:38.93
Python使ってる奴って変な奴しかいない
972デフォルトの名無しさん:2012/07/19(木) 21:54:30.72
C++でOpenMP使うノリで気軽にforループ内をマルチスレッド化ってできませんか?
973デフォルトの名無しさん:2012/07/19(木) 22:21:25.68
Pythonのマルチスレッドについて理解した上で言ってるのか?
974デフォルトの名無しさん:2012/07/19(木) 22:40:13.35
マルチスレッドとか言いつつ大半の状態で同時に動かないなんてウンコすぎですよねー
975デフォルトの名無しさん:2012/07/19(木) 23:21:28.01
ほとんどIOかイベント待ち専用
976デフォルトの名無しさん:2012/07/20(金) 00:25:18.03
リスト内包表記は廃止すべき
読みにくいだけのクソ機能
977デフォルトの名無しさん:2012/07/20(金) 01:37:06.41
読みにくくなるほどのコードは内包表記使っちゃダメなんだぞ
適切に使えばあんなに良いモノは無い
978デフォルトの名無しさん:2012/07/20(金) 02:20:53.81
内包は無い方が良い、ってか?
979デフォルトの名無しさん:2012/07/20(金) 03:14:58.95
な、違法だろ?
980デフォルトの名無しさん:2012/07/20(金) 03:35:55.45
滅びろお前ら
981デフォルトの名無しさん:2012/07/20(金) 03:45:52.21
RealLibってリンク切れなんだけど
開発者死んじゃったの?
982デフォルトの名無しさん:2012/07/20(金) 03:56:06.71
>>981
with tarfile.open('a.tar.gz', 'r:gz') as tar: [tar.extract(n, 'C:/temp') for n in tar.getnames()]
983デフォルトの名無しさん:2012/07/20(金) 03:58:59.08
[[tar.extract(n, 'C:/temp') for n in tar.getnames()] for tar in [tarfile.open('a.tar.gz', 'r:gz')]]
984デフォルトの名無しさん:2012/07/20(金) 04:00:33.42
糞コード増やすな
985デフォルトの名無しさん:2012/07/20(金) 04:04:37.16
>983 は close されないのでダメポ
986デフォルトの名無しさん:2012/07/20(金) 04:05:26.86
だれか >951 に答えてあげて
987デフォルトの名無しさん:2012/07/20(金) 05:11:28.80
>>985
[([tar.extract(n, 'C:/temp') for n in tar.getnames()], tar.close()) for tar in [tarfile.open('a.tar.gz', 'r:gz')]]
988デフォルトの名無しさん:2012/07/20(金) 05:14:56.59
2点が与えられたときその2点を結ぶ単純な経路(同じ頂点を通らない経路)
が2つ以上存在するかを判定するアルゴリズムと計算量を述べよ。

深さ優先探索とかでしょうか?
989デフォルトの名無しさん:2012/07/20(金) 08:46:08.15
宿題は通報する
990デフォルトの名無しさん:2012/07/20(金) 11:16:02.26
オイラーグラフでググれ
991デフォルトの名無しさん:2012/07/20(金) 11:35:14.88
ここに富士山の画像が大量にあります。
ttp://live-fuji.jp/calender/
これらの画像たちを、Pythonを使ってすべてダウンロードするにはどうすればいいですか?
ファイル保存時のファイル名は、"yyyymmddhhmm.jpg"としたい(年月日時分)とします。
画像は10分おきに公開されていて、一番映ってる時間が長いと思われる
夏至の日(6/21-23頃)でだいたい午前4:00頃から午後19:50頃まで撮影されています。
ttp://live-fuji.jp/calender/dayView.php?date=20120621
ttp://live-fuji.jp/calender/dayView.php?date=20120622
ttp://live-fuji.jp/calender/dayView.php?date=20120623
一枚づつのページはこちらで、
ttp://live-fuji.jp/calender/kobetuView.php?date=YYYYmmdd&h=HH&i=MM
画像だけの場合のURLはこちらです。
ttp://live-fuji.jp/hi-fuji/YYYYmmdd/HHMM.jpg

たとえば、開始日と終了日を指定して、
$ fuji3get.py 20110311 20120720
などと実行したいです。
992デフォルトの名無しさん:2012/07/20(金) 11:45:17.82
2011/3/12 の朝って画像ないみたいだけど停電してたんかな?
993デフォルトの名無しさん:2012/07/20(金) 12:12:12.03
2011/3/12 8:30, 8:40, 8:50 のがあるのに一覧には出てないのな
バグかな
994デフォルトの名無しさん:2012/07/20(金) 12:22:55.53
import sys, os, urllib2
BASE_DIR = u'./img'
JPG_FUJI = u'%04d%02d%02d%02d%02d.jpg'
URL_FUJI = u'http://live-fuji.jp/hi-fuji/%04d%02d%02d/%02d%02d.jpg'
def getjpeg(ymdhm):
  try:
    url = URL_FUJI % ymdhm
    print u'get %s ->' % url,
    i = urllib2.urlopen(url)
    if i is not None:
      outf = JPG_FUJI % ymdhm
      print outf
      o = open(os.path.join(BASE_DIR, outf), 'wb')
      o.write(i.read())
      o.close()
      i.close()
  except urllib2.HTTPError, e:
    print u'not found'

for year in xrange(2011, 2013):
  for month in xrange(1, 13):
    for day in xrange(1, 32):
      for h in xrange(4, 20):
        for m in xrange(0, 60, 10):
          getjpeg((year, month, day, h, m))

不要なファイルは自分で消してくれ。
995デフォルトの名無しさん:2012/07/20(金) 12:28:52.04
>>992
富士山周辺の地域は3/11の地震直後から停電して、翌朝まで復旧しなかったよ。
どこかが壊れたとかじゃなくて、電力足りなくて供給を切られたんじゃないかと思う。
996デフォルトの名無しさん:2012/07/20(金) 12:30:21.95
11日の夕方の画像があるってことは
バッテリーで動いてたのかな
997デフォルトの名無しさん:2012/07/20(金) 12:31:55.52
>>993
夜は一覧にないだけでデータは24時間ずっとある。
998デフォルトの名無しさん:2012/07/20(金) 12:34:25.33
999デフォルトの名無しさん:2012/07/20(金) 12:37:56.94
>>994
これはひどいw
1000デフォルトの名無しさん:2012/07/20(金) 12:38:36.34
1000 なら富士山噴火
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。