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

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

前スレ
くだすれPython(超初心者用)
http://pc11.2ch.net/test/read.cgi/tech/1207878910/

関連スレ
Pythonのお勉強 Part 28
http://pc11.2ch.net/test/read.cgi/tech/1217836194/
2デフォルトの名無しさん:2008/08/08(金) 12:16:22
Py乙
3デフォルトの名無しさん:2008/08/08(金) 12:17:34
◆関連リンク
Python の Home Page
http://www.python.org/

日本Pythonユーザ会
http://www.python.jp/Zope/

Python 日本語ドキュメント - Pythonistaのお友達
http://www.python.jp/doc/release/

Pythonのバイブル的書籍
http://www.amazon.co.jp/dp/4797341815
4デフォルトの名無しさん:2008/08/08(金) 12:44:00
Webアプリ編は板違い
5デフォルトの名無しさん:2008/08/08(金) 14:05:27
6デフォルトの名無しさん:2008/08/08(金) 14:44:23
>>1
7デフォルトの名無しさん:2008/08/08(金) 14:50:44
webprog板のPythonスレはいまいち盛り上がってないなぁ
8デフォルトの名無しさん:2008/08/08(金) 15:52:52
とあるプロセス(例えば/usr/bin/firefox)が動いているかどうかで分岐処理したいのですが、
どうすればいいのでしょうか?
9デフォルトの名無しさん:2008/08/08(金) 23:01:48
いろいろヤバそうだけどとりあえず思いつくやり方

import os

if '/usr/bin/firefox' in os.popen('ps').read(): ...
10デフォルトの名無しさん:2008/08/08(金) 23:05:29
どうやばいの?
11デフォルトの名無しさん:2008/08/08(金) 23:13:34
ps の出力をちゃんと解析してないので、関係ないもので True になる可能性があるとか、・・・
popen の種類がたくさんあったりして、いつもこれでうまくいくのかよく分からんとか・・・
12デフォルトの名無しさん:2008/08/08(金) 23:27:06
pgrep使えばリターンコードだけで出力見ないで済むよ。
13デフォルトの名無しさん:2008/08/09(土) 21:40:14
スレ住民全員一致のPython本のバイブル
困った時にはこの本を注文しよう。

http://www.amazon.co.jp/exec/obidos/ASIN/486191423X/
14デフォルトの名無しさん:2008/08/10(日) 02:01:08
また、だまされた
15デフォルトの名無しさん:2008/08/11(月) 21:31:02
<a href="省略1">省略</a>
<a href="省略2">省略</a>
...
みたいな、リンクが列挙されてるソースから
省略1を関数に投げて、返ってきた文字列で置換
省略2を関数に投げて、返ってきた文字列で置換
...
という処理をしたいんだけど、どういう方法が考えられる?

re.compile('<a href="(.+?)".+?</a>').findall(ソース)でリストを取得
して、それを元にaタグごと生成し直す方法しか思いつかない。
要は、re.sub('a','b','ソース')でa→bって置換する過程で、マッチした文字列
に応じてbを変化させるような処理をしたいんだ。

長文&説明下手でスマソ
16デフォルトの名無しさん:2008/08/11(月) 21:51:06
re.subに関数渡すとか、そういうこと?
17デフォルトの名無しさん:2008/08/11(月) 21:53:09
検索, 取得してから置換すればいいんじゃね?
18デフォルトの名無しさん:2008/08/11(月) 21:56:07
ほんとに説明が下手だ。
具体例を挙げてくれないと、全然分からん。
19デフォルトの名無しさん:2008/08/11(月) 22:09:42
>>15
>>16が言ってるが、
re.sub()には置換先(repl)として、ただの文字列ではなく
matchオブジェクトを受け取って文字列を返す関数を渡すこともできるよ
たとえばこんな風に

s = '1 234 5678'
print re.sub(r'\d+', lambda m: str(int(m.group()) * 2), s)

が、一般論としては、htmlを扱ってるんならlxmlなりBeautifulSoupなり
使ったほうがいいと思う
20デフォルトの名無しさん:2008/08/11(月) 22:11:13
もし使い捨てツールならperlつかう方が得策。
gオプション付きの正規表現をwhileループさせれば簡単に順次処理できる。

あえてPythonならこんな感じで
for m in re.finditer(regex, source): print m.span(), m.group()
これだとヒットした位置(span)から前後の読み飛ばした文字列を
じぶんで拾う必要がある。

もっとスマートのがあってもよさげだけど思いつかん。
21デフォルトの名無しさん:2008/08/11(月) 23:12:42
15です。
力不足ですみません。とりあえずは、
>>17
でやりました。

>>19
のやり方がスマートなのかな

>>20
実装するには、逐次処理する方法が簡単なんですかね

参考になりました。ありがとうございます!
22デフォルトの名無しさん:2008/08/13(水) 04:09:56
Pychinkoってなにをするモジュールなんですか?
23デフォルトの名無しさん:2008/08/13(水) 13:13:51
>>22
普通にあってワロタ
公式ページってここ?
ttp://www.mindswap.org/~katz/pychinko/
24デフォルトの名無しさん:2008/08/13(水) 15:51:48
Pachinkoの捩りなのかなあ…。
25デフォルトの名無しさん:2008/08/13(水) 16:51:20
PyPy
Pychinko

Python始まってるな。
26デフォルトの名無しさん:2008/08/14(木) 17:53:34
ISO 8601フォーマットの文字列からdateオブジェクトを生成するにはどうしたらいいんですか?
27デフォルトの名無しさん:2008/08/14(木) 18:02:06
28デフォルトの名無しさん:2008/08/17(日) 19:21:32
>>24
FOAF関連のモジュールなんだから
ともだちんこの捩りだろう
29デフォルトの名無しさん:2008/08/23(土) 23:45:28
python って ruby とかperlの -cwオプションみたいなのないの?
30デフォルトの名無しさん:2008/08/24(日) 00:01:57
>>29
pylintいれたら?
31デフォルトの名無しさん:2008/08/24(日) 00:07:13
>>30
pylintってなんですか?
32デフォルトの名無しさん:2008/08/24(日) 02:03:51
pycheckerもあるな
33デフォルトの名無しさん:2008/08/26(火) 10:45:03
optparse では -h と --help が最初から設定されているけど,
-h を別の意味で使いたい時にはどうすればいいの?

parser.add_option("-h", "--host", dest="host")

ってやると

optparse.OptionConflictError: option -h/--host: conflicting option string(s): -h

になっちゃう (>_<)
34デフォルトの名無しさん:2008/08/26(火) 11:41:36
http://docs.python.org/lib/optparse-creating-parser.html
>add_help_option (default: True)
> If true, optparse will add a help option (with option strings "-h" and --help) to the parser.
35デフォルトの名無しさん:2008/08/26(火) 12:36:35
横からだけどせっかく書いたので貼ってみる

import optparse
from gettext import gettext

parser = optparse.OptionParser(add_help_option=False)
parser.add_option('--help', action='help',
help=gettext('show this help message and exit'))
parser.add_option('-h', '--host', dest='host')
options, args = parser.parse_args(['-h', 'www.example.com'])
print options # {'host': 'www.example.com'}
36デフォルトの名無しさん:2008/08/26(火) 13:13:21
C++ だと例外「オブジェクト」を受けとって
それに含まれる情報を宛てにしていろいろ例外処理できるけど,
Python だと例外として投げられるのは具体的にはなに?

except MyExceptionClass:

見たいに書くわけだけど,じゃ,その例外クラスの
インスタンスは本当にどこかに生成されているの?
37デフォルトの名無しさん:2008/08/26(火) 13:32:09
>>36
>>> try:
... f = open('NOTEXIST')
... except IOError, e:
... print (e.errno, e.strerror, e.filename)
...
(2, 'No such file or directory', 'NOTEXIST')

ttp://www.python.jp/doc/release/lib/module-exceptions.html
38デフォルトの名無しさん:2008/08/26(火) 19:00:20
みんな親切だなあ
39デフォルトの名無しさん:2008/08/28(木) 00:32:22
40デフォルトの名無しさん:2008/08/28(木) 00:35:54
http://ja.reddit.com/comments/6cst0/making_games_with_python_which_library_to_use
flaxeater 1ポイント 5ヶ月 前[-] Easier in what way?
mcantelon 3ポイント 5ヶ月 前[-] Less dependencies.

依存性高めると、後から動かし難い・・・
引き際も大切か・・・
41デフォルトの名無しさん:2008/08/29(金) 12:36:18
i = 1
j = i
i = 2

print i,j ってすると当たり前のように 2 1 って表示されるんですが、
「Python の代入は束縛だ」って書いてあったので 2 2 ってのが
正しい気がするのですが、何が間違っているんでしょうか(俺が)
42デフォルトの名無しさん:2008/08/29(金) 12:40:32
リテラルは束縛される対象にはなりえないってことですか?
43デフォルトの名無しさん:2008/08/29(金) 12:53:01
int,long,float,str,tupleあたりはimmutableだから
44デフォルトの名無しさん:2008/08/29(金) 12:55:54
i=1で1というオブジェクトが生成されiが参照する。
j=iで、jはiと同じ1というオブジェクトを参照する。
i=2で新たに2というオブジェクトが生成されiはそれを参照する。

この時点でiは2を指し、jは1を指す。
45デフォルトの名無しさん:2008/08/29(金) 12:55:58
>>41
>何が間違っているんでしょうか(俺が)

そう、オマエの存在自体が間違っているのだよ.
46デフォルトの名無しさん:2008/08/29(金) 12:58:04
>>41-42
j = iは「jをiの別名、エイリアスとせよ」という意味ではなくて、
同じオブジェクトを指すようになるだけだ

その後のi = 2で、iは2に束縛される(iという名前が2を指すようになる)が、
別にjはiの別名じゃないから、(弄られてない)jは、1に束縛されたままだ

つーか、束縛って別名のことじゃないと思うんだが、なぜそのように動くと
思ったんだい?
47デフォルトの名無しさん:2008/08/29(金) 13:00:01
>>> a = ()
a は immutable object への参照
>>> b = a
b は a の指し示す immutable object への参照
>>> a = (1,)
a は新しい immutable object への参照
>>> print a, b
(1,) ()

Python には名前への参照はないというだけ
48デフォルトの名無しさん:2008/08/29(金) 13:00:16
>>43
こらこら、別にmutableだろうが
i = [1]
j = i
i = [2]
で、jが[2]を指すようになるわけじゃないんだから
いい加減なことを言わないように
49デフォルトの名無しさん:2008/08/29(金) 13:06:41
入門書嫁
50デフォルトの名無しさん:2008/08/29(金) 13:18:01
>>> i = 1
>>> j = i
>>> i = 2
>>> print i, j
2 2
>>> i += 1
>>> print i, j
3 3

こんなクソ言語だれも使わないよな常考
5141:2008/08/29(金) 13:31:00
C/C++ の参照型のようなもんかと思ってた。
boost::shared_ptr<T> のようなものか・・・
52デフォルトの名無しさん:2008/08/29(金) 14:57:31
>>50
"もし〜だったら"を入れないと勘違いしそう
53デフォルトの名無しさん:2008/08/29(金) 14:57:35
pythonインタプリタでテストをしていて、モジュールを修正した場合、再importするにはどうすればよろしいでしょうか?
いちいちインタプリタを再起動するのが面倒ですorz
54デフォルトの名無しさん:2008/08/29(金) 15:03:12
>>> import foo
>>> reload(foo)
5553:2008/08/29(金) 15:16:36
>> 54
天才
56デフォルトの名無しさん:2008/08/29(金) 16:54:16
>>53
IDLEならCtrl+F6を押すだけでリスタートできる。
57デフォルトの名無しさん:2008/08/29(金) 17:27:17
reload() will be removed in python 3.0
58デフォルトの名無しさん:2008/08/29(金) 23:05:53
cPickleとpickleを使ってみようと思って

import cPickle
o = "a"
f = file("pick.txt","w")
cPickle.dump(o, f)

は正常に動いたんですが、

import pickle
o = "a"
f = file("pick.txt","w")
pickle.dump(o, f)



raceback (most recent call last):
AttributeError: 'module' object has no attribute 'dump'

って感じんのエラーがでるんですが、誰かpickleのサンプル書いてもらえませんか?
59デフォルトの名無しさん:2008/08/29(金) 23:20:37
とりあえずこれでも

import pickle
dir(pickle)
60デフォルトの名無しさん:2008/08/29(金) 23:59:13
何がなんだかよくわからないのですが、
2chを読み書きするためのPythonを教えてください
61デフォルトの名無しさん:2008/08/30(土) 00:18:22
>>60
wgetだけでできるので
pythonの出る幕はない
62デフォルトの名無しさん:2008/08/30(土) 00:35:40
>>60
urllib
urllib2
cookielib
63デフォルトの名無しさん:2008/08/30(土) 11:29:19
>>58
そのテストスクリプトにpickle.pyと付けちゃったていうオチか?
6458:2008/08/30(土) 12:59:04
>>63
きたーーwwwwナイスエスパー!!
65デフォルトの名無しさん:2008/08/30(土) 13:10:03
>>60
前に書いた奴。
クッキーの保持の方法が分からないので2回連続POSTしてるがご愛嬌。

# coding: utf-8
import urllib2, cookielib
from urllib import urlencode

def cnvChar(str, code, code2='utf-8'):
return unicode(str, code2).encode(code)

cj = cookielib.CookieJar()

pd = {'bbs': 'board', 'key': 'key', 'time': '1',
'submit': cnvChar('書き込む','cp932'), 'FROM': cnvChar('名前','cp932'),
'mail': cnvChar('メール','cp932'), 'MESSAGE': cnvChar('内容','cp932'), 'hana': 'mogera'}

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Monazilla/1.00 Python/2.5'),
('Referer', 'http://host.2ch.net/board/')]

r = opener.open("http://host.2ch.net/test/bbs.cgi", urlencode(pd))
r = opener.open("http://host.2ch.net/test/bbs.cgi", urlencode(pd))


教えて君にはソースを見せるのが一番だね
66デフォルトの名無しさん:2008/08/30(土) 21:34:29
クッキーはIPとちょっとした文字列で、自力でも作れたと思うなぁ
しかし、なんとも作りかけのスクリプトだなw
まあ、とっかかりにはよいだろうが
67デフォルトの名無しさん:2008/08/31(日) 00:31:39
包茎が治るスクリプトをお願いします
68デフォルトの名無しさん:2008/08/31(日) 00:32:21
自己解決しました
69デフォルトの名無しさん:2008/08/31(日) 00:39:50
病気じゃないから治んないだろ
70デフォルトの名無しさん:2008/08/31(日) 01:00:35
import ueno_clinic
71デフォルトの名無しさん:2008/08/31(日) 01:06:49
>>70
金銭リソースが食い尽くされた
7241:2008/08/31(日) 06:08:58
Windows でも UNIX でも共通に使える
Python から自分自身を nice する方法ってありますか?
73デフォルトの名無しさん:2008/08/31(日) 09:58:48
回答まだですか?
74デフォルトの名無しさん:2008/08/31(日) 14:50:46
自己解決しました
75デフォルトの名無しさん:2008/09/01(月) 22:57:25
OpenOfficeのmacroで使うためにPythonを勉強しようと思うのだけれど、何かお薦めの入門書ってない?
Pythonの入門書は色々出ているみたいで、始めてやる場合ににはどの本がいいのか分からないです。
プログラム歴はCの入門書をある程度理解している程度です。(実用で使った事はない。)
76デフォルトの名無しさん:2008/09/01(月) 23:29:53
本ではないけど、とりあえずチュートリアルでも読んでみたら
http://www.python.jp/doc/release/tut/
77デフォルトの名無しさん:2008/09/02(火) 14:50:51
すいません質問させてください
pythonを勉強したいのですが何をインストールするべきでしょうか?

http://www.python.jp/Zope/downloadのページの・Python標準リリースってところと
日本語環境用インストーラの二つありますが、どちらを使ったほうがいいでしょうか?
78デフォルトの名無しさん:2008/09/02(火) 14:56:19
>>77
標準リリースの2.5.2のやつ。
日本語環境用のやつは古いし、選ぶ理由はないよ。
79デフォルトの名無しさん:2008/09/02(火) 15:03:11
ありがとうございます標準のものを使うことにします
ありがとうございました
80デフォルトの名無しさん:2008/09/02(火) 16:51:19
pythonを日本語で引くとpython.jpがトップに来るんだよなあ
誰が得するんだよ
81デフォルトの名無しさん:2008/09/02(火) 17:12:24
>>80
検索結果から除外するように
NGサイトを登録することができればいいのにな。
個人単位で。
82デフォルトの名無しさん:2008/09/02(火) 19:00:31
80みたいなことを言って誰が得するのか知りたい。
83デフォルトの名無しさん:2008/09/02(火) 19:02:08
そもそもpython単体でググってなにを求めるというのか
84デフォルトの名無しさん:2008/09/02(火) 23:51:07
そういえば、日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちがいたよな
元気にしてるのかな?
アッーー!
85デフォルトの名無しさん:2008/09/03(水) 00:20:23
python温泉はレベル高いから遠慮しておいたほうがいいな
86デフォルトの名無しさん:2008/09/03(水) 00:29:44
そうだな
角電池くらい入れられるようにならないとな
87デフォルトの名無しさん:2008/09/03(水) 00:35:14
>>85
今回もキャバクラ行くんだろうな
今からキャバクラ芸を練習しておくことにするよ
88デフォルトの名無しさん:2008/09/03(水) 00:39:38
書籍が売れなかった件についても反省して欲しいな(ww
89デフォルトの名無しさん:2008/09/03(水) 00:47:18
書籍は大量に売れたよ。品切れになるぐらい。
90デフォルトの名無しさん:2008/09/03(水) 00:48:28
>>86
勝手に疎外感を感じてしまいがちなボクチムは
寂しい気持ちを慰めるためにキャバクラに通います
最近はお金がないので,もっぱらイケメンのあの人を思い浮かべながら
単三電池や角電池で自分を慰めているかもしれません

そんな毎日なのでずっと万年厨房の日陰者です
91デフォルトの名無しさん:2008/09/03(水) 01:26:07
どんな負け犬合宿だよ(wwWwwWwwww
92デフォルトの名無しさん:2008/09/03(水) 13:45:31
口だけ立派でたいしたこともできない上
すぐキレるような奴はいらないから今すぐ消えて欲しい
93デフォルトの名無しさん:2008/09/03(水) 15:26:28
optparseでdefault値を設定したとき、例えば

parser.add_option("-w", "--width", dest="width", default=100,
help = "Width of output image (default is 100)")

などとやることを考えます。
このときdefault=100と指定しているのにも関わらず、
helpの説明にdefaultが幾つかを手で書かないといけません。
これを自動化させるような方法はoptparseの標準機能では存在しないでしょうか。
94デフォルトの名無しさん:2008/09/03(水) 15:28:48
%default
95デフォルトの名無しさん:2008/09/03(水) 17:46:07
Windowsのコマンドプロンプトで実行する場合、
input(u"日本語文字列")ってすると文字化けします。
明示的にコマンドプロンプトの文字コード(cp932とか)にエンコードしないと駄目なんでしょうか?
96デフォルトの名無しさん:2008/09/03(水) 17:49:06
>>95
環境に合わせて自動的に決定されるようにできるよ
97デフォルトの名無しさん:2008/09/03(水) 17:54:35
>>96
ご回答ありがとうございます。
もうちょっと調べてみます。
98デフォルトの名無しさん:2008/09/03(水) 23:18:04
>>89
>書籍は大量に売れたよ。品切れになるぐらい。

どの本だよ(wwWwwWwwwwwWWwwwWwwww
99デフォルトの名無しさん:2008/09/04(木) 01:26:23
grassで返答するのはやめろ
100デフォルトの名無しさん:2008/09/04(木) 02:12:50
売れない書籍の関係者乙(wwwWwwwWWwwWwwWwWwww
101デフォルトの名無しさん:2008/09/04(木) 12:15:01
>>84
>そういえば、日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちがいたよな
>>85
>python温泉はレベル高いから遠慮しておいたほうがいいな

どこの中二病だよ(wwwwwwwwwwwwwwwwwwwwwwwww
Pythonはじまったな(wwwwwwwwwww
102デフォルトの名無しさん:2008/09/04(木) 16:53:38
pylonsとTurboGearsとDjangoってどれが一番初心者向けですか?
103デフォルトの名無しさん:2008/09/04(木) 22:52:49
twisted
104デフォルトの名無しさん:2008/09/04(木) 23:34:38
pylonsとTurboGearsとDjangoとtwistedってどれが中二病っぽいですか?
105デフォルトの名無しさん:2008/09/04(木) 23:49:01
hpricot
106デフォルトの名無しさん:2008/09/05(金) 01:36:48
pylonsとTurboGearsとDjangoとtwistedとhpricotってどれが邪鬼眼っぽいですか?
107デフォルトの名無しさん:2008/09/05(金) 02:03:20
pylonsとTurboGearsとDjangoとtwistedとhpricotとGrokってどれが日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちっぽいですか?
108デフォルトの名無しさん:2008/09/05(金) 05:43:51
109デフォルトの名無しさん:2008/09/05(金) 08:09:43
110デフォルトの名無しさん:2008/09/05(金) 09:04:57
pylonsとTurboGearsとDjangoとtwistedとhpricotとGrokとweb.pyってどれが日本のPythonコミュニティをどうこうするとか息巻いて玉砕してたくせに結局できたのは傷をなめ合うだけの引きこもりオナニー集団だけだったのですねおまえらいらないからPHPでもやってろよ。
111デフォルトの名無しさん:2008/09/05(金) 09:57:38
PHPはないだろ
あるとすれば ocaml とか
112デフォルトの名無しさん:2008/09/05(金) 10:10:15
113デフォルトの名無しさん:2008/09/05(金) 10:44:49
boost.python つかったら std::vector<myclass> みたいなのが
さっくりと python から扱えるようになる?
114デフォルトの名無しさん:2008/09/05(金) 12:28:04
またPHP厨か
115デフォルトの名無しさん:2008/09/05(金) 13:09:44
>>110
以下の一文を適宜付け加えておいてくれ

自分の能力のなさを棚に上げて他人を逆恨みする
116デフォルトの名無しさん:2008/09/05(金) 22:08:05
翻訳ドキュメントの読み方のコツを教えてください。
javaのドキュメントのようには、なかなかクラスとメソッドの関係とかが
分かりません。
117デフォルトの名無しさん:2008/09/05(金) 22:36:14
pydocと併用するとか、対話モードで動かしながら読むとか
118デフォルトの名無しさん:2008/09/05(金) 23:43:57
これは便利ですね。はじめて知りましたpydoc
さすがに親クラスとかパッケージに含まれるクラスにリンクで飛ぶようなことは
出来ないですよね?それが出来れば最高なんですけど
119デフォルトの名無しさん:2008/09/05(金) 23:45:48
i = 1

iに1加える場合

i = i + 1

よりも簡単な方法ってないですか?
120デフォルトの名無しさん:2008/09/05(金) 23:47:53
i+=1
121デフォルトの名無しさん:2008/09/06(土) 00:11:32
122デフォルトの名無しさん:2008/09/06(土) 00:50:29
>>120
それ、あんま好きになれん。
結局iは+1した値を指しなおすわけで全くの構文糖てのが。
123デフォルトの名無しさん:2008/09/06(土) 01:33:33
>>122
pythonで数字は普遍性を持つので
CPUにとっての「簡単な方法」を追求するなら
CやPerlなどの「純粋」手続き型言語を選択すべき。
124デフォルトの名無しさん:2008/09/06(土) 01:51:25
>>122
pythonの場合はintがimmutableだから仕方が無いんだろう

__add__()と__iadd__()は別物だから、mutableなobjectに関しては、
C++と同じように+と+=は別物として定義できるし
一般には後者のほうが効率がいいわな
125デフォルトの名無しさん:2008/09/06(土) 02:08:44
>>124
__iadd__()って別個にあるんだな。しらんかった。
126デフォルトの名無しさん:2008/09/06(土) 03:31:06
immutableなくせにmutableのフリをしやがってプンプン
127デフォルトの名無しさん:2008/09/06(土) 04:19:04
いま PyDev 使っているんですがUSBメモリに入れて持ち歩ける開発環境を探しています。
エディタでおすすめはなんでしょうか??
128デフォルトの名無しさん:2008/09/06(土) 04:22:51
emacs
129デフォルトの名無しさん:2008/09/06(土) 04:43:17
>>128
Windows なんですけど、Meadow とかすか?
できれば 22 系の情報キボンヌ
130デフォルトの名無しさん:2008/09/06(土) 05:22:03
widowsならpyscripterでも入れとけよ
131デフォルトの名無しさん:2008/09/06(土) 05:26:18
そのままJRE+Eclipseでいいんじゃないの?
うまくcmdファイルを書けばいけるよたぶん。
ドライブレター固定もわざわざディスクの管理でせずに
substで回避するとかで。(ダブってるとダメだけど)
132デフォルトの名無しさん:2008/09/06(土) 08:08:38
pyscripterよさそう。
しかし!
よく考えたらそもそも Python 自体をどうやって持ち歩くんだ?
C:\Python25 以下をごそっとコピーしただけでいいんだろうか?
だけどたしかその位置(C:\Python25)ってレジストリに
登録されてるんだよなぁ。
133デフォルトの名無しさん:2008/09/06(土) 09:44:10
レジストリはsys.pathの初期化に使うだけ
なくても動く
C:\Python2Xをそのままコピーすればおk
134デフォルトの名無しさん:2008/09/07(日) 15:35:04
質問です。cat(引数はつけない)のつもりで以下のスクリプトを書きました。

import sys
for line in sys.stdin: print line,

コンソールから実行してみると、入力して改行しても出力されません。
そこでwhileとreadline()を使って、

import sys
line = sys.stdin..readline()
while line:
print line,
line = sys.stdin.readline()

のように書き直しました。これで望む結果は得られたものの、どうもいまひとつです。
もっとスマートな方法があれば教えてください。よろしくお願いします。
135デフォルトの名無しさん:2008/09/07(日) 15:36:31
すいません、インデント崩れました。

import sys
line = sys.stdin..readline()
while line:
 print line,
 line = sys.stdin.readline()
136デフォルトの名無しさん:2008/09/07(日) 16:11:05
forループは先読みバッファを使うらしいね
下のと同じ意味で
for line in iter(sys.stdin.readline, ""): print line,
137デフォルトの名無しさん:2008/09/07(日) 16:26:01
レスありがとうございます。どうもそのようですね。
独自のバッファを使うことを意識しておかないと。

結局、whileループを

while True:
 line = sys.stdin.readline()
 if not line: break
 print line,

と書き直すことで解決しました。今後はこっちを使うことにします。
138今日の日記:2008/09/08(月) 01:49:32
__setattr__()メソッドが再帰的に呼び出されないように、
このメソッドの中では

object.__setattr__(self, name, value)

という形式で値を代入するらしいけど、この"object"ってなによ????( ;´Д`)

自分の参考書には

class MyClass(object):

ってクラスの()の中に1箇所だけ記述されてるんだけど、
これって"継承"してるってこと???objectは基底クラスってこと?
objectはどこに定義してあるのよ?おれはしてないよww

( ´Д`)

( ´Д`)

( ;´Д`)

寝る
139デフォルトの名無しさん:2008/09/08(月) 01:52:48
140デフォルトの名無しさん:2008/09/08(月) 08:11:18
>>138
まともな入門書嫁。
141デフォルトの名無しさん:2008/09/08(月) 09:13:05
class hoge(object):
  def __setattr__(self,method,value):
    self.__dict__[method] = value

self.method = value
とするとself.methodの時点で
__setattr__の条件を満たしてしまい
永久ループに突入してしまうので、
オブジェクトのディクショナリを参照し、
そこに代入する形を取る。
142デフォルトの名無しさん:2008/09/08(月) 09:19:00
うそを書くなよ。上のコードは動作しないぞ、気をつけろ!
143デフォルトの名無しさん:2008/09/08(月) 09:57:31
>>142
ありがとうございます
危うく嘘を覚えるところでした ( ;´Д`)

引き続き解説募集中です (^o^)
144デフォルトの名無しさん:2008/09/08(月) 13:16:45
とりあえず、object は基底クラスで、
class MyClass(object):...
は object を継承してる。
145デフォルトの名無しさん:2008/09/08(月) 23:55:24
def main():
 なにか
if __name__ == '__main__':
 main()

という形式を見かけたんですかなぜこのようにしているのでしょうか?
146デフォルトの名無しさん:2008/09/08(月) 23:57:45
スクリプト起動したときに
必ずmain関数が動いてほしい、という時の為のおまじない。
147デフォルトの名無しさん:2008/09/09(火) 00:04:58
148デフォルトの名無しさん:2008/09/09(火) 00:05:54
知らん
149145:2008/09/09(火) 00:10:05
>>147
英語サイト貼ってんじゃねぇよ屑
150デフォルトの名無しさん:2008/09/09(火) 00:13:34
>>147
ありがとうございます
よくわかりました
151デフォルトの名無しさん:2008/09/09(火) 00:33:31
やっぱりわかりません
152デフォルトの名無しさん:2008/09/09(火) 00:56:48
>>145
モジュールとしてして利用するとmainは実行されない。
単体で実行するとmainが実行される。
たいがいはテスト目的かな。
153デフォルトの名無しさん:2008/09/09(火) 01:29:17
importするとそのスクリプトが実行されるという基本的なことを
説明してあげないと
154デフォルトの名無しさん:2008/09/09(火) 01:47:41
__name__にはモジュール名が入る。
import sys
print(sys.__name__)
とやると'sys'が戻る。
でトップレベルで実行(自分自身を実行)
すると'__main__'になる。
そのため、__name__ = '__main__'が成りたつ場合
自分自身が実行された、ということがわかるため、
その後にmain関数だのを列挙しておけば実行される
155デフォルトの名無しさん:2008/09/09(火) 02:00:07
おいおい嘘教えるなよ。それはまったくのでたらめだろ
importの内容について語るかと思ったら嘘張られるとは
156デフォルトの名無しさん:2008/09/09(火) 03:43:02
ひどいスレだ・・・
157デフォルトの名無しさん:2008/09/09(火) 08:58:29
でたらめが多すぎる・・・
158デフォルトの名無しさん:2008/09/09(火) 09:56:15
そもそもPythonて言語自体が怪しくなってくる
159デフォルトの名無しさん:2008/09/09(火) 10:19:00
>>158
詳しく
160デフォルトの名無しさん:2008/09/09(火) 10:42:59
自己解決しました
161デフォルトの名無しさん:2008/09/09(火) 13:22:27
入門書嫁
162デフォルトの名無しさん:2008/09/12(金) 23:34:57
import urllib
print urllib.urlopen("http:example.com").info()

info()って一部のヘッダー情報しか出力しないよね?
httpステータス(200とか)をurllibで取得することってできますか?
163デフォルトの名無しさん:2008/09/13(土) 00:06:51
HTTPでinfo()にHTTPステータスが含まれないのはそういう仕様なんだろう。
urllib2か直接httplibをつかうしかないと思う。
164デフォルトの名無しさん:2008/09/13(土) 07:58:24
>>163
なるほど。了解です。
165デフォルトの名無しさん:2008/09/15(月) 00:48:05
>>164
urllib2.urlopenの返してくるオブジェクトには、なぜかcodeってプロパティがあって
そこに200とかそのものずばり入ってる
166デフォルトの名無しさん:2008/09/15(月) 11:00:51
Python3.0に向けて皆さんが勉強していることってなんですか?
ソースビルドして動きを確かめるぐらい?
167デフォルトの名無しさん:2008/09/15(月) 12:00:59
ML,PEP,NEWS.txt
168デフォルトの名無しさん:2008/09/15(月) 13:49:16
Rubyに乗り換える準備をしている
169デフォルトの名無しさん:2008/09/15(月) 13:50:45
>>166
本家にあるマニュアルを眺める
170デフォルトの名無しさん:2008/09/15(月) 13:51:27
>>168
参考までに理由を教えて
171162:2008/09/15(月) 20:07:56
>>165
まじっすかww自分urllibの方のコード必死に潜ってましたww

クラスURLOpenerのhttp_openメソッドでhttpステータスが入った変数errcodeが
if文の分岐に使われてるのを見つけたんですが、
どうやってアクセスするのが良いか悩んでたとこだったんです。。

助かります。ありがとうございました。

172デフォルトの名無しさん:2008/09/17(水) 14:18:43
def f( *arg ):
  print arg

p = None
f(p)

f()のargを空タプルにしたい場合、
変数pへはどんな値を代入すればいいでしょう??

ちなみに、上の場合は
(None,)
となってしまいます。。
173デフォルトの名無しさん:2008/09/17(水) 14:29:52
引数無しで f()
174デフォルトの名無しさん:2008/09/17(水) 14:36:01
p = ()
f(*p)
175デフォルトの名無しさん:2008/09/17(水) 14:37:30
f(*p)
と書くべきじゃないの
176シベリアよりのお手紙:2008/09/21(日) 08:14:33
今、windows xpでpython3000を勉強しています。

ハードディスクにあるファイルを、更新日の新しいものだけUSBメモリにコピーするという
スクリプトを書いたのですが、大きなファイルをコピーするとファイルの断片化がひどいです。
Explorerのコピーのように一旦連続した領域を確保してからそこにコピーというような処理は
書けないでしょうか?

ついでの質問ですが、比較関数を指定したlistのsortはどうやるんですか?
# Rubyでいうとこの、ary.sort{|a,b| a <=> b } みたいなやつです。
動作効率向上のために機能を削ったとかいうのは、メーリングリストで見かけましたが
全く方法がないと言うことはないと思うのですが。
177デフォルトの名無しさん:2008/09/21(日) 09:01:19
後半については

L = ['one', 'two', 'three', 'four']
L.sort(cmp = lambda a, b: len(a) - len(b)) # 文字数で昇順ソート

大抵の場合はkey指定で間に合うと思うけどね
(上の例の場合、L.sort(key = len)
178デフォルトの名無しさん:2008/09/21(日) 09:25:32
>>176
ファイルを扱う側からすれば領域が連続するかしないかなんてどうでもいい話だから
どうしてもやりたいならボリュームを直接開いてファイルシステムを直接いじることになるんじゃないの?
explorer云々が本当ならどんなことしてるかスパイツール使って調べてみればいい
179デフォルトの名無しさん:2008/09/21(日) 09:41:09
常套手段として前半は
低レベルI/Oでファイルサイズ分lseek()して空write()かな。
モダンなOS・FSならこれでヒントになるとおもう。
py3kで実現できるかは試してないから不明。
180デフォルトの名無しさん:2008/09/21(日) 22:40:40
xyzzyってエディタではTabによる空白を空ける事が出来ないんですが
解決方法もしくは他にオススメのエディタがあったら教えていただけませんか
181デフォルトの名無しさん:2008/09/21(日) 22:49:54
C-q TAB
182デフォルトの名無しさん:2008/09/21(日) 23:11:52
有難うございます!
183デフォルトの名無しさん:2008/09/22(月) 07:16:22
mod_python + publisher handler はじめて使った。
こんなに簡単に書けてしまっていいのだろうか…
184デフォルトの名無しさん:2008/09/22(月) 23:07:38
Pythonの問題集っぽいのが欲しいです
一度学習した事のチェックがしたいんです
185デフォルトの名無しさん:2008/09/22(月) 23:17:11
なにを求めてるんだか知らんけどな
http://www.pythonchallenge.com/
http://projecteuler.net/
http://ja.doukaku.org/
186デフォルトの名無しさん:2008/09/22(月) 23:27:22
他言語の宿題スレの問題をPythonでやるとか
187デフォルトの名無しさん:2008/09/23(火) 01:51:04
>>185
うおあありがとう

>>186
なるほど
188176:2008/09/23(火) 08:48:59
>>179
断片化に関してはだいぶよくなったような感じがします。
ですが、挙動が思ってたものと違うようで、lseekしてからwriteすると
パッとそのサイズのファイルができるのではなくて、ファイル先頭から
順次\x00を書き込んでいってるような感じでした。なので全体の書き込み速度は半分に。
178氏の言うように、近いうちにexplorerの挙動を調べてみたいと思います。
分かったとしても、Cで拡張ライブラリ書くことになるのかなぁ。

>>177
Python 3.0b3 (r30b3:66303, Sep 8 2008, 14:01:02) [MSC v.1500 32 bit (Intel)] on win32
>>> L = ['one', 'two', 'three', 'four']
>>> L.sort(cmp = lambda a, b: len(a) - len(b)) # 文字数で昇順ソート
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'cmp' is an invalid keyword argument for this function

cmpは動かないようです。L.sort(key = len) なら動きます。
python3000の啓蒙サイトでもcmpを使ったコードがあったんですけど動かないのはうちだけ?
189デフォルトの名無しさん:2008/09/23(火) 09:37:08
if id == 1: ... とかいうコードを書いてひどい目にあった
おまいらも気をつけろよ

というか組み込み関数だけでも色分けしてくれるエディタを使うべきか
190189:2008/09/23(火) 09:58:03
import __builtin__; print '\n'.join(dir(__builtin__)) で自己解決
191デフォルトの名無しさん:2008/09/23(火) 10:03:43
>188
Python3000ではcmpパラメータは撤去されたらしい。すまんかった。

ttp://www.python.org/dev/peps/pep-3100/
>list.sort() and builtin.sorted() methods: eliminate cmp parameter
192デフォルトの名無しさん:2008/09/23(火) 12:37:43
>>188
Windows上ではfile.truncateでファイルサイズ増やせる
後はctypesでCopyFileW,SHFileOperationWあたりを使ってみるとか
193デフォルトの名無しさん:2008/09/24(水) 21:40:39
ttp://www.python.jp/Zope/intro/
ここのpycgi.cgiの中にtest.cgiって書いてあるけどこれらは同じじゃないと
動きませんよね?
194デフォルトの名無しさん:2008/09/24(水) 22:18:25
そうだね。
8年前の記事なんて誰も読まないから気付かなかったんだろう。
195193:2008/09/24(水) 23:45:58
>>194 やっぱりそうなんですね。1日悩みましたが解決して先へ進めそうです。
もし中の人がいたら修正お願いします、私みたいな初心者がつまずかないために。
196デフォルトの名無しさん:2008/09/27(土) 11:25:25
Python で作ったデーモンっぽいツールに
(と言ってもログ監視とかその程度だけど)
ちょっとしたウェブインターフェイスを付けたいと思っています。
こういう目的で使える HTTP を扱うモジュールってありますか?

http://www.athana.org/
なんかは単体のウェブサーバだし・・
197デフォルトの名無しさん:2008/09/27(土) 12:14:53
198デフォルトの名無しさん:2008/09/27(土) 19:32:50
PyHP
199デフォルトの名無しさん:2008/09/28(日) 21:39:05
urllib の pathname2url を使って
C:\cygwin\usr\local\bin\sandbox.py
を変換すると
/C|/cygwin/usr/local/bin/sandbox.py
になります。
ドライブレターの後続の : が | になっています。

実際にはこれを URL として使おうとすると
file:///C%7c/cygwin/usr/local/bin/sandbox.py
となります。たしかに IE も含めてこのURLで
ローカルファイルシステムのファイルを開くことができます。

: ではなく | を使う理由は、初期のNetscapeで : の
代替として | が使われていた(しかも RFC に反して
%エンコードの対象から外されていた)という以外に
何か理由があるのでしょうか?

また、
file:///C%7c/cygwin/usr/local/bin/sandbox.py

file:///C:/cygwin/usr/local/bin/sandbox.py
のいずれが正規形なのでしょうか?

200デフォルトの名無しさん:2008/09/28(日) 22:15:10
スレ違いのような気もするが、Wikipediaによると次の理由があったのらしい。
the original URL syntax とやらの出典がないので真偽は不明。
http://en.wikipedia.org/wiki/File_URI_scheme
> On MS Windows systems, the normal colon (:) after a device letter has sometimes been
> replaced by a vertical bar (|) in file URLs. For example, to refer to file FOO.BAR in the
> top level directory of the C disk, the URL file:///C|/FOO.BAR was used. This reflected
> the original URL syntax, which made the colon a reserved character in a path part.
201デフォルトの名無しさん:2008/09/28(日) 22:23:13
RFC1738を見る限りでは使えそうなんだがな
202デフォルトの名無しさん:2008/09/28(日) 22:23:45
パスを構成する要素として使える文字 pchar の定義が
RFC2396 から RFC 3986 で増えているのもそれに関連しているのかも。

RFC2396 "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")"
RFC3986 ではそれに加えて /"&" / "$" / "+" / "," / ";" / "=" / ":" / "@"

ただ、RFC2396の時点でも既に | は含まれてないんだよな…
たとえ : の代わりに | を使ったとしても %エンコードしなきゃ
いけないことには変わりないんだけど、ネスケはそれを無視してたらしい。

「the URL file:///C|/FOO.BAR was used」ってことで今は
file:///C:/FOO.BAR でいいわけで、なんで urllib では
そうなってないんだろうな、と疑問に思った次第。
203デフォルトの名無しさん:2008/09/28(日) 22:59:54
あ、いや、そういうことが言いたいんじゃなかった。

ドキュメントには「urllib.pathname2url() は urllib.quote()
処理された結果が返る」って書いてあるのに「|」が
urllib.quote() 処理されてないじゃん、ってことが言いたかった。
バグじゃねぇ?って思ったんだけど、仕様なのかね。
204デフォルトの名無しさん:2008/09/28(日) 23:02:04
C:\cygwin\usr\local\bin\sand~box.py



///C|/cygwin/usr/local/bin/sand%7Ebox.py

に返還されるので ~ はエスケープ処理されるんだ。
まぁ昔のNetscapeに合わせた仕様ということなんだろう。
とはいえ RFC3986 に準拠したい自分にとっては気持ち悪い。
再度 urllib.quote() かけると % が二重にエンコードされちゃうし。
205デフォルトの名無しさん:2008/09/28(日) 23:20:04
urllib のコードを読んでみた。
なんのことはない、urllib.quote() は RFC3986 ではなく
RFC2396 の reserved をエンコードしているだけ。
ただし "/" は引数 safe のデフォルト値なので除く。
で、そのreservedは何かというと

RFC2396 reserved = ;/?@&=+$,
RFC3986 reserved = :/?@&=+$,#[]!'()*;
206デフォルトの名無しさん:2008/09/29(月) 00:09:14
207デフォルトの名無しさん:2008/09/29(月) 11:39:14
組込み関数property()と
メソッド__getattr__()、__setattr__()、__delattr__()って

どっちか一方があれば事足りるような気もするんですが、
何が違うんでしょう??




208デフォルトの名無しさん:2008/09/29(月) 12:24:32
>>207
__???attr__ は動的なプロパティに使えて柔軟。
propertyは用途が制限されている変わりに、単純にクラスにプロパティを追加したいだけなら楽に書ける。
209207:2008/09/29(月) 13:04:42
なるほどぉ〜。そういう亊ですね。
ありがとうございます。
210デフォルトの名無しさん:2008/09/30(火) 03:45:11
winでscapy使ってる人います?
キャプチャしたパケットをpdf表示するのにTeXが必要なんだけど
MiKTeXだと上手くいくけど
pLaTeX2eだとdvi出力でタイムアウトしてしまいます。

ちょっとソースみてみたところ、PyXのtext.texrunnerでexpextのパターン指定がないせいで
TeXプロンプトが表示される前に入力を流し込んでるっぽい。

expextにどんなパターンを渡すかってとこで、なんだかわからずお手上げです。

まぁMiKTeX使えばいいんですけど
せっかくTeXなんていう巨大なシステム入れるなら
日本語も使えるようにしたいっす。
211デフォルトの名無しさん:2008/10/01(水) 15:21:52
global b
a = 'a desu'
b = 'b desu'

def a_print():
 print a
 return

def b_print():
 print b
 return

class c(object):
 def a(self):
  print a
 def b(self):
  print b

print 'a printed!\n'
a_print()
print 'b printed!\n'
b_print()
x = c()
print 'class-a printed!\n'
x.a()
print 'class-b printed!\n'
x.b()
exit()


グローバル変数って何なの?意味ないの?
212デフォルトの名無しさん:2008/10/01(水) 15:34:38
def func1():
    x = 10
def func2():
    global x
    x = 20
x = 0
func1()
print "x =", x
func2()
print "x =", x
213デフォルトの名無しさん:2008/10/01(水) 15:48:34
>>211
Pythonのglobal文は、global変数を定義するときじゃなくて
それを使うとき(正確には、global変数に代入するとき)に使うもんだぞ

global bってのは「bというグローバル変数を定義します」
じゃなくて
「このローカルスコープでbというグローバル変数に代入したいです」
という意味だ

なにもなしでローカルスコープで
b = 1
とか書いたら、単にローカルにbという変数が作られてしまうからな
Pythonでは
214デフォルトの名無しさん:2008/10/01(水) 23:43:37
SimpleXMLRPCServerを使ってクライアントから送られたデータに
クライントのIPアドレスを付加して保存したいのですが,
アドレスはどのように得ればいいでしょうか?

class Server:
def __init__(self, port):
self.server=SimpleXMLRPCServer(('localhost', self.port))
self.server.register_instance(XMLRPCMethod)
self.server.servforever()

class XMLRPCMethod:
def __init__(self):
self.database=[]

def senddata(self, data): #引数が送るデータ
self.database.append((data, addr))
return True
215デフォルトの名無しさん:2008/10/02(木) 22:11:25
>>214
普通に動かせばデフォルトでアクセスログがstderrに吐かれるみたい
あとハンドラにaddress_stringなるメンバもあるから使えるんじゃないかと
216デフォルトの名無しさん:2008/10/03(金) 00:01:56
py2exe は VC7.1 でコンパイルされているようですが、
たとえば boost.python を使って VC9 でビルドした
DLL を使うような Python アプリケーションでも
py2exe が使えるものなのでしょうか?

異なるバージョンのランタイムを使うDLLが混在
していても問題ないものなのでしょうか?

boost.python をつかった Python アプリを
Linux から Windows に移植しようとしています。
217デフォルトの名無しさん:2008/10/03(金) 01:31:22
configparser と optparse って、
こう、なんか、その、うまく連携してくれないものでしょうか?
218デフォルトの名無しさん:2008/10/03(金) 04:53:11
>>216
FILE*に触ってなければ異なるコンパイラでも動くはず
msvc7とmingw gccでは大丈夫だった
219デフォルトの名無しさん:2008/10/03(金) 09:59:05
GoogleのAndroidのアプリをPythonで作れませんよね?
220デフォルトの名無しさん:2008/10/03(金) 14:15:17
モジュールがあればなんでも出来る
221デフォルトの名無しさん:2008/10/03(金) 15:04:13
2.6 ririisu
222デフォルトの名無しさん:2008/10/03(金) 16:12:16
ktkr?
223デフォルトの名無しさん:2008/10/03(金) 17:02:56
CGIでクエリ文字列を参照したいんですが
環境変数「QUERY_STRING」にはどうやってアクセスすればいいんでしょ??

test.cgi?a=1&b2
の場合は
a=1&b2
を取得したいです。

224デフォルトの名無しさん:2008/10/03(金) 17:06:19
>>223

import cgi
data = cgi.FieldStorage()
a = data.getfirst('a','')
225デフォルトの名無しさん:2008/10/03(金) 17:07:34
環境変数はos.environ
226デフォルトの名無しさん:2008/10/03(金) 17:09:38
WebProg板には、こんなスレッドもあるのだ
http://pc11.2ch.net/test/read.cgi/php/1163513344/
227223:2008/10/04(土) 16:42:07
>>224-226
ありがとうございます!助かりました!

>WebProg板には、こんなスレッドもあるのだ
>http://pc11.2ch.net/test/read.cgi/php/1163513344/
まさかこんなスレがあるとはw

228デフォルトの名無しさん:2008/10/05(日) 02:45:07
デバッグってどうやってます?
emacsに慣れちゃってるんで,Meadowのgud-modeで
pdbを動かしたいんだけど,新規バッファに何も表示されず
"q"で終了するとした時に,今まで溜まってたのが表示される・・・
WinPdbは使いにくいんだよなぁ・・・
229デフォルトの名無しさん:2008/10/05(日) 03:19:59
PyScripter
230デフォルトの名無しさん:2008/10/05(日) 04:00:09
すいませんlinuxなんです
231デフォルトの名無しさん:2008/10/05(日) 07:34:41
eclipse + pyDevじゃだめ?
232デフォルトの名無しさん:2008/10/05(日) 11:17:13
すいませんlinuxなんです
233デフォルトの名無しさん:2008/10/05(日) 11:41:00
emacsじゃだめ?
234デフォルトの名無しさん:2008/10/05(日) 11:47:01
>>232
linuxでeclipse動くだろw
235デフォルトの名無しさん:2008/10/05(日) 12:03:50
すいませんlinuxなんです
236デフォルトの名無しさん:2008/10/05(日) 12:07:55
あやしい部分で print すればいいよ。
237デフォルトの名無しさん:2008/10/05(日) 12:20:29
すいませんlinuxなんです
238デフォルトの名無しさん:2008/10/05(日) 12:35:28
すいませんほんとうはrubyなんです
239228:2008/10/05(日) 13:25:39
皆さんアドバイスありがとうございます!

>>229
これはすごいIDEですね!
こんなものがフリーで使えるとは・・・Python恐るべし!!
もう少し頑張ってみて,どうしようもなかったら乗り換えを検討します.

>>230
VMware上で試したんですけど,linuxのemacsだと問題ないんですよね〜

>>231
結構,定番っぽいですね

>>236
それならWinPDBの方がいいかなぁ

ちょっとググってみたら,NTEmacsで
同じ現象に陥っている人を発見!
ttp://mail.python.org/pipermail/python-mode/2005-January/000236.html
でも,特に情報なし・・・

バックグラウンドでpdbが動いていることは確かで
新規バッファに表示されないだけなので
もう少し調べてみようと思います.
240228:2008/10/05(日) 13:33:09
>>238
スレチですが,rubyも本家で配布しているelispでは
Meadowでrubydbが使えません.

ドライブ文字を含むパスを通すように,rubydb3x.elを修正する必要があります.

Meadowは少数派なのかなぁ・・・

241デフォルトの名無しさん:2008/10/05(日) 14:18:08
python 2.6 がリリースされていますが、 Psyco 1.6 は動作しますでしょうか?
本家にあるWindows用は2.5向けしかないようです。
242デフォルトの名無しさん:2008/10/05(日) 14:22:06
>>241
一般にCで実装されていてコンパイルが必要なライブラリのバイナリ配布物は
メジャーバージョンが違えば*全て*使えない

ソースからコンパイルすれば使える*可能性*はあるが、公式にサポートが
表明されていないなら、全て自己責任の世界
243241:2008/10/05(日) 14:54:41
>>242
ありがとうございます。
これから使ってみようと考えている初心者なんで、素直に2.6用のがでてくるのを待ちたいと思います。
244デフォルトの名無しさん:2008/10/05(日) 17:37:40
使ってみてエラー吐くか試すぐらいしてもいいんじゃね
でもpsycoで高速化される場面は限られるよ
245デフォルトの名無しさん:2008/10/05(日) 22:23:33
すみませんVAXなんです
246デフォルトの名無しさん:2008/10/05(日) 23:34:17
外部ライブラリ使うなら、素直に2.52にしとけ。
247デフォルトの名無しさん:2008/10/06(月) 00:11:38
windowsですが2.5から2.6にするには単に2.6をインストールすればいいのでしょうか?
248デフォルトの名無しさん:2008/10/06(月) 16:11:15
初歩的な質問ですいません。(winXP)
どうしてもPloneを使いたいのですが、zopeがPython2.4対応なので
Ploneのインストーラが勝手に2.4をインストールするらしいのですが、
2.5がインストールされていても問題無いでしょうか?
初心者なのでただのスクリプトは2.5を使いたいのです・・・

249デフォルトの名無しさん:2008/10/07(火) 01:52:18
すみません、返答まだですか・・・
250デフォルトの名無しさん:2008/10/07(火) 02:03:08
インストーラを使うとレジストリに書き込むので複数バージョンの共存は無理。
Plone は知らないけど、TracLightなんかだとTrac用のPythonをインスコして環境変数まで書き込むんで既存のPythonのパスが見えなくなったりした。
そのときは環境変数を弄って対処した。
TracLightはコンソール操作用のbatがあってその中で環境変数設定をしているのでシステムの環境変数は無くても平気だったからそういうことが出来た。

いずれにしても初心者といわれたら難しいと答えるしかないと思う。
251248:2008/10/07(火) 09:57:50
>>250さん ありがとうございました。
webサーバも勉強してみたかったので、Plone用のPCを
調達することにします。
252デフォルトの名無しさん:2008/10/07(火) 19:10:29
threading.Thread 生成時に target= で関数を指定した時、
関数の戻り値を取る方法はありますか?

def myfunc(arg):
sleep 2
return arg * 2

th = threading.Thread(target=myfunc, kwargs={'arg': 2})
253デフォルトの名無しさん:2008/10/07(火) 20:05:39
threading.pyのThread.runで戻り値は捨ててるね
254デフォルトの名無しさん:2008/10/07(火) 23:48:07
助言ありがとうございます。Thread.runを再定義すれば何とかなる
かと思いましたが、それを呼んでるところにも手を加えなければな
らないみたいで挫折しました。別な方法を考えます。
255デフォルトの名無しさん:2008/10/08(水) 11:08:58
mod_pythonについてです。

http://www.python.jp/doc/contrib/modpython/tut-what-it-do.html

をテストしてたんですが

<Directory /usr/local/apache2/htdocs/py>
AddHandler mod_python .py
PythonHandler myscript
PythonDebug On
</Directory>

と設定すると正常に動くんですが、

<Directory /usr/local/apache2/htdocs>

のようにディレクトリの階層を1つあげると

ImportError: No module named myscript

がでてしまいます。。

上のリンク先によると「サブディレクトッリでもmod_pythonは処理します。」
みたいに書いてあるんですが、何か自分の設定が間違ってるんでしょうか??

ちなみに、Linux,Python2.5,mod_python3です。
256255:2008/10/08(水) 14:11:18
すみません。自己解決しました。
sys.pathへ指定しておくか
subdir/myscript
のように記述しないといけなかったようです。
257デフォルトの名無しさん:2008/10/08(水) 23:53:53
質問です。
a.pyとb.pyの2つのスクリプトがあって、
a.pyから子プロセスを生成してb.pyを実行しようと思います。
ただ、a.pyはb.pyの終了ステータスを確認せずに終了させたいです。(waitしない)

2パターンのa.pyを作ったんですがどっちが良いコードでしょう?

""" a.py パターン1 """
import os
pid = os.fork()
if pid == 0:
  os.execv("/usr/bin/python",("","b.py"))
else:
  import signal
  signal.signal(signal.SIGCHLD, signal.SIG_IGN)

""" a.py パターン2 """
import os
os.popen2("/usr/bin/python b.py")
258デフォルトの名無しさん:2008/10/10(金) 11:39:44
今まではほとんど単一のファイルで事足りるような
スクリプトばかり書いていたのですが,最近ちょっと
大がかりなものを書いて複数のマシンに撒かなけりゃ
ならなくなったので distutils を使ってみようと
思い立ちました.

で,インスコはそれでいいんですが,アンインスコは
なんか簡単にできないものでしょうか?というか
アンインスコのための仕掛けは用意されていませんか?
バージョンアップ時の入れ替えとか考えたら
結局 deb ファイルにパッケージしなきゃなら名ないのかな
なんて思ってます(Ubuntuなので).

できれば Python 世界だけで閉じたいのですが・・・
259デフォルトの名無しさん:2008/10/10(金) 12:04:53
numarrayで、既に中身がintのarrayがある場合に、
それを全てfloatに変換するにはどうすれば簡単でしょうか。
260デフォルトの名無しさん:2008/10/10(金) 12:18:18
Pythonを使えるIDEのお勧めは?
Djangoをつかいんたいんですが。
261デフォルトの名無しさん:2008/10/10(金) 14:05:19
>>259
array(arr, type=Float64)
262デフォルトの名無しさん:2008/10/10(金) 16:48:41
>>258
RPM 系のディストリだと setup.py bdist_rpm とか、
Windows だと setup.py bdist_wininst とか出来るんだけどね。
263デフォルトの名無しさん:2008/10/10(金) 23:51:27
reモジュール使って連続した改行を1つの改行にしたいんですが、
正規表現どうやって書けばいいでしょ?

# before
test

test


test



#after
test
test
test

こんな感じにしたいのです。
264デフォルトの名無しさん:2008/10/11(土) 00:06:50
\n+ を \n に置き換える
265デフォルトの名無しさん:2008/10/11(土) 00:08:22
re.sub(r"\n+", "\n", text) か re.compile(r"^\n", re.M).sub("", text)
266デフォルトの名無しさん:2008/10/11(土) 00:11:17
効率が悪いだろうがreを使わないで
"\n".join(i for i in s.splitlines() if i)
267デフォルトの名無しさん:2008/10/11(土) 01:36:21
join信者ってキモいよね
268デフォルトの名無しさん:2008/10/11(土) 02:21:48
初耳だ
269デフォルトの名無しさん:2008/10/11(土) 10:52:03
>>265-266
ありがとうございます!
270デフォルトの名無しさん:2008/10/11(土) 11:39:02
# いかにエレガントに効率の悪いコードを書くか、とか

def shrink(x, c="\n"):
a = x.replace(c * 2, c)
return a if a == x else shrink(a, c)
271デフォルトの名無しさん:2008/10/11(土) 12:18:07
おれも書いてみたよ

def shrink(s, ch):
    if not s: return s
    return s[0] + shrink(s[1:].lstrip(ch) if s[0] == ch else s[1:], ch)
272デフォルトの名無しさん:2008/10/11(土) 21:09:04
-m オプションの解説ってどこを見ればいいんでしょうか?
273デフォルトの名無しさん:2008/10/11(土) 21:11:18
274デフォルトの名無しさん:2008/10/12(日) 02:02:49
PHPでやっていた、たった二行の処理を再現しようとして見事にハマっております。
require("lib/$nnn.php");
call_user_func($nnn);

importするファイルを動的に指定ってできないんでしょうか。その前にlib/nnの/の部分でSyntax errorがでてしまいます。
仕方なく、その後に行うcall_user_func($nnn);の処理の方法を先に調べて寝ようとしたら見事にハマっております。
PHPでいうcall_user_func($nnn)はできないんでしょうか。
ぐぐっても見つからずこのままだと寝れません。ご教授お願いします。
275デフォルトの名無しさん:2008/10/12(日) 02:07:27
276デフォルトの名無しさん:2008/10/12(日) 02:18:14
PHPは知らないから間違ってるかもしれないが
foo/bar/hoge.pyのfuncなら
import sys
sys.path.append("foo/bar")
import hoge
getattr(hoge, "func")(arg1, arg2)
277デフォルトの名無しさん:2008/10/12(日) 02:19:59
import hogeは hoge = __import__("hoge") の方がいいか
278デフォルトの名無しさん:2008/10/12(日) 02:26:01
dirname, basename = os.path.split(path)
modname = os.path.splitext(basename)[0]
mod = imp.load_module(modname, *imp.find_module(modname, [dirname]))
279デフォルトの名無しさん:2008/10/12(日) 02:47:45
ありがとうございます。これで無事寝れます。
280デフォルトの名無しさん:2008/10/12(日) 10:57:11
>>279
聞くだけ聞いて、何もしないで寝たな。
281デフォルトの名無しさん:2008/10/12(日) 13:05:02
>>280
何かご不満でも????
282デフォルトの名無しさん:2008/10/12(日) 13:25:48
それがPHPクオリティ
283デフォルトの名無しさん:2008/10/13(月) 10:44:08
Perl
Hentai
Perl
284デフォルトの名無しさん:2008/10/14(火) 19:52:33
windowsでPython2.5.2のコマンドラインを使う時に、日本語を入力できません。
IDLEでは入力できるのですが、コマンドラインでも日本語入力をするには
どうすればいいのでしょうか?
285デフォルトの名無しさん:2008/10/14(火) 19:54:19
Alt+全角とか?
286デフォルトの名無しさん:2008/10/14(火) 20:16:26
>>285
日本語入力できました。
迅速なお答えありがとうございました。
287デフォルトの名無しさん:2008/10/14(火) 21:17:12
それは実はコマンドプロンプトの仕様なんだ
288デフォルトの名無しさん:2008/10/14(火) 22:27:32
Python内のデータをC++ のコードに渡すことは可能ですか?
例えば、Pythonで DB からデータを取得して、そのデータをC++のオブジェクトに渡す、というようなことです。
最初からC++で取得すれば良いとか、そういう突っ込みは抜きで御願いします。
289デフォルトの名無しさん:2008/10/14(火) 22:44:30
最初からC++で取得すれば良い
290デフォルトの名無しさん:2008/10/14(火) 23:06:19
ctypesを使ってCの型に変換して渡すとか
C/C++で拡張ライブラリ作るとか
291デフォルトの名無しさん:2008/10/15(水) 01:35:37
すみません。もっと面倒くさくない方法をお願いします。
292デフォルトの名無しさん:2008/10/15(水) 02:13:41
pipe open
293デフォルトの名無しさん:2008/10/15(水) 02:50:03
もっともっと簡単な方法をお願いします
294デフォルトの名無しさん:2008/10/15(水) 07:00:56
boost.python
295デフォルトの名無しさん:2008/10/15(水) 12:57:18
テキストファイルから例えば"a"という文字を検索して、マッチすれば
その前後に指定の文字列を挿入する方法はありますでしょうか。(-人-)
296デフォルトの名無しさん:2008/10/15(水) 14:11:04
>>> text = "aabbaaccaa"
>>> text.replace("a", "fooabar")
'fooabarfooabarbbfooabarfooabarccfooabarfooabar'
>>> import re
>>> re.sub(r"(a)", r"foo\1bar", text)
'fooabarfooabarbbfooabarfooabarccfooabarfooabar'
297デフォルトの名無しさん:2008/10/15(水) 14:58:23
ありがたす
298デフォルトの名無しさん:2008/10/15(水) 16:17:10
プログラミング自体には関係しないかもしれませんが、
マッピング(連想配列)の出力結果がエディタで書いた
順番と違うのはなぜでしょうか?
299デフォルトの名無しさん:2008/10/15(水) 16:19:46
入れた順序で出せることを保証していないから
300デフォルトの名無しさん:2008/10/15(水) 17:00:02
実装がハッシュテーブルだから
301デフォルトの名無しさん:2008/10/15(水) 17:28:56
理由を知りたいなら、アルゴリズム関係の本を読むんだ。
302デフォルトの名無しさん:2008/10/15(水) 23:58:25
使えない奴らですね
303デフォルトの名無しさん:2008/10/16(木) 00:22:55
いえいえ、どういたしまして
304デフォルトの名無しさん:2008/10/17(金) 21:47:02
python を初めてやる者です。(プラットフォーム:Windows)
SOAPpy というライブラリのインストールができません。

○ぐぐったところ
ttp://freethink.way-nifty.com/action/2006/02/pythonsoap_e4fd.html
ttp://www.freia.jp/taka/blog/504

○やったこと:
http://www.python.jp/Zope/download/pythoncore
から、Python 2.5.2 の msi でインストール。c:\Python25 にインストールした。

SOAPy には fpconst が事前インストール必要らしいので、
http://pypi.python.org/pypi/fpconst/0.7.2
から tar.gz をダウンロードして c:\tmp に解凍、

C:\tmp\fpconst-0.7.2> c:\Python25\python setup.py install
running install
running build
running build_py
creating build
creating build\lib
copying fpconst.py -> build\lib
running install_lib
copying build\lib\fpconst.py -> c:\Python25\Lib\site-packages
byte-compiling c:\Python25\Lib\site-packages\fpconst.py to fpconst.pyc
running install_egg_info
Writing c:\Python25\Lib\site-packages\fpconst-0.7.2-py2.5.egg-info

ここまではうまくいってますよね?
305304:2008/10/17(金) 21:51:32
次に ↓から SOAPpy の zip をダウンロード、
http://sourceforge.net/project/showfiles.php?group_id=26590
c:\tmp に解凍、zip の中に入っている readme.txt を見ると、setup.py build しろとあるので、やってみると
以下のエラーになる。

C:\tmp\SOAPpy-0.12.0> c:\Python25\python setup.py build
Traceback (most recent call last):
File "setup.py", line 8, in <module>
from SOAPpy.version import __version__
File "C:\tmp\SOAPpy-0.12.0\SOAPpy\__init__.py", line 5, in <module>
from Client import *
File "C:\tmp\SOAPpy-0.12.0\SOAPpy\Client.py", line 46
from __future__ import nested_scopes
SyntaxError: from __future__ imports must occur at the beginning of the file

Client.py の中身を見て、46行目にある以下の行を、
from __future__ import nested_scopes
ファイルの先頭に持っていってやりなおしてもだめだった。

このあとどうすればいいのでしょうか?
306デフォルトの名無しさん:2008/10/17(金) 22:11:34
別のファイルで同じエラーが起きてるだけだろ
307デフォルトの名無しさん:2008/10/17(金) 22:12:28
future 文をファイルの先頭に持っていっても
Client.py に関する SyntaxError が消えなかったの?
308304:2008/10/17(金) 22:22:24
>>306-307
すみません、Client.py をなおしたあとの build のエラーメッセージをよく見ていませんでした。
おっしゃるとおり、Client.py を直すと Types.py で、その次は Server.py で
同じエラーが出たので、それぞれ移動して build しなおすとエラーがなくなりました。
最後に setup.py install でインストールしました。

ところで python のライブラリのインストールって、こういうふうにソース直すことがよくあるのですか?
PHP の PEAR だったら、依存するバージョンはないとか言われるけど、ライブラリの中のソースをいじることは
なかったのですが・・・・
309デフォルトの名無しさん:2008/10/17(金) 23:29:28
>>308
いっぱいあるよ! だから 304 はPHPをつかえばいいとおもうよ。

検索結果 約 70,200 件
http://www.google.co.jp/search?q=SyntaxError%3A+from+__future__+imports+must+occur+at+the+beginning+of+the+file
310デフォルトの名無しさん:2008/10/17(金) 23:57:27
EasyInstall
311デフォルトの名無しさん:2008/10/18(土) 19:24:01
検索するためのスクリプト書いてます
普通にGoogleから検索するだけなら

import webbrowser
print "search: "
word = raw_input("> ")
webbrowser.open("http://www.google.co.jp/search?hl=ja&q=" + word +\
"&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=")

で行けたんですが、たとえば入力する時に"y "を最初に付けるとYouTubeから、
"w "を最初に付けるとWikipediaからとか指定したい場合、どのように書けば
いいのでしょうか。if で分岐させるのは解っているのですが、その書き方が
思いつきません。
312デフォルトの名無しさん:2008/10/18(土) 20:14:41
>>311
import webbrowser
from urllib import quote

print 'search:',
word = raw_input()

if word.startswith('w '):
    url = 'http://ja.wikipedia.org/wiki/Special:Search?search=%s'
    word = word[2:]
elif word.startswith('y '):
    url = 'http://jp.youtube.com/results?search_query=%s'
    word = word[2:]
else:
    url = 'http://www.google.co.jp/search?hl=ja&q=%s'

webbrowser.open(url % quote(word))
313デフォルトの名無しさん:2008/10/18(土) 20:54:45
>>312
ありがとうございます。早速コピーして保存しました。
いまPyGTK使ってこんなの作ってます
ttp://www.imgup.org/iup711603.png

最終的にはGnome Doみたくショートカットキーで呼び出して
調べたいときにすぐ検索できるようなものになる予定です。
昨日の夜から急にPyGTKのFAQが繋がらなくなって困ってます
314デフォルトの名無しさん:2008/10/20(月) 19:52:35
わたしは wxPython で幸せになりました
315デフォルトの名無しさん:2008/10/21(火) 18:48:14
Tkinterについて詳しく書いてある日本語ドキュメント(webでも本でも)ありませんか?
316デフォルトの名無しさん:2008/10/22(水) 02:31:03
見覚えがあるけどURL忘れた
ググレばすぐ出てくると思う
317デフォルトの名無しさん:2008/10/22(水) 02:36:47
つかえないやつらだな、
318デフォルトの名無しさん:2008/10/22(水) 12:34:38
pspでフォームデータの参照ってutilモジュール使えないですよね?

fom = util.FieldStorage(req)
form.has_key("formname"):

だとダメみたいなので

req.form.has_key("formname"):

って感じやってるんですが、この方法でいいんでしょうか?
319デフォルトの名無しさん:2008/10/22(水) 17:01:31
L = ["a","b","c"]
s = ""

for x in L:
  s = "%s%s" % (s, x)

print s # "abc"

シーケンスの要素を1つの文字列にする場合、
上のやり方以外に簡単な方法ありますか????
320デフォルトの名無しさん:2008/10/22(水) 17:04:40
"".join(L)
321319:2008/10/22(水) 19:16:36
>>320
ありがとうございます!
322デフォルトの名無しさん:2008/10/23(木) 08:14:20
質問
シューティングでも作ろうとコードかいてみたんですが、
なんかキャラを一定速度で移動させると、一定の間隔で動きが
乱れるんですが対策ありますか?
「スーーー」っと動くのを期待しているのに、「スーッ、スーッ、スーッ」
という感じになります。
書いたコードはこれ。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7828.txt
323デフォルトの名無しさん:2008/10/23(木) 08:47:01
どうでもいいからさっさとドキュメントの和訳作業やれ屑ども
http://pc11.2ch.net/test/read.cgi/gamedev/1126605105/416
324デフォルトの名無しさん:2008/10/23(木) 08:50:36
マルチすんなぼけ
325デフォルトの名無しさん:2008/10/27(月) 20:28:16
arrayで0以上の要素はそのまま,0以下の要素は0に置き換える場合,
a = array([-1,0,1])
for i in range(len(a)):
a[i] = max(a[i],0)

と書かずに一行で済ます方法ありませんでしょうか?
matlabならmax(a,0)でいけたんですが.
326デフォルトの名無しさん:2008/10/27(月) 20:47:48
arrayモジュールでもlistでもないみたいだしなんか間違ってないか


それはさておき
L = range(-2, 3) # [-2, -1, 0, 1, 2]
L = map(lambda x: max(x, 0), L) # [0, 0, 0, 1, 2]
327デフォルトの名無しさん:2008/10/27(月) 20:56:02
clip(a,0,inf)
328デフォルトの名無しさん:2008/10/27(月) 21:02:15
>>> from numpy import *
>>> a = array([-1,0,1])
>>> maximum(a, 0)
array([0, 0, 1])
329デフォルトの名無しさん:2008/10/27(月) 21:30:24
a = [max(i, 0) for i in array([-1, 0, 1])]
330デフォルトの名無しさん:2008/10/27(月) 21:33:07
>>326-328
参考になった。ちょっとおれの頭が固かったみたいだ。
331325:2008/10/28(火) 10:08:21
いろいろやり方あったんですね.
ありがとうございました.
332デフォルトの名無しさん:2008/10/28(火) 11:49:16
すいません、pythonって浮動小数点相対精度表示させる関数ありませんか?
極めて小さい非ゼロの値が欲しいんですが。
333デフォルトの名無しさん:2008/10/28(火) 13:37:48
>>332
「極めて小さい非エロのメイド」と刮目した
334デフォルトの名無しさん:2008/10/28(火) 19:46:07
>>333
一人称が「あたい」なわけですね?
335デフォルトの名無しさん:2008/10/29(水) 12:17:56
>>> import math
>>> math.tan(math.pi)
-1.2246063538223773e-016
336デフォルトの名無しさん:2008/10/29(水) 18:56:30
>>> math.exp(-745)
4.9406564584124654e-324
>>> math.exp(-746)
0.0
337デフォルトの名無しさん:2008/10/29(水) 19:30:48
>>332
相対精度表示というのが何のことか分からないんだが
print "%e" % 1e-16
じゃだめなの?
338デフォルトの名無しさん:2008/10/29(水) 23:32:11
初めて書き込ませていただきます。

文を作りメモ帳をname.pyで保存し、それをコマンドプロントに表示させる
のですが、
#codeing: UTF-8

print "こんにちわ"でコマンドプロントから普通に表示できるのですが、

print u"こんにちわ"だとエラーが出てしまいます。

UnicodeDecodeError: 'utf8' codec can't decode byte 0x82 in posid code byte

となってしまいます。

なぜuが使えないのでしょうか;

339デフォルトの名無しさん:2008/10/29(水) 23:38:35
ちゃんとutf-8で保存されてないんじゃなかろか
340デフォルトの名無しさん:2008/10/29(水) 23:39:59
>>338
#coding指定はソースコードのエンコードを指定するためのもんだぞ
実際のソースのエンコードと一致してないとダメだ

多分name.pyはcp932になってるんだろ
341デフォルトの名無しさん:2008/10/29(水) 23:56:37
>>339
>>340
素早い返答ありがとうございます。

はい、まさにcp932になっています。

しかし・・・すいません、テキストを見ているのですがソースとエンコード
の一致の仕方がわかりません;


342デフォルトの名無しさん:2008/10/30(木) 00:04:36
>>341
ソースがcp932ならエンコード指定もcp932にすればいいだけなんだぜ?
343デフォルトの名無しさん:2008/10/30(木) 00:08:07
>>341

ぉぉぉ・*:.。. (ノ´ω`・。)・*:.。. クスン

理解できました。ありがとうございます!
344デフォルトの名無しさん:2008/10/30(木) 00:29:34
とりあえず、メモ帳やめて他のフリーのテキストエディタ使え
345デフォルトの名無しさん:2008/10/30(木) 01:55:10
やさしいスレだな
346デフォルトの名無しさん:2008/10/30(木) 04:46:25
サクラエディタか寺パッドがオヌヌメ
でも Eclipse + PyDev が便利だが
347デフォルトの名無しさん:2008/10/30(木) 09:38:40
メモ帳って勝手に改行増えたりするよね
348デフォルトの名無しさん:2008/10/30(木) 12:55:41
>>347
そんな夢のような機能は聴いたことがない。
349デフォルトの名無しさん:2008/10/30(木) 19:43:55
Pythonのチュートリアル読んだのですけれど色々と理解できない日本語があったりして
あまり理解を深める事が出来なかったんですがやはりみんなのPythonとかそのあたりを買ってみるべきですかね
350デフォルトの名無しさん:2008/10/30(木) 19:47:38
初めてのPythonの方がいいとおも
351デフォルトの名無しさん:2008/10/30(木) 19:49:43
でもそれはちょっと古いからな
352デフォルトの名無しさん:2008/10/30(木) 19:51:19
確かにちょっと古いけど読み進めるのに支障はないんじゃね?
353デフォルトの名無しさん:2008/10/30(木) 20:41:50
ご教示ありがとうございます。それにしても高いですね・・
354デフォルトの名無しさん:2008/10/30(木) 21:12:19
355デフォルトの名無しさん:2008/10/31(金) 02:26:01
http://qb5.2ch.net/test/read.cgi/operate/1206636885/657
駄目元で書き込んだ。
賛同してくれる人はこのレスに同意のアンカーをつけてくれ。
356デフォルトの名無しさん:2008/10/31(金) 08:33:14
PHPとJavaしか知らないんだけど、pythonでWebアプリって簡単に作れるもんなの?
357デフォルトの名無しさん:2008/10/31(金) 10:16:09
別に
358デフォルトの名無しさん:2008/10/31(金) 10:21:00
うん
359デフォルトの名無しさん:2008/10/31(金) 22:07:14
PyScripterの文字化けで悩んでいます。
 print "日本語"
のように日本語を含むプログラムを実行すると、
ウィンドウ下部に表示される実行結果が文字化けするのですが
これを改善する方法はありますでしょうか。

ちなみにインタープリタエディタオプションにて、フォントは日本語フォントに変更してあります。
360デフォルトの名無しさん:2008/11/01(土) 12:35:23
あります
361デフォルトの名無しさん:2008/11/01(土) 12:40:25
print u"日本語"
362デフォルトの名無しさん:2008/11/01(土) 12:43:52
Tools
Options
IDE Options
Python Interpreter
UTF8 interactive interpreter [ ]
OK

>>> print "日本語"
日本語

363デフォルトの名無しさん:2008/11/01(土) 12:44:28
>これを改善する方法はありますでしょうか

ちなみに改悪だから
364デフォルトの名無しさん:2008/11/01(土) 16:36:44
>>360-363
ありがとうございます。
utf-8とunicodeの違いを把握していなかったのが原因でした。

365デフォルトの名無しさん:2008/11/01(土) 17:43:07
解決してよかったね
366デフォルトの名無しさん:2008/11/01(土) 20:40:43
from matplotlib.pylab import *
x = array([0,1,2,3])
y = array([0,1,2,3])
for i in range(10):
plot(x,i*y)
show()

matplotlibを導入しました。
例えば上のように次々と一次直線をグラフに表示させたいのですが、一回目のshow()で止まってしまいます。
どのように書けばよろしいでしょうか?
367デフォルトの名無しさん:2008/11/02(日) 09:12:22
vine linuxでpondesaからpythonをやっています。
インタラクティブシェルでユニコードを使おうと思いましてた。

ustr = u"日本語"
print u

で、エラーが発生してしまいます。
pythonのverは2.4.4です。
ver的に問題はないかと思うのですが・・・・・・・
どうしたらユニコードが使えますか?
 
368デフォルトの名無しさん:2008/11/02(日) 09:33:48
Traceback (most recent call last):
  File "http://pc11.2ch.net/test/read.cgi/tech/1218155094/367", line 2, in <module>
    print u
NameError: name 'u' is not defined

どんなエラーかぐらい言いなさい
369デフォルトの名無しさん:2008/11/02(日) 12:07:21
>>368
すみません・・・・・・・
真面目な答えを希望してるんですが・・・・・・・
370デフォルトの名無しさん:2008/11/02(日) 12:14:12
ユニコード以前に>>367はプログラミングの素質が無いと思う。
371デフォルトの名無しさん:2008/11/02(日) 12:17:47
>>367
> print u

その「u」って変数名はどこから出てきたんだ?
文字列を代入した変数は「ustr」だろ?

俺も>>370に同意する。
372デフォルトの名無しさん:2008/11/02(日) 12:19:45
プログラミングを始めたばかりでOSがWindowsとかなら
丁寧に答えようという気にもなるだろうけど

> print u
ustr はどこへ行ったんだ
373372:2008/11/02(日) 12:21:27
レスがかぶって前のレスと二分差とかって恥ずかしいよね

吊ってくる
374デフォルトの名無しさん:2008/11/02(日) 12:41:06
すみません・・・・・・・これでもLinux使えてるんですが
素養ってなんですか?
375デフォルトの名無しさん:2008/11/02(日) 12:51:46
ぃぬxが難しかったのは10年前の話
376デフォルトの名無しさん:2008/11/02(日) 13:00:08
>>374
ここのスレにいる人たちは自分たちが答えられない質問が
書かれると、叩きに入るから無視してしまったほうがいいよ。
377デフォルトの名無しさん:2008/11/02(日) 13:30:11
いやいや、>>367に答えられないやつはいないだろw
378377:2008/11/02(日) 13:48:37
あれ、よくよく見ると俺にもわからんなw
379デフォルトの名無しさん:2008/11/02(日) 14:04:05
騙りとはまた暇な・・・
380デフォルトの名無しさん:2008/11/02(日) 14:24:28
>>369>>374も騙りに見えるから困る
381デフォルトの名無しさん:2008/11/02(日) 15:01:40
>>371-372 が解決しないとまともな回答はできない。
382367:2008/11/02(日) 16:10:34
すみません・・・眠気で文字が抜けていました。。
皆さんご迷惑おかけしてごめんなさい・・・

ustr = u"日本語"
print ustr

でした。

みんなのpythonに表記されている通りにしたのですが、
ユニコードを使うにあたって、アプリケーションの設定が必要やら
と書いてありました。もしかしたらそれなのかもしれません。
ただ、その設定の仕方はあえて載せてないみたいです。

383デフォルトの名無しさん:2008/11/02(日) 16:13:57
謝って済む問題じゃないな。とりあえず脱げ
384デフォルトの名無しさん:2008/11/02(日) 16:16:59
http://qb5.2ch.net/test/read.cgi/operate/1206636885/657
駄目元で書き込んだ。
賛同してくれる人はこのレスに同意のアンカーをつけてくれ。
385デフォルトの名無しさん:2008/11/02(日) 16:17:52
あのさぁ、スレタイとはあんまり関係ないんだけどちょっと聞いてくれよ。
実は6〜7年前銭湯で幼稚園ぐらいの女の子に「パパー この人のちんちん大きー」と指をさされて大声で言われた。
確かに俺の息子は大きい方だったが、指をさされたのは初めてだった。俺は特にタオルで隠すことはしなかったので特に目立ったのだろう。
その子のお父さんは「すみません」と恥ずかしそうに謝っていた。
しかし、それだけでは終わらなかった。
俺が体を洗っているとその女の子が友達の女の子2人を連れてきて「ほら、この人のちんちんとっても大きいんだよ」とわざわざ見に来た。
お父さんが「やめなさい」と言ったのと同じくらいに女湯の方から「○○ちゃ〜ん、なにお話してるの?」と同じくらいの女の子の声が聞こえてきた。
すると「この人、とってもちんちんが大きいの。ゾウさんみたいなの」とありったけの大声で叫んでいた。
すると男湯、女湯の両方からくすくすと笑い声が聞こえた。
俺はとんでもなく恥ずかしくなって石鹸を流して早く上がろうと思い立ち上がったとき、不覚にも勃起してしまった。
その場にいた女の子3人から「わっ!」と声が上がり「○○ちゃ〜ん、大変〜、この人のちんちん上にいっちゃったの〜、パオーンしてるの〜」と
女湯に向かって叫んだ。男湯・女湯同時に大爆笑がおこった。その女の子達は「すごーい! すごーい!」と俺の息子に向かって拍手をしていた。
それを見た男湯の人たちがさらに爆笑し、その爆笑につられて女湯でもいっそう大きな爆笑になった。
恥ずかしさをこらえて体を洗っていると、女の子3人もとなりで体を洗い始めた。
「ぞうさんのお鼻も洗ってあげようね」といって、俺の息子を洗い始めた。不覚にも俺は子どもの石鹸遊びのような洗いで
射精してしまった。「わー。ぞうさんのくしゃみすごーい。白いはなみずが鉄砲みたいに飛んだー」
「ちがうよ。お鼻でミルクのんだのはきだしちゃったんだよ」銭湯中が爆笑の渦となった。
俺は逃げ出すようにして銭湯から出て行った。
その日以来、その銭湯へは行かなくなった…。
386デフォルトの名無しさん:2008/11/02(日) 16:19:33
Traceback (most recent call last):
File "http://pc11.2ch.net/test/read.cgi/tech/1218155094/382", line 2, in <module>
print ustr
NameError: name 'ustr' is not defined

どんなエラーかぐらい言いなさい
387デフォルトの名無しさん:2008/11/02(日) 21:22:44
トレースバック貼らないとエスパー回答しかできないよ
UnicodeEncodeErrorって出てるんじゃないの?
print ustr.encode(utf-8') とかしてみたら
この質問もいい加減テンプレが必要だな
388デフォルトの名無しさん:2008/11/02(日) 22:33:30
2.4以降なら特に設定などは要らなかったはず。
389367:2008/11/02(日) 22:55:19
遅くなりました。
>>383
脱ぐのだけは勘弁してください

>>386
えと、エラーの表示はですね。

Traceback (most recent call last) :
File "<stdin>", line 1, in?
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\x97'
in position 1; illegal multibyte sequence

と表示されました。

>>387

UnicodeEncodeErrorって出ました。

print ustr.encode('utf8')と入れてやってみたところ
文字化けが起きました。

度々すみませんがよろしくお願いします。
390367:2008/11/02(日) 23:29:35
print ustr.encode('utf-8')
でした。
391デフォルトの名無しさん:2008/11/03(月) 09:47:18
367をパイソンにインポートしようとするとエラーになります。
どうしてですか?
392デフォルトの名無しさん:2008/11/03(月) 11:05:06
とりあえず、
スクリプトの一行目 (一行目が #! で始まってたら 2行目)に

# coding: euc-jp

と記述して、スクリプトファイルを euc-jp で保存して実行してみ。
それでもだめなら、エラーメッセージを全部貼ってくれ。
393デフォルトの名無しさん:2008/11/03(月) 18:04:02
print ustr.encode('utf-8').decode('euc-jp')
394デフォルトの名無しさん:2008/11/07(金) 06:06:47
Pythonを初めて間もない、超初心者です。
もしよろしければ、知恵をお貸しいただきたいと思っています。
           
文字列中における空白で文字列を2つに分けるという作業をやっています。
そのためsplitのメソッドを使って分けたところ、日本語が[\x90\x09]のような
\が付きコードのようになってしまいます。
これはlistでの仕様なんでしょうか?
これをなんとか日本語にしたいと思っているんですが無理なんですかね?
この問題が解決してくれないと、いまやっている作業が全然進まないため、
よろしければ解決方法を教えてください。よろしくお願いします。

バージョンはPython2.5.2です。
395デフォルトの名無しさん:2008/11/07(金) 07:27:00
>>394
実際のコードを示したほうがいいよ。
396デフォルトの名無しさん:2008/11/07(金) 08:07:32
IDLEが表示するときにエスケープしてるだけだろう。
printで表示させれば日本語のまま出てくるかと。
397デフォルトの名無しさん:2008/11/07(金) 09:54:44
>>> u'ふが ホゲ'.split(' ')
[u'\u3075\u304c', u'\u30db\u30b2']
>>> print u'ふが ホゲ'.split(' ')
[u'\u3075\u304c', u'\u30db\u30b2']
>>> print repr(u'ふが ホゲ'.split(' ')).decode('unicode-escape')
[u'ふが', u'ホゲ']
398デフォルトの名無しさん:2008/11/07(金) 10:02:10
この質問もいい加減テンプレが必要だな
399デフォルトの名無しさん:2008/11/07(金) 10:02:49
listの仕様です
400デフォルトの名無しさん:2008/11/08(土) 23:39:05
パイソン3.0はどの程度仕様変更がなされるんでしょうか?
401デフォルトの名無しさん:2008/11/08(土) 23:42:36
解説読めば
402デフォルトの名無しさん:2008/11/08(土) 23:52:36
403デフォルトの名無しさん:2008/11/08(土) 23:55:04
394です。

皆さんの回答を参考にさせていただいて、解決しました!!
めちゃくちゃ簡単なことで詰まっていたとわかって、とても恥ずかしいです・・・
本当にありがとうございました。
404デフォルトの名無しさん:2008/11/09(日) 01:51:53
>>403
最初は誰でもそんなもんだし、まったく気にする必要ないよ。
405デフォルトの名無しさん:2008/11/10(月) 12:23:45
「簡単なこと」でつまづくのが普通ですよ。
トラブルやミスの99%以上は「簡単なこと」が原因。
406デフォルトの名無しさん:2008/11/10(月) 12:29:58
>>400
>>394みたいにエスケープされていたのが、エスケープされずに表示されるようになる。
407デフォルトの名無しさん:2008/11/11(火) 00:39:57
ttp://d.hatena.ne.jp/odz/20070729/1185734051
このページに載っているスクリプトの使い方を教えてください。
C言語は慣れているのですが、他の言語は使ったことがないので…
とりあえずスクリプトをaaa.pyとかの名前で保存して、
対象のxmlファイルと同じディレクトリに入れて実行したのですが、何も起きませんでした。
pythonのバージョンは2.5.2で、OSはwindowsXPです。
408デフォルトの名無しさん:2008/11/11(火) 00:44:05
>>407
多分実際には何も起きなかったのではなくエラーメッセージを吐いて
終了したんじゃないのか
見たところ、コマンドプロンプトで

python aaa.py -d 保存先ディレクトリ XMLファイル名

のようにして実行するとよさそうだぞ
409デフォルトの名無しさん:2008/11/11(火) 01:07:54
>>408
ありがとうございます! windowsのコマンドプロンプトで
D:\xml>aaa.py -d D:\xml jawiki.xml
と入力したところ、動作が始まりました。
410デフォルトの名無しさん:2008/11/11(火) 03:45:04
Pythonを使って、PostgreSQLのデータベースにアクセスしようと考えています。
pgdbを使おうと考えているんですが、使ったことのある方の意見を聞かせてください。
インストールのし易さや、使いやすさ、または私はこういう物を使っている等。

pythonバージョン:2.5.2でOS:windowsXPです。よろしくお願いします。

411デフォルトの名無しさん:2008/11/11(火) 10:20:55
俺はRubyを使ってる。
412デフォルトの名無しさん:2008/11/11(火) 11:59:24
>>410
悪いことは言わないから MySQL 使っとけ。
現場で使える知識を得ることは大事だぞ。
413デフォルトの名無しさん:2008/11/11(火) 22:04:46
sqliteでもじゅうぶん
414デフォルトの名無しさん:2008/11/11(火) 22:45:49
>>410
Ubuntuでpygresql使ってるけど、
ドキュメント見ながらやってて別に詰まったりはしなかった。
WinXPで使ったことはないからインストールはよくわからない。
415デフォルトの名無しさん:2008/11/12(水) 00:02:59
412はMySQLしか使ったことがない負け犬ITドカタだから気にするな。
416デフォルトの名無しさん:2008/11/12(水) 01:42:11
‥と短小チンポの415が申しておりますので、Postgreでいいんじゃないでしょうか。
ぞうさんマークだしね。
417デフォルトの名無しさん:2008/11/12(水) 09:07:10
今時PostgreSQLをPostgreと略すのはキモオタ童貞か負け組の低賃金ITドカタ(この不況で確実にニート化決定)だけ。
418デフォルトの名無しさん:2008/11/12(水) 09:35:51
ちょっと聞きたいんですが、
label1:entryBox
label2:クリックで現れる文字
ボタン
って配置にしたいんだけどこのコードじゃうまくいかないんです。

self.label1.grid(row = 1, column = 1)
self.entry.grid(row =1, column = 2)
self.label2.grid(row = 2, column = 1)
self.button.grid(row = 3, columnspan = 1)

どうしたら上のような配置にできるでしょうか?
419デフォルトの名無しさん:2008/11/12(水) 10:05:05
ちなみに、
self.srice.grid(row =3, column =2)
self.txt.grid(row = 4, column = 1)
とやると、self.button.gridより
self.label2が上にきて、その下にself.txt.gridが真ん中にくる感じです。

どうしたらよいのでしょうか?
420デフォルトの名無しさん:2008/11/12(水) 12:09:28
self.label1.grid(row=0, column=0)
self.entry.grid(row=0, column=1)
self.label2.grid(row=1, column=0)
self.button.grid(row=2, columnspan=2, sticky="w")
421418:2008/11/12(水) 13:34:57
ありがとうございます!
もう1つ問題が出てきたんですが
ボタンをクリックしたら結果を出すようにしてるんですが、
結果は出てくるものの欲しい結果が出ません。。

def buttonAction(self):
book = self.entry.get()
if book < 1:
self.label3.config(text = "0 point.")
elif book == 1:
self.label3.config(text = "5 points.")
elif book == 2:
self.label3.config(text = "15 points.")
else:
self.label3.config(text = "30 points.")

という風にユーザーが本の数を入力すると
その入力数によってポイントを出すっていうやつなのですが、
どの数字をあてはめても30 pointsを出力してしまいます。。
if文が間違っているのでしょうか?
422デフォルトの名無しさん:2008/11/12(水) 14:01:21
entry.getの戻り値はstrじゃないか?
intに変換するか、文字列と比較するかじゃないだろうか
423デフォルトの名無しさん:2008/11/12(水) 22:05:22
Pythonの書籍が充実した書店って首都圏内でありますか?

洋書とかを中身を読んでから買いたいんだけど、
横浜有隣堂・紀伊國屋じゃ置いてなかったので。
424デフォルトの名無しさん:2008/11/12(水) 22:41:47
yodobashiのPC書籍コーナーとか
webで十分じゃね?と言っておく
425デフォルトの名無しさん:2008/11/12(水) 23:18:20
コンピュータ関係で洋書と言ったら、昔は書泉ブックタワー2階にもあったが
今は池袋ジュンク堂の6階ぐらいか? 紀伊國屋新宿南店の洋書フロアと
神田三省堂も置いてたかな。
426418:2008/11/13(木) 01:53:32
>>422
遅くなりましたがありがとうございます!
おかげで思うように動きました!
427デフォルトの名無しさん:2008/11/14(金) 07:15:29
410です。

遅くなってすいません。回答本当にありがとうございました!!
Ubuntuのpygresqlを使うことにしようと思いました。
しかし、pythonのバージョンが2.4用の物しかないように思えるんですけど、
python2.5用のpygresqlってどこに置いてあるか教えてもらえませんか?
428デフォルトの名無しさん:2008/11/14(金) 08:14:14

すいません、自己解決することができました!!
429デフォルトの名無しさん:2008/11/14(金) 09:26:17
できてません。
すぐに回答ください。
430デフォルトの名無しさん:2008/11/14(金) 09:54:37
どっちやねんw
431デフォルトの名無しさん:2008/11/14(金) 10:00:57
まともなやりとりしたいなら質問者はトリップつけてくれ
432デフォルトの名無しさん:2008/11/14(金) 11:04:01
できてますん
433デフォルトの名無しさん:2008/11/14(金) 22:49:16
自己解決なりすまし君がでるからトリップつけたほうがいいね
434デフォルトの名無しさん:2008/11/14(金) 23:04:22
自己解決しました!
435デフォルトの名無しさん:2008/11/15(土) 00:57:14
まだでしょうか‥
>>433トリップってなんですか新しいモジュールか処理系の名称でしょうか
436デフォルトの名無しさん:2008/11/15(土) 01:22:21
こっそりなりすまそうとするのはやめてください
もう自己解決したんですから
437デフォルトの名無しさん:2008/11/15(土) 01:28:10
>>436
すみません、私が本物なのですがこっそりと
なりすまそうとするのはやめてくださいもう自己解決したんですから
438デフォルトの名無しさん:2008/11/15(土) 06:28:49
夜中にこんな事していて虚しくないのだろうか
439デフォルトの名無しさん:2008/11/15(土) 13:37:54
インタラクティブシェルでのディレクトリの移動ってどうやるんですか
本にも載ってないしググっても見つからなくてスクリプトが起動できないんですけど
440デフォルトの名無しさん:2008/11/15(土) 13:46:58
os.chdir(path) # path に移動
os.getcwd() # 現在の作業ディレクトリを返す

もしWindowsを使ってるなら、ファイルアイコンの右クリックメニューから
そのファイルのパスを作業ディレクトリとしてコマンドプロンプトを起動できる
拡張があったような気がするから探してみるといいかも
441デフォルトの名無しさん:2008/11/15(土) 14:22:34
ありがとうございます。何とかなりそうです
442デフォルトの名無しさん:2008/11/15(土) 15:20:34
インタラクティブシェルは、IPythonがお勧め。
cdでディレクトリ移動もできるよ。
443デフォルトの名無しさん:2008/11/15(土) 16:26:13
ディレクトリを移動したのは良いのですけれど
インタラクティブシェルからのスクリプトが起動の仕方が分かりません

python test.py
と打ち込んでもエラーが出てしまいます
444デフォルトの名無しさん:2008/11/15(土) 16:39:59
やっぱ勘違いしてる
インタラクティブシェルってシェルって付いてるけどshとかと違うよ
ていうか短いコード実行して試行錯誤したいならIDLE使え
スクリプト実行したいならターミナルなりcmd.exeから実行すればいい
445デフォルトの名無しさん:2008/11/15(土) 17:07:23
>>444
ありがとうございます。解決できました
勘違いしていました。
446デフォルトの名無しさん:2008/11/15(土) 19:29:25
>>443
ipythonなら !python test.py でできる。
もしくは、 exec test.py
447デフォルトの名無しさん:2008/11/15(土) 22:12:17
夜中にこんな事していて虚しくないのだろうか
448デフォルトの名無しさん:2008/11/15(土) 23:11:59
このすれにわいてるいけぬまくんはやくしなないかなあ
449デフォルトの名無しさん:2008/11/16(日) 00:21:49
さきほどpython2.5をインストールして"Hello world"レベルの
簡単なスクリプトをいろいろ試してたんですが、突然
printで文字が表示されなくなりました。

WindowsXPのDOS窓で、実行していた状況です。
再起動しても状況変わらずです。

何が原因なのでしょうか?
450449:2008/11/16(日) 00:52:57
すみません。

python test.py
のようにpythonを頭につけないと動かないようです。
最初はそんなことなかったんだけど・・
451デフォルトの名無しさん:2008/11/16(日) 01:03:02
.pyをpython.exeに関連付けていたのが、エディタに関連付けを変えてしまったんじゃない?
452449:2008/11/16(日) 02:34:12
>>450

まさにその通りです。毎回エディタが起動していました・・・

自分で関連付け変えたんでした。
453デフォルトの名無しさん:2008/11/16(日) 11:02:05
ズコー
454デフォルトの名無しさん:2008/11/16(日) 11:14:36
ドザは大目にみてやらないと
455デフォルトの名無しさん:2008/11/16(日) 14:44:38
assoc .py=Python.File
456デフォルトの名無しさん:2008/11/18(火) 11:15:14
ファイル名の補完をタブでやるにはどうすればいいですか?
f = open("hoge.txt")
"hまで打ってタブを押すと、.txtまで出てほしい。
457デフォルトの名無しさん:2008/11/18(火) 11:34:29
>>456
ipython
458デフォルトの名無しさん:2008/11/19(水) 06:05:49
>>457
ipythonじゃん。
459デフォルトの名無しさん:2008/11/19(水) 09:20:46
>>458
ちょ、>>456で一言もipythonって言われてないんだが。

ipythonで補完がとまるなら、ほかに hoge で始まるファイル名なり、
変数名なりがあるんじゃないの?
候補がひとつなら普通に拡張子まで一気に補完されるよ。
460デフォルトの名無しさん:2008/11/19(水) 09:32:03
>>459
ipythonだろjk。
461デフォルトの名無しさん:2008/11/19(水) 09:38:04
俺も普段IPython使いだが、常識では特に明示しない限り普通のPython Shellだと
思ってたよ。
普通のPython Shellでもちょっと設定するだけで補完できるし
462デフォルトの名無しさん:2008/11/19(水) 13:32:34
回答
「ちょっと設定するだけ」
463デフォルトの名無しさん:2008/11/19(水) 21:00:09
Pythonの変数名って2語以上を連結するときはふつうキャメルですかアンダースコアですか。
464デフォルトの名無しさん:2008/11/19(水) 21:04:15
PEP 8でぐぐってくらさい
465デフォルトの名無しさん:2008/11/19(水) 22:12:13
sys.getdefaultencoding
466デフォルトの名無しさん:2008/11/20(木) 05:33:44
listに含まれている数字をstr型からint型へ変換したいと思い、

int(List[0])
print type(List[0])

と、テストで書いたんですが<type 'str'>と出てしまいます。
どうすればlistの型変換でできるんでしょうか?よろしくお願いします。
467デフォルトの名無しさん:2008/11/20(木) 06:26:03
List[0] = int(List[0])
468デフォルトの名無しさん:2008/11/20(木) 13:37:06
ありがとうございました!!
めちゃくちゃ初歩的な事で申し訳ありません。
469デフォルトの名無しさん:2008/11/20(木) 17:46:13
>>466みたいに関数に通したデータを変数に入れないままだと、そのデータはどうなっちゃうの?
ガベージコレクションとかいうやつで自動的に破棄されちゃうの?
470デフォルトの名無しさん:2008/11/20(木) 19:39:46
プログラム初心者ですが、pythonから始めたいです
入門書でわかりやすいのを教えてください
471デフォルトの名無しさん:2008/11/20(木) 20:22:11
>>470
オライリー
472デフォルトの名無しさん:2008/11/20(木) 22:03:37
>>471
オライリーの初めてのパイソンは難しいという話がありましたが、大丈夫でしょうか?
473デフォルトの名無しさん:2008/11/20(木) 22:34:44
問題は古いこと
簡単にさくっと読みたいなら、適当なの1冊読んでネットで色々調べればいいんでないな
474デフォルトの名無しさん:2008/11/21(金) 01:29:04
>>472
難しいよ。始めは誰でも難しいよ。
けど、難しいでしょうか?と質問ができる
あなたなら買ったあとに活用できると思う。
ネットでもドキュメントが普通に公開されているし、
プログラミングはなんだろうか?というのなら
他のサイトを見ながらテストコードを書けば良いよ
475デフォルトの名無しさん:2008/11/21(金) 08:13:19
数字のリストを引数として受ける関数を作って
リストの中の数字の平均を出したいんですが、うまくいきません。
ちなみに自分で考えたコードは
numList = []
numList.append(value)
value = input("Enter a number: ")

def numbers(numList):
total = 0
count = 0
numList = []
for value in numList:
total = total + value
count = count + 1
average = total / count
print average です。
476デフォルトの名無しさん:2008/11/21(金) 09:07:56
"うまくいきません"じゃなくて、もっと具体的に書いたほうがいい。
numbers関数は numList = [] ってとこを消せば動くように思うよ。
477475:2008/11/21(金) 11:06:17
すみません。うまくいかないっていうのはエラーが出るんです。
いろいろ試行錯誤してるのでどんなエラーかは覚えてません。。

>>476
numList=[]消してみましたがだめでした。
478デフォルトの名無しさん:2008/11/21(金) 11:08:39
エラーが出たらそのままコピペしろ
479デフォルトの名無しさん:2008/11/21(金) 11:38:41
自己解決しました。
480デフォルトの名無しさん:2008/11/21(金) 11:42:48
日本語のHTMLを読み込み、そのエンコードである”shift-jis”を"EUC-JP"もしくは”UTF8”に変換したいと考えています。
なにかそのようなモジュールとかご存じではないですか?

バージョンはpython2.5です。
481デフォルトの名無しさん:2008/11/21(金) 11:49:34
>>480
import urllib

f = urllib.urlopen('http://www.yahoo.co.jp/')
html = f.read()
f.close()

unicode_string = html.decode('utf8')
sjis_string = unicode_string.encode('sjis')
eucjp_string = unicode_string.encode('eucjp')
482デフォルトの名無しさん:2008/11/21(金) 12:12:15
>>480
unicodeを経由して変換するだけだが、
多分そのhtmlは、Shift_JISといいつつ十中八九はWINDOWS-31J(cp932)
でエンコードされているのでcp932を指定したほうが安全。
しかし、それをunicode経由でeuc-jpに変換しようとすると、文字セットやマッピング
が異なるので、コケるケースが出てくる。
PythonはいわゆるeucJP-msをサポートしていないので、eucJP-msを使いたいなら
自分で作りこむか、subprocessやctypesで外のプログラムやライブラリを
使うことになる。

もっとも、単にhtmlを出力したくて、文字を実体参照に変換しても良いのなら、
htmlstr.decode('cp932').encode('euc-jp', 'xmlcharrefreplace')
で良い。
483481:2008/11/21(金) 12:36:56
>>> uchar = u'\u2460' # 丸付き数字 (1)
>>> uchar.encode('cp932')
'\x87@' # CP932 での (1)
>>> uchar.encode('sjis')
... UnicodeEncodeError: 'shift_jis' codec can't encode character u'\u2460' ...
>>> uchar.encode('eucjp')
... UnicodeEncodeError: 'euc_jp' codec can't encode character u'\u2460' ...
>>> uchar.encode('sjis', 'xmlcharrefreplace')
'&#9312;' # 文字実体参照での (1)

勉強になりました。>>482
484デフォルトの名無しさん:2008/11/21(金) 12:46:05
オライリーの本なんか読むから、基本的なことも身につかないんじゃ。
485デフォルトの名無しさん:2008/11/22(土) 06:32:04
>>484
釣り針大きすぎです><
486デフォルトの名無しさん:2008/11/23(日) 01:16:19
>>481,482
ありがとうございました!!早速やってみました。
import urllib

html = data.read
unicode_string = html.decode('cp932')
data = unicode_string.encode('utf8')
print data

しかし,これだと文字化けしてしまい必要な処理ができなくなってしまいます。

現在、このhtmlの中にある必要な情報だけを取り出し、データベースに書き込むという作業をしているのですが、
ERROR: invalid byte sequence for encoding "EUC_JP" とエラーを吐いてしまいます。
どうも、データベース自体のencodeがEUC_JPなのに対してこの文字がshift-jisのため
おこられているとわかりました。それで、なんとかshift-jis -> EUC-JPに変換できないかと四苦八苦しています。
これが482さんが言われていた、こけるケースですかね?

487デフォルトの名無しさん:2008/11/23(日) 02:10:53
JapaneseCodecsなら直接マッピングしてるかもよ
488デフォルトの名無しさん:2008/11/23(日) 02:18:19
>>486
>unicode_string = html.decode('cp932')
>data = unicode_string.encode('utf8')
ここの'utf8'を'euc-jp'にしたらUnicodeEncodeErrorが
起きたっつーことでいいのかな?
だとすれば>>482の通りだな

どの程度のパフォーマンスを要求されるのか知らんが、
どうでもいいならnkfあたりに変換させるのが楽だと思われ
489デフォルトの名無しさん:2008/11/23(日) 02:38:32
すいません!!
data = unicode_string.encode('utf8')
      ↓
data = unicode_string.encode('euc-jp')
でした。
488さんのご指摘の通りです。
490デフォルトの名無しさん:2008/11/23(日) 03:46:06
>>487
私も一度JapaneseCodecsでやろうと思ってたんですが、
pythonのバージョンが2.3までしか見つけることができずに諦めました。
491デフォルトの名無しさん:2008/11/24(月) 19:56:03
>>486
例えば Windows で日本語を入力すると CP932 の文字セットが使われるので
Unicode 経由で EUC-JP に変換すると対応する文字がないという問題が起こる。
具体的には以下の8つの記号が問題になる。次のように置き換えから変換するとよい。

>>> text = u"\u2014\uFF5E\u2225\u22EF\uFF0D\uFFE0\uFFE1\uFFE2"
>>> text.encode("euc-jp")
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
text.encode("euc-jp")
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\u2014' in position 0: illegal multibyte sequence
>>> unification = {
0x2014: 0x2015, # HORIZONTAL BAR
0xFF5E: 0x301C, # WAVE DASH
0x2225: 0x2016, # DOUBLE VERTICAL LINE
0x22EF: 0x2026, # HORIZONTAL ELLIPSIS
0xFF0D: 0x2212, # MINUS SIGN
0xFFE0: 0x00A2, # CENT SIGN
0xFFE1: 0x00A3, # POUND SIGN
0xFFE2: 0x00AC} # NOT SIGN
>>> text = text.translate(unification) # 問題になる記号を置換
>>> text.encode("euc-jp")
492デフォルトの名無しさん:2008/11/24(月) 20:08:16
>>491
それらはマッピングの違いの問題だね
それとは別に、13区の丸付き数字などのいわゆる「機種依存文字」の問題がある
493デフォルトの名無しさん:2008/11/26(水) 18:36:56
この質問もいい加減テンプレが必要だな
494デフォルトの名無しさん:2008/11/27(木) 12:25:44
すいませんこれからpythonを学習したいのですが
http://www.python.jp/Zope/downloadのサイトの
Python標準リリースと日本語環境用インストーラ(Win32),Python 2.3.4ベースのどちらを
インストールしたらいいのでしょうか?
基本的にutf8でコード書くので問題はないのですが、前者でインストールする場合はsjisは使えないということですか?
495デフォルトの名無しさん:2008/11/27(木) 12:28:28
それはスルーしてこちらをどうぞ

http://www.python.org/download/
Python 2.6 Windows installer
496デフォルトの名無しさん:2008/11/27(木) 12:33:06
ありがとうございます本家があったんですね
バージョン2.6をダウンロードしました
497デフォルトの名無しさん:2008/11/27(木) 13:49:15
python.jpは罪つくりだよなぁ
498デフォルトの名無しさん:2008/11/27(木) 14:17:38
情報の古いサイトが検索で上位に来るなんて
よくある話じゃない。
499デフォルトの名無しさん:2008/11/27(木) 14:23:37
PyScripterの設定で質問なのですが
行間の開け方は Extra Lines でできるのですが、
文字同士の間隔は設定できないのでしょうか。もう少し狭くしたいです…
500デフォルトの名無しさん:2008/11/27(木) 18:20:44
できますよ
501デフォルトの名無しさん:2008/11/27(木) 18:45:25
どうやるんですか?
502デフォルトの名無しさん:2008/11/30(日) 23:52:32
Pythonスレには、他人を騙ったり適当なことを言って周りを困惑させる愉快犯が居座ってるので、
>>500のような適当なレスは信用しない方が良いですよ。
503デフォルトの名無しさん:2008/12/01(月) 02:24:34
ネットで間違った情報が流れて来るなんて
よくある話じゃない。
504デフォルトの名無しさん:2008/12/01(月) 08:17:38
2chはその総本山とも言える
505デフォルトの名無しさん:2008/12/01(月) 08:20:52
真面目な話、メーリングリストで質問した方がいいぞ。
ここはただの雑談場だからな。
506デフォルトの名無しさん:2008/12/01(月) 10:54:10
何かご不満でも????
507デフォルトの名無しさん:2008/12/01(月) 11:05:08
ハヒフヘホ
パピプペポ
バビブベボ
508デフォルトの名無しさん:2008/12/02(火) 13:37:47
一般的にインデントはタブと半角スペースどっちがいいんでしょう?
好みの問題でしょうか?
自分の遠い記憶によるとGuideは半角スペースを推奨していたような気がするんですがどうでしょう?
509デフォルトの名無しさん:2008/12/02(火) 14:16:55
PEP 8 -- Style Guide for Python Code
http://www.python.org/dev/peps/pep-0008/
>The most popular way of indenting Python is with spaces only.
510デフォルトの名無しさん:2008/12/02(火) 16:44:57
xpでIPython0.8.2使ってるんだけど、
cdコマンドがうまく機能してない。

In [9]: !cd
D:\Pytmp

In [10]: !cd ./sudoku

In [11]: !cd
D:\Pytmp

Pytmp下にあるsudokuフォルダに移動しようとしたけど効いてないみたい。
511デフォルトの名無しさん:2008/12/02(火) 16:46:19
./sudokuじゃなくて.\sudokuだった。でもそれでもだめだ。
コマンドプロンプトの方ではちゃんとcd使えてます。
512デフォルトの名無しさん:2008/12/02(火) 18:22:47
>>510
!はシェルにコマンドを実行させるので、シェルのカレントディレクトリが
変わるだけで、pythonインタプリタ自身のカレントディレクトリは変わらない

cd使うときは!をつけずにやれ
他に、pwdだのlsだのも!なしのものが使えるよ
513デフォルトの名無しさん:2008/12/02(火) 18:41:52
>>512
あー、ほんとだ!
インタプリタのカレントディレクトリは独立していたのか。
!無しでうまくいきました。ありがとう。
514デフォルトの名無しさん:2008/12/02(火) 19:13:57
MS-DOS的感覚がある人かな?

基本的にカレントディレクトリというのはプロセスに属するものだから、
子プロセスがカレントディレクトリを移動しても(!でcdを実行しても)
現在のプロセスのカレントディレクトリは変わらない。

cdが外部コマンドだと意味がない理由、という奴ね。
515508:2008/12/02(火) 23:16:11
>>509
なるほど(・∀・)
516デフォルトの名無しさん:2008/12/05(金) 07:43:39
>>> 0700
File "<stdin>", line 1
0700
^
SyntaxError: invalid token

え・・・?
517デフォルトの名無しさん:2008/12/05(金) 13:46:48
>>> 700
700
>>> 0700
448
>>>
518デフォルトの名無しさん:2008/12/05(金) 13:54:26
>>516 はPython3.0かな。0o700に変わった。ドキュメント嫁
519デフォルトの名無しさん:2008/12/05(金) 14:54:17
>>518
> Octal literals are no longer of the form 0720; use 0o720 instead.
見落としてたスマソ
520デフォルトの名無しさん:2008/12/07(日) 00:54:51
なぜ素直にまったく読んでなかったと言えないのかねえ
521デフォルトの名無しさん:2008/12/07(日) 14:00:23
for line in open('text.txt', 'r'):
  print line

こんなコードを書いた時、line に入っているのはどんな
文字コードなんでしょうか? line のタイプは
<type 'str'> とのことです。unicode だったら明確なんですが、
str って単なる何でも入れられるバイト列なんでしょうか?

画像データなんかでモノホンのバイト列を扱うときも
str にぶち込んでしまっていいものなんでしょうか?
そういや raw 文字列などというものがあるらしい・・・

混乱中
522デフォルトの名無しさん:2008/12/07(日) 14:10:15
>>521
バージョン2.x系ならstrはただのバイト列で、画像などのバイナリデータも扱える。

エンコーディング決め打ちでいいのなら、テキストファイルをunicodeとして
読み込みたいときはcodecs.open()を使うといい。
バイト列として読んだ後で、エンコーディングを判別して変換するほうが柔軟だがな。
523304:2008/12/07(日) 16:50:08
Windows 版 python 2.5 で、
以下のようなスクリプトを作りました。

fin = open('input.txt', 'r')
fout = open('output', 'w')

for line in fin:
  line = line.strip()
  fout.write(line + '\n')
fin.close()
fout.close()

input.txt の内容を output.txt に書き出すだけなのですが、
output.txt のファイルを秀丸で開くと、改行コードが CRLF になっています。
\n は、LF として出力されると期待しているのですが・・・

Unix 環境に持って行くファイルを作るスクリプトを作っているのですが、
Windows 環境で改行コードを LF で出力するには、どうしたらいいでしょうか?
524デフォルトの名無しさん:2008/12/07(日) 16:50:35
あ、304 は関係ないです
失礼しました
525デフォルトの名無しさん:2008/12/07(日) 16:55:32
fout.write(line + '\r')
526デフォルトの名無しさん:2008/12/07(日) 16:56:33
Unix環境に行けば \n になるから気にすんな
527デフォルトの名無しさん:2008/12/07(日) 17:01:52
528523:2008/12/07(日) 17:02:19
レスどうもありがとうございます。

>>525
\r だと CR になってしまいます。

>>526
Unix 環境には python がインストールされていないので、
あらかじめ Windows 側でデータファイルを作成しておきたい。
529523:2008/12/07(日) 17:04:31
>>527
ウホッ、 これでうまくいきました!!
どうもありがとうございました。このページはブックマークしておこう。
530デフォルトの名無しさん:2008/12/08(月) 10:00:45
次スレにpythonのダウンロード先を追加していただけませんか?
531デフォルトの名無しさん:2008/12/08(月) 11:13:39
最新版直リン
ttp://www.python.org/download/
3.0 (実験バージョン)
ttp://www.python.org/download/releases/3.0/
2.6.1 (3.0移行推進バージョン)
ttp://www.python.org/download/releases/2.6.1/
2.5.2 (安定バージョン)
ttp://www.python.org/download/releases/2.5.2/
532デフォルトの名無しさん:2008/12/08(月) 11:16:03
python.jpだけは許せねえな
533デフォルトの名無しさん:2008/12/08(月) 12:38:09
何でも人のせいにしてると誰も雇ってくれないよ(w
534デフォルトの名無しさん:2008/12/08(月) 14:55:40
>>531
"実験バージョン"はないのではないかな
535デフォルトの名無しさん:2008/12/08(月) 16:37:07
開拓バージョンくらいで
536デフォルトの名無しさん:2008/12/08(月) 16:54:27
531=532だとしたら相当イタいな。
537デフォルトの名無しさん:2008/12/08(月) 18:53:22
>>536

>>530=>>532=>>537ですが何か
538デフォルトの名無しさん:2008/12/08(月) 19:03:20
>>537
イテテテテ
539デフォルトの名無しさん:2008/12/08(月) 19:50:28
>>532
あそこはもう死んだサイトだから……
早く検索上位からいなくなってほしい
540デフォルトの名無しさん:2008/12/08(月) 22:59:14
>>538
python。jpの関係者乙
541デフォルトの名無しさん:2008/12/08(月) 23:41:05
>>540
Python使っている人は全員関係者ですが何か(wwWwww
542デフォルトの名無しさん:2008/12/08(月) 23:52:57
>>540
python。jpの関係者乙
543デフォルトの名無しさん:2008/12/09(火) 00:29:15
>>539
自殺予告だ、通報しなければ。
544デフォルトの名無しさん:2008/12/09(火) 02:11:02
>>541
私は Python 使ってますが python.jp とは無関係です
545デフォルトの名無しさん:2008/12/09(火) 02:13:19
あそこはもう死んだサイトだから……
早く検索上位からいなくなってほしい

日本でpythonが流行らない原因を作ってる
546デフォルトの名無しさん:2008/12/09(火) 02:19:46
>541
あんなのと一緒にしないでください

あなたとは違うんです!!
547デフォルトの名無しさん:2008/12/09(火) 07:09:26
python.jpより詳しいサイトってあるの?
548デフォルトの名無しさん:2008/12/09(火) 07:50:16
2.5使ってます。

nan = float("nan")
if nan == nan:
 print "nan is nan"
else:
 print "nan is not nan"

の実行結果が、else文の中身になります。
nanとnanを比較するにはどうしたら良いでしょうか。
infとinfの比較を同様に行うと、正しい結果に辿り着きます。
549デフォルトの名無しさん:2008/12/09(火) 07:55:32
def is_nan(x): return type(x) is float and x != x
def is_finite(x): return x not in (Infinity, -Infinity)
550デフォルトの名無しさん:2008/12/09(火) 08:46:51
MLでいじめられたりしたのか?
551548:2008/12/09(火) 08:50:30
>>549
ありがとう。ばっちりです。
552デフォルトの名無しさん:2008/12/09(火) 08:56:58
俺は北米に長く滞在していたこともあり英語は苦なく読めるのだが
翻訳ドキュメントにはお世話になるなあ
手の掛かる翻訳を無償で公開してくれている人たちには心底頭が下がる
あのサイトを死んでるとか言う奴は、Python使ってないんじゃないのか???
553デフォルトの名無しさん:2008/12/09(火) 10:10:33
翻訳プロジェクトの成果を python.jp で公開させてもらっているだけで、
python.jp と 翻訳プロジェクトは独立してる。
554デフォルトの名無しさん:2008/12/09(火) 10:12:31
>>552
苦なく読めるのにお世話になる意味が分からん。
555デフォルトの名無しさん:2008/12/09(火) 10:21:21
>>533
屁理屈にしか聞こえないんだけど。
556デフォルトの名無しさん:2008/12/09(火) 10:35:59
どうせアフィ目的だろjpなんて
557デフォルトの名無しさん:2008/12/09(火) 10:36:54
アフィというかセミナーで金集める宣伝サイトみたいなもんね
558デフォルトの名無しさん:2008/12/09(火) 10:43:13
屁理屈から妄想へ。
559デフォルトの名無しさん:2008/12/09(火) 10:53:32
基地外って怖いですね
560デフォルトの名無しさん:2008/12/09(火) 12:00:46
そういえば、日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちがいたよな
元気にしてるのかな?
アッーー!
561デフォルトの名無しさん:2008/12/09(火) 16:50:05
545みたいな奴がいるから日本でPythonが流行らないんだろJK...orz....
562デフォルトの名無しさん:2008/12/09(火) 17:06:13
過疎ですね
563デフォルトの名無しさん:2008/12/09(火) 17:58:16
>>560
へー、どんなことがあったの?
564デフォルトの名無しさん:2008/12/09(火) 18:01:14
>>561
きめえええええええええwwwwwwwwwwwwwwwwwwwwwwwwww
565デフォルトの名無しさん:2008/12/09(火) 19:50:31
自殺予告通報しておいた(www
566デフォルトの名無しさん:2008/12/09(火) 21:49:18
564みたいな奴がいるから日本でPythonが流行らないんだろJK...orz....
567デフォルトの名無しさん:2008/12/10(水) 00:35:01
>>555
python-doc-jp という ML 見たら?
翻訳プロジェクトの中のアクティブなメンバーのうち、 python.jp の中の人は一人だけ。
python.jp と関係の無い翻訳プロジェクトメンバーは、ミスを修正するたびにその一人に
python.jp の更新してもらってる状態。

正直、sf.jp 上で公開したらどうかと思うんだ。。。
568デフォルトの名無しさん:2008/12/10(水) 02:14:19
567みたいな奴がいるから日本でPythonが流行らないんだろJK...orz....
569デフォルトの名無しさん:2008/12/10(水) 04:05:40
>>545の粘着がうざい
氏ね!
570デフォルトの名無しさん:2008/12/10(水) 08:34:06
>>567
ここで公開
ttp://code.google.com/
571デフォルトの名無しさん:2008/12/10(水) 08:45:53
>>567
>翻訳プロジェクトの中のアクティブなメンバーのうち、 python.jp の中の人は一人だけ。

結局関係あるんじゃん。

>正直、sf.jp 上で公開したらどうかと思うんだ。。。

今の仕組みになにか問題があるのか?
教えて>中の人
572デフォルトの名無しさん:2008/12/10(水) 09:28:32
日本語の取り扱いについてかなり誤解を与える載せ方だとは思う
573デフォルトの名無しさん:2008/12/10(水) 09:49:23
>>545の粘着がうざい
氏ね!
574デフォルトの名無しさん:2008/12/10(水) 10:06:33
573みたいな奴がいるから日本でPythonが流行らないんだろJK...orz....
575デフォルトの名無しさん:2008/12/10(水) 10:56:02
流行るのが常に良い事とは限らないんだよね
無理に裾野広げてPerlやPHPやRubyみたいになってもどうかなぁ
今くらいがちょうど良いの鴨試練
576デフォルトの名無しさん:2008/12/10(水) 12:24:12
>>575
でも、ruby界隈のあの盛り上がりは羨ましい
577デフォルトの名無しさん:2008/12/10(水) 13:19:13
盛り上がりすぎると3.0へ行けなくなるおかん
578デフォルトの名無しさん:2008/12/10(水) 16:24:12
python。jp(笑)で育つといつまでも井の中の蛙で3.0にいけないってことですよね、わかります
579デフォルトの名無しさん:2008/12/10(水) 17:05:06
流行らないのを使ってるのが不満なら
流行ってると思う奴を使えばいい
580デフォルトの名無しさん:2008/12/10(水) 17:47:15
Rubyistは熱い、元気。しかし他言語を蔑んでる人が多い印象。
Pythonistaは冷静、まったりしてる。そして他の言語もちゃんと評価してる印象。
だから俺はPythonが好き。
581デフォルトの名無しさん:2008/12/10(水) 17:54:41
MLでいじめられてpython.jpに恨み持ってて日本語の扱いがどうこうって
一人しか思いつかない(wwwWwwwWWwwWwWwww
582デフォルトの名無しさん:2008/12/10(水) 17:58:40
pyてょnがすきなのとpyてょん。jpが好きなのは別問題です
583デフォルトの名無しさん:2008/12/10(水) 18:07:28
またruby厨が荒らしてるのか
584デフォルトの名無しさん:2008/12/10(水) 18:58:09
永久凍土
585デフォルトの名無しさん:2008/12/10(水) 21:20:23
586デフォルトの名無しさん:2008/12/11(木) 00:34:27
つまりイジメがあるのは事実ということですねわかります
587デフォルトの名無しさん:2008/12/11(木) 02:04:38
586みたいな奴がいるから日本でPythonが流行らないんだろJK...orz....
588デフォルトの名無しさん:2008/12/11(木) 03:15:16
べつにはやらなくてもいいんだからね
589デフォルトの名無しさん:2008/12/11(木) 08:17:19
流行らないと対応鯖が増えなくて困るかも
590デフォルトの名無しさん:2008/12/11(木) 08:23:32
勝手に疎外感を感じてしまう人をボクチムと呼ぶそうだ。
591デフォルトの名無しさん:2008/12/11(木) 09:45:15
所詮phpに負けてる言語
592デフォルトの名無しさん:2008/12/11(木) 09:49:35
対応しててもインストールされてるのが 2.3 だったりする orz
593デフォルトの名無しさん:2008/12/11(木) 09:51:48
PHPとは土俵が違うので
Pythonとはぶっちゃけ比較の対象ですらないのが実態です
594デフォルトの名無しさん:2008/12/11(木) 10:01:09
2.3 -> 2.5 に置き換えたら yum が動かなくなった orz
595デフォルトの名無しさん:2008/12/11(木) 10:26:38
Python 3.0 では
print(an_instance_of_HogeHoge)
とした場合 class HogeHoge の __str__ が
自動的に呼ばれることはないのでしょうか?
596デフォルトの名無しさん:2008/12/11(木) 10:45:28
__repr__が自動的に呼ばれるのではないのかな?
597デフォルトの名無しさん:2008/12/11(木) 11:10:08
>>581
>MLでいじめられて

何年前の話だよ(w
いい加減忘れればいいのになー
598デフォルトの名無しさん:2008/12/11(木) 11:50:38
>>597
> MLでいじめられて
kwsk
599デフォルトの名無しさん:2008/12/11(木) 12:12:13
2008年現在webに溶け込んでる言語
php>>perl>>超えられない壁>ruby>>>python

google検索ヒット数
php>>>>>>>>>>超えられない壁>>>ruby>perl>python



何やっても使えねえな(笑)
600デフォルトの名無しさん:2008/12/11(木) 12:55:49
601デフォルトの名無しさん:2008/12/11(木) 14:01:24
モジックソさん生きてたんだ
602デフォルトの名無しさん:2008/12/11(木) 14:32:47
603デフォルトの名無しさん:2008/12/11(木) 14:44:40
彼はお花畑に暮らしているんですね。
604デフォルトの名無しさん:2008/12/11(木) 14:56:45
605デフォルトの名無しさん:2008/12/11(木) 14:59:22
606デフォルトの名無しさん:2008/12/11(木) 15:04:00
607デフォルトの名無しさん:2008/12/11(木) 15:15:56
ttp://mojix.org/2005/09/07/104850
ただのゲーム好き?
608デフォルトの名無しさん:2008/12/11(木) 15:27:33
必死wwwwwwwwwwwwwwwwwwwwwwwww
609デフォルトの名無しさん:2008/12/11(木) 15:30:54
>>601
モジックソという人がいじめられた人なのか?
610デフォルトの名無しさん:2008/12/11(木) 17:06:06
馬鹿なの?
611デフォルトの名無しさん:2008/12/11(木) 17:29:19
いつになったらruby厨がいなくなるのか
612デフォルトの名無しさん:2008/12/11(木) 19:02:12
毎日ブログ書く暇人っているんだな。
613デフォルトの名無しさん:2008/12/11(木) 22:21:49
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
で見ると、2007年よりはランクダウンしてるようだな
しかしよくわからんランキングだ
614デフォルトの名無しさん:2008/12/12(金) 01:15:19
PHPを使って煽ってるのはあれか?Rubyの人か?
615デフォルトの名無しさん:2008/12/12(金) 02:30:42
毎日息吸ってる暇人っているんだな。
616デフォルトの名無しさん:2008/12/12(金) 14:06:22
ぐぐって検索してるときに糞ページがいっぱい出てくるような
無駄に埋蔵情報量の多いPerl/PHP/Rubyにくらべて
結構的確にヒットするPythonはいいよね人気なくて
617デフォルトの名無しさん:2008/12/13(土) 19:06:42
それはユーザーの民度の違いなんじゃないか
618デフォルトの名無しさん:2008/12/14(日) 00:52:26
初心者です。
CまたはC++で書かれたプログラムをVCでコンパイルしてPythonから呼び出すにはどのように処理をしたらいいでしょうか?
Boost.PythonやSWIGなどを使わない場合です。
ttp://www.python.jp/doc/nightly/ext/ext.html
を読んでも良くわかりません。
よろしくお願いします。
619デフォルトの名無しさん:2008/12/14(日) 01:11:04
Modules/xxmodule.c
620デフォルトの名無しさん:2008/12/14(日) 02:51:33
popen2,popen3
621デフォルトの名無しさん:2008/12/14(日) 03:11:28
subprocess推奨>外部プログラムの呼び出し
ライブラリの呼び出しならctypes
622デフォルトの名無しさん:2008/12/14(日) 04:17:57
今プロジェクトでしょうもないゲーム作ってるんですが、
ゲームはGUIの数当てゲーム。
簡単、普通、難しいレベル選べるようになってて、
レベルをクリックしたら、簡単用の画面をポップアップさせたいんです。
それってどうやるのか教えて欲しいです。

self.easyButton = Button(root, text = "Easy",\
fg = "black",\
bg = "white")
self.easyButton.config(command = self.easyButtonAction)
self.easyButton.pack()

def easyButtonAction(self):
ここに一体何をしたらいいんでしょうか?
623デフォルトの名無しさん:2008/12/14(日) 14:16:45
Toplevel
624デフォルトの名無しさん:2008/12/14(日) 19:46:13
#-*- coding: utf-8 -*-

import fileinput
widh=8

for line in fileinput.input():
tsv=line.split()
print "+".join(["-"*(widh)]*len(tsv))
for cut in rabge(len(tsv)):
tsv[cut]=tsv[cut].center(widh)
print "|".join(tsv)

と書いたtest.pyをコマンドプロンプトから起動したんですけどスクリプトが終了しません
625デフォルトの名無しさん:2008/12/14(日) 19:47:47
インデント消えちゃった

for line in fileinput.input():
  tsv=line.split()
  print "+".join(["-"*(widh)]*len(tsv))
  for cut in rabge(len(tsv)):
     tsv[cut]=tsv[cut].center(widh)
  print "|".join(tsv)
626デフォルトの名無しさん:2008/12/14(日) 19:53:55
処理データの入力待ちだろ。
stdinに何か入れてみろ。
627デフォルトの名無しさん:2008/12/14(日) 20:15:04
rangeがrabgeになってたりしてました

有難うございます
628デフォルトの名無しさん:2008/12/14(日) 20:34:18
( ;∀;)イイハナシダナー
629618:2008/12/14(日) 21:01:55
619-621
ありがとうございました。
630デフォルトの名無しさん:2008/12/14(日) 21:33:06
すみません質問です。
[hoge.py]
import sys
print sys.argv

と書いた時に。
python hoge.py abcde
としたときに、引数を取得できるのですが。

chmod 755 hoge.pyにしたあと。
./hoge.py abcde
ってコマンドを打つとなぜかなにも出力されません。

自作のコマンドをパスが通っている場所に置いて使いたいです。
よろしくお願いします。
631デフォルトの名無しさん:2008/12/14(日) 21:38:17
>>630
先頭行に
#!/usr/bin/env python
とか書くといいぞ
632デフォルトの名無しさん:2008/12/14(日) 22:23:36
>>630
ありがとう!

うまくいきました!
633デフォルトの名無しさん:2008/12/15(月) 09:28:48
#!/usr/bin/env python
この書き方良く見るけどいつから始まったん?
有効なの?
みんな違和感感じないの?
634デフォルトの名無しさん:2008/12/15(月) 09:30:44
違和感感じたりWindowsしか使わないんなら別に書かなくてもいいよ
635デフォルトの名無しさん:2008/12/15(月) 10:27:17
はあ?そんなこと聴いてないけど?
636デフォルトの名無しさん:2008/12/15(月) 11:08:50
この業界で古株気取っても
あまりいいことなんてないのに(*´・ω・)(・ω・`*)ネー
637デフォルトの名無しさん:2008/12/15(月) 11:15:55
>>633
「違和感感じ」とか「はあ?そんなこと聴いてないけど?」
に違和感を覚えます。
638デフォルトの名無しさん:2008/12/15(月) 11:19:17
とりあえず喰い付きのいい餌のひとつだということはわかった
639デフォルトの名無しさん:2008/12/15(月) 22:59:17
python
この言語、良く見るけどいつから始まったん?
有効なの?
みんな違和感感じないの?
640デフォルトの名無しさん:2008/12/15(月) 23:19:00
 :.
 ::::..
  ::::...
   ::::...
   ::::... ∧_∧_∧
    ::::.(∀・( ´Д`)
   r -(  ( O┰O
  ..::ii'⌒< <  ) 冊冊〉
  ::'、__,,l!しし(_)l!lJ´
          '、__,l!j
「python。この言語、良く見るけどいつから始まったん・・・?」「バカヤローまだ始まってもいねーよ 」
641デフォルトの名無しさん:2008/12/16(火) 01:06:55
お願いします。
WindowsでCのプログラムをDistutilsを使ってコンパイルしたいのですが、Python2.5とVC2005の組み合わせだとビルドできませんか?
ttp://www.python.jp/doc/nightly/dist/module-distutils.msvccompiler.html
の後半に書かれている設定はどうすればできますか?
642デフォルトの名無しさん:2008/12/16(火) 01:46:34
>>641
普通にやってだめだった?

スタートメニューの中に、VC用にコンパイラやINCLUDEのパスが通った状態で
コマンドプロンプトを立ち上げるショートカットがあるだろ?
それを使ってコマンドプロンプトを立ち上げて、
>SET DISTUTILS_USE_SDK=1
としてから、試してみて。
643デフォルトの名無しさん:2008/12/16(火) 21:54:23
>>642
遅くなりましたが、ありがとうございました!!
644デフォルトの名無しさん:2008/12/17(水) 00:32:50
Win上でPython2.5と2.6が共存できるみたいだけど、環境変数のPathにはどう書いたらいい?
2.5と2.6を簡単に切り替えて実行できるようにしたいんだけど、python.exeは名前被ってるし…。
645デフォルトの名無しさん:2008/12/17(水) 00:44:48
俺はpython26.exeという具合に名前書き換えてるな
exeだけ名前変えれば大丈夫なはずだ
646デフォルトの名無しさん:2008/12/17(水) 01:06:43
set python25=C:\Python25\python.exe

> %python25%

これじゃ、なんか問題あるんか。
647デフォルトの名無しさん:2008/12/17(水) 13:00:05
print が文から関数になりました.
print "abc",
のようにして改行させずに表示しようと思い
print("abc",)
としてみたんですが,だめみたいです.
print で改行なしの表示ってのはもうできないんでしょうか?
648デフォルトの名無しさん:2008/12/17(水) 13:06:19
649デフォルトの名無しさん:2008/12/17(水) 13:09:53
>>645-646
なるほど!どちらも目から鱗だわ。さんくす
650デフォルトの名無しさん:2008/12/17(水) 13:41:01
>>642
641とは別人ですが、その手順でやってなお、
The .NET Framework SDK needs to be installed before building extensions for Python.
というエラーが出ます。
助けてください。
651642:2008/12/17(水) 14:57:42
>>650
インストールしている Windows SDK のバージョン、 Visual C++ のバージョン、
Pythonのバージョン、それぞれ書いてみて。
652デフォルトの名無しさん:2008/12/17(水) 15:05:59
>>651
Microsoft Platform SDK for Windows Server 2003 SP1
Microsoft Visual Studio 2005
Python2.4.3
です。
お願いします。
653652:2008/12/17(水) 16:31:44
ちなみにsetup.pyの中はこんな感じです。


# -*- coding:sjis -*-
from distutils.core import setup, Extension

module1 = Extension(
'test',
sources = ['test.c'])

setup(
name = 'PACKAGE_NAME',
version = '1.0',
description = 'Test',
ext_modules = [module1]
)
654デフォルトの名無しさん:2008/12/17(水) 16:36:25
>>652
全部バージョンが一世代古いのな。正直、ワカンネ。

とりあえず、VCのバージョンが違うから、 DISTUTILS_USE_SDK=1 は必要。
PlatformSDKで、スタートメニューの中に、コンパイラの設定をしたコマンドプロンプトを
起動するショートカットある?
あれば、それで起動して、あとは >>642 と一緒のハズ。
それでダメなら、
> set MSSdk
で変数の中身を確認して
655デフォルトの名無しさん:2008/12/17(水) 16:53:57
distutils.msvcconpiler読んだ方が速いぞ
656652:2008/12/17(水) 17:09:10
657デフォルトの名無しさん:2008/12/17(水) 17:17:25
ソースだろ
658デフォルトの名無しさん:2008/12/17(水) 17:27:17
Pythonに興味があるのですが
実際Pythonってどんなのを開発するのに
便利な言語なんでしょうか?

実例が少なく分からないため教えて欲しいです。
659652:2008/12/17(水) 17:35:20
>>657
見ましたがよくわからないです(><)
660デフォルトの名無しさん:2008/12/17(水) 20:38:35
>>658
Perlやphpが特定用途でよく使われているのに対して、Pythonは特定用途に最適化せず、
汎用言語として設計されている。

デスクトップアプリでは、アプリ自体をPythonで作ったり、アプリのプラグイン機能をPythonで
書けるようにしたり。Web、FTP、IRCサーバーといったサーバーにも使われるし、Webアプリにも
使われる。もちろん日々のスクリプティングにも使える。
PythonとC/C++とアセンブラができれば、プログラミング言語の需要のほぼすべてをカバー
できる。
661デフォルトの名無しさん:2008/12/17(水) 21:27:23
wxPythonは意外と使える
662デフォルトの名無しさん:2008/12/17(水) 22:02:43
IronPythonとSilverlight2で、今までJavaScriptとActionScriptの独擅場だった
ブラウザ内で動くプログラムもPythonで書けるようになったね。

速度が必要な場所やシステムコールが必要な部分はC言語が必要だけど、
C言語でPython拡張モジュールを書くのもやりやすいし、本気で万能言語。

ThinkPadは管理アプリ内でPythonを使ってるし、OpenOffice.org にも Python が
入ってる。有名なFPSとかRTSにも入ってた気がする。
663デフォルトの名無しさん:2008/12/18(木) 11:00:36
>>660
>>662

なるほど、PHPみたいな言語と違って色んなものが作れると
いうことなんですね。
もうひとつ質問なんですが、特定の用途で多く使われる言語は
多少なりとも特定の用途においての開発が楽だと思うんですが、

特定の用途を持たないPythonはどれにおいても開発が楽なんでしょうか。
それとも、Cで動的なwebページを作るときのように、手間がかかって
しまうのでしょうか。

Pythonを使っているみなさんに感想をお聞きしたいです。
664デフォルトの名無しさん:2008/12/18(木) 11:20:10
以前は他の言語に疲れた人がPythonにやってくるとか言われてたな
他の言語に対する優位性とかもう面倒なので一々考えない
Javaの方が速いとかRubyの方が楽しいとかC#の方がWinアプリ作るの楽とか正直全然うらやましくない
665デフォルトの名無しさん:2008/12/18(木) 11:40:43
>>663
Cぐらい手間がかかるならPython要らない。CとPythonで役割分担して、
結合していくもの。

Webアプリだって、MVCフレームワークを使うなら、Djangoとか使えばphpと
変わらない生産性がある。(個人的には、$とか->とか書くのが面倒だったり、
IPythonでデバッグとテストが楽だったりするので、Pythonの方が良いと思ってる)

phpがWebで優れている点は、無料もしくは安価なレンタルサーバーでは
cgiかphpしか選択肢が無くてcgiよりphpの方が速いとか、既存の(X)HTMLの
一部にphpのコードを挟んで動的ページにできるといった、「自分のWebサイト
作ってみたい」レベルの初心者にやさしいところ。

もともとプログラマでWebサイト「も」作る人なら、最初から全部PythonとCで書いて
いれば、いちいち専用言語を覚える必要が無くて楽。
666デフォルトの名無しさん:2008/12/18(木) 12:45:58
>>663
ドメイン特化つーとMathematicaとかMatlabとかみたいな?
まあそれはそうだろ
phpぐらいなら、phpという言語自体の機能の強みというよりは、
どこのサーバでも使えるとか利用者や情報が多いといった程度の強みしかないが、
Mathematicaが欲しいのならMathematica使っとけって話だ

もっとも汎用言語には、閉じた世界の仕様に縛られない強みと自由がある
何でもできるなら、いざ「〜ができない」で困るということは無い
もっともPythonの場合はC/C++と併用することで本当の力を発揮する言語だが

今時はドメイン特化言語(DSL)を言語上に構築するという手法も
流行だが、Pythonは構文的な柔軟性に乏しくマクロも無いので、そういうのは苦手
以前はLispの独擅場だったと思うが、最近は色々あるようだな
RubyはわりとDSL向き、と言われている
667デフォルトの名無しさん:2008/12/18(木) 22:23:24
>無料もしくは安価なレンタルサーバーでは
>cgiかphpしか選択肢が無くて

GAE
668デフォルトの名無しさん:2008/12/18(木) 22:38:15
GAEってCGIじゃなかったっけ
669デフォルトの名無しさん:2008/12/19(金) 00:41:30
>>668
いや、ちがうよ。
ただ、初心者にはまだ敷居が高い。
670デフォルトの名無しさん:2008/12/19(金) 03:15:59
だんじょー
671デフォルトの名無しさん:2008/12/19(金) 16:10:51
672デフォルトの名無しさん:2008/12/19(金) 18:11:37
初心者には違いが分からんのですよ
673デフォルトの名無しさん:2008/12/19(金) 18:29:58
RFC3875に則ったインタフェースを提供してるんならCGIなんじゃないのか?
GAEってRFCに合致しないところがあんの?
674デフォルトの名無しさん:2008/12/19(金) 19:26:00
みんなのPython借りてきたw
俺は今年中にファルコンになる。
675デフォルトの名無しさん:2008/12/19(金) 19:33:54
なんじゃそら
676デフォルトの名無しさん:2008/12/19(金) 19:35:37
>>675
ブラッディ・マンディ見てないの?
今、Pythonが熱いんだよw
677デフォルトの名無しさん:2008/12/19(金) 20:32:35
なんかドラマでクラックするシーンの画面に写ってるのがPythonらしい
678デフォルトの名無しさん:2008/12/19(金) 21:03:50
どうせすぐ飽きちゃうくせに
679デフォルトの名無しさん:2008/12/20(土) 02:44:41
680デフォルトの名無しさん:2008/12/20(土) 11:55:07
クラッキングのことをハッキングと言っちゃう男の人って・・・
681デフォルトの名無しさん:2008/12/21(日) 00:13:39
>>678
は?
682デフォルトの名無しさん:2008/12/21(日) 00:18:00
リストオブジェクトの値渡しってできますか?
list = range(10) でリストを作ったとして、
num = list とコピーしてlistには影響を与えずnumを操作したいです。
683デフォルトの名無しさん:2008/12/21(日) 00:21:13
>>682
from copy import deepcopy
リストに入れるのが文字列やら数値なら、deep じゃない copy でいい。
684デフォルトの名無しさん:2008/12/21(日) 00:25:39
>>683
ありがとうござんす!
685デフォルトの名無しさん:2008/12/21(日) 06:29:55
>>> a = range(3)
>>> b = a
>>> b[1] = 6
>>> b
[0, 6, 2]
>>> a
[0, 6, 2]
686デフォルトの名無しさん:2008/12/21(日) 06:38:21
>>> from copy import deepcopy, copy
>>> b = copy(a)
>>> b[1] = 8
>>> b
[0, 8, 2]
>>> a
[0, 6, 2]
>>> b = deepcopy(a)
>>> b[1] = 7
>>> b
[0, 7, 2]
>>> a
[0, 6, 2]
>>> a = [[1,2],[3,4]]
>>> b = copy(a)
>>> b[1][1]=9
>>> b
[[1, 2], [3, 9]]
>>> a
[[1, 2], [3, 9]]
>>> b = deepcopy(a)
>>> b[1][1]=5
>>> b
[[1, 2], [3, 5]]
>>> a
[[1, 2], [3, 9]]
687デフォルトの名無しさん:2008/12/21(日) 13:21:42
>>682
a = range(10)
b = list(a)
もしくは
b = a[:]
688デフォルトの名無しさん:2008/12/21(日) 13:50:02
>>> a = [[1,2],[3,4]]
>>> b = list(a)
>>> b[1][1] = 5
>>> a
[[1, 2], [3, 5]]
>>> b = a[:]
>>> b[1][1] = 6
>>> a
[[1, 2], [3, 6]]
689デフォルトの名無しさん:2008/12/21(日) 17:24:23
>>686
なるほど。何の変哲も無いリストならcopy()や>>687さんの方法でできる。
しかし、リストの中にリストを含むようなオブジェクトに関してはdeepcopy()を用いるということですね。
わかりやすい説明ありがとうございます。
690デフォルトの名無しさん:2008/12/22(月) 01:44:04
Are you happy?
691デフォルトの名無しさん:2008/12/22(月) 10:37:29
Yes, we am.
692デフォルトの名無しさん:2008/12/22(月) 13:08:15
よろしくお願いします。
Python2.4のdistutilsモジュールのmsvccompiler.pyを書き換えたいのですが、
if self.__version >= 7:
key = (r"%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories"
% (self.__root, self.__version))
else:
key = (r"%s\6.0\Build System\Components\Platforms"
r"\Win32 (%s)\Directories" % (self.__root, platform))

の部分のKEYは何を表しているのでしょうか?
これを7.1から8.0に対応させるためにはどのように書き換えたらいいですか?
693デフォルトの名無しさん:2008/12/22(月) 14:14:26
>>692
茨の道をわざわざ選んでいるという感じだな
本体が使っているVCと同じバージョンを使うのが一番楽だぞ

Python2.6だとdistutilsにmsvc9compilerというのが含まれていて、
VC8, VC9に対応している
mainfestの埋め込みもそれでやっている

Python2.6のmsvccompilerおよびmsvc9compilerをパクッてきて
修正するのが早いだろうと思うが、オススメはできない
694デフォルトの名無しさん:2008/12/22(月) 14:20:36
>>693
とりあえずそれを試してみます。
ありがとうございました。
695デフォルトの名無しさん:2008/12/22(月) 14:50:01
お前は俺かw
distutils のコンパイラモジュールは cc, link, include パス, lib パスを探してるだけだよ
やろうと思えば DDK 付属の cl でもビルドできる
696デフォルトの名無しさん:2008/12/22(月) 19:33:16
17:07:22,797 と 17:16:34,715 の間が、何分何秒か知りたい。
以下のようなスクリプトを作ったが、

import datetime

a = datetime.datetime.strptime('17:07:22,797', '%H:%M:%S,%s')
b = datetime.datetime.strptime('17:16:34,715', '%H:%M:%S,%s')
c = a - b
print c

ValueError がでる。
(strptime に %s の表現は使えないので当たり前だが)

Python の strptime は、C言語の strptime() を呼んでいると思われるのですが、
http://www.pinkdragon.net/DocumentsLibrary/contents/ja/Linux_man/strptime.3.html
によると、tm 構造体は、秒までの精度しか持っていないように見える。
ミリ秒まで計算させるにはどうしたらいいでしょうか?
以下のような感じ事で実行できるスクリプトを作りたいです。

$ hoge.py 17:07:22,797 17:16:34,715
9分11秒820ミリ秒
697デフォルトの名無しさん:2008/12/22(月) 20:21:39
820ミリ秒?
698デフォルトの名無しさん:2008/12/22(月) 20:25:18
>>> a = datetime.datetime(2008, 12, 22, 17, 16, 34, 715000)
>>> b = datetime.datetime(2008, 12, 22, 17, 7, 22, 797000)
>>> a - b
datetime.timedelta(0, 551, 918000)
699デフォルトの名無しさん:2008/12/22(月) 20:26:43
>>696
形式が決まってるんなら、正規表現でパーツを取り出せばいいだけだろう
後はdatetimeを構築すればどうとでもなる
700デフォルトの名無しさん:2008/12/22(月) 20:30:27
$ hoge.py 17:07:22,797 17:16:34,715
9分11秒918ミリ秒
701デフォルトの名無しさん:2008/12/22(月) 20:33:35
Pythonistaも質が下がったな
702デフォルトの名無しさん:2008/12/22(月) 20:34:52
だんじょー
703デフォルトの名無しさん:2008/12/22(月) 20:35:54
なんじゃそら
704デフォルトの名無しさん:2008/12/22(月) 20:37:03
冗談はよせ
705デフォルトの名無しさん:2008/12/22(月) 21:05:36
>>696
import time
def parse_time(s):
    s1, s2 = s.split(",")
    t = time.strptime(s1, "%H:%M:%S")
    return (t.tm_hour * 3600 + t.tm_min * 60 + t.tm_sec) * 1000 + int(s2)
a = parse_time("17:07:22,797")
b = parse_time("17:16:34,715")
print ("%d,%d" % divmod(b - a, 1000))
706デフォルトの名無しさん:2008/12/22(月) 22:41:38
Pythonからネットワーク上にあるGitのリポジトリを弄りたいんだがどうすればいいんだ?
707デフォルトの名無しさん:2008/12/23(火) 00:01:14
What's the matter?
708デフォルトの名無しさん:2008/12/23(火) 00:04:01
709デフォルトの名無しさん:2008/12/23(火) 00:30:03
すまん、まともな返答を期待している。
710デフォルトの名無しさん:2008/12/23(火) 01:33:36
711デフォルトの名無しさん:2008/12/23(火) 10:49:07
712デフォルトの名無しさん:2008/12/23(火) 23:21:48
インタプリタでtznameを実行しようとしても文字化けしたタプルしか出力されません
何故ですか。
713デフォルトの名無しさん:2008/12/24(水) 01:28:55
set tz=
714デフォルトの名無しさん:2008/12/24(水) 17:59:08
python実行前に
set TZ=JST-9
してから
import time
time.tzname
715デフォルトの名無しさん:2008/12/24(水) 18:11:17
716デフォルトの名無しさん:2008/12/24(水) 18:36:56
print repr([t.decode('mbcs') for t in list(time.tzname)]).decode('unicode-escape')
717デフォルトの名無しさん:2008/12/24(水) 21:39:40
今日から始めたんですがイキナリつまってしまいました。よろしくお願いします。
>>> print 'hello!'
File "<stdin>", line 1
print 'hello!'
^
SyntaxError: invalid syntax

対話モードでこんなエラーが出るんですがなぜでしょうか?
python3.0です。
718デフォルトの名無しさん:2008/12/24(水) 21:54:44
Python3.0はPython2.x系とは仕様が変わったんだよ
print文というのは無くなって、関数になっている

日本語のチュートリアルや本で勉強してるんなら
2.5系を入れなさい、要らない苦労せずに済むから
719デフォルトの名無しさん:2008/12/24(水) 22:02:21
>>718
そうなんですか・・・。
本を見ながらだったので早速2.5に入れなおします。
レスありがとうございました。
720デフォルトの名無しさん:2008/12/25(木) 01:28:20
ある配列の各々の数同士を掛け合わせた結果を得たいんだがいい方法ある?
721デフォルトの名無しさん:2008/12/25(木) 01:30:46
reduce(lambda x, y: x*y, [1,2,3,4])
で自己解決しました。
722デフォルトの名無しさん:2008/12/25(木) 01:31:34
>>720
>>> import operator
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> map(operator.mul, a, b)
[4,10,18]
723デフォルトの名無しさん:2008/12/25(木) 01:36:40
>>> [x * y for x, y in zip([1,2,3], [4,5,6])]
[4, 10, 18]
724デフォルトの名無しさん:2008/12/25(木) 17:26:11
ずれてる・・・
725デフォルトの名無しさん:2008/12/27(土) 08:41:36
例えばadd.pyってのを書いて、

import sys
print sys.argv[1] + sys.argv[2]

てのを動作させるとします。
これをプロンプトで呼び出して何度も実行したいのですが、
pythonではどうやるのが一般的な作法なんでしょうか。
add.pyは動作確認をしながら、途中で何度も修正するものとします。
726デフォルトの名無しさん:2008/12/27(土) 10:59:15
add.py
727デフォルトの名無しさん:2008/12/27(土) 11:27:00
>>726
Pythonのプロンプト
728デフォルトの名無しさん:2008/12/27(土) 11:52:07
好きなだけ呼び出せよ!
729デフォルトの名無しさん:2008/12/27(土) 12:16:03
>>725
emacs用のpython-modeあるよ

C-c !で別窓にインタプリタ起動
C-c C-c でバッファ全体をインタプリタに送りつける
C-c C-! ならリージョン内
C-M-x ならclass/def

無論対話環境側の窓にうつって、プロンプトに普通にコードを打ち込んでいくことも
出来る
M-pとかでヒストリも使える
730デフォルトの名無しさん:2008/12/27(土) 12:19:18
>>728
おまえのpythonは
>>> add.py
と打つと動作するのか?
731デフォルトの名無しさん:2008/12/27(土) 12:26:28
いいえ、importします
732デフォルトの名無しさん:2008/12/27(土) 12:30:31
reloadは3.0から無くなったんでなかったっけ
修正しつつの作業にはあんま向いてないと思うよ

exec open("add.py").read()

とかしたほうがいい
733デフォルトの名無しさん:2008/12/27(土) 12:33:43
まじか・・・
734デフォルトの名無しさん:2008/12/27(土) 12:36:53
Removed reload(). Use imp.reload().
735デフォルトの名無しさん:2008/12/27(土) 12:38:30
>>734
サンクス、完全に消えたわけではないのか
736デフォルトの名無しさん:2008/12/27(土) 12:51:45
簡単にreloadできなくなるとインタラクティブ環境の魅力が減るのに
どうしていちいちimport impしなければならないのか
737デフォルトの名無しさん:2008/12/27(土) 12:58:44
aac(mp4)ファイルのタグ情報を参照するためのライブラリを教えてください。
mp3のタグ情報を読めるライブラリは見つかったのですが、mp4の方が見つかりません(泣
738デフォルトの名無しさん:2008/12/27(土) 13:30:58
みんパイ借りてきたんだけど、対応してるVerは2.4なんだね。

本スレ見てて、今pythonはじめるのなら、2.6あたりがいいのかもって思ったけど、
ネットに2.6に対応してるいいドキュメントとかないのだろうか。

2.6でも普通にみんパイを読み進めても問題ないならとりあえずそうするけど。
739デフォルトの名無しさん:2008/12/27(土) 13:32:57
細かいことは気にせずにコーディングしまくるといいよ
740デフォルトの名無しさん:2008/12/27(土) 13:35:39
>>739
把握しました。
気にせず書きまくることにします。
741デフォルトの名無しさん:2008/12/27(土) 16:47:08
742デフォルトの名無しさん:2008/12/27(土) 18:07:08
import sys
reload(sys)
sys.setdefaultencoding
743デフォルトの名無しさん:2008/12/27(土) 19:38:51
>>736
才能のあるプログラマはまず
自動化できないか考える
http://www.python.jp/doc/release/tut/node4.html#SECTION004240000000000000000
744デフォルトの名無しさん:2008/12/27(土) 20:02:05
自動化できるか考える前に、自動化できるはずだと考える
745デフォルトの名無しさん:2008/12/28(日) 00:14:40
3.0でPythonは死んだのか・・・
また新しい言語を探す旅に出なくてはいけないのか・・・
746デフォルトの名無しさん:2008/12/28(日) 00:15:47
つRuby
747デフォルトの名無しさん:2008/12/28(日) 00:30:18
具体的にどう死んだのか教えてください
748デフォルトの名無しさん:2008/12/28(日) 00:40:40
猟師さんが酒に漬けてニシキ酒にしました。
749デフォルトの名無しさん:2008/12/28(日) 01:59:40
正直3.0に移行するぐらいならRubyでいいと思っている。

>>743
賢い人は自動化するべきかどうかを考える
750デフォルトの名無しさん:2008/12/28(日) 02:12:55
そしてRuby 2.0の移行の時にPythonに戻るわけですね、わかります。
751デフォルトの名無しさん:2008/12/28(日) 08:52:25
そしてPython 4.0の移行の時にLispで昇天するわけですね、わかります。
752デフォルトの名無しさん:2008/12/28(日) 09:02:31
なぜかくだすれでPython3.0イラネとか堰を切ったように
ぶっちゃける人が出てきていて驚きを隠せない俺
753デフォルトの名無しさん:2008/12/28(日) 09:05:05
XPも出始めの頃はようイラン子扱いされてのぅ
754デフォルトの名無しさん:2008/12/28(日) 09:06:26
何行ってんだ、こいつ。
xpは今でもいらないだろwwww
755デフォルトの名無しさん:2008/12/28(日) 09:07:36
>>754
xpは今でも必要だろwwwww
756デフォルトの名無しさん:2008/12/28(日) 10:36:44
賢い人は他人から金をもらってさらに安く他人にやらせる
757デフォルトの名無しさん:2008/12/28(日) 10:40:57
その姑息なやり口も通用しなくなってきてるがな
758デフォルトの名無しさん:2008/12/28(日) 16:10:30
不況の今なら
さらにアコギな金額で可能だよw
759デフォルトの名無しさん:2008/12/28(日) 16:48:15
恐慌は人の心によって引き起こされる
760デフォルトの名無しさん:2008/12/28(日) 19:17:43
またruby厨が荒らしてるのか
761デフォルトの名無しさん:2008/12/28(日) 22:48:00
Rubyには今の所興味が無い
762デフォルトの名無しさん:2008/12/28(日) 23:21:32
ルビーって燃やしたら消えるやつだっけ?
763デフォルトの名無しさん:2008/12/28(日) 23:41:13
それダイヤじゃね?
764デフォルトの名無しさん:2008/12/29(月) 03:53:43
ビール
765デフォルトの名無しさん:2008/12/29(月) 06:56:41










766デフォルトの名無しさん:2008/12/29(月) 09:14:30
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(10)
try:
r = sock.connect(('xxx.xxx.xxx', 12345)
sock.send('test message')
except socket.error, e:
print 'Error: %s' % e

これを実行すると送信されるメッセージは
「test.message」になります
メッセージを「test message」にするにはどうしたらよいでしょうか?
767デフォルトの名無しさん:2008/12/29(月) 13:16:43
住んでいるところの60km圏内なら下を走るね
道を知っているから、高速とほとんどかわらないし
768デフォルトの名無しさん:2008/12/29(月) 13:59:56
>>766
socketよくわからんが
送られてるパケットはちゃんと「test message」だから
送信側と受信側の文字コードの処理で失敗している?
769デフォルトの名無しさん:2008/12/29(月) 15:49:39
>>767
いったいどこの誤爆なんだ
770デフォルトの名無しさん:2008/12/29(月) 21:50:30
>>768
送ったパケットを見ると.になっているのでこっちの問題だと思いました

送信側のコードを変えるのはどうしたらいいのでしょうか
.pyドキュメントの文字コードを変更してみましたが変わりません

教えてください
771デフォルトの名無しさん:2008/12/29(月) 22:42:49
tとmの間に入ってるのがタブで、パケットダンプのASCII表示だと . で表示されてる、
と予想してみた。
772デフォルトの名無しさん:2008/12/29(月) 22:50:36
なるほど、タブか
773デフォルトの名無しさん:2008/12/31(水) 17:08:01
まだですか
774デフォルトの名無しさん:2008/12/31(水) 23:24:54
はい
775 【だん吉】 :2009/01/01(木) 00:14:46
はやくしてください
776 【末吉】 【1702円】 :2009/01/01(木) 01:09:14
あけおめこ〜
777デフォルトの名無しさん:2009/01/01(木) 01:28:08
777
778デフォルトの名無しさん:2009/01/02(金) 18:18:54
CygwinはPython 2.5.2だね
Ubuntu8.04LTSも2.5.2が最新だった気がする
779デフォルトの名無しさん:2009/01/02(金) 22:57:06
あるオブジェクトがunicode文字列か否かを調べるにはどうしたらいいですか?
780デフォルトの名無しさん:2009/01/02(金) 22:58:28
isinstance(x, unicode)
781デフォルトの名無しさん:2009/01/02(金) 23:00:17
即答ありがとうございました!
782デフォルトの名無しさん:2009/01/03(土) 10:06:11
やっぱりできません!エラーがでます!
Python3.0です
783デフォルトの名無しさん:2009/01/03(土) 10:26:50
>>782
だから環境とエラーメッセージを略すなと…


Python3.0ではstrはunicode文字列なので(他のはbytes型)
isinstance(x, str)
あとunicode文字列はu'〜'でなく'〜'だけでOK
784デフォルトの名無しさん:2009/01/03(土) 12:35:42
785デフォルトの名無しさん:2009/01/04(日) 01:32:23
リストをforループしている時に、ループカウンタの値を知りたいのですが、
どうやれば分かりますか?
786デフォルトの名無しさん:2009/01/04(日) 01:52:21
enumerate
787デフォルトの名無しさん:2009/01/04(日) 03:46:46
初めてのプログラミングですが、Pythonは初心者向きと言えるでしょうか?
ゆくゆくはプログラムも作ってみたいと思ってます。
788デフォルトの名無しさん:2009/01/04(日) 04:04:23
>>787
勉強して、損のない言語だと思うよ

やりたいこと目的によって違うから、下を参考にしたりとか
いろいろとググるといいよ

どの言語を学ぶべき? - プログラミングスレまとめ in VIP
ttp://vipprog.net/wiki/which_lang.html
789デフォルトの名無しさん:2009/01/04(日) 04:51:38
10進整数に、"1,000"等の3桁ごとのコンマを入れたいのですが、
どうしたらできますか?
790デフォルトの名無しさん:2009/01/04(日) 06:16:15
import locale
locale.setlocale(locale.LC_ALL, 'English_United States.1252')
x = 10000000000000000
print(locale.format("%d", x, grouping=True))

検索しただけです
791デフォルトの名無しさん:2009/01/04(日) 09:33:44
>>788
Pythonだけ特別扱いされていたり
彼女の作り方まで教えてくれていたり
とても素敵なサイトですね
792デフォルトの名無しさん:2009/01/04(日) 09:40:06
VIPのまとめwikiかよw
793デフォルトの名無しさん:2009/01/04(日) 12:21:44
>>790
ありがとうございます
結構ややこしいですね・・
794デフォルトの名無しさん:2009/01/04(日) 13:13:13
フリーのテキストエディタでお勧めは何でしょうか?
windowsのテキストだと心細いので。
795デフォルトの名無しさん:2009/01/04(日) 13:21:21
PyScripter
796デフォルトの名無しさん:2009/01/04(日) 13:25:37
ソフトウェア板にGO
797デフォルトの名無しさん:2009/01/04(日) 13:34:55
#coding: UTF-8

print "Hello", len("Hello")
print u"こんにちは", len(u"こんにちは")
print len(u"こんにちは".encode("UTF-8"))

3行目のprint文は、UTF-8でエンコードされてますが、それ以外(1,2行目)もUTF-8ではないんですか?
798デフォルトの名無しさん:2009/01/04(日) 15:44:18
いいえ UTF-8 ではありません
799デフォルトの名無しさん:2009/01/04(日) 16:26:39
unicode文字列のエンコーディングの中の人はいません
800デフォルトの名無しさん:2009/01/04(日) 16:46:29
u'hogehoge'.encode('utf-8') して初めて UTF-8 になる
print u'hogehoge' だけ実行したときは
setdefaultencoding() のエンコで自動エンコした上で表示
この場合も表示される段階で初めてそのエンコになる

これであってる?
801デフォルトの名無しさん:2009/01/04(日) 16:50:06
ついでに言うと
#coding: UTF-8
とか
# -*- coding: utf-8 -*-
は無関係
802デフォルトの名無しさん:2009/01/04(日) 16:54:01
Unicode文字列とUTF-8が同じと見てしまうのはありがちな誤解だな。
803デフォルトの名無しさん:2009/01/04(日) 17:23:25
あるインスタンスのクラス名を取得するにはどうしたらいいですか?
804デフォルトの名無しさん:2009/01/04(日) 17:23:49
>>790
これやると日本語が駄目になりますね
すみませんでした
805797:2009/01/04(日) 17:24:15
納得しました。ありがとうございます。
あと、もうひとつ…お願いします。
pythonの環境変数PATHを登録後
プロンプトで
>python
でpythonが起動?しますが、
>python test.py   (test.pyは実際するソースコード記載のファイルです。
などを実行するとエラーになります。
環境変数設定がおかしいのでしょうか?使い方自体が間違ってますか?
ちなみに
C:\Python26>python test.py
の状態で行うと正常な動作が行われます。
806804:2009/01/04(日) 17:28:49
import locale
locale.setlocale(locale.LC_NUMERIC, 'English_United States.1252')

これで日本語も大丈夫らしいです
検索しただけですが
807デフォルトの名無しさん:2009/01/04(日) 17:30:45
もしpathに登録しているならtest.pyのあるディレクトリでcmdを開いて
ファイルを実行するだけで勝手にpythonが開いてくれる
808デフォルトの名無しさん:2009/01/04(日) 17:31:08
>>805
どんなエラーになったかメッセージをコピペしろって
809807:2009/01/04(日) 17:33:48
いや環境変数関係なく
関連付けしていれば勝手に開いてくれるな
適当ばっかだ
810797:2009/01/04(日) 17:34:10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'test10' is not defined
811デフォルトの名無しさん:2009/01/04(日) 17:34:29
>>806
C localeはプロセスグローバルなので、あまり変更はお勧めは出来ないな。
目的がちょろっとした文字列処理でしかないのなら、そのような関数を
書けばいいんじゃないの。

>>800
stdoutへのunicodeのprintは、sys.stdout.encodingによって変換されると
思う。
大抵のケースでは、確かにsys.getdefaultencoding()で取得できる値で
変換されるけどね。
本当はsys.getfilesystemencoding()で取れる値が一番マシに見えるんだが……。
812806:2009/01/04(日) 17:38:16
ですよね
コンマが打ちたいだけですからね
813デフォルトの名無しさん:2009/01/04(日) 17:39:34
そもそも環境設定pathを設定してなにになるの?
814デフォルトの名無しさん:2009/01/04(日) 17:41:37
macはウィルスに強い
815デフォルトの名無しさん:2009/01/04(日) 17:51:05
>>810
>NameError: name 'test10' is not defined

このtest10 ってのは自分で定義している名前だよね?
ひょっとして\python26にあるのと中身が違うのを実行してない?
816810:2009/01/04(日) 18:35:48
test10.pyはC:\Python26内にあります。
817810:2009/01/04(日) 18:36:46
逆に正しいやり方をするとどういった結果が出力されますか?
>python
から先を教えて下さい。
818デフォルトの名無しさん:2009/01/04(日) 19:25:02
line1にtest10という未定義の名前があるだけだろ
819デフォルトの名無しさん:2009/01/04(日) 19:48:56
>>805
実行しようとしている場所カレントディレクトリのパスに日本語が含まれてないか?
820805:2009/01/04(日) 20:04:02
c:\python26
なので日本語はないですね
821デフォルトの名無しさん:2009/01/04(日) 20:06:56
test10.pyの一行目を削除しろ
今すぐに
822デフォルトの名無しさん:2009/01/04(日) 20:13:38
>>820
>python test.py ←c:\python26
C:\Python26>python test.py ←c:\python26
という意味?
823デフォルトの名無しさん:2009/01/04(日) 20:49:17
c:\python26\test.py
です。
824デフォルトの名無しさん:2009/01/04(日) 23:03:04
>>python test.py   (test.pyは実際するソースコード記載のファイルです。
>などを実行するとエラーになります。

>C:\Python26>python test.py
>の状態で行うと正常な動作が行われます。

同じものを同じ場所で実行したのに結果が違うのか?
825デフォルトの名無しさん:2009/01/04(日) 23:39:36
環境変数が正しく設定されてないに一票
826デフォルトの名無しさん:2009/01/04(日) 23:49:51
えーと
C:\Python26\test.pyを
C:\Python26でpython test.pyとして起動すれば実行できる
他のディレクトリで同じコマンドラインをタイプしても実行できないと
言っているのだろうか?


あたりまえだ
827デフォルトの名無しさん:2009/01/04(日) 23:51:23
空行のあたりで吹いた
828826:2009/01/04(日) 23:59:19
まああんまりなのでいくつかのやり方を教える。

1) test.pyのフルパスをpythonに教えてやる、つまり
  python c:\python26\test.py
  のようにすれば常に実行できる。が、面倒くさいだろう。

2) 拡張子pyがpython.exeに関連付けされており、環境変数PATHEXTに拡張子pyが
  含まれており、test.pyがPATHの通ったところに置かれているならば、単に
  test.py
  で実行できる。

3) cygwinのシェルからならば、スクリプトの先頭行に#!/usr/bin/env pythonのような
  呪文を書いてやれば2)と同様にして実行できる。勿論この場合はcygwinの
  pythonになるし、PATHの通った場所にスクリプトを置いておかなければならないのは
  同じ。これはUnix系のOSで一般的な方法。
829デフォルトの名無しさん:2009/01/05(月) 01:40:42
意味がよくわかりません。
830デフォルトの名無しさん:2009/01/05(月) 02:15:47
C:\Python26>python
Python 2.6.1 (略)
Type "help", "copyright", "credits" or "license" for more information.
>>> test10.py
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'test10' is not defined
>>>


っていう話なのかと思った
831デフォルトの名無しさん:2009/01/05(月) 02:16:47
>>810のエラー内容はPythonの対話モード中で
>>> test10.py
と打ったみたいだが
832デフォルトの名無しさん:2009/01/05(月) 02:43:20
utf-8でpythonのコードを書く時、BOMは付けた方がいいですか?
付けない方がいいですか?
833デフォルトの名無しさん:2009/01/05(月) 02:58:07
何のためにBOMがあると思ってるんだ
834デフォルトの名無しさん:2009/01/05(月) 03:11:30
付けないほうがいいって聞いた。どこソースかは忘れた
835デフォルトの名無しさん:2009/01/05(月) 03:22:08
まあutf-8はバイトオーダーを示す必要がないからbomは不要のはずだけど。
836デフォルトの名無しさん:2009/01/05(月) 04:03:22
sshでリモート操作することも考慮して、vimとemacsだと、どっちがいいんでしょうか?
現在の経験値的には、vimは見習いレベル、emacsは超初心者レベルです

また検索機能が強力なのは、どっちなんでしょうか?
2chを見る限りだとemacsメイン・ときどきvim派が多いですよね
837デフォルトの名無しさん:2009/01/05(月) 06:08:41
自分で試せばいいじゃん
sshでリモートとかおれわからんし
838デフォルトの名無しさん:2009/01/05(月) 06:35:28
みなさん、おはおうございます。
Pythonの日本語環境設定がしやすいインストーラーという奴を
インストールしまして、いざ日本語環境を設定しようとしましたところ
エラーが出て挫折しました。
python setup.py install
^
なんかpに間違いがあるようなのですが、
なんのことやらさっぱりわからないのです。
839デフォルトの名無しさん:2009/01/05(月) 06:37:05
>>838です。
すみません。
エラーが出たpはpythonのpではなくsetupのpです。
GUIのほうだとsetupが間違いと出ます。
840デフォルトの名無しさん:2009/01/05(月) 08:24:38
>Pythonの日本語環境設定がしやすいインストーラーという奴

こんなもの入れなくてもいい
841デフォルトの名無しさん:2009/01/05(月) 09:31:00
>>838
2.4以降は、Pythonの日本語環境設定を入れなくて良いっぽいよ

翻訳されたドキュメントの多いPython 2.5.2版がおすすめ
Python標準リリース
ttp://www.python.jp/Zope/download/pythoncore
842デフォルトの名無しさん:2009/01/05(月) 09:44:39
2.6.1 がお勧め。
2.6は3.0と違って2.5の上位互換になってるから、2.5のドキュメントはほとんどそのまま使える。
Python 3.0 の新機能のいくつかも2.6から使える。
843デフォルトの名無しさん:2009/01/05(月) 09:48:43
BOM付けた場合、影響受けるとしたらwebアプリ?
でもPythonの場合ってヘッダすらprintで出力するんだよな
844デフォルトの名無しさん:2009/01/05(月) 09:49:33
>>842
なんで2.6なんて勧める。
2.5.2が一番最強だろ。パフォーマンス的にも。
845838:2009/01/05(月) 09:55:41
>>841 >>842 >>843さんありがとうございました。解決しました。

MS-DOSプロントで実行し終了するには
import sys
sys.exit()
と記入すればよいことがわかりました。
しかしMS-DOSでいうところのclsに当たるコマンドがわかりません。
それから日本語を出力することは出来るのですが
入力することが出来ません。
GUIだと入力もできます。
846デフォルトの名無しさん:2009/01/05(月) 10:08:26
>>844
バグフィックスされた 2.5.4 があるのに 2.5.2 を薦めるほうがどうかと思うが?
5%程度の性能差をとるか、新機能とPython3.0への予習をとるかの問題。
847デフォルトの名無しさん:2009/01/05(月) 10:10:03
import os; os.system('cls')
>それから日本語を出力することは出来るのですが
>入力することが出来ません。
WindowsだとAlt+漢字キーとかじゃないの
848デフォルトの名無しさん:2009/01/05(月) 10:13:53
>>847
そんなことはわかってます。
ただ僕は、
pythonでのコマンドが知りたいので
そういったことはやりたくないです。

>WindowsだとAlt+漢字キーとかじゃないの
知ってます。日本語入力は問題ないです。
何か問題ありますか
849デフォルトの名無しさん:2009/01/05(月) 10:34:31
>>846
2.5.4がリリースされているのは、知っているけど
Cygwin、Ubuntu8.04LTSも単純なインストールだと2.5.2なんだけど
2.5.4に上げちゃっていいの?

最新版を追っかけたくなくて、上位互換率の高い安定版を入れたい人は、
何を入れたらいいのでしょうか?
2.5.4を入れるなら、2.6.xを入れたい感じだが
850838:2009/01/05(月) 10:53:59
>>847
ありがとうございました!出来ました
851デフォルトの名無しさん:2009/01/05(月) 11:06:51
>>849
Linuxや何かでパッケージマネージャで管理してるのはわざわざソースから
新しいのを入れんでいいだろ

2.5.4はあくまでバグフィックスリリースであって、外部仕様もABIも互換、
違いはバグが直ってるかどうかだけだから、PCだけ2.5.4にして
端末間でバージョン合わなくなっちゃってもいいの?みたいな心配してるんなら
無用と思われ

まー俺は2.6に移行中だから、2.5.4入れてないけどね
ぶっちゃけ面倒くさい
2.5.3がすぐポシャって、放置してて正解だと思ったわw
852デフォルトの名無しさん:2009/01/05(月) 11:15:50
日本語ドキュメントだけでも2.6の使用は問題ない?
print()の方が好みだから2.6使いたいけどそれ以外は違いがよくわからん。
853デフォルトの名無しさん:2009/01/05(月) 11:16:03
ABI(wwwWwwWWwwwWwwww
854デフォルトの名無しさん:2009/01/05(月) 11:21:12
>>852
基本的には2.6は上位互換だからな
一部の機能はDeprecationWarning食らうけど、使えんわけではない
特に大きな問題はないんじゃないか

>>853
ABIという単語がなんか面白かったか
同じpython25.dllを使っていて、バイナリインタフェースが同じだから
外部ライブラリや何かもリビルドなしでそのまま同じものが使えるという意味だよ
855デフォルトの名無しさん:2009/01/05(月) 12:27:28
>>854
俺は853じゃないし、揚げ足取りも好きではないけど、一応突っ込み。

普通ABIというと、引数の渡し方、戻り値の戻し方、スタックフレームの構築と開放の
タイミング、保存されるレジスタと保存されないレジスタみたいな事を言う。
Python/C API を略すなら、ABIよりAPIの方が適切だと思う。
856デフォルトの名無しさん:2009/01/05(月) 12:40:42
>>855
Wikipediaには

ABIはApplication Programming Interface(API)とは異なる。
APIはソースコードとライブラリ間のインターフェイスを定義したものであり、
同じAPIをサポートしたシステム間では同じソースコードをコンパイルして利用できる。
一方、ABIはオブジェクトコードレベルのインターフェイスであり、互換ABIを
サポートするシステム間では変更無しで同じ実行ファイルを動作させることができる。

と書いてある。

オブジェクトコードレベルでリンク互換であることを言いたいわけで、
「リンク互換」のほうが適切かもしれんが、ABI互換でも別によいような。
857デフォルトの名無しさん:2009/01/05(月) 13:30:08
pythonでは、受け取った時にunicode化、外に出す時にプレーン文字列化するのが
セオリーのようですが、携帯の絵文字は、その過程で壊れたりしないのでしょうか?
絵文字という異質なものを、unicodeが正常に扱えるのか、心配なのですが
858デフォルトの名無しさん:2009/01/05(月) 13:47:08
少し前に

スラッシュドット・ジャパン | 携帯絵文字のUnicode化、Googleも協力
http://slashdot.jp/it/article.pl?sid=08/11/28/0631244

というニュースがあった。
859デフォルトの名無しさん:2009/01/05(月) 15:07:02
>>838
マジレスすると
ttp://pypi.python.org/pypi/setuptools/
を入れてないんじゃないかと

まあ今回に限れば >>840-841 に同意
860デフォルトの名無しさん:2009/01/05(月) 15:38:13
>>857
扱い方によっては壊れるし、壊さないで例外出すことも可能
unicode にしたい binary (たとえば utf-8) 文字列 hoge に対して
fuga = hoge.decode('utf-8', 'strict')
fuga = hoge.decode('utf-8', 'ignore')
fuga = hoge.decode('utf-8', 'replace')
861デフォルトの名無しさん:2009/01/05(月) 17:26:08
ファイルをr+で開いて読み込んだ後、
一旦中身をクリアしてから書き込むにはどうすればいいでしょうか。
普通にseek(0)したあとwriteすると新しいデータが元より小さいときにその差分が残ってしまうんですが…
862デフォルトの名無しさん:2009/01/05(月) 17:30:20
truncate()
863デフォルトの名無しさん:2009/01/05(月) 17:32:34
>>862
すっかり見落としてた。ありがとう
864デフォルトの名無しさん:2009/01/05(月) 17:36:58
truncate
865デフォルトの名無しさん:2009/01/05(月) 23:53:40
すれ違いかも知れないけど教えてください。
特定文字列が存在していれば抽出して、存在しなければ抽出しないにはどうすればよいでしょうか。

たとえば
"abcdefghi" からは "abc", "def" をキャプチャ
"abcghi" からは "abcghi" をキャプチャ
するにはどのような正規表現で実現できるのか。。。

"(.*)(def)?"→"\1 \2"でいけるかと思ったけど無理でした
866デフォルトの名無しさん:2009/01/05(月) 23:57:08
ちょっとその説明だけだと意図がわからん

defが含まれていなければ文字列全体を返す
defが含まれていれば、それより前の文字列と、def自身を返す

ようにしたいのか?
867865:2009/01/06(火) 00:05:27
>866

>defが含まれていなければ文字列全体を返す
>defが含まれていれば、それより前の文字列と、def自身を返す
まったくもってそのとおりです。
存在していないときに「unmatched group」ってエラーになってしまうんです。
868デフォルトの名無しさん:2009/01/06(火) 00:22:17
>"(.*)(def)?"→"\1 \2"でいけるかと思ったけど

いけるわけないじゃん
869デフォルトの名無しさん:2009/01/06(火) 00:25:44
def f(x):
 m = re.search('(.*?)(?=def)', x)
 return (m.group(1), 'def') if m else (x,)

f('abcdefghi')
-> ('abc', 'def')
f('abcghi')
-> ('abcghi')

こんなもんでいいんじゃないのか
870デフォルトの名無しさん:2009/01/06(火) 00:34:48
r'(.*?)(def|$)'
871865:2009/01/06(火) 00:40:37
>869
ありがとうございます!!
思ったより複雑な式が必要だったんですね。。。

まだまだ修行が足りんです。
872デフォルトの名無しさん:2009/01/06(火) 04:40:43
同時に読み込まれている別々のモジュール(モジュールA,B)の中で、
同じモジュール(モジュールC)をimportしている時、
モジュールC用のメモリ領域は共用されるのでしょうか?
873デフォルトの名無しさん:2009/01/06(火) 05:06:20
はい
874デフォルトの名無しさん:2009/01/06(火) 05:30:01
そうですか。安心しました。
ありがとうございました。
875デフォルトの名無しさん:2009/01/06(火) 05:37:19
>>> a = (1, 2)
>>> b = (10, 20)
>>> for i, j in (a, b):
... print i, j
...
1 2
10 20

となるところを、aとbの中身はそのままで、

1 10
2 20

のように出力させたいのですが、どのようにやると簡単でしょうか。
876デフォルトの名無しさん:2009/01/06(火) 05:47:34
for i, j in zip(a, b): print i, j
877デフォルトの名無しさん:2009/01/06(火) 05:49:45
>>876
ほぉ、そんなものが。
ありがとうございます。
878デフォルトの名無しさん:2009/01/06(火) 12:28:23
>>872
メモリ共用っつーか、単純に2度目以降のimportはスルーされる
例えばimport thisを2度やっても、zen of pythonが表示されるのは最初だけ

まあ違いが分かるのは、thisみたいにモジュールのトップレベルに
直接実行文が記述されているケースぐらいだけどな
879デフォルトの名無しさん:2009/01/07(水) 00:47:08
zipは他人が使ってるのを時間かけるとなんとか理解できるが
自分で使える引き出しにはならない。しかも便利そう。腐れ脳ファック
880デフォルトの名無しさん:2009/01/07(水) 00:50:20
ジッパー(チャック、ファスナー)を連想しろYO
881デフォルトの名無しさん:2009/01/07(水) 00:59:28
            , '´  ̄ ̄ ` 、
          i r-ー-┬-‐、i
           | |,,_   _,{|
          N| "゚'` {"゚`lリ 
             ト.i   ,__''_  !
          /i/ l\ ー .イ|、
    ,.、-  ̄/  | l   ̄ / | |` ┬-、
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \
  .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
__{   ___|└―ー/  ̄´ |ヽ |___ノ____________|
  }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  |
__f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|
  | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄|
___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|
 ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄|
_______l       -ヾ ̄  l/         l|       |___|
882デフォルトの名無しさん:2009/01/07(水) 15:00:45
クラスメソッドに類似した考え方で,
モジュールメソッドというのはアリですか?
883デフォルトの名無しさん:2009/01/07(水) 15:03:08
アリというより軍隊アリだと思うよこの場合。
884デフォルトの名無しさん:2009/01/07(水) 15:51:17
デザインパターンのテンプレートメソッドを書く場合
java等ではprotectedにしたりしますが、
Pythonは全部publicなので、それがテンプレートメソッドと分かりにくいですよね
phpではprivate,protectedなメンバは_をプリフィックスにする慣習がありますが
pythonでそういった、publicと非publicをわかりやすくする慣習はありますか?
885デフォルトの名無しさん:2009/01/07(水) 16:04:00
つ PEP8 の命名規則
886デフォルトの名無しさん:2009/01/07(水) 16:16:45
PHP厨ってRuby厨以上にウザいよな。
887デフォルトの名無しさん:2009/01/07(水) 16:19:18
>>884
PEP8ねttp://www.oldriver.org/python/pep-0008j.html

>>886
いきなり厨とか言い出すお前のほうがうざい。
888デフォルトの名無しさん:2009/01/07(水) 19:43:28
数日前から勉強し始めました。
どの教材を見ても、コマンドラインに表示するだけって印象が強いです。
実際ブラウザの作り方なんかはどの本にも載ってませんでした。

Cとかもそうなのでしょうか?
VBとかは見た感じでは、ボタンがどうのって書いてありました。
pythonでもボタンの位置などのプログラムも可能でしょうか?
889デフォルトの名無しさん:2009/01/07(水) 19:51:12
>>888
プログラミング云々前の知識を身につけるべき
890デフォルトの名無しさん:2009/01/07(水) 19:55:36
>>889
具体的には?
一応シスアド、CCNAあたりは持ってます。
891デフォルトの名無しさん:2009/01/07(水) 19:57:43
>>888
http://pc11.2ch.net/test/read.cgi/tech/1153585095/712-718n
最近別スレに投下した GUI ベースの100マス計算プログラム。
こんな感じでボタン等の GUI 部品を使ったプログラムも作れるお。
892デフォルトの名無しさん:2009/01/07(水) 20:21:58
なんという上昇思考、将来は間違いなくハッカー
893デフォルトの名無しさん:2009/01/07(水) 21:16:58
まさに初心者スレだな。
エスパー衆、おつ
894デフォルトの名無しさん:2009/01/07(水) 22:57:51
>>888
>pythonでもボタンの位置などのプログラムも可能でしょうか?

可能です。
895デフォルトの名無しさん:2009/01/08(木) 00:01:12
>>879
同じ使用例を見て、何度も目からうろこが落ちる(だけな)んですねw
わかります
896デフォルトの名無しさん:2009/01/08(木) 05:49:30
zipってiteratorなの?
897デフォルトの名無しさん:2009/01/08(木) 12:00:41
3からそうなるようなならないような
898デフォルトの名無しさん:2009/01/08(木) 15:34:14
VBのボタンの位置www
899デフォルトの名無しさん:2009/01/08(木) 15:39:28
そんなこともできないなんて、
VB > Pythonだね。
900デフォルトの名無しさん:2009/01/08(木) 17:20:07
Pythonでネットワークプログラミングしたいのですが参考になるサイト等教えてください。
英語でも構いません。
901デフォルトの名無しさん:2009/01/08(木) 17:24:00
>>900
とりあえず、日本の公式→本家だな
話は、それからだ
902デフォルトの名無しさん:2009/01/08(木) 17:29:58
>>900
円高の今のうちに買っておき給へ
ttp://www.amazon.com/dp/1590593715/
903デフォルトの名無しさん:2009/01/08(木) 17:50:04
>>901優しいな
>>900感謝するべき
904デフォルトの名無しさん:2009/01/08(木) 18:02:19
感謝する
905デフォルトの名無しさん:2009/01/08(木) 20:59:58
感謝する
906デフォルトの名無しさん:2009/01/08(木) 21:30:47
顔射する
907デフォルトの名無しさん:2009/01/08(木) 21:40:50
twisted
908デフォルトの名無しさん:2009/01/09(金) 02:40:47
APressもオライリーみたいに日本法人作って翻訳してほしい
909デフォルトの名無しさん:2009/01/09(金) 21:32:56
今日から始めたんですが、返すとはどういう意味です??
あと、ファイルオブジェクトはどういうものですか??
910デフォルトの名無しさん:2009/01/10(土) 02:47:57
911デフォルトの名無しさん:2009/01/10(土) 03:28:57
>>909
プログラムを作るとき、繰り返し実行される部分を関数やメソッドといった
「呼び出せるもの」の形で作ることがよくある。Python では関数やメソッドは
普通 def 文で作る。以下、話を関数に限定する(メソッドについても同じことが
言える)。

関数を呼び出すとき、呼び出し側は関数に入力データを渡して、関数から
出力データを受け取る。このことを関数の立場から言い換えると、関数は
呼び出し側から入力データを受け取って、呼び出し側に出力データを返す、と
言える。つまり「返す」とは関数が呼び出し側に出力データを受け渡すことだ。
Python では関数から出力データを返すには return 文を使う。
関数に渡す入力データを引数(ひきすう)、関数が返す出力データを戻り値
(もどりち)とも言う。return 文は戻り値を返すための文というわけだ。

Python ではデータのことをオブジェクトと呼ぶことが多い。オブジェクトは
オブジェクト指向プログラミングというプログラミングの方法論の核となる
考え方だ。オブジェクトは一般に、データとそれを操作するメソッドから成る。

Python で扱えるデータは何でもオブジェクトだ。isinstance() という関数を
使うとオブジェクトかどうかを調べられる。例えば 123 という数値データや
"abc" という文字データは

>>> isinstance(123, object)
True
>>> isinstance("abc", object)
True

のように isinstance() 関数が True を返すのでオブジェクトだと分かる。
912911の続き:2009/01/10(土) 03:30:56
ファイルオブジェクトはファイル(テキストファイルとか MP3 ファイルのたぐい)
を読み書きためのオブジェクトだ。Python では普通 open() 関数で作る。

>>> f = open("test.txt", "w") # f はファイルオブジェクト
>>> isinstance(f, object)
True

ファイルオブジェクトにはファイルを読み書きするためのメソッドが付いている。
上の例に沿って言えば f.read() や f.close() がファイルオブジェクトのメソッド
の例だ。それぞれファイルを読むメソッド、開いたファイルを閉じるメソッドだ。
どんなメソッドがあるかはマニュアルに載っている。

・・・とまあ、あまり前提知識に頼らないように説明するとこのように長くなる。
なので、最初のうちは分からないことは保留してとりあえず先に進むのがいいよ。
入門書を読んでいるのであれば、一通り読み通すと前の方で疑問に思ったことが
解決できることも多いし。がんばってね。
913デフォルトの名無しさん:2009/01/10(土) 04:27:06
>>912
横からだけど、逆に言えば、メソッドのないものはオブジェクトとは言わないってこと?
914デフォルトの名無しさん:2009/01/10(土) 04:29:56
どこを逆に言ったのか気になるところである
915デフォルトの名無しさん:2009/01/10(土) 04:35:35
>オブジェクトは一般に、データとそれを操作するメソッドから成る。
ってとこ
916デフォルトの名無しさん:2009/01/10(土) 04:40:03
「一般に」って書いてあるじゃん

ていうかPythonでメソッドのないオブジェクトなんて作れたっけか
917デフォルトの名無しさん:2009/01/10(土) 04:57:50
独自のメソッドを定義していないという意味でならば
918デフォルトの名無しさん:2009/01/10(土) 07:04:01
オブジェクトじゃないデータってあるの
isinstance(hoge, object)
が False になるもの
919デフォルトの名無しさん:2009/01/10(土) 14:00:41
>>911
ありがとうございました。
わかりやすかったです。
920デフォルトの名無しさん:2009/01/10(土) 22:20:35
関数を定義する際に、printではなくreturnを使うことによって
戻り値を返すということどういうことでしょうか??
printでは戻り値を返すとは言わないのはなぜですか??
921デフォルトの名無しさん:2009/01/10(土) 22:33:35
日本語でどうぞ
922デフォルトの名無しさん:2009/01/10(土) 22:40:07
print文は画面に表示してるだけだから
例えば
def bai(x):
 print 2*x
y=bai(10)
だと画面に20と表示されるけどyには何も入っていないだろ
def bai(x):
 return 2*x
y=bai(10)
これだとyに20が入るのは分かるよね?
てか関数って概念分かる?
923911:2009/01/10(土) 22:51:11
>>920
いい質問だ。「戻り値を返す」という言葉はプログラミングに関して使う、一種の
専門用語なんだよ。この用語は普通、関数(またはメソッド)からその呼び出し側に
出力データを渡すという意味にのみ使われる。return 文はプログラム内(関数または
メソッドとその呼び出し側との間)でデータを授受するために使う。

これに対して、print は画面やファイルなどプログラムの外にデータを送り出すのに
使うところが違う。つまり、print を使うのは人間のユーザや別のプログラムに
データを渡したいときだ。このデータ授受を指して「戻り値を返す」とは普通言わない。

これは理屈じゃなくて習慣の問題だ。外国語の勉強と同じで、習って慣れるしかない。
924デフォルトの名無しさん:2009/01/10(土) 23:16:56
printは出力した文字数が戻値
925デフォルトの名無しさん:2009/01/10(土) 23:21:13
read-eval-print loop(REPL)を実行している対話環境だけでやってると
区別つかんかもな

>>> 1+1
2
>>> print 1+1
2
926デフォルトの名無しさん:2009/01/11(日) 00:37:33
python3.xだとNoneが返るんじゃなかったっけ
927デフォルトの名無しさん:2009/01/11(日) 09:28:40
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])

Print object(s) to the stream file, separated by sep and followed by end.
sep, end and file, if present, must be given as keyword arguments.

All non-keyword arguments are converted to strings like str() does
and written to the stream, separated by sep and followed by end.
Both sep and end must be strings; they can also be None,
which means to use the default values.
If no object is given, print() will just write end.

The file argument must be an object with a write(string) method;
if it is not present or None, sys.stdout will be used.

ttp://docs.python.org/3.0/library/functions.html#print
928デフォルトの名無しさん:2009/01/11(日) 09:29:46
書いてないなw
929デフォルトの名無しさん:2009/01/11(日) 10:11:37
> python
Python 3.0 (r30:67507, Dec 3 2008, 20:14:27) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> type(print('hoge'))
hoge
<class 'NoneType'>


Firefox3.0.5でインストーラpython-3.0.msiを落とそうとすると
「このゾーンのセキュリティ設定に従ってこのダウンロードはブロックされました」
とか怒られるね。なんなんだろ。
930デフォルトの名無しさん:2009/01/11(日) 11:28:05
Firefox3.0.1でインストーラpython-3.0.msiを落とそうとすると何も出ない
良かった良かった
931929:2009/01/11(日) 11:58:00
932デフォルトの名無しさん:2009/01/11(日) 13:54:13
Python 2.5.2なんだけど
>>> u = u"はにほへといろは"
>>> u
u'\u306f\u306b\u307b\u3078\u3068\u3044\u308d\u306f'
とならないで
>>> u = u"はにほへといろは"
>>> u
u'\x82\xcd\x82\xc9\x82\xd9\x82\xd6\x82\xc6\x82\xa2\x82\xeb\x82\xcd'
こうなる・・・
cygwin、ややこしなあ
割り切って、Ubuntuでプログラミングしようかな

15.2 Cygwin の Python と日本語
ttp://www.okisoft.co.jp/esc/cygwin-15a.html#f4
933デフォルトの名無しさん:2009/01/11(日) 21:22:01
>>932
それ、そのページに書いてあるようにalias切ってやればいいはずだぜ
まあ、そうは言ってもcygwinがオススメなわけじゃないがな
934デフォルトの名無しさん:2009/01/11(日) 21:39:30
>>923
ありがとうございました。理解できました。
>>922
return文だとyに入るのはわかりますが、関数の概念はわかりません。
関数の概念ってなんですか??
あとなぜreturnだと関数に代入できるのですか??
プログラム内だからですか??

皆さんお返答願いします。
935デフォルトの名無しさん:2009/01/12(月) 00:29:33
しね
936デフォルトの名無しさん:2009/01/12(月) 01:09:45
>>934
数学の授業で関数って習わなかったかい?
例えばy=bai(x)だと引数xに何らかの処理baiを行ってその結果をyに代入してるよな
def bai(x):
  return 2*x
これのreturnはまさにその結果を外側に渡す命令なわけ
これがprintだと画面に2*xを表示してるだけで外側には結果を返してない

というかまずは数学の勉強をした方がいいぞ
937デフォルトの名無しさん:2009/01/12(月) 02:13:04
>>934
プログラムは、コンピュータに対する命令(文)の集まりだ
プログラムを書いていると、決まりきった、同じような命令の集まり=手順が
必要になることがある
毎回同じことを書くのはあほくさいので、その手順に名前をつけ、
「××作業をやれ」と、名前を示すだけでその作業をやらせられるようにする
それを、サブルーチンと呼ぶ
サブルーチンの中で10個の作業を行うとして
毎回10個の作業を記述するかわりに、「××作業をやれ」の一言で済むのだから楽だ

作業は、ちょっとだけ内容が違うこともある
例えば「足し算」という作業を考える
足し算の方法は決まっているわけだが、実際に足す数は色々だ
そして、結果も色々だ
1 + 1なら2だし、1 + 2なら3だ
このような場合、「作業の方法」だけを定義して、実際に足す数(=入力)
を後で個別に与えられると便利だ
938デフォルトの名無しさん:2009/01/12(月) 02:14:33
Pythonのような言語では、そのようなことも可能になっている
足し算の定義を「関数」と呼び、足し算に与える数(=入力)を引数と呼ぶ
足し算の結果を「返り値」と呼ぶ

関数では、当たられた入力を元に、いくつかの計算を決まった手順で
行い、どうにかして結果を導き出す
結果を返す(教える)ために用いられるのが、return文だ
答えはこれだ、と言っているわけだ

関数に常にreturn文が必要なわけではない
××作業をやれ、というだけで、その結果を教えてもらう必要が無いのなら、
そのようなものは要らない
しかし、作業結果の報告が聞きたいならば、return文が必要だ
せっかく足し算をさせたのに、足した結果が分からないのでは意味が無いからな
939デフォルトの名無しさん:2009/01/12(月) 02:24:14
print文を使うと、print文に与えた式の値を印字できる

def add(x, y): print x + y
という関数を定義して、
add(1, 1)
のように呼び出すと、
2
が印字される
だから、画面の目の前に座っている人間には、1+1は2なのだな、と分かる

が、print文は、return文と違って、何も返さない
だから、1+1の結果をプログラムで続けて利用したい場合には、役に立たない
関数addは、「人間には」情報を与えるが、それを呼びだした「プログラムには」
何の情報も与えないからだ
940デフォルトの名無しさん:2009/01/12(月) 04:24:23
質問者は気にしなくていいが def foo(): print 1 は None を返すぞ
ここらへん void context を許さない C# なんかのほうが教育的かもしれない
941デフォルトの名無しさん:2009/01/12(月) 05:04:05
>>933
ですよね

cygwin + Python + emacs21.4がオススメじゃない理由は、どんなのがありますか?
むしろ、オススメだよという理由があるなら、そういうのも教えてほしいです
わかる方、お願いします
942デフォルトの名無しさん:2009/01/12(月) 05:12:26
っ VMware + Linux

Cygwinを使う明確な理由があるならともかく
そうでないならUnix環境の劣化コピーに過ぎないと思う。

Ubuntuに慣れてるならそれを使ったほうがいい。
943デフォルトの名無しさん:2009/01/12(月) 09:10:29
944デフォルトの名無しさん:2009/01/12(月) 11:46:13
Ubuntuこそ神のOSだし、Ubuntu以外のOSは
Ubuntuからパッケージ管理などをパクった糞OS
945デフォルトの名無しさん:2009/01/12(月) 12:09:06
ttp://wxpython.org/tut-part1.phpの"A Simple Example"を実行すると強制終了するのですが誰か原因が分かる方は教えてください。
946デフォルトの名無しさん:2009/01/12(月) 12:19:59
Pythonのバージョン
wxWidgetsのバージョン
wxPythonのバージョン
使ってるOS
947デフォルトの名無しさん:2009/01/12(月) 12:49:24
>>946
Pythonのバージョン
 Python 2.6 (r26:66721, Oct 2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)]
wxWidgetsのバージョン
 よく分かりません。
wxPythonのバージョン
 wxPython2.8-win32-unicode-2.8.9.1-py26
使ってるOS
 Windows Vista
です。
ちなみに強制終了時には以下のようなメッセージが表示されます。
ttp://sakuratan.ddo.jp/uploader/source/date101775.png
948デフォルトの名無しさん:2009/01/12(月) 12:58:45
Windows Vista
これが原因じゃないのかな
949デフォルトの名無しさん:2009/01/12(月) 12:58:58
950デフォルトの名無しさん:2009/01/12(月) 13:06:08
>>949
64bitではなく32bitです・・・
951デフォルトの名無しさん:2009/01/12(月) 15:42:00
MySQLdbがインストールされてないレンタルサーバー環境でMySQLに接続したいのですが
同等のPurePythonのライブラリってないですか?
自宅でコンパイルしたのをアップしてみようと試したんですが
MySQLのパスがインスコ時に自動設定されるみたいで、
そのままアップしても結局エラーになっちゃう・・・(パスが違うので_mysqlをimportできない)
952デフォルトの名無しさん:2009/01/12(月) 16:03:07
ループカウンタってなんですか??
953デフォルトの名無しさん:2009/01/12(月) 16:46:36
pythonでメールを送信するプログラムは出来ますか?
954デフォルトの名無しさん:2009/01/12(月) 16:53:47
>>951
どうせ同等のPurePythonのライブラリをインストールする方法に悩むだろ同じこと
MySQLdbをインストールしろ
955デフォルトの名無しさん:2009/01/12(月) 16:54:32
>>952
質問の仕方を変更してください

>>953
できますよ
956デフォルトの名無しさん:2009/01/12(月) 16:58:13
957デフォルトの名無しさん:2009/01/12(月) 17:24:13
ビット幅を表現できる(2進とか16進とかの)表現でないとダメなんじゃね?
958デフォルトの名無しさん:2009/01/12(月) 17:41:22
>>954
つまりファイル編集でパスを設定しなおせるってことなんでしょうか。
>>956のページから落としてるので、
そこのフォーラムなども見たりしてるんですが、なんとも・・・
959951:2009/01/12(月) 17:42:21
958 = 951
960デフォルトの名無しさん:2009/01/12(月) 18:35:08
すみません回答まだですか
961デフォルトの名無しさん:2009/01/12(月) 21:40:46
962941:2009/01/13(火) 02:12:05
>>942,944
レスをもらって、一日考えてみたけど
もう少し、Cygwin路線でがんばってみたいと思います
でも、Linux環境併用で行きたいと思います
そして、自分の求める解を探してみます

レス、ありがとうございました
963デフォルトの名無しさん:2009/01/13(火) 03:40:35
530 :デフォルトの名無しさん:2008/12/08(月) 10:00:45
次スレにpythonのダウンロード先を追加していただけませんか?

531 :デフォルトの名無しさん:2008/12/08(月) 11:13:39
最新版直リン
ttp://www.python.org/download/
3.0 (実験バージョン)
ttp://www.python.org/download/releases/3.0/
2.6.1 (3.0移行推進バージョン)
ttp://www.python.org/download/releases/2.6.1/
2.5.2 (安定バージョン)
ttp://www.python.org/download/releases/2.5.2/

532 :デフォルトの名無しさん:2008/12/08(月) 11:16:03
python.jpだけは許せねえな

533 :デフォルトの名無しさん:2008/12/08(月) 12:38:09
何でも人のせいにしてると誰も雇ってくれないよ(w

534 :デフォルトの名無しさん:2008/12/08(月) 14:55:40
>>531
"実験バージョン"はないのではないかな

535 :デフォルトの名無しさん:2008/12/08(月) 16:37:07
開拓バージョンくらいで
964デフォルトの名無しさん:2009/01/13(火) 04:13:50
おれは、2.5.2を使っているけど、Python 2.5.4 (December 23, 2008) も出ているらしいじゃん
2月になると、大学は春休みだし、次々スレが立つまでに簡単な案内テンプレをつくっていいかもね
965デフォルトの名無しさん:2009/01/13(火) 05:02:34
◆関連リンク
Python の Home Page
http://www.python.org/

日本Pythonユーザ会
http://www.python.jp/

Python 日本語ドキュメント - Pythonistaのお友達
http://www.python.jp/doc/release/

Pythonのバイブル的書籍 (日本語の取り扱いについての情報はイマイチかも)
http://www.oreilly.co.jp/books/4873112109/
966デフォルトの名無しさん:2009/01/13(火) 05:07:35
967デフォルトの名無しさん:2009/01/13(火) 05:08:07
968デフォルトの名無しさん:2009/01/13(火) 06:38:52
line=[[0,1,2],[3,4,5],[,6,7,8]]

をテキストに

012
345
678

って書き込んで
それをまた読み込んで、それをまた

line=[[0,1,2],[3,4,5],[,6,7,8]]

って読み込みたいんですけど何かいい方法はないでしょうか?
969デフォルトの名無しさん:2009/01/13(火) 06:42:47
>>968
pickle ってモジュールがあるから調べれ
970デフォルトの名無しさん:2009/01/13(火) 06:43:14
つpickle
971デフォルトの名無しさん:2009/01/13(火) 11:21:15
yaml
json
972デフォルトの名無しさん:2009/01/13(火) 12:40:29
eval
973デフォルトの名無しさん:2009/01/15(木) 12:04:41
文字に対応する数字をASCII文字に変換することって
ありますか??
974デフォルトの名無しさん:2009/01/15(木) 12:07:22
こういうこと?

print chr(88)
975デフォルトの名無しさん:2009/01/15(木) 15:07:56
>>974
エンコードについて知りたかったんです。
皆さん教えてください。
976デフォルトの名無しさん:2009/01/15(木) 17:57:27
ベンチマークを、datetime.datetime.now()の差で測っているのですが、
マイクロ秒が必ず1000単位=0.1秒きざみで、ちょっと大きすぎます
せめて0.01秒単位にしたいのですが、どうしたらいいですか?
977デフォルトの名無しさん:2009/01/15(木) 17:59:42
と思ったら1000マイクロ秒=0.01秒でしたね
すみません
978デフォルトの名無しさん:2009/01/15(木) 18:01:53
pythonを一から勉強したいのですがおすすめのサイトってございませんか?
979デフォルトの名無しさん:2009/01/15(木) 18:12:32
python.org
980デフォルトの名無しさん:2009/01/15(木) 18:57:11
>>977
0が1個足りん
981デフォルトの名無しさん:2009/01/15(木) 19:07:24
せめてミリ秒で考えようぜ…
982デフォルトの名無しさん:2009/01/15(木) 20:06:01
Python3.0の日本語ドキュメントはまだありませんよね
983デフォルトの名無しさん:2009/01/15(木) 20:17:57
まだ2.6の翻訳が始まったばかりだから
ないね
984デフォルトの名無しさん:2009/01/15(木) 22:04:17
パッケージ配下のすべてのpyファイルをimportするにはどうしたらいいですか?
import hoge.*
と書いてみたらエラーでした
985デフォルトの名無しさん:2009/01/15(木) 23:00:27
hogeがディレクトリだとしたら、
hogeディテクトリの中に__init__.pyってファイルを作ってあげる。
中身は空でいい。

で、hogeまでパスが通ってること前提で

from hoge import *
とする。
パッケージについてphpやらなんやらのrequireのような
ファイルをインクルードして‥という考えはPythonではない。
ファイルごとにスコープ切ってるようにしてるために
そんな感じでモジュールを使う様にしてる
986デフォルトの名無しさん:2009/01/15(木) 23:01:05
from hoge import * でいけるのかわからないな。
検証して書き込むべきじゃないかも。
987デフォルトの名無しさん:2009/01/15(木) 23:03:02
すみません。馬鹿はひっこんでいてくれませんか?
988デフォルトの名無しさん:2009/01/15(木) 23:05:44
ちなみにその方法だと__init__.pyがimportされることぐらいしってますから。

だれか答えお願いしますm(_ _)m
989デフォルトの名無しさん:2009/01/15(木) 23:07:58
やっぱりわかりました。
__init__.pyにimport なにがし
とかくようにして、

from フォルダ import なにがし
とすればいいんですね?
ありがとうございました。m(_ _)m
990デフォルトの名無しさん:2009/01/16(金) 03:36:11
>>985
ありがとうございました
>>987-989
何故人のふりするんですか?目的が分かりません
991デフォルトの名無しさん:2009/01/16(金) 05:56:09
クラスメソッドで受け取る第一引数って
どう使えばいいのですか?
staticメソッドとの違いがいまいちわかりません
992デフォルトの名無しさん:2009/01/16(金) 06:35:40
993デフォルトの名無しさん:2009/01/16(金) 07:03:07
>>991
class A:
 @classmethod
 def f(cls):
  print cls.fruit

class B(A): fruit = "apple"
class C(A): fruit = "banana"

B.f() # prints "apple"
C.f() # prints "banana"
994デフォルトの名無しさん:2009/01/16(金) 07:19:02
def initPlugins():
"""
Initialize the installed plugins
"""
plugins_root = os.path.join(os.path.dirname(__file__), 'plugins')
if os.path.exists(plugins_root):
plugins = os.listdir(plugins_root)
for plugin in plugins:
if not re.match('^__|^\.', plugin):
try:
exec('from plugins import %s' % plugin)
except ImportError:
logging.error('Unable to import %s' % (plugin))
except SyntaxError:
logging.error('Unable to import name %s' % (plugin))
995デフォルトの名無しさん:2009/01/16(金) 12:23:55
5
996デフォルトの名無しさん:2009/01/16(金) 12:24:18
6
997デフォルトの名無しさん:2009/01/16(金) 12:24:47
7
998デフォルトの名無しさん:2009/01/16(金) 12:25:11
8
999デフォルトの名無しさん:2009/01/16(金) 13:38:33
9
1000デフォルトの名無しさん:2009/01/16(金) 13:39:06
1000 でうめ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。