1read 100read
2013年03月プログラム103: Pythonのお勉強 Part48 (233) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【肥大化】C++ を見捨てたヤシ 2人目【複雑化】 (926)
スレを勃てるまでもないC/C++の質問はここで 21 (237)
関数型プログラミング言語Haskell Part21 (744)
D言語は多分コケると思っている人の数→ (378)
今まで見た中で一番すげーコメント (575)
CVS導入スレ〜 Rev.3 (837)

Pythonのお勉強 Part48


1 :2013/01/21 〜 最終レス :2013/03/08
Pythonオフィシャルサイト
http://www.python.org/
日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
http://www.python.jp/
まとめWiki
http://python.rdy.jp/
関連スレ
http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
Pythonのお勉強 Part47
http://toro.2ch.net/test/read.cgi/tech/1341819025/
日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
ttp://speirs.blog17.fc2.com/blog-entry-4.html
ttp://atomic.jpn.ph/prog/etc/encode.html
ttp://d.hatena.ne.jp/kakurasan/20100330/p1
ttp://pc11.2ch.net/test/read.cgi/tech/1217836194/339
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
PythonのUnicodeEncodeErrorを知る
ttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html
よくまとまってた。あとで読む

2 :
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

3 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ R!R!
└─┘

4 :
いちもつ

5 :
おっ

6 :
     _ _ ∩
   ( ゚∀゚ )ノ )))  おっ!
   ( 二つ
   ノ 彡ヽ
   (_ノ ⌒゙J
  ⊂ヽ
  ((( (_ _ )、    ぱい!
   γ ⊂ノ, 彡
   し'⌒ヽJ
    _ _ ∩
   ( ゚∀゚ )ノ )))  おっ!
   ( 二つ
   ノ 彡ヽ
   (_ノ ⌒゙J
  ⊂ヽ
  ((( (_ _ )、    ぱい!
   γ ⊂ノ, 彡
   し'⌒ヽJ

7 :
いくら検索しても出てこないのですが
Google app EnginegはPython2.5にしか対応していないのですか?
現在使用しているのはPython2.7です

8 :
「gae python2.7」でググったら一瞬で出てきたんだが…
https://developers.google.com/appengine/docs/python/gettingstartedpython27/?hl=ja

9 :
http://sourceforge.jp/magazine/12/02/29/048214
どんどん出てくるpython2.7情報
>いくら検索しても出てこないのですが
参考までにどうやって検索しようとしたのか教えてほしい
カスタマーサポートに活かしたい

10 :
2.5でgae使ってるとdeploy痔に毎回早く2.7にしろって催促される

11 :
>>7
Google App Engine 使うなら
こっちのスレ行った方が良い
Google App Engine for Python 6アプ目
http://kohada.2ch.net/test/read.cgi/php/1358570953/

12 :
>>9
Google App Engine Python2.7
で検索をしていました
>>11
ありがとうございます

13 :
GoogleでもBingでもその単語でわらわら情報出てくるんだが…
では、一体どこの検索エンジンをお使いになったので?

14 :
AltaVistaです。

15 :
ってネタレスしたらAltaVistaってまだ検索エンジンやってる!
しかも「Google App Engine Python2.7」で色々ヒットする!

16 :
Ask

17 :
わらわらわら

18 :
Python経験者の皆さん
通話無し、チャットのみでも良いのでちょくちょく教えて下さい!
Skype or2013

19 :
ここに書けよ
一連のやり取りが他の初心者のためになるかもしれんだろ
Skypeチャットという閉じた空間で助言してもお前一人しか得しない

20 :
初心者のためにならない罵倒レスで埋め尽くされては話にならないでしょ

21 :
マンツーマンでがっつり教えてやってもいいが、俺に頼むのであれば\6K/hの料金が必要だ。
もちろん領収書は発行しないので、そのつもりで。
ベンダーがやってるセミナーとか\10K/h超えとか普通だから安いもんだろ。

22 :
まず>>21の名前を出さなきゃ
匿名で10K/hとかない
自惚れすんなよ

23 :
>>16
Askは最初"Ask Geeves"だったんだよな。

24 :
>>21
いいねー
その金額で良いから俺に教えて欲しい

25 :
Androidはpythonも公式にサポートしてくんないかなあ
GAEがそうであるように

26 :
pythonファンにはnode.jsいいよ

27 :
>>26
なんで?

28 :
>>25
つ kivy

29 :
サードパーティやんw
ちなみに使ったことある人おる?

30 :
糞スレ

31 :
既出です

32 :
python始めてみた
クラスのメンバ変数の宣言ってできないの?
def __init(self,a,b,c)__:
self.xa=a
self.xb=b
self.xc=c
この場合xa,xb,xcが突然メンバとして登場するんだけど
有ることを明示的に示したい

33 :
>>32
宣言ってこと?
Python は変数への値の代入が変数の宣言を兼ねてる
だから短くシンプルな書き方が出来るんだよ

34 :
質問に対して正確に答えるなら、JavaとかC++のような宣言は「できない」

35 :
>>32
宣言とは厳密には違うんだけど __slots__ 使ってみるとか。
http://docs.python.jp/2/reference/datamodel.html?highlight=__slots__#__slots__

36 :
メンバ変数を宣言したくなる事は、俺もある。なぜなんだろう?

37 :
みなさんありがとう。やっぱないのか
何か後からクラス見た時に上の方ざっと見てわかりやすいかなと思って。。
そもそも直接ソース見ろってことね。。わかりやした

38 :
setattr

39 :
class Foo(object):
def __init__(self, a, b, c):
self.xa, self.xb, self.xc = a, b, c
def func(self):
print('func()')
foo = Foo(1, 2, 3)
# foo.__dict__.keys()
# dict_keys(['xa', 'xb', 'xc'])
# foo.__dict__
# {'xa': 1, 'xb': 2, 'xc': 3}
AttributeError: 'Foo' object has no attribute '__slots__'

40 :
いったい何が言いたいのかさっぱり。

41 :
class Foo(object):
def __init__(self, a, b, c):
self.xa, self.xb, self.xc = a, b, c
def func(self):
print('func()')
foo = Foo(1, 2, 3)
# foo.__dict__.keys()
# dict_keys(['xa', 'xb', 'xc'])
# foo.__dict__
# {'xa': 1, 'xb': 2, 'xc': 3}
# print(foo.__slots__)
print(dir(foo))
for attr in dir(foo):
print('"{0}" = {1}'.format(attr, getattr(foo, attr)))
print(Foo.__dict__)
Objects/object.c
_generic_dir(PyObject *obj)
itsclass = PyObject_GetAttrString(obj, "__class__");
if (merge_class_dict(dict, itsclass) != 0)
{
classdict = PyObject_GetAttrString(aclass, "__dict__");
bases = PyObject_GetAttrString(aclass, "__bases__");
}

42 :
>>40
ここは初心者スレじゃない。
>>37
>>39>>41でお願い。分かるだろ?
後は頑張れ。

43 :
RTFM.

44 :
全くもって何が言いたいのかさっぱり

45 :
ドヤ顔でCPythonの実装コード引っ張ってきちゃうところとかがねー。
>>35 でリンクされてるドキュメント読むだけでいいのにねー。

46 :
>>> class Foo(object):
... def __init__(self, *args):
... self.xa, self.xb, self.xc = args
...
>>> foo = Foo(1, 2, 3)
>>> foo.__dict__
{'xb': 2, 'xc': 3, 'xa': 1}
>>> foo.xd = 4
>>> foo.__dict__
{'xb': 2, 'xc': 3, 'xa': 1, 'xd': 4}
>>>
>>> class Foo(object):
... __slots__ = ['xa', 'xb', 'xc']
... def __init__(self, *args):
... self.xa, self.xb, self.xc = args
...
>>> foo = Foo(1, 2, 3)
>>> foo.__dict__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute '__dict__'
>>> foo.xd = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>>
こうですか?わかりません><
http://d.hatena.ne.jp/yach/20080424

47 :
>>> foo = Foo(1, 2, 3)
>>> foo.xd = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>> setattr(foo, 'xd', 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>> Foo.__slots__ += ['xd']
>>> Foo.__slots__
['xa', 'xb', 'xc', 'xd']
>>> foo.xd = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>> setattr(foo, 'xd', 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>>

48 :
>>> class Foo(object):
... __slots__ = ['xa', 'xb', 'xc']
... def __init__(self, *args):
... self.xa, self.xb, self.xc = args
...
>>> foo = Foo(1, 2, 3)
>>> foo.xd = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>> setattr(foo, 'xd', 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>> Foo.__slots__ += ['xd']
>>> foo = Foo(1, 2, 3)
>>> foo.xd = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>> setattr(foo, 'xd', 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>>
どうしてこれもだめなのはなぜ?

49 :
>>> class Foo(object):
... __slots__ = ['xa', 'xb', 'xc']
... def __init__(self, *args):
... self.xa, self.xb, self.xc = args
...
>>> foo = Foo(1, 2, 3)
>>> foo.xd = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'xd'
>>> Foo.__slots__ += ['xd']
>>> class Bar(Foo):
... def __init__(self, *args):
... super(Bar, self).__init__(*args)
...
>>> bar = Bar(1, 2, 3)
>>> bar.xd = 4
>>> bar.xe = 5
>>> Bar.__slots__
['xa', 'xb', 'xc', 'xd']
>>> bar.__slots__
['xa', 'xb', 'xc', 'xd']
>>> bar.__dict__
{'xd': 4, 'xe': 5}
>>>
継承すると制限なくなるの?

50 :
>>35 でリンクされてるドキュメント読むだけでいいのにねー。

51 :
__slots__は、一応、本来の用途は、たくさんインスタンスを生成するオブジェクトの省メモリ化。
インターフェース的な役割を期待してると、サブクラス化したときにあれ?ってなるので気をつけて。
インスタンス変数の宣言は出来ないけど、代案
propertyが宣言的に使えて、doc-stringも設定できる。簡単な実装だと
from operator import attrgetter
def attrsetter(name):
 return lambda self,value: setattr(self, name, value)
def attribute(name, doc):
 return property(attrgetter(name), attrsetter(name), doc=doc)
class Point(object):
 x = attribute("_x", "point x axis")
 y = attribute("_y", "point y axis")
 def __init__(self, x, y):
  self.x = x
  self.y = y

52 :
〜続き
但し、このような簡単なコードだと、コンストラクタのソース読めば自明なので、
インスタンス変数は必ずコンストラクタの最初の方で纏めて初期化する、というような運用をすれば、
宣言と初期化を同一のコードで表現できる。これくらいの規模でドキュメント化が不要なら、ソース見ての方が手軽。
規模が大きくなると、宣言的なインターフェースは有用になってくるけど、
他の要望も多くなってくると思うので、ライブラリの利用をお勧め。zope.interfaceが定番

53 :
>>48
__slots__で確保するは記憶領域は、クラス定義時に決まるから。
>>49
Yes. ドキュメントにも書かれてる、仕様どおりの動作です。
どちらもドキュメントの__slots__ を利用する際の注意に書かれてるよ。

54 :
型定義も一緒に出来ると意味がある希ガス

55 :
>>51
自己レスだけど、後から見直してみると、読む人がattributeの実装を知らないと
クラス変数と混同してしまいそうで紛らわしいかなって懸念がでてきた。補足のみ

56 :
Linuxコミュニティが選ぶ人気オープンソースプロジェクトの年次調査、言語は「Python」、デスクトップは「Slackware」がトップにhttp://sourceforge.jp/magazine/13/02/06/0516242

57 :
slackwa...

58 :
vipper が工作でもしたんかの…

59 :
> Linuxコミュニティが選ぶ

60 :
setup.pyやeasy_installで自分ちのパソにインストールされたファイルを(コンパイルはmingw)
ftpでレン鯖に上げて使いたいことがあるんですが
eggや、pythonのバージョンやOSにあわせてインストールされたようなライブラリの場合
どうしていいのかわかりません。例えば素直にインストールされるのが以下のような場合
PackageName-1.0.0dev-py2.7-win32.egg
1.スクリプトからimport packagenameで読み込めるようにするには
 eggを適切なパスに置く以外に何が必要ですか?
2.pythonのバージョンや対象OSを指定してコンパイルすることはできるんでしょうか?

61 :
1.の方は解決できました。eggを直接パスに指定する、または
eggを展開して配置することで読み込むことができました。
そもそもどういう仕組みかよくわかってなかったので、すみません。
2.の方は、違う環境で実際どうなるか不明ですが、
gccでコンパイルしてることからとりあえずunix環境などでも動くはずなので
使いながら確認していってみることにします。

62 :
いまどきftpつかっちゃうひとって

63 :
レンサバも死語だよな
PythonやるならGoogle App Engineでいいじゃろ

64 :
今どき env も使えん gae を使うとか…
requirements.txt アップしたら pip -r でライブラリ取ってくるぐらいしてくれよ
確かに可用性は高いかも知れんが、aws 使っちゃうわ

65 :
aとbの配列の最初から交互にデータ取り出しyの配列を作る場合
a = [1, 2, 3]
b = [4, 5, 6]
y = [1, 4, 2, 5, 3, 6]
zipでaとb結合すると[(1, 4), (2, 5), (3, 6)]
[1, 4, 2, 5, 3, 6]に変換する方法があれば教えてください。
とりあえず1づつ取り出して入れる

a = [1, 2, 3]
b = [4, 5, 6]
x = list(zip(a, b))
print (x)
y=[]
for i in x:
for n in i:
y.append(n)
print(y)

66 :
>65
y = list(sum(list(zip(a, b)), ()))

67 :
できましたありがとうございます。
1行でできるんですね。
まだやっていることがわからないので勉強します。

68 :
sum()は勉強になった。
( ・ω・) d

69 :
sum()の説明見てたら、itertools見つけたので紹介しとく。
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> tup = tuple(zip(a, b))
>>> tup
((1, 4), (2, 5), (3, 6))
>>> import itertools
>>> tuple(itertools.chain(*tup))
(1, 4, 2, 5, 3, 6)
>>> tuple(itertools.chain.from_iterable(tup))
(1, 4, 2, 5, 3, 6)

70 :
x = [(1,2),(3,4),(5,6)]
y = list(sum(x,()))
print(y)
sum(x,())の()でタプルの中身を出してyに入れてる
文字でも大丈夫だし
このsumとは違うものなのでしょうか?
http://docs.python.jp/3.3/library/functions.html?highlight=sum#sum

71 :
>>69
ありがとうございます。
勉強になります。

72 :
>>70
違うのはsum()じゃなく'+'演算子。
>>> 0 + 1 + 2
3
>>> () + (1, 2) + (3, 4)
(1, 2, 3, 4)
>>> '' + '1' + '2'
'12'

73 :
先にPart47使い切れ

74 :
商標登録って時々話題になるよな。
前もPerl事件があったか。

75 :
>>72
詳しい説明ありがとうございます。
勉強になりました。

76 :
みんなのPythonで勉強してるのですが一つ質問させてください
name(変数)自体が関数のような命令を持っている〜データと命令をセットで持つものをオブジェクトと呼んでいます〜命令のことをメソッドと呼んでいます。
って記述があるんですが、この場合の命令を「持っている」とはどのように解釈すればいいのでしょうか
変数に入れたデータを「持っている」というのは解りますが、その都度付け足す命令を「持っている」というのが理解できません
よろしくお願いします

77 :
   ┌──────────┐
   │  オブジェクト  │
   ├──────────┤
   │データ       │
   │メソッド      │
   └──────────┘
        ↓
    [変数nameという箱]

これで分からんか?

78 :
状態と振る舞いを持っているのがオブジェクト

79 :
{}

80 :
   ┌──────────┐
   │   人  間   │
   ├──────────┤
   │年齢        │
   │性別        │ ← データ 名詞になるもの
   │誕生日       │
   ├──────────┤
   │食う        │
   │寝る        │ ← 振る舞い、メソッド 動詞になるもの
   │遊ぶ        │
   │ウンコする     │
   └──────────┘

81 :
pythonに限らずOOの話では

82 :
   ┌──────────┐
   │   仏  教   │
   ├──────────┤
   │空         │ ← データ 名詞になるもの
   ├──────────┤
   │色         │← 振る舞い、メソッド 動詞になるもの
   └──────────┘
色即是空、空即是色

83 :
似非原さんなにやってんすか

84 :
前スレが埋まったのは今日なのに、何でここはこんなに書き込みがあるんだ。

85 :
初心者さんが満足して帰ってるからな
どんどん質問したくなるわけよ

86 :
locale.setlocale(locale.LC_ALL, '') しないと
>>> time.strftime('%Z')
b'\\x93\\x8c\\x8b\\x9e (\\x95W\\x8f\\x80\\x8e\\x9e)'
ってなるのはちょっと無茶苦茶だと思う

87 :
http://docs.python.org/3/library/time.html
ごく個人的な意見を言えばこれはバグだろ
Convert a tuple or struct_time representing a time as returned by gmtime() or localtime() to a string
ってあるし
厳密に区別するためにbyesはstr分けたんだから

88 :
pypi に登録している奴で最新のだけ持っていって欲しいんですが、
何か良い方法はないでしょうか。
前のバージョンを削除してしまうと、
そのバージョンのダウンロード数が消えてしまうので、
それはしたくないんです。。。
hideで隠していてもダウンロード数が
増えていってしまいますので、困っています。

89 :
set TZ=JST-9
export TZ=JST-9

90 :
>>88
どっかにバージョン付きのURLが貼ってあるんだろ
説明文に新しいバージョンがあるからそっち使ってねって書いとけば?
まあ、あんまり気にすんな

91 :
gmailを読み込みエンコードしているのですが1つのメールだけ
以下のエラーがでて止まってしまいます
bodytxt = str(data[0][1], 'iso-2022-jp')
UnicodeDecodeError: 'iso2022_jp' codec can't decode bytes in position 646-648: illegal multibyte sequence
エラー部分のみ削除または?等に変換してエラーがでないようにするにはどうすればいいのでしょうか?
python3.3を使っています。

92 :
組み込み関数strの説明を全部読めば分かります
http://docs.python.jp/3.3/library/functions.html#str
> str(object=b'', encoding='utf-8', errors='strict')

93 :
すみません勉強不足ですみません。
ありがとうございました。

94 :
基礎知識もない初心者だがなにから手をつければいい?

95 :
何を作りたいんですか

96 :
プログラミングに触れてたい→Pythonが初心者にはおすすめと言われる→2chで聞いてみる←イマココ

97 :
『pythonスタートブック』というpythonだけじゃなくてプログラミング自体が
初めての人向けの本があるので買って消化してください

98 :
ノーマネーならチュートリアルでも読んでみたら

99 :
>>94
オススメ環境
エディタ:
  Sublime Text
  #モダンなテキストエディタ 最近の主流
開発機器:
  Mac mini
  #最初からpython入ってるしフォントレンダラが綺麗なのでソースコードの視認性が良い
  #プログラマの大半が興味を持つであろうiOSアプリ開発もできる
あとはドットインストールのSublime Text講座とpython講座を見ればおk
http://dotinstall.com/lessons/basic_sublimetext
http://dotinstall.com/lessons/basic_python

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
こんなプログラミング言語は嫌だ! (594)
Visual Studio 2010 Part20 (207)
■WindowsCEプログラミング(EVC PB3含む)Ver2.2■ (641)
sizeof(char)が必ず1でも、省略すべきではない (586)
【StarSuite Basic/OpenOffice.org Basic】 (465)
「Cでプログラミングするには人生は短すぎる」か? (317)
--log9.info------------------
【DS】ひぐらしのなく頃に絆 part28 (701)
【過疎】サムライ&ドラゴンズLv259【進行】 (930)
【PSV】 WIPEOUT 2048 part4 (719)
【MH4】モンスターハンター4 Part109【3DS】 (1001)
【PSVITA】パワースマッシュ4 5戦目 (703)
【PSVITA】 とってもE麻雀 (294)
【MHP2G】モンスターハンターポータブル2ndG HR449 (931)
【3DS】閃乱カグラ 真影/紅蓮 141っぱい (830)
【PSP】遊戯王 TAG FORCE総合 part398【PS2】 (939)
【PSP】魔法少女リリカルなのはA's PORTABLE総合 48 (587)
【PSVITA】閃乱カグラ SHINOVI VERSUS 84段 (1001)
【3DS】とびだせ どうぶつの森 質問に答えるスレ (379)
【PSVITA】SOUL SACRIFICE ソウルサクリファイス60 (1001)
【PSP/PSVITA】初音ミク -Project DIVA-730【総合】 (1001)
【MH3G】モンスターハンター3G 上位 初心者スレ29 (261)
【次は3?】どきどき魔女神判!第80審【DUOぷらす?】 (474)
--log55.com------------------
【HPノート】ワッチョイありOMEN【ゲーミング】
液晶ディスプレイのアーム 41軸目
親指シフト系キーボード(NICOLA)17
【BUFFALO】バッファロー無線LAN AirStation Part77
ASUS無線LANルータ総合 Part8
5千円前後までのお勧めアクティブスピーカー 21台目
33inch以上4K・5K液晶モニタスレッドVol.58
【UMPC】GPD Pocket【7インチ】 22台目 ※ワッチョイ付