くだすれPython(超初心者用) その23at TECH
くだすれPython(超初心者用) その23 - 暇つぶし2ch1:デフォルトの名無しさん
14/05/19 15:00:17.89 C9xN4CIo
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その22
スレリンク(tech板)
関連スレ
Pythonのお勉強 Part49
スレリンク(tech板)

◆関連リンク Python の Home Page
URLリンク(www.python.org)

◆長いコードはこういうところにはってください
URLリンク(ideone.com)
URLリンク(codepad.org)
URLリンク(pastebin.com)
URLリンク(dpaste.com)

◆まとめwiki
URLリンク(python.rdy.jp)

2:デフォルトの名無しさん
14/05/19 15:01:40.81 C9xN4CIo
立った

3:デフォルトの名無しさん
14/05/19 15:26:57.12 xs01V/sZ
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

4:デフォルトの名無しさん
14/05/19 15:31:56.04 xs01V/sZ
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘

5:デフォルトの名無しさん
14/05/19 16:14:27.05 6L2g2kAx
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

6:デフォルトの名無しさん
14/05/20 00:53:14.02 c/zSMJrz
乙乙py

7:デフォルトの名無しさん
14/05/21 08:59:06.89 /08zgsVl
>>1乙乙

8:デフォルトの名無しさん
14/05/24 03:26:05.27 4Shar09G
てす

9:デフォルトの名無しさん
14/05/24 15:27:47.49 h2zYt45c
難しいコンピュータ理論のわからない人間に
Pythonで以下のようになる論理的な説明を誰かお願いします

a = [] の時
bool(a)はFalse
all(a)はTrue

10:デフォルトの名無しさん
14/05/24 15:35:11.07 Gl+D6mpu
理論的な説明もなにもそう決まってるからとしか言いようがない

URLリンク(docs.python.jp)
ブール演算のコンテキストや、式が制御フロー文中で使われる際には、
以下の値: False 、 None すべての型における数値の 0、空の文字列、
空のコンテナ (文字列、タプル、リスト、辞書、集合、凍結集合など) は
偽 (false) であると解釈されます。それ以外の値は真 (true) であると解釈されます。

URLリンク(docs.python.jp)
iterable の全ての要素が真ならば (もしくは iterable が空ならば) True を返します。

11:デフォルトの名無しさん
14/05/24 15:57:29.60 fV/1J88J
allは、「要素がある⇒それはすべて真」がTrueであることだから
前提がFalseなら、all自体はTrue

12:デフォルトの名無しさん
14/05/24 16:02:45.13 hlo3j/US
>>> bool([False])
True

13:デフォルトの名無しさん
14/05/24 18:03:32.61 DFMQ1RaY
まずboolとallの定義からはじめようか

14:デフォルトの名無しさん
14/05/24 22:07:14.68 GtRtgzPJ
>>9
これとこれを読もう
URLリンク(docs.python.jp)
URLリンク(docs.python.jp)

allはイテラブルにFalseが含まれていたらFalse。それ以外はTrue
だから空イテラブルはTrueになる

15:デフォルトの名無しさん
14/05/24 22:38:14.54 QeWtQmqd
> allはイテラブルにFalseが含まれていたらFalse。それ以外はTrue
それだと all([""]) は True を返すように聞こえる

16:デフォルトの名無しさん
14/05/24 23:08:01.90 GtRtgzPJ
>>15
""はFalseだから問題ないような……
でもちょっとわかりにくかったか。すまん

リンク先にコードあるし俺の一言は蛇足だったかも

17:デフォルトの名無しさん
14/05/24 23:19:44.40 4Shar09G
""はFalseだから問題ないよ
なんで
all([""]) が True を返す
と思ったの?

18:デフォルトの名無しさん
14/05/24 23:46:17.80 QeWtQmqd
False と "" はまったくの別物じゃないか
だからドキュメントでは "Return True if bool(x) is True for all values x in the iterable." なんて
言い方をしているわけで

19:デフォルトの名無しさん
14/05/25 00:22:53.24 Bq1986NC
pythonってNullに相当する定数てないの?
NoneってNullじゃないよね
None == "\0" # False

20:デフォルトの名無しさん
14/05/25 03:26:50.63 Vi+cJlmc
PythonのNoneは他の言語のヌルポインターに相当している定数で合っている
何のプログラミング言語か分からないけど、Nullと"\0"は意味が違う
Nullはヌルポインター、"\0"はヌル文字を含む文字列を表していると思われる

PythonだとNoneは値がないことを表す値、"\0"はヌル文字を含む長さ1の文字列を表している
比較したときに暗黙の型変換は起こらないので真にならない

21:デフォルトの名無しさん
14/05/25 03:51:31.83 Vi+cJlmc
>>14-18
Pythonは強い動的型付けを取り入れていて、基本的に暗黙的な型変換はしないけど
真偽値が期待される場所では積極的にbool型への暗黙的な型変換が働く

22:デフォルトの名無しさん
14/05/25 07:00:43.18 UhrsCUPW
なるほど、わかった気がします

boolは引数全体を評価する

空iterable全体はFalseに変換されるので、bool([])はFalse

allは引数のiterableの各要素を評価する

空iterableの要素は「存在しない」のでbool値に変換できず、TrueでもFalseでもない ※ココ重要

「要素にFalseが含まれていたらFalse、それ以外はTrue」というallの仕様により、all([])はTrue

23:デフォルトの名無しさん
14/05/25 10:26:15.68 Wcl6d7YS
boolは引数全体を評価する

空iterable全体はFalseに変換されるので、bool([False])はFalse

24:デフォルトの名無しさん
14/05/25 10:28:06.48 Wcl6d7YS
>>> all([True])
True
>>> all([False])
False
>>> all([])
True
>>> bool([True])
True
>>> bool([False])
True
>>> bool([])
False

25:デフォルトの名無しさん
14/05/25 11:22:27.34 UhrsCUPW
いろいろありましたが、
allを「iterableの全ての要素がTrueであり、かつ空でない」ことの
チェックに使うと怪我をするということですね。
けっこうクリティカルな業務に使っているので肝に銘じます。

26:デフォルトの名無しさん
14/05/25 11:33:03.86 sSegk3tB
all に限らないけど
使うな危険とか
はまりどころとか
まとめてるサイトってある?

27:デフォルトの名無しさん
14/05/25 15:25:44.87 t1V1lNcr
素数を生成するライブラリってNZMATHの他にあります?
以前見かけた気がするのですが、検索してもでなくて

28:デフォルトの名無しさん
14/05/25 18:35:43.80 cec37mBk
sqliteでreqカラムのword(部分一致)ってどうやったらいいですか?
con.execute(u'select rowid, * from db where %s LIKE "%s"' % (req,word))

29:デフォルトの名無しさん
14/05/25 23:37:27.54 QUzAifTx
馬鹿には無理

30:デフォルトの名無しさん
14/05/26 01:12:17.11 Dq9xHmpl
word = u'%hoge%'

31:デフォルトの名無しさん
14/05/26 14:13:27.92 Egp27eY/
URLリンク(twitter.com)
これどういう意味ですか?
print()ってかけば2と3両方共対応できると思うんですがこれは何の話ですか?

32:デフォルトの名無しさん
14/05/26 14:14:33.99 Egp27eY/
本当は直接聞けって言われるかも知れませんがあまりにもフォロー数とフォロワー数が異なるので
フォローしてない人のリプは読まない人っぽいのでこちらで質問させていただきました

33:デフォルトの名無しさん
14/05/26 14:30:35.08 2JzRM12h
かなり今更感

34:デフォルトの名無しさん
14/05/26 17:32:32.53 ssj5W0pD
>>31
>>> print("a", "b", "c" , sep="|")
SyntaxError: invalid syntax
>>> from __future__ import print_function
>>> print("a", "b", "c" , sep="|")
a|b|c

35:デフォルトの名無しさん
14/05/26 17:41:20.01 ssj5W0pD
>>31
補足しとくと
2.xのprint()はprint文に(1, 2, 3)っていうタプルを渡してるだけ
>>> print ("a", "b", "c")
('a', 'b', 'c')

36:デフォルトの名無しさん
14/05/26 17:43:24.65 ssj5W0pD
(1, 2, 3)じゃなくて("a", "b", "c")だったな

37:デフォルトの名無しさん
14/05/26 17:43:24.78 2JzRM12h
間違ってるって指摘したらブロックされそうだ

38:デフォルトの名無しさん
14/05/26 22:55:36.43 EPKtpGZs
print(1,2,3)みたいに書くなら
print("{}{}{}".format(1,2,3))って書けば両方対応できると思うんだけど

39:デフォルトの名無しさん
14/05/27 00:23:30.18 b99/t4fc
そんなめんどくさいことするくらいなら素直にfrom __future__ import print_function使えよ

40:デフォルトの名無しさん
14/05/27 00:29:24.93 GgBMhOaf
phpの$object->$nameはpythonではどう書いたらいいでしょうか?

41:デフォルトの名無しさん
14/05/27 00:34:50.21 GgBMhOaf
すみません自己解決しました
getattr(object, 'name')

42:デフォルトの名無しさん
14/05/27 00:46:24.20 GgBMhOaf
続けてすみません
phpのUser::$nameはpythonでどう書いたらいいでしょうか

43:デフォルトの名無しさん
14/05/27 00:47:11.14 PXeOjUep
ついでに list(map(print, range(10))) みたいなこともできるようになったけど嬉しいかどうかはしらない
lambda に渡せるのは稀に便利

44:デフォルトの名無しさん
14/05/27 01:52:08.30 ngkX6cAi
from __future__ import print_functionする前のprintと後のprintは別物
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> print(1,2,3)
(1, 2, 3)
>>> from __future__ import print_function
>>> print(1,2,3)
1 2 3
>>> print((1,2,3))
(1, 2, 3)

45:デフォルトの名無しさん
14/05/27 01:54:42.96 fDLDDGc5
>>42
ドキュメントぐらい読めよ

46:デフォルトの名無しさん
14/05/27 01:57:36.43 fDLDDGc5
そもそもprint(1,2,3)みたいな使い方をするってレアじゃない?

47:デフォルトの名無しさん
14/05/27 02:54:09.71 vwK3Zsni
38が正解

48:デフォルトの名無しさん
14/05/27 21:45:14.93 JvmXnqEP
sys.stdout.write

49:デフォルトの名無しさん
14/05/27 21:53:35.90 xZjfoO9Y
print(*msgs) とかのことを考えると format で代用ってのもきつそう
もし両対応させるなら print_function ひっぱってきたほうが良さげか

50:デフォルトの名無しさん
14/05/30 14:49:42.26 C8E1zgtw
pyenvはダメだ使うんじゃねえってツイートを見たんですけどpyenvがダメなのは有名なことなんですか?
ずっと使ってましたがどうやって複数バージョンを入れるのが良いのでしょうか?

51:デフォルトの名無しさん
14/05/30 15:00:01.82 C8E1zgtw
ちなみに2.7と3.4しか使いません

52:デフォルトの名無しさん
14/05/30 16:21:46.60 6WJTDNe5
virtualenvで済むのになんでわざわざpyenvなんかつかってんのっていう事じゃないの

53:デフォルトの名無しさん
14/05/30 16:47:16.55 lri6NfmJ
virtualenvは今インストールされているバージョンのpythonで複数の環境を作れるので
pyenvは異なるバージョンをインストールできるし管理できる。
特定のバージョンしか使わないならvirtualenvで環境わけるだけでいいだろう
virtualenvとpyenvを比較する話ではないと思うんだけどtwitterでは何故同一で考えている人が多いのか

54:デフォルトの名無しさん
14/05/30 17:06:29.11 6WJTDNe5
>>53
virtualenvでも別のバージョンの環境つくれるけど、それを知らない人がpyenv使ってるのか

55:デフォルトの名無しさん
14/05/30 17:48:41.56 lri6NfmJ
virtualenvは複数バージョンを管理できない

56:デフォルトの名無しさん
14/05/30 20:28:31.50 DRgNqQjq
君らあらゆる面ですべて間違ってるよ
「そのツイートした奴に聞けよ」が正解

57:デフォルトの名無しさん
14/05/30 20:36:47.48 DRgNqQjq
まあvirtualenvのドキュメントに

バージョン違うPythonを使ってるなら、それぞれにvirtualenvを入れてください
スクリプトにバージョンのサフィックスをつけるようにしましたので、衝突しません

って書いてあるけど

58:デフォルトの名無しさん
14/05/31 00:14:16.80 FdQ8Co+W
pyenv+virtualenvでならたまに

59:デフォルトの名無しさん
14/05/31 18:57:13.02 XGX5yLkH
pyenv使えばいろんなバージョン入れられるから便利だよ

60:デフォルトの名無しさん
14/05/31 21:20:19.81 5YDfME91
virtualenvでもいろんなバージョン入れられるよ

dev@deb:~$ python --version
Python 2.7.3
dev@deb:~$ source py2.7/bin/activate
(py2.7)dev@deb:~$ python --version
Python 2.7.6
(py2.7)dev@deb:~$ source py3.4/bin/activate
(py3.4)dev@deb:~$ python --version
Python 3.4.0

61:デフォルトの名無しさん
14/05/31 21:22:28.27 AMs2U+EM
馬鹿馬鹿しい

62:デフォルトの名無しさん
14/05/31 21:23:24.28 AMs2U+EM
てか質問の意味が分かってないなら喋るなと

63:デフォルトの名無しさん
14/05/31 21:29:24.15 FdQ8Co+W
しかも>>53は作れるでなくて管理できるって言ってる
人の話をまず正確に解釈しろ

64:デフォルトの名無しさん
14/05/31 22:37:23.91 xM8SOXBn
python2.7です。

rowにはユニコード型の文字列が含まれています。

以下の行だとエラーになりますが、
In: a = [row[3:] for row in PartsList if re_SH.match(row[3])]
Out:TypeError: expected string or buffer

str(row[3]) とする以下の行では正常に動作します。
a = [row[3:] for row in PartsList if re_SH.match(str(row[3]))]

ネットで調べると、正規表現でユニコード型をつかうなら、正規表現パターンと文字列両方をユニコードに
すればいい、と書かれていたのですが、両方にuをつけても、上記エラーになります。

理由を教えていただけないでしょうか。

65:デフォルトの名無しさん
14/05/31 22:54:07.79 CxiaUoc1
長文ですいません、質問お願いします。
BeautifulSoupで特定のurlのみを抜きたい場合、例えば以下のような

<div id="tieup_list_content">
<div id="tieup_list_content-0" class="test">
<ul>
<li class="clearfix">
<div class="left-col">
<a class="head-text" href="URLリンク(cookpad.com) target="_top">
</div>
<div class="right-col">
<::after>
</li>
</ul>
</div>
<div id="tieup_list_content-1" class="test">
<div id="tieup_list_content-2" class="test">
<div id="tieup_list_content-3" class="test">

構造の場合、
for list in soup.findAll("a",class_="head-text"):
if ( list.has_key('href') ):
print (list["href"])

と書いても抜けません。class='test'としても、最初にfor tieups in soup.find('div',{'id':'tieup_list_content'}):
を書いてみたのですが駄目でした。どう書いたらいいでしょうか?

66:デフォルトの名無しさん
14/05/31 23:31:23.25 tD8EEUor
>>65
手元でコピペして試してみたらちゃんとurl出力されたよ
has_key('href')じゃなくてhas_attr('href')使えって警告は出たけど

67:デフォルトの名無しさん
14/05/31 23:43:44.85 1umWzhcx
Pythonって実際どのレベルまで使えるの?

68:デフォルトの名無しさん
14/05/31 23:50:56.69 Na4FnqiV
URLリンク(twitter.com)
pyenvってactivateするんだっけ?もしかしてこれはvirtualenvの話?

69:64
14/06/01 00:09:19.66 Bz5RJ4Oy
すみません、row[3]はlistでした・・・。
ユニコード型はもう1階層深いところでした。

上の質問は忘れてください。

70:デフォルトの名無しさん
14/06/01 00:47:09.03 LDAZuhZw
>>67
それは貴方自身で試して確認すべきことですよ

71:デフォルトの名無しさん
14/06/01 02:32:20.18 aUREUHMV
初心者質問ですみません。サービスを作って公開したところへスクリプトか何かでアタックされたら一気に課金枠内上限までいってサーバーが停止してしまうのでしょうか。Googleが感知してIPを弾いてくれたり、何らかのガードはGAEにデフォルトで付いてるのでしょうか。
もしそういった仕組みが無ければみなさんその辺りは自分で対策されているのでしょうか。

72:デフォルトの名無しさん
14/06/01 02:35:46.44 R+1cviYt
初心者なのにアグレッシブだな。残念ながら知識がそれに伴ってないが。

73:デフォルトの名無しさん
14/06/01 02:37:36.80 NChbU919
Google App Engine for Python 6アプ目
スレリンク(php板)

74:デフォルトの名無しさん
14/06/01 08:48:04.15 aUREUHMV
ああ!スレ間違えました!すみません!

75:デフォルトの名無しさん
14/06/01 09:03:28.76 aUREUHMV
あっちのスレを見に行ったら既に誰かが自分のレス内容を書いておいてくれたようです。お手を煩わせてしまいすみませんでした。では失礼します。

76:デフォルトの名無しさん
14/06/01 10:46:15.46 QQAPK+BU
報告が丁寧なので好感度大

77:デフォルトの名無しさん
14/06/01 12:00:06.83 UelQ8/AM
>>70
いや、やってはいるんだけどマジで何もできない初心者用の言語なのかどうか知りたくて

78:デフォルトの名無しさん
14/06/01 12:03:00.81 lZbdDAn5
初心者用って何?

79:デフォルトの名無しさん
14/06/01 12:41:04.58 UelQ8/AM
>>78
どっかの紹介に書いてあった

80:デフォルトの名無しさん
14/06/01 12:42:29.55 SbfJTSav
>>77
どのレベルまで使えるってどういうこと?

商売にもなるし、趣味でも使えるよ
実装効率やサーバーの稼働率や利益率まで考えろって事?

81:デフォルトの名無しさん
14/06/01 12:49:53.35 +GsRp3YP
初心者用言語ではないな。初心者にも使いやすくはあっても。
(あくまでJavaとかC++とかと比べれば比較的、といった意味で)

82:デフォルトの名無しさん
14/06/01 13:01:02.58 +GsRp3YP
言語自体が初心者用、教育用を謳ったのはBASICやPascalか。
今ならScratchかな?

83:デフォルトの名無しさん
14/06/01 14:05:20.35 iIEd2k72
web2pyが挙げてほしそうにこちらを見ている

84:デフォルトの名無しさん
14/06/01 18:50:32.51 5mIsRiq3
>>83
mail: [sage]

85:デフォルトの名無しさん
14/06/01 19:35:42.10 MBRAGf+z
pythonってwebの仕事ある?
webできのこるためにpython勉強してるのは間違えのような気がしてきたんですがどうなのか教えてください

86:デフォルトの名無しさん
14/06/01 19:50:06.92 IBW92nB5
自分の強みを生かして仕事を作れなきゃ生き残れないと思う

87:デフォルトの名無しさん
14/06/02 00:43:01.71 s/t3maig
仕事を求めるなら特定の言語で求めてるうちは無いと思えよ
PHPだってJavaだってそれだけじゃ話にならん

88:デフォルトの名無しさん
14/06/02 00:51:38.17 oyNEP+R5
勉強始めてからそんな疑問を持つようじゃとても生き残れそうにないな。

89:デフォルトの名無しさん
14/06/02 05:59:18.15 Arg7CftR
>>85
生き残る為ってほど重要ならRubyにしとけば?

日本でだけはweb = Rubyみたいだから。

90:デフォルトの名無しさん
14/06/02 07:23:03.34 /nxod1Xx
Python 2.7.7 リリース
URLリンク(www.python.org)

91:デフォルトの名無しさん
14/06/02 07:30:30.79 OMh1l+bm
うん、簡単に他言語に乗り換えられないとまず死亡フラグ
これからもどんどん新しい言語は出てくるだろうから

92:デフォルトの名無しさん
14/06/02 09:59:44.26 RqFugdZY
求人みればphpがほとんどだよ
たまにrubyがあってpythonはめったにない

93:デフォルトの名無しさん
14/06/02 10:16:55.64 yv/nHUfZ
javascriptはないわ

94:デフォルトの名無しさん
14/06/02 17:05:49.63 cqLxz4Q6
まだBBQか?

95:デフォルトの名無しさん
14/06/02 17:10:59.87 cqLxz4Q6
おー書き込める
>>66
レス遅くなってすいません、サイト上からはどうも抽出できなかったです。
で結局、昨日一日はまった挙句、今日からlxmlに変えて勉強しなおそうと思っているんですが
もし、BeautifulSoupで特定のdiv以下のaタグのみを抽出できる方法知っていたらご教示していただきたいです。

96:95
14/06/02 19:02:59.91 cqLxz4Q6
すいません、解決しました。というか
aタグ全て抽出しても、狙いのタグは抽出できていませんでした。
これは別の問題ですね。お騒がせしました。

97:デフォルトの名無しさん
14/06/02 19:04:52.31 seA5qCd2
pythonで値渡しをするにはどうすればいいでしょうか!

value = 20
tmp = value # tmpにvalueの現在の値をコピーした後、
value += 5 # valueに処理を行います
value = tmp # valueの状態を以前の状態に戻したいのですが

tmpの値が変わっている為以前の状態に戻らないです。
理屈は分かっていますが、どう変えるのが一番簡単でしょうか?

98:デフォルトの名無しさん
14/06/02 19:11:17.00 BvPtciGS
>>97
俺のPythonだとtmpは20のままだよ

99:デフォルトの名無しさん
14/06/02 20:02:31.19 X19dTLG/
俺のPythonは最近元気が無い

100:デフォルトの名無しさん
14/06/02 20:04:38.75 BvPtciGS
ていうかPythonのその辺、実はよく勉強せずに使ってるんだよなあ
浅いコピー・深いコピーとか意味わかんないし
Cのポインタが嫌だからこっちに逃げてきたのだし

101:デフォルトの名無しさん
14/06/02 20:12:49.63 seA5qCd2
>>98
ごめんなさい、確かにそうですね。
ちょっと勘違いしてました。

>>> value = [1,2,3]
>>> tmp = value
>>> value.remove(1)
>>> print value
[2, 3]
>>> print tmp
[2, 3]

このようにtmpの値も変更されてしまうのです。
valueに処理を行う際に、その中身は退避するにはどうすればよいかが知りたいです。

102:デフォルトの名無しさん
14/06/02 20:19:32.60 XrfIxkeA
浅いコピーでいいなら
tmp = value.copy() か tmp = value[:]

103:デフォルトの名無しさん
14/06/02 20:30:51.09 4C3VTH4i
tmp = list(value) でもいいね

>>101
近年の言語では、「ポインタの値渡し」とか、「参照の・・・」とかという
概念からは避けて通れないので、理解してみると技術の幅が広がるよ

むしろC/C++のポインタと参照の方が、親切だと思うときはある

104:デフォルトの名無しさん
14/06/02 20:48:44.50 seA5qCd2
>>102
>>103
なるほど、ありがとうございます!

105:デフォルトの名無しさん
14/06/03 00:49:54.58 hkWAcWoq
安価ミス…?

106:デフォルトの名無しさん
14/06/03 01:14:47.69 sqxj/P/2
python2.7.7をインストールしたせいかIDLEが起動できなくなってしまいました。
クリックしても何も起きません。
どうすればよいでしょうか。

107:デフォルトの名無しさん
14/06/03 02:00:16.43 mwJyftym
>>100
クラスAの中にクラスBがあり、
Bの中にクラスCがある、A.B.C という階層を考える

浅いコピー(shallow copy)は、そのクラスA しかコピーしない
BCの参照(ポインタ)だけをコピーして、
実体をコピーしていないので、
Aは2つあるが、BCは1つしかないので、同じBCを使う
普通は、同じBCを使うとマズイことになる

深いコピー(deep copy)は、ABCと深い階層までコピーする
ABCも2つずつあり、独立して使える

108:デフォルトの名無しさん
14/06/03 02:19:51.84 ouBeooUC
pythonのオブジェクト指向ってjavaと比較して足りない機能ってありますか?
phpとpythonどっちかで学ぼうと思っていたんですがphpは足りない機能があるそうなのでpythonを検討しています

109:デフォルトの名無しさん
14/06/03 02:24:03.05 hDel/SED
phpって仕事で要求されてる人以外で自ら勉強しようと思ってる人っているの?

110:デフォルトの名無しさん
14/06/03 04:12:16.46 Y/MlbrO/
思いつくところとしてはフィールドのアクセス制限は強制じゃない
それで特別困ったことはないが

いわゆる古臭いオブジェクト指向の3原則から脱却できてない奴は
見えない敵にフィールドを書き換えられる恐怖に苛まれて精神的にキツイらしい

111:デフォルトの名無しさん
14/06/03 04:56:04.76 va6vQ78Z
ゆるいオブジェクト指向ω

112:デフォルトの名無しさん
14/06/03 07:16:03.57 XnfPU2Fh
Pythonに限った話じゃないが動的型付けだからインターフェースは用意しなくていい
ダックタイピングでゆるゆるいこうぜってノリが標準ライブラリまで浸透しているのでそこんとこよろしく

113:デフォルトの名無しさん
14/06/03 07:42:50.52 hkWAcWoq
ダックタイピングってゆるゆるなのか?

114:デフォルトの名無しさん
14/06/03 12:55:36.66 tdY/j8aF
pipでインストールするだけで使えるサードパーティ製GUIライブラリってありませんか?
pyqtはpipじゃないので悔しいですがインストールが面倒くさいのとアップデートが面倒くさいので諦めますた

115:デフォルトの名無しさん
14/06/03 19:27:06.88 jVH9SVgJ
0から99までの数字をランダムに1個抽出するというのを1000回繰り返した時の統計がほしいんですけど
なんてライブラリを使うと楽ですか?

116:デフォルトの名無しさん
14/06/03 20:03:11.64 Y/MlbrO/
numpyでrandomしてhistgram

117:デフォルトの名無しさん
14/06/03 20:25:53.64 5eZCHC+o
バイナリデータを読んで
途中の数バイトを別のデータに置き換えるっていう処理、簡単にできる?
添字指定による部分参照ってバイナリではできないよね

118:デフォルトの名無しさん
14/06/03 20:30:05.65 Y/MlbrO/
添字計算できるならseekしたらいいんでねえの

119:デフォルトの名無しさん
14/06/03 20:31:02.65 4L3EgsH1
つ bytearray

120:デフォルトの名無しさん
14/06/03 20:32:30.86 Y/MlbrO/
あとbytesでもreplaceやre使える
条件が決まりきってるなら

121:デフォルトの名無しさん
14/06/03 21:02:11.91 rCJu7D+N
>>115
import random
[random.choice(range(99)) for _ in range(1000)]

122:デフォルトの名無しさん
14/06/03 21:11:27.91 zbi5RHIW
>>121
range(99)だと0から98だ

>>> num_list = [random.choice(range(100)) for _ in range(1000)]
>>> for num in range(100):
print("{}: {}".format(num, num_list.count(num)))

123:デフォルトの名無しさん
14/06/03 21:22:05.10 rCJu7D+N
>>122
うっかり
バグってこうやって作っていくんだな
とん

124:デフォルトの名無しさん
14/06/04 00:33:56.68 N40f8tRy
どこで聞いたら良いか分かんないのでここで聞いてみますが

YouTubeの再生履歴をPythonとYoutubeのAPI(v3)経由でダウンロードしたいんですが、どうもAPIアクセスを有効にした後のしかダウンロード出来ない仕様っぽいです
APIバージョンのv2までは出来たみたいですけど

うまくダウンロードする方法はないんでしょうか?

125:デフォルトの名無しさん
14/06/04 02:03:28.50 BwekaK/m
pip install scipyでエラーでインストールできません
ご助言おねがいします
pip install numpy gfortran noseはインストール済みです
URLリンク(ideone.com)

126:デフォルトの名無しさん
14/06/04 02:04:08.49 BwekaK/m
ubuntu python3.4.1です

127:デフォルトの名無しさん
14/06/04 02:50:53.19 L7kMUTbA
おれもあたらしいパソコンがほしい。神様たすけて

128:デフォルトの名無しさん
14/06/04 12:04:09.24 9iG8YZKN
swiftの話で蛇disが始まるかと思えば、そうでもなかった。意外だ。

129:デフォルトの名無しさん
14/06/04 16:15:06.56 xjqdwvjk
挙げるほどのものでもないと認識されている可能性も
てかなぜdisられると思ったし

130:デフォルトの名無しさん
14/06/04 16:22:02.19 uKkfN5R4
>>129
WWDCでappleがswift発表したけど、その比較にPython使ったから
URLリンク(cdn1.tnwcdn.com)
何でPythonなんだろう

131:デフォルトの名無しさん
14/06/04 16:49:09.58 LqaYcvBt
googleを牽制するため

132:デフォルトの名無しさん
14/06/04 17:08:48.34 xjqdwvjk
へーこんな改善されたの
Javaじゃないのね
google牽制するにしても、こんな別質なものの比較はバカさをアピールするだけだと思うんだけどな…

133:デフォルトの名無しさん
14/06/04 17:22:43.55 2ij5JthN
空気を作ったものが勝つ

134:デフォルトの名無しさん
14/06/04 17:25:55.04 u9d9cpJD
AIRってほんとに空気

135:デフォルトの名無しさん
14/06/04 17:36:44.68 LqaYcvBt
>>132
少なくともお前よりはスキルが上の技術者がスライド作ってるから心配するな

136:デフォルトの名無しさん
14/06/04 18:06:44.18 xjqdwvjk
スライド作った個人の心配なんて誰もしてないんだけど

137:デフォルトの名無しさん
14/06/04 18:44:44.69 BLv8g/kZ
個人だってよwwwwwwwwwwwwwwwwwwwwwwwww

138:デフォルトの名無しさん
14/06/04 20:08:24.10 xjqdwvjk
ID変更お疲れ様です
スライド作ったのは一人じゃないから個人じゃないって?
とても面白いギャグセンスしてるね

139:デフォルトの名無しさん
14/06/04 20:24:52.92 cv7ZTq9m
いいアピールだね
その調子で

140:デフォルトの名無しさん
14/06/04 20:28:18.15 /Cu6Lqm6
読解力も煽り耐性も無いんだな

141:デフォルトの名無しさん
14/06/04 21:05:36.45 xjqdwvjk
悔しいからって、無理にレスしないほうがいいと思うけどな

うまく言い返したつもりになってるかもしれないけど、
人格攻撃が詭弁とわかる人から見たら、ださいことこの上ないよ?
連レスしちゃうあたり、焦りが感じられるしね

142:デフォルトの名無しさん
14/06/04 21:49:31.70 cv7ZTq9m
そうyだなピエロだな

143:デフォルトの名無しさん
14/06/04 21:52:06.78 BpyyzLL+
Python

144:デフォルトの名無しさん
14/06/04 22:16:23.85 K03YyZHf
>>128
macのpython遅いのんなー
ぐらいの感想しか・・・

145:デフォルトの名無しさん
14/06/04 22:20:13.14 dapQveGL
雑談中すいません
2.7でスクリプト実行するとprintで日本語が文字化けしてしまうんですが、どう対処すればいいですか?
sitecustmize.pyでutf-8にすると、意味不明な文字で、デフォルトだと????になります。
インタプリタに直接記述すると問題なく表示されます。

146:デフォルトの名無しさん
14/06/04 23:07:43.01 tHpfMTUM
utf-8 でダメなら cp932 なんじゃないの

147:デフォルトの名無しさん
14/06/04 23:43:49.33 dapQveGL
>>146
レスありがとうございます。
sitecustmize.pyをcp932にするとインタプリタは正常に出力されたんですが
別の場所で、exceptions.UnicodeDecodeError: 'cp932' codec can't decode byte ...になってしまうんですが
どうすればいいでしょうか?

148:デフォルトの名無しさん
14/06/04 23:47:28.96 BpyyzLL+
osぐらいかけや

149:デフォルトの名無しさん
14/06/04 23:52:35.60 dapQveGL
すいません、vista32bitです。
sitecustmize.pyも、もともとファイル書き込みでUnicodeDecodeErrorに
なったので適用したのですが。

150:デフォルトの名無しさん
14/06/05 00:05:06.00 Z7eoN+hw
git いれてる?
git bash上で実行しても化けるか確認してみ

151:デフォルトの名無しさん
14/06/05 00:06:25.09 OnFYdqRE
python3.4って遅くなったの?

URLリンク(qiita.com)

152:デフォルトの名無しさん
14/06/05 00:19:27.08 +QiMnXqF
>>150
レスありがとうございます。
'git bash上の実行'がよくわからないのでインストールしてみて明日、報告します。

153:デフォルトの名無しさん
14/06/05 04:28:09.87 82BFuaye
>>149
日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
URLリンク(speirs.blog17.fc2.com)
URLリンク(atomic.jpn.ph)
URLリンク(d.hatena.ne.jp)

スレリンク(tech板:339番)
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
PythonのUnicodeEncodeErrorを知る
URLリンク(lab.hde.co.jp)

よくまとまってた。あとで読む

154:デフォルトの名無しさん
14/06/05 23:16:33.51 tOtIFDQz
>>125解決できるからいらしゃいませんか

155:デフォルトの名無しさん
14/06/05 23:53:16.62 9xaUMUTy
>numpy.distutils.system_info.LapackNotFoundError:
>Lapack (URLリンク(www.netlib.org)) libraries not found.
>Directories to search for the libraries can be specified in the
>numpy/distutils/site.cfg file (section [lapack]) or by setting
>the LAPACK environment variable.

>Lapack (URLリンク(www.netlib.org)) libraries not found.

Lapackライブラリがないってエラーが出てるよ

156:デフォルトの名無しさん
14/06/06 00:43:26.89 jtO02gxt
さっそくいれてみたらコンパイルにすすめました
ただコンパイルにすごい時間かかりますね

157:デフォルトの名無しさん
14/06/06 09:11:24.03 DTdJKogB
省電力だったり
しょぼいHDDだったらそうだね
SSD使え

158:デフォルトの名無しさん
14/06/06 17:42:27.55 w3KzEqPi
>>152ですが、なぜかPC再起動で改善してしまいました。
再起動後、pyscripterが起動しなくなるという謎現象になりましたが
exe版のインストールでとりあえず対処できました。
文字コードに関して、とりあえず'utf-8'にしとけ、程度の認識なので
>>153さんのリンクも含め、もう少し勉強してみます。ありがとうございました。

159:デフォルトの名無しさん
14/06/07 07:28:31.44 GnZh55GO
整数からバイナリオブジェクトを作るスマートな方法ってないものか
マニュアルを眺めてみたが、自分には以下の方法しか考えつかなかった

>>> a = 255
>>> bytes.fromhex(hex(a).replace('0x', '').rjust(2, '0'))
b'\xff'

160:デフォルトの名無しさん
14/06/07 07:58:18.40 iFVCcsC7
>>> bytes([255])
b'\xff'

161:デフォルトの名無しさん
14/06/07 08:04:16.83 GnZh55GO
>>160
サンクス
スマート過ぎて放心した
マニュアルからは読み取れんかったな…

162:デフォルトの名無しさん
14/06/07 09:55:37.11 /gMYq1Ml
chr(255)

163:デフォルトの名無しさん
14/06/07 18:42:22.22 jSVebn/T
Linuxでキー入力をグローバルフックできる方法またはライブラリを教えてください

164:デフォルトの名無しさん
14/06/07 19:13:37.99 oBY9Rph1
いいかみんな
SSDとPython3にはまだ手を出すなよ
あと2年待て

165:デフォルトの名無しさん
14/06/07 19:19:50.62 SxbAzKvi
たしかにSSDは完全置き換えよりハイブリッドでキャッシュにするのが正解だな

166:デフォルトの名無しさん
14/06/07 19:21:30.67 wgcWEMds
2年前からssdとpython3使ってるわ

167:デフォルトの名無しさん
14/06/07 19:51:15.89 I26RBxeW
DigitalOceanの鯖借りてるけどSSDみたいですな
実感0

168:デフォルトの名無しさん
14/06/07 19:57:56.14 SxbAzKvi
2ちゃんの鯖はSSD化されてから
頻繁に落ちるようになったから
すごく実感ある

169:デフォルトの名無しさん
14/06/08 10:32:29.98 5chAioQ8
PyPy 2.3.1 リリース
URLリンク(morepypy.blogspot.jp)

170:デフォルトの名無しさん
14/06/08 16:37:50.22 AGC0ZTJI
SQLiteモジュールって、どんな時に使っているか
初心者の参考に聞かせて欲しい
イメージ的には、巨大データをリストなどに読み込むと
スワップしてPCが使い物にならないので、そんな時の
変数外だしに使うのかなって

171:デフォルトの名無しさん
14/06/08 18:02:37.72 BMCjjyDp
アドレス帳に使ってる

172:デフォルトの名無しさん
14/06/08 18:18:38.92 e+2yydW9
>>170
永続化したいデータがあって、全体から必要なデータだけを取り出したいとき
あと取り出すときにソートできるし楽

>巨大データをリストなどに読み込むとスワップしてPCが使い物にならない
これは不必要なデータもとりだしてるんじゃないか。そうでないなら、そのPCが性能不足ということになる

173:デフォルトの名無しさん
14/06/08 18:24:20.67 SjxXj1KS
>>170
ソートとか、ややこしい集計とかで楽したい時とか

174:デフォルトの名無しさん
14/06/08 18:29:28.96 jRRr+ktT
>>170
スクレイピングのキャッシュ保持に使ってる

175:デフォルトの名無しさん
14/06/08 18:46:02.25 43jAtAsp
>>170
SQLiteというよりはデータベースの使い道?
端的に言えば複数の同種データとか永続化したいならならなんでもござれだよ
抽出したりソートしたり集計したりリスト使うよりSQLのが楽というかそれこそが仕事

SQLiteはファイルベースだからアクセス権もそれに依存だけど
それだけにぽんぽん移動できて取り回しが楽だし
インメモリデータベースとしても使える

176:デフォルトの名無しさん
14/06/08 19:03:12.89 AGC0ZTJI
参考になりました
メインメモリ2GBのPCで、60GBほどのテキストデータを
リストで処理しようとしたら、スクリプトの実行が終わっても
グゴゴゴ・・・とHDDの音が数分続いて恐くなった次第
どうやら用途としては間違っていないようでよかった

177:デフォルトの名無しさん
14/06/08 20:04:12.80 jRRr+ktT
pytables使えば?

178:デフォルトの名無しさん
14/06/08 22:56:25.54 W6M7L2Zj
よくわからないけどでかいデータはちょっと読んでは捨て、ってやっていったほうがいいと思う
あと、その用途ならpickleが使えるかと

179:デフォルトの名無しさん
14/06/09 01:05:20.51 QFOBToaK
やっぱり人力が一番だよ

180:デフォルトの名無しさん
14/06/09 07:42:14.68 NzkmwWkT
>>178
realplayer とか flash とか全部オンメモリで糞みたいに固まるからなω


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch