トップページ⇒tech
1001コメント275KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/05/19(月) 15:00:17.89ID:C9xN4CIo
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その22
http://toro.2ch.net/test/read.cgi/tech/1394240091/
関連スレ
Pythonのお勉強 Part49
http://toro.2ch.net/test/read.cgi/tech/1387528488/

◆関連リンク Python の Home Page
ttp://www.python.org/

◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/

◆まとめwiki
ttp://python.rdy.jp/
0044デフォルトの名無しさん2014/05/27(火) 01:52:08.30ID: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)
0045デフォルトの名無しさん2014/05/27(火) 01:54:42.96ID:fDLDDGc5
>>42
ドキュメントぐらい読めよ
0046デフォルトの名無しさん2014/05/27(火) 01:57:36.43ID:fDLDDGc5
そもそもprint(1,2,3)みたいな使い方をするってレアじゃない?
0047デフォルトの名無しさん2014/05/27(火) 02:54:09.71ID:vwK3Zsni
38が正解
0048デフォルトの名無しさん2014/05/27(火) 21:45:14.93ID:JvmXnqEP
sys.stdout.write
0049デフォルトの名無しさん2014/05/27(火) 21:53:35.90ID:xZjfoO9Y
print(*msgs) とかのことを考えると format で代用ってのもきつそう
もし両対応させるなら print_function ひっぱってきたほうが良さげか
0050デフォルトの名無しさん2014/05/30(金) 14:49:42.26ID:C8E1zgtw
pyenvはダメだ使うんじゃねえってツイートを見たんですけどpyenvがダメなのは有名なことなんですか?
ずっと使ってましたがどうやって複数バージョンを入れるのが良いのでしょうか?
0051デフォルトの名無しさん2014/05/30(金) 15:00:01.82ID:C8E1zgtw
ちなみに2.7と3.4しか使いません
0052デフォルトの名無しさん2014/05/30(金) 16:21:46.60ID:6WJTDNe5
virtualenvで済むのになんでわざわざpyenvなんかつかってんのっていう事じゃないの
0053デフォルトの名無しさん2014/05/30(金) 16:47:16.55ID:lri6NfmJ
virtualenvは今インストールされているバージョンのpythonで複数の環境を作れるので
pyenvは異なるバージョンをインストールできるし管理できる。
特定のバージョンしか使わないならvirtualenvで環境わけるだけでいいだろう
virtualenvとpyenvを比較する話ではないと思うんだけどtwitterでは何故同一で考えている人が多いのか
0054デフォルトの名無しさん2014/05/30(金) 17:06:29.11ID:6WJTDNe5
>>53
virtualenvでも別のバージョンの環境つくれるけど、それを知らない人がpyenv使ってるのか
0055デフォルトの名無しさん2014/05/30(金) 17:48:41.56ID:lri6NfmJ
virtualenvは複数バージョンを管理できない
0056デフォルトの名無しさん2014/05/30(金) 20:28:31.50ID:DRgNqQjq
君らあらゆる面ですべて間違ってるよ
「そのツイートした奴に聞けよ」が正解
0057デフォルトの名無しさん2014/05/30(金) 20:36:47.48ID:DRgNqQjq
まあvirtualenvのドキュメントに

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

って書いてあるけど
0058デフォルトの名無しさん2014/05/31(土) 00:14:16.80ID:FdQ8Co+W
pyenv+virtualenvでならたまに
0059デフォルトの名無しさん2014/05/31(土) 18:57:13.02ID:XGX5yLkH
pyenv使えばいろんなバージョン入れられるから便利だよ
0060デフォルトの名無しさん2014/05/31(土) 21:20:19.81ID: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
0061デフォルトの名無しさん2014/05/31(土) 21:22:28.27ID:AMs2U+EM
馬鹿馬鹿しい
0062デフォルトの名無しさん2014/05/31(土) 21:23:24.28ID:AMs2U+EM
てか質問の意味が分かってないなら喋るなと
0063デフォルトの名無しさん2014/05/31(土) 21:29:24.15ID:FdQ8Co+W
しかも>>53は作れるでなくて管理できるって言ってる
人の話をまず正確に解釈しろ
0064デフォルトの名無しさん2014/05/31(土) 22:37:23.91ID: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をつけても、上記エラーになります。

理由を教えていただけないでしょうか。
0065デフォルトの名無しさん2014/05/31(土) 22:54:07.79ID: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="http://cookpad.com/loading/ct/?crid=21746&;amp;pid=511" 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'}):
を書いてみたのですが駄目でした。どう書いたらいいでしょうか?
0066デフォルトの名無しさん2014/05/31(土) 23:31:23.25ID:tD8EEUor
>>65
手元でコピペして試してみたらちゃんとurl出力されたよ
has_key('href')じゃなくてhas_attr('href')使えって警告は出たけど
0067デフォルトの名無しさん2014/05/31(土) 23:43:44.85ID:1umWzhcx
Pythonって実際どのレベルまで使えるの?
0068デフォルトの名無しさん2014/05/31(土) 23:50:56.69ID:Na4FnqiV
https://twitter.com/jkltf/status/472742638844518400
pyenvってactivateするんだっけ?もしかしてこれはvirtualenvの話?
0069642014/06/01(日) 00:09:19.66ID:Bz5RJ4Oy
すみません、row[3]はlistでした・・・。
ユニコード型はもう1階層深いところでした。

上の質問は忘れてください。
0070デフォルトの名無しさん2014/06/01(日) 00:47:09.03ID:LDAZuhZw
>>67
それは貴方自身で試して確認すべきことですよ
0071デフォルトの名無しさん2014/06/01(日) 02:32:20.18ID:aUREUHMV
初心者質問ですみません。サービスを作って公開したところへスクリプトか何かでアタックされたら一気に課金枠内上限までいってサーバーが停止してしまうのでしょうか。Googleが感知してIPを弾いてくれたり、何らかのガードはGAEにデフォルトで付いてるのでしょうか。
もしそういった仕組みが無ければみなさんその辺りは自分で対策されているのでしょうか。
0072デフォルトの名無しさん2014/06/01(日) 02:35:46.44ID:R+1cviYt
初心者なのにアグレッシブだな。残念ながら知識がそれに伴ってないが。
0073デフォルトの名無しさん2014/06/01(日) 02:37:36.80ID:NChbU919
Google App Engine for Python 6アプ目
http://nozomi.2ch.net/test/read.cgi/php/1358570953/
0074デフォルトの名無しさん2014/06/01(日) 08:48:04.15ID:aUREUHMV
ああ!スレ間違えました!すみません!
0075デフォルトの名無しさん2014/06/01(日) 09:03:28.76ID:aUREUHMV
あっちのスレを見に行ったら既に誰かが自分のレス内容を書いておいてくれたようです。お手を煩わせてしまいすみませんでした。では失礼します。
0076デフォルトの名無しさん2014/06/01(日) 10:46:15.46ID:QQAPK+BU
報告が丁寧なので好感度大
0077デフォルトの名無しさん2014/06/01(日) 12:00:06.83ID:UelQ8/AM
>>70
いや、やってはいるんだけどマジで何もできない初心者用の言語なのかどうか知りたくて
0078デフォルトの名無しさん2014/06/01(日) 12:03:00.81ID:lZbdDAn5
初心者用って何?
0079デフォルトの名無しさん2014/06/01(日) 12:41:04.58ID:UelQ8/AM
>>78
どっかの紹介に書いてあった
0080デフォルトの名無しさん2014/06/01(日) 12:42:29.55ID:SbfJTSav
>>77
どのレベルまで使えるってどういうこと?

商売にもなるし、趣味でも使えるよ
実装効率やサーバーの稼働率や利益率まで考えろって事?
0081デフォルトの名無しさん2014/06/01(日) 12:49:53.35ID:+GsRp3YP
初心者用言語ではないな。初心者にも使いやすくはあっても。
(あくまでJavaとかC++とかと比べれば比較的、といった意味で)
0082デフォルトの名無しさん2014/06/01(日) 13:01:02.58ID:+GsRp3YP
言語自体が初心者用、教育用を謳ったのはBASICやPascalか。
今ならScratchかな?
0083デフォルトの名無しさん2014/06/01(日) 14:05:20.35ID:iIEd2k72
web2pyが挙げてほしそうにこちらを見ている
0084デフォルトの名無しさん2014/06/01(日) 18:50:32.51ID:5mIsRiq3
>>83
mail: [sage]
0085デフォルトの名無しさん2014/06/01(日) 19:35:42.10ID:MBRAGf+z
pythonってwebの仕事ある?
webできのこるためにpython勉強してるのは間違えのような気がしてきたんですがどうなのか教えてください
0086デフォルトの名無しさん2014/06/01(日) 19:50:06.92ID:IBW92nB5
自分の強みを生かして仕事を作れなきゃ生き残れないと思う
0087デフォルトの名無しさん2014/06/02(月) 00:43:01.71ID:s/t3maig
仕事を求めるなら特定の言語で求めてるうちは無いと思えよ
PHPだってJavaだってそれだけじゃ話にならん
0088デフォルトの名無しさん2014/06/02(月) 00:51:38.17ID:oyNEP+R5
勉強始めてからそんな疑問を持つようじゃとても生き残れそうにないな。
0089デフォルトの名無しさん2014/06/02(月) 05:59:18.15ID:Arg7CftR
>>85
生き残る為ってほど重要ならRubyにしとけば?

日本でだけはweb = Rubyみたいだから。
0090デフォルトの名無しさん2014/06/02(月) 07:23:03.34ID:/nxod1Xx
Python 2.7.7 リリース
https://www.python.org/download/releases/2.7.7/
0091デフォルトの名無しさん2014/06/02(月) 07:30:30.79ID:OMh1l+bm
うん、簡単に他言語に乗り換えられないとまず死亡フラグ
これからもどんどん新しい言語は出てくるだろうから
0092デフォルトの名無しさん2014/06/02(月) 09:59:44.26ID:RqFugdZY
求人みればphpがほとんどだよ
たまにrubyがあってpythonはめったにない
0093デフォルトの名無しさん2014/06/02(月) 10:16:55.64ID:yv/nHUfZ
javascriptはないわ
0094デフォルトの名無しさん2014/06/02(月) 17:05:49.63ID:cqLxz4Q6
まだBBQか?
0095デフォルトの名無しさん2014/06/02(月) 17:10:59.87ID:cqLxz4Q6
おー書き込める
>>66
レス遅くなってすいません、サイト上からはどうも抽出できなかったです。
で結局、昨日一日はまった挙句、今日からlxmlに変えて勉強しなおそうと思っているんですが
もし、BeautifulSoupで特定のdiv以下のaタグのみを抽出できる方法知っていたらご教示していただきたいです。
0096952014/06/02(月) 19:02:59.91ID:cqLxz4Q6
すいません、解決しました。というか
aタグ全て抽出しても、狙いのタグは抽出できていませんでした。
これは別の問題ですね。お騒がせしました。
0097デフォルトの名無しさん2014/06/02(月) 19:04:52.31ID:seA5qCd2
pythonで値渡しをするにはどうすればいいでしょうか!

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

tmpの値が変わっている為以前の状態に戻らないです。
理屈は分かっていますが、どう変えるのが一番簡単でしょうか?
0098デフォルトの名無しさん2014/06/02(月) 19:11:17.00ID:BvPtciGS
>>97
俺のPythonだとtmpは20のままだよ
0099デフォルトの名無しさん2014/06/02(月) 20:02:31.19ID:X19dTLG/
俺のPythonは最近元気が無い
0100デフォルトの名無しさん2014/06/02(月) 20:04:38.75ID:BvPtciGS
ていうかPythonのその辺、実はよく勉強せずに使ってるんだよなあ
浅いコピー・深いコピーとか意味わかんないし
Cのポインタが嫌だからこっちに逃げてきたのだし
0101デフォルトの名無しさん2014/06/02(月) 20:12:49.63ID:seA5qCd2
>>98
ごめんなさい、確かにそうですね。
ちょっと勘違いしてました。

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

このようにtmpの値も変更されてしまうのです。
valueに処理を行う際に、その中身は退避するにはどうすればよいかが知りたいです。
0102デフォルトの名無しさん2014/06/02(月) 20:19:32.60ID:XrfIxkeA
浅いコピーでいいなら
tmp = value.copy() か tmp = value[:]
0103デフォルトの名無しさん2014/06/02(月) 20:30:51.09ID:4C3VTH4i
tmp = list(value) でもいいね

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

むしろC/C++のポインタと参照の方が、親切だと思うときはある
0104デフォルトの名無しさん2014/06/02(月) 20:48:44.50ID:seA5qCd2
>>102
>>103
なるほど、ありがとうございます!
0105デフォルトの名無しさん2014/06/03(火) 00:49:54.58ID:hkWAcWoq
安価ミス…?
0106デフォルトの名無しさん2014/06/03(火) 01:14:47.69ID:sqxj/P/2
python2.7.7をインストールしたせいかIDLEが起動できなくなってしまいました。
クリックしても何も起きません。
どうすればよいでしょうか。
0107デフォルトの名無しさん2014/06/03(火) 02:00:16.43ID:mwJyftym
>>100
クラスAの中にクラスBがあり、
Bの中にクラスCがある、A.B.C という階層を考える

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

深いコピー(deep copy)は、ABCと深い階層までコピーする
ABCも2つずつあり、独立して使える
0108デフォルトの名無しさん2014/06/03(火) 02:19:51.84ID:ouBeooUC
pythonのオブジェクト指向ってjavaと比較して足りない機能ってありますか?
phpとpythonどっちかで学ぼうと思っていたんですがphpは足りない機能があるそうなのでpythonを検討しています
0109デフォルトの名無しさん2014/06/03(火) 02:24:03.05ID:hDel/SED
phpって仕事で要求されてる人以外で自ら勉強しようと思ってる人っているの?
0110デフォルトの名無しさん2014/06/03(火) 04:12:16.46ID:Y/MlbrO/
思いつくところとしてはフィールドのアクセス制限は強制じゃない
それで特別困ったことはないが

いわゆる古臭いオブジェクト指向の3原則から脱却できてない奴は
見えない敵にフィールドを書き換えられる恐怖に苛まれて精神的にキツイらしい
0111デフォルトの名無しさん2014/06/03(火) 04:56:04.76ID:va6vQ78Z
ゆるいオブジェクト指向ω
0112デフォルトの名無しさん2014/06/03(火) 07:16:03.57ID:XnfPU2Fh
Pythonに限った話じゃないが動的型付けだからインターフェースは用意しなくていい
ダックタイピングでゆるゆるいこうぜってノリが標準ライブラリまで浸透しているのでそこんとこよろしく
0113デフォルトの名無しさん2014/06/03(火) 07:42:50.52ID:hkWAcWoq
ダックタイピングってゆるゆるなのか?
0114デフォルトの名無しさん2014/06/03(火) 12:55:36.66ID:tdY/j8aF
pipでインストールするだけで使えるサードパーティ製GUIライブラリってありませんか?
pyqtはpipじゃないので悔しいですがインストールが面倒くさいのとアップデートが面倒くさいので諦めますた
0115デフォルトの名無しさん2014/06/03(火) 19:27:06.88ID:jVH9SVgJ
0から99までの数字をランダムに1個抽出するというのを1000回繰り返した時の統計がほしいんですけど
なんてライブラリを使うと楽ですか?
0116デフォルトの名無しさん2014/06/03(火) 20:03:11.64ID:Y/MlbrO/
numpyでrandomしてhistgram
0117デフォルトの名無しさん2014/06/03(火) 20:25:53.64ID:5eZCHC+o
バイナリデータを読んで
途中の数バイトを別のデータに置き換えるっていう処理、簡単にできる?
添字指定による部分参照ってバイナリではできないよね
0118デフォルトの名無しさん2014/06/03(火) 20:30:05.65ID:Y/MlbrO/
添字計算できるならseekしたらいいんでねえの
0119デフォルトの名無しさん2014/06/03(火) 20:31:02.65ID:4L3EgsH1
つ bytearray
0120デフォルトの名無しさん2014/06/03(火) 20:32:30.86ID:Y/MlbrO/
あとbytesでもreplaceやre使える
条件が決まりきってるなら
0121デフォルトの名無しさん2014/06/03(火) 21:02:11.91ID:rCJu7D+N
>>115
import random
[random.choice(range(99)) for _ in range(1000)]
0122デフォルトの名無しさん2014/06/03(火) 21:11:27.91ID: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)))
0123デフォルトの名無しさん2014/06/03(火) 21:22:05.10ID:rCJu7D+N
>>122
うっかり
バグってこうやって作っていくんだな
とん
0124デフォルトの名無しさん2014/06/04(水) 00:33:56.68ID:N40f8tRy
どこで聞いたら良いか分かんないのでここで聞いてみますが

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

うまくダウンロードする方法はないんでしょうか?
0125デフォルトの名無しさん2014/06/04(水) 02:03:28.50ID:BwekaK/m
pip install scipyでエラーでインストールできません
ご助言おねがいします
pip install numpy gfortran noseはインストール済みです
http://ideone.com/26fLOp
0126デフォルトの名無しさん2014/06/04(水) 02:04:08.49ID:BwekaK/m
ubuntu python3.4.1です
0127デフォルトの名無しさん2014/06/04(水) 02:50:53.19ID:L7kMUTbA
おれもあたらしいパソコンがほしい。神様たすけて
0128デフォルトの名無しさん2014/06/04(水) 12:04:09.24ID:9iG8YZKN
swiftの話で蛇disが始まるかと思えば、そうでもなかった。意外だ。
0129デフォルトの名無しさん2014/06/04(水) 16:15:06.56ID:xjqdwvjk
挙げるほどのものでもないと認識されている可能性も
てかなぜdisられると思ったし
0130デフォルトの名無しさん2014/06/04(水) 16:22:02.19ID:uKkfN5R4
>>129
WWDCでappleがswift発表したけど、その比較にPython使ったから
http://cdn1.tnwcdn.com/wp-content/blogs.dir/1/files/2014/06/Screen-Shot-2014-06-03-at-6.46.56-am-730x431.png
何でPythonなんだろう
0131デフォルトの名無しさん2014/06/04(水) 16:49:09.58ID:LqaYcvBt
googleを牽制するため
0132デフォルトの名無しさん2014/06/04(水) 17:08:48.34ID:xjqdwvjk
へーこんな改善されたの
Javaじゃないのね
google牽制するにしても、こんな別質なものの比較はバカさをアピールするだけだと思うんだけどな…
0133デフォルトの名無しさん2014/06/04(水) 17:22:43.55ID:2ij5JthN
空気を作ったものが勝つ
0134デフォルトの名無しさん2014/06/04(水) 17:25:55.04ID:u9d9cpJD
AIRってほんとに空気
0135デフォルトの名無しさん2014/06/04(水) 17:36:44.68ID:LqaYcvBt
>>132
少なくともお前よりはスキルが上の技術者がスライド作ってるから心配するな
0136デフォルトの名無しさん2014/06/04(水) 18:06:44.18ID:xjqdwvjk
スライド作った個人の心配なんて誰もしてないんだけど
0137デフォルトの名無しさん2014/06/04(水) 18:44:44.69ID:BLv8g/kZ
個人だってよwwwwwwwwwwwwwwwwwwwwwwwww
0138デフォルトの名無しさん2014/06/04(水) 20:08:24.10ID:xjqdwvjk
ID変更お疲れ様です
スライド作ったのは一人じゃないから個人じゃないって?
とても面白いギャグセンスしてるね
0139デフォルトの名無しさん2014/06/04(水) 20:24:52.92ID:cv7ZTq9m
いいアピールだね
その調子で
0140デフォルトの名無しさん2014/06/04(水) 20:28:18.15ID:/Cu6Lqm6
読解力も煽り耐性も無いんだな
0141デフォルトの名無しさん2014/06/04(水) 21:05:36.45ID:xjqdwvjk
悔しいからって、無理にレスしないほうがいいと思うけどな

うまく言い返したつもりになってるかもしれないけど、
人格攻撃が詭弁とわかる人から見たら、ださいことこの上ないよ?
連レスしちゃうあたり、焦りが感じられるしね
0142デフォルトの名無しさん2014/06/04(水) 21:49:31.70ID:cv7ZTq9m
そうyだなピエロだな
0143デフォルトの名無しさん2014/06/04(水) 21:52:06.78ID:BpyyzLL+
Python
0144デフォルトの名無しさん2014/06/04(水) 22:16:23.85ID:K03YyZHf
>>128
macのpython遅いのんなー
ぐらいの感想しか・・・
■ このスレッドは過去ログ倉庫に格納されています