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


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

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



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

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

関連スレ
Pythonのお勉強 Part 28
pc11.2ch.net/test/read.cgi/tech/1217836194/

41 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:36:18 ]
i = 1
j = i
i = 2

print i,j ってすると当たり前のように 2 1 って表示されるんですが、
「Python の代入は束縛だ」って書いてあったので 2 2 ってのが
正しい気がするのですが、何が間違っているんでしょうか(俺が)

42 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:40:32 ]
リテラルは束縛される対象にはなりえないってことですか?

43 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:53:01 ]
int,long,float,str,tupleあたりはimmutableだから


44 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:58:04 ]
>>41-42
j = iは「jをiの別名、エイリアスとせよ」という意味ではなくて、
同じオブジェクトを指すようになるだけだ

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

つーか、束縛って別名のことじゃないと思うんだが、なぜそのように動くと
思ったんだい?

47 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 13:00:16 ]
>>43
こらこら、別にmutableだろうが
i = [1]
j = i
i = [2]
で、jが[2]を指すようになるわけじゃないんだから
いい加減なことを言わないように

49 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 13:06:41 ]
入門書嫁



50 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 13:18:01 ]
>>> i = 1
>>> j = i
>>> i = 2
>>> print i, j
2 2
>>> i += 1
>>> print i, j
3 3

こんなクソ言語だれも使わないよな常考

51 名前:41 mailto:sage [2008/08/29(金) 13:31:00 ]
C/C++ の参照型のようなもんかと思ってた。
boost::shared_ptr<T> のようなものか・・・

52 名前:デフォルトの名無しさん [2008/08/29(金) 14:57:31 ]
>>50
"もし〜だったら"を入れないと勘違いしそう

53 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 14:57:35 ]
pythonインタプリタでテストをしていて、モジュールを修正した場合、再importするにはどうすればよろしいでしょうか?
いちいちインタプリタを再起動するのが面倒ですorz

54 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 15:03:12 ]
>>> import foo
>>> reload(foo)

55 名前:53 mailto:sage [2008/08/29(金) 15:16:36 ]
>> 54
天才

56 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 16:54:16 ]
>>53
IDLEならCtrl+F6を押すだけでリスタートできる。

57 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:20:37 ]
とりあえずこれでも

import pickle
dir(pickle)



60 名前:デフォルトの名無しさん [2008/08/29(金) 23:59:13 ]
何がなんだかよくわからないのですが、
2chを読み書きするためのPythonを教えてください

61 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:18:22 ]
>>60
wgetだけでできるので
pythonの出る幕はない

62 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:35:40 ]
>>60
urllib
urllib2
cookielib

63 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 11:29:19 ]
>>58
そのテストスクリプトにpickle.pyと付けちゃったていうオチか?

64 名前:58 [2008/08/30(土) 12:59:04 ]
>>63
きたーーwwwwナイスエスパー!!

65 名前:デフォルトの名無しさん mailto:sage [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', 'host.2ch.net/board/')]

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


教えて君にはソースを見せるのが一番だね

66 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:34:29 ]
クッキーはIPとちょっとした文字列で、自力でも作れたと思うなぁ
しかし、なんとも作りかけのスクリプトだなw
まあ、とっかかりにはよいだろうが

67 名前:デフォルトの名無しさん [2008/08/31(日) 00:31:39 ]
包茎が治るスクリプトをお願いします

68 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:32:21 ]
自己解決しました

69 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:39:50 ]
病気じゃないから治んないだろ



70 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:00:35 ]
import ueno_clinic

71 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:06:49 ]
>>70
金銭リソースが食い尽くされた

72 名前:41 mailto:sage [2008/08/31(日) 06:08:58 ]
Windows でも UNIX でも共通に使える
Python から自分自身を nice する方法ってありますか?

73 名前:デフォルトの名無しさん [2008/08/31(日) 09:58:48 ]
回答まだですか?

74 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 14:50:46 ]
自己解決しました

75 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:57:25 ]
OpenOfficeのmacroで使うためにPythonを勉強しようと思うのだけれど、何かお薦めの入門書ってない?
Pythonの入門書は色々出ているみたいで、始めてやる場合ににはどの本がいいのか分からないです。
プログラム歴はCの入門書をある程度理解している程度です。(実用で使った事はない。)

76 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:29:53 ]
本ではないけど、とりあえずチュートリアルでも読んでみたら
www.python.jp/doc/release/tut/

77 名前:デフォルトの名無しさん [2008/09/02(火) 14:50:51 ]
すいません質問させてください
pythonを勉強したいのですが何をインストールするべきでしょうか?

www.python.jp/Zope/downloadのページの・Python標準リリースってところと
日本語環境用インストーラの二つありますが、どちらを使ったほうがいいでしょうか?

78 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 14:56:19 ]
>>77
標準リリースの2.5.2のやつ。
日本語環境用のやつは古いし、選ぶ理由はないよ。

79 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 15:03:11 ]
ありがとうございます標準のものを使うことにします
ありがとうございました



80 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 16:51:19 ]
pythonを日本語で引くとpython.jpがトップに来るんだよなあ
誰が得するんだよ

81 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:12:24 ]
>>80
検索結果から除外するように
NGサイトを登録することができればいいのにな。
個人単位で。

82 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:00:31 ]
80みたいなことを言って誰が得するのか知りたい。

83 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:02:08 ]
そもそもpython単体でググってなにを求めるというのか

84 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:51:07 ]
そういえば、日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちがいたよな
元気にしてるのかな?
アッーー!

85 名前:デフォルトの名無しさん [2008/09/03(水) 00:20:23 ]
python温泉はレベル高いから遠慮しておいたほうがいいな

86 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:29:44 ]
そうだな
角電池くらい入れられるようにならないとな

87 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:35:14 ]
>>85
今回もキャバクラ行くんだろうな
今からキャバクラ芸を練習しておくことにするよ

88 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:39:38 ]
書籍が売れなかった件についても反省して欲しいな(ww

89 名前:デフォルトの名無しさん [2008/09/03(水) 00:47:18 ]
書籍は大量に売れたよ。品切れになるぐらい。



90 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:48:28 ]
>>86
勝手に疎外感を感じてしまいがちなボクチムは
寂しい気持ちを慰めるためにキャバクラに通います
最近はお金がないので,もっぱらイケメンのあの人を思い浮かべながら
単三電池や角電池で自分を慰めているかもしれません

そんな毎日なのでずっと万年厨房の日陰者です

91 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:26:07 ]
どんな負け犬合宿だよ(wwWwwWwwww

92 名前:デフォルトの名無しさん [2008/09/03(水) 13:45:31 ]
口だけ立派でたいしたこともできない上
すぐキレるような奴はいらないから今すぐ消えて欲しい

93 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:28:48 ]
%default

95 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 17:46:07 ]
Windowsのコマンドプロンプトで実行する場合、
input(u"日本語文字列")ってすると文字化けします。
明示的にコマンドプロンプトの文字コード(cp932とか)にエンコードしないと駄目なんでしょうか?


96 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 17:49:06 ]
>>95
環境に合わせて自動的に決定されるようにできるよ

97 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 17:54:35 ]
>>96
ご回答ありがとうございます。
もうちょっと調べてみます。

98 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:18:04 ]
>>89
>書籍は大量に売れたよ。品切れになるぐらい。

どの本だよ(wwWwwWwwwwwWWwwwWwwww

99 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 01:26:23 ]
grassで返答するのはやめろ



100 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 02:12:50 ]
売れない書籍の関係者乙(wwwWwwwWWwwWwwWwWwww

101 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:15:01 ]
>>84
>そういえば、日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちがいたよな
>>85
>python温泉はレベル高いから遠慮しておいたほうがいいな

どこの中二病だよ(wwwwwwwwwwwwwwwwwwwwwwwww
Pythonはじまったな(wwwwwwwwwww

102 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 16:53:38 ]
pylonsとTurboGearsとDjangoってどれが一番初心者向けですか?

103 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:52:49 ]
twisted

104 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:34:38 ]
pylonsとTurboGearsとDjangoとtwistedってどれが中二病っぽいですか?

105 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:49:01 ]
hpricot

106 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:36:48 ]
pylonsとTurboGearsとDjangoとtwistedとhpricotってどれが邪鬼眼っぽいですか?

107 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:03:20 ]
pylonsとTurboGearsとDjangoとtwistedとhpricotとGrokってどれが日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちっぽいですか?

108 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 05:43:51 ]
>>107

109 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 08:09:43 ]
>>107
>>107
>>107
>>107
>>107
>>107
>>107



110 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 09:04:57 ]
pylonsとTurboGearsとDjangoとtwistedとhpricotとGrokとweb.pyってどれが日本のPythonコミュニティをどうこうするとか息巻いて玉砕してたくせに結局できたのは傷をなめ合うだけの引きこもりオナニー集団だけだったのですねおまえらいらないからPHPでもやってろよ。


111 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 09:57:38 ]
PHPはないだろ
あるとすれば ocaml とか

112 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 10:10:15 ]
>>110
>>110
>>110
>>110
>>110
>>110
>>110
>>110
>>110
>>110
>>110


113 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 10:44:49 ]
boost.python つかったら std::vector<myclass> みたいなのが
さっくりと python から扱えるようになる?

114 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 12:28:04 ]
またPHP厨か

115 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 13:09:44 ]
>>110
以下の一文を適宜付け加えておいてくれ

自分の能力のなさを棚に上げて他人を逆恨みする

116 名前:デフォルトの名無しさん [2008/09/05(金) 22:08:05 ]
翻訳ドキュメントの読み方のコツを教えてください。
javaのドキュメントのようには、なかなかクラスとメソッドの関係とかが
分かりません。


117 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 23:47:53 ]
i+=1

121 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 00:11:32 ]
>>118
pydoc.org/2.5.1/
epydoc.sourceforge.net/stdlib/

122 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 00:50:29 ]
>>120
それ、あんま好きになれん。
結局iは+1した値を指しなおすわけで全くの構文糖てのが。

123 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 01:33:33 ]
>>122
pythonで数字は普遍性を持つので
CPUにとっての「簡単な方法」を追求するなら
CやPerlなどの「純粋」手続き型言語を選択すべき。

124 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 01:51:25 ]
>>122
pythonの場合はintがimmutableだから仕方が無いんだろう

__add__()と__iadd__()は別物だから、mutableなobjectに関しては、
C++と同じように+と+=は別物として定義できるし
一般には後者のほうが効率がいいわな

125 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 02:08:44 ]
>>124
__iadd__()って別個にあるんだな。しらんかった。

126 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 03:31:06 ]
immutableなくせにmutableのフリをしやがってプンプン

127 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 04:19:04 ]
いま PyDev 使っているんですがUSBメモリに入れて持ち歩ける開発環境を探しています。
エディタでおすすめはなんでしょうか??

128 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 04:22:51 ]
emacs

129 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 04:43:17 ]
>>128
Windows なんですけど、Meadow とかすか?
できれば 22 系の情報キボンヌ



130 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 05:22:03 ]
widowsならpyscripterでも入れとけよ

131 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 05:26:18 ]
そのままJRE+Eclipseでいいんじゃないの?
うまくcmdファイルを書けばいけるよたぶん。
ドライブレター固定もわざわざディスクの管理でせずに
substで回避するとかで。(ダブってるとダメだけど)

132 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 08:08:38 ]
pyscripterよさそう。
しかし!
よく考えたらそもそも Python 自体をどうやって持ち歩くんだ?
C:\Python25 以下をごそっとコピーしただけでいいんだろうか?
だけどたしかその位置(C:\Python25)ってレジストリに
登録されてるんだよなぁ。

133 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:44:10 ]
レジストリはsys.pathの初期化に使うだけ
なくても動く
C:\Python2Xをそのままコピーすればおk

134 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:36:31 ]
すいません、インデント崩れました。

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

136 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:11:05 ]
forループは先読みバッファを使うらしいね
下のと同じ意味で
for line in iter(sys.stdin.readline, ""): print line,

137 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:26:01 ]
レスありがとうございます。どうもそのようですね。
独自のバッファを使うことを意識しておかないと。

結局、whileループを

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

と書き直すことで解決しました。今後はこっちを使うことにします。

138 名前:今日の日記 mailto:sage [2008/09/08(月) 01:49:32 ]
__setattr__()メソッドが再帰的に呼び出されないように、
このメソッドの中では

object.__setattr__(self, name, value)

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

自分の参考書には

class MyClass(object):

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

( ´Д`)

( ´Д`)

( ;´Д`)

寝る

139 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 01:52:48 ]
俺のPython勉強日記
pc11.2ch.net/test/read.cgi/tech/1220604777/



140 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 08:11:18 ]
>>138
まともな入門書嫁。

141 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 09:13:05 ]
class hoge(object):
  def __setattr__(self,method,value):
    self.__dict__[method] = value

self.method = value
とするとself.methodの時点で
__setattr__の条件を満たしてしまい
永久ループに突入してしまうので、
オブジェクトのディクショナリを参照し、
そこに代入する形を取る。






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

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

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