くだすれ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/
0003デフォルトの名無しさん
2014/05/19(月) 15:26:57.12ID:xs01V/sZ|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
0004デフォルトの名無しさん
2014/05/19(月) 15:31:56.04ID:xs01V/sZ│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0005デフォルトの名無しさん
2014/05/19(月) 16:14:27.05ID:6L2g2kAx,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0006デフォルトの名無しさん
2014/05/20(火) 00:53:14.02ID:c/zSMJrz0007デフォルトの名無しさん
2014/05/21(水) 08:59:06.89ID:/08zgsVl0008デフォルトの名無しさん
2014/05/24(土) 03:26:05.27ID:4Shar09G0009デフォルトの名無しさん
2014/05/24(土) 15:27:47.49ID:h2zYt45cPythonで以下のようになる論理的な説明を誰かお願いします
a = [] の時
bool(a)はFalse
all(a)はTrue
0010デフォルトの名無しさん
2014/05/24(土) 15:35:11.07ID:Gl+D6mpuhttp://docs.python.jp/3/reference/expressions.html#boolean-operations
ブール演算のコンテキストや、式が制御フロー文中で使われる際には、
以下の値: False 、 None すべての型における数値の 0、空の文字列、
空のコンテナ (文字列、タプル、リスト、辞書、集合、凍結集合など) は
偽 (false) であると解釈されます。それ以外の値は真 (true) であると解釈されます。
http://docs.python.jp/3/library/functions.html#all
iterable の全ての要素が真ならば (もしくは iterable が空ならば) True を返します。
0011デフォルトの名無しさん
2014/05/24(土) 15:57:29.60ID:fV/1J88J前提がFalseなら、all自体はTrue
0012デフォルトの名無しさん
2014/05/24(土) 16:02:45.13ID:hlo3j/USTrue
0013デフォルトの名無しさん
2014/05/24(土) 18:03:32.61ID:DFMQ1RaY0014デフォルトの名無しさん
2014/05/24(土) 22:07:14.68ID:GtRtgzPJこれとこれを読もう
http://docs.python.jp/3.3/reference/datamodel.html#object.__bool__
http://docs.python.jp/3.3/library/functions.html#all
allはイテラブルにFalseが含まれていたらFalse。それ以外はTrue
だから空イテラブルはTrueになる
0015デフォルトの名無しさん
2014/05/24(土) 22:38:14.54ID:QeWtQmqdそれだと all([""]) は True を返すように聞こえる
0016デフォルトの名無しさん
2014/05/24(土) 23:08:01.90ID:GtRtgzPJ""はFalseだから問題ないような……
でもちょっとわかりにくかったか。すまん
リンク先にコードあるし俺の一言は蛇足だったかも
0017デフォルトの名無しさん
2014/05/24(土) 23:19:44.40ID:4Shar09Gなんで
all([""]) が True を返す
と思ったの?
0018デフォルトの名無しさん
2014/05/24(土) 23:46:17.80ID:QeWtQmqdだからドキュメントでは "Return True if bool(x) is True for all values x in the iterable." なんて
言い方をしているわけで
0019デフォルトの名無しさん
2014/05/25(日) 00:22:53.24ID:Bq1986NCNoneってNullじゃないよね
None == "\0" # False
0020デフォルトの名無しさん
2014/05/25(日) 03:26:50.63ID:Vi+cJlmc何のプログラミング言語か分からないけど、Nullと"\0"は意味が違う
Nullはヌルポインター、"\0"はヌル文字を含む文字列を表していると思われる
PythonだとNoneは値がないことを表す値、"\0"はヌル文字を含む長さ1の文字列を表している
比較したときに暗黙の型変換は起こらないので真にならない
0021デフォルトの名無しさん
2014/05/25(日) 03:51:31.83ID:Vi+cJlmcPythonは強い動的型付けを取り入れていて、基本的に暗黙的な型変換はしないけど
真偽値が期待される場所では積極的にbool型への暗黙的な型変換が働く
0022デフォルトの名無しさん
2014/05/25(日) 07:00:43.18ID:UhrsCUPWboolは引数全体を評価する
↓
空iterable全体はFalseに変換されるので、bool([])はFalse
allは引数のiterableの各要素を評価する
↓
空iterableの要素は「存在しない」のでbool値に変換できず、TrueでもFalseでもない ※ココ重要
↓
「要素にFalseが含まれていたらFalse、それ以外はTrue」というallの仕様により、all([])はTrue
0023デフォルトの名無しさん
2014/05/25(日) 10:26:15.68ID:Wcl6d7YS↓
空iterable全体はFalseに変換されるので、bool([False])はFalse
0024デフォルトの名無しさん
2014/05/25(日) 10:28:06.48ID:Wcl6d7YSTrue
>>> all([False])
False
>>> all([])
True
>>> bool([True])
True
>>> bool([False])
True
>>> bool([])
False
0025デフォルトの名無しさん
2014/05/25(日) 11:22:27.34ID:UhrsCUPWallを「iterableの全ての要素がTrueであり、かつ空でない」ことの
チェックに使うと怪我をするということですね。
けっこうクリティカルな業務に使っているので肝に銘じます。
0026デフォルトの名無しさん
2014/05/25(日) 11:33:03.86ID:sSegk3tB使うな危険とか
はまりどころとか
まとめてるサイトってある?
0027デフォルトの名無しさん
2014/05/25(日) 15:25:44.87ID:t1V1lNcr以前見かけた気がするのですが、検索してもでなくて
0028デフォルトの名無しさん
2014/05/25(日) 18:35:43.80ID:cec37mBkcon.execute(u'select rowid, * from db where %s LIKE "%s"' % (req,word))
0029デフォルトの名無しさん
2014/05/25(日) 23:37:27.54ID:QUzAifTx0030デフォルトの名無しさん
2014/05/26(月) 01:12:17.11ID:Dq9xHmpl0031デフォルトの名無しさん
2014/05/26(月) 14:13:27.92ID:Egp27eY/これどういう意味ですか?
print()ってかけば2と3両方共対応できると思うんですがこれは何の話ですか?
0032デフォルトの名無しさん
2014/05/26(月) 14:14:33.99ID:Egp27eY/フォローしてない人のリプは読まない人っぽいのでこちらで質問させていただきました
0033デフォルトの名無しさん
2014/05/26(月) 14:30:35.08ID:2JzRM12h0034デフォルトの名無しさん
2014/05/26(月) 17:32:32.53ID:ssj5W0pD>>> print("a", "b", "c" , sep="|")
SyntaxError: invalid syntax
>>> from __future__ import print_function
>>> print("a", "b", "c" , sep="|")
a|b|c
0035デフォルトの名無しさん
2014/05/26(月) 17:41:20.01ID:ssj5W0pD補足しとくと
2.xのprint()はprint文に(1, 2, 3)っていうタプルを渡してるだけ
>>> print ("a", "b", "c")
('a', 'b', 'c')
0036デフォルトの名無しさん
2014/05/26(月) 17:43:24.65ID:ssj5W0pD0037デフォルトの名無しさん
2014/05/26(月) 17:43:24.78ID:2JzRM12h0038デフォルトの名無しさん
2014/05/26(月) 22:55:36.43ID:EPKtpGZsprint("{}{}{}".format(1,2,3))って書けば両方対応できると思うんだけど
0039デフォルトの名無しさん
2014/05/27(火) 00:23:30.18ID:b99/t4fc0040デフォルトの名無しさん
2014/05/27(火) 00:29:24.93ID:GgBMhOaf0041デフォルトの名無しさん
2014/05/27(火) 00:34:50.21ID:GgBMhOafgetattr(object, 'name')
0042デフォルトの名無しさん
2014/05/27(火) 00:46:24.20ID:GgBMhOafphpのUser::$nameはpythonでどう書いたらいいでしょうか
0043デフォルトの名無しさん
2014/05/27(火) 00:47:11.14ID:PXeOjUeplambda に渡せるのは稀に便利
0044デフォルトの名無しさん
2014/05/27(火) 01:52:08.30ID:ngkX6cAiPython 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ドキュメントぐらい読めよ
0046デフォルトの名無しさん
2014/05/27(火) 01:57:36.43ID:fDLDDGc50047デフォルトの名無しさん
2014/05/27(火) 02:54:09.71ID:vwK3Zsni0048デフォルトの名無しさん
2014/05/27(火) 21:45:14.93ID:JvmXnqEP0049デフォルトの名無しさん
2014/05/27(火) 21:53:35.90ID:xZjfoO9Yもし両対応させるなら print_function ひっぱってきたほうが良さげか
0050デフォルトの名無しさん
2014/05/30(金) 14:49:42.26ID:C8E1zgtwずっと使ってましたがどうやって複数バージョンを入れるのが良いのでしょうか?
0051デフォルトの名無しさん
2014/05/30(金) 15:00:01.82ID:C8E1zgtw0052デフォルトの名無しさん
2014/05/30(金) 16:21:46.60ID:6WJTDNe50053デフォルトの名無しさん
2014/05/30(金) 16:47:16.55ID:lri6NfmJpyenvは異なるバージョンをインストールできるし管理できる。
特定のバージョンしか使わないならvirtualenvで環境わけるだけでいいだろう
virtualenvとpyenvを比較する話ではないと思うんだけどtwitterでは何故同一で考えている人が多いのか
0054デフォルトの名無しさん
2014/05/30(金) 17:06:29.11ID:6WJTDNe5virtualenvでも別のバージョンの環境つくれるけど、それを知らない人がpyenv使ってるのか
0055デフォルトの名無しさん
2014/05/30(金) 17:48:41.56ID:lri6NfmJ0056デフォルトの名無しさん
2014/05/30(金) 20:28:31.50ID:DRgNqQjq「そのツイートした奴に聞けよ」が正解
0057デフォルトの名無しさん
2014/05/30(金) 20:36:47.48ID:DRgNqQjqバージョン違うPythonを使ってるなら、それぞれにvirtualenvを入れてください
スクリプトにバージョンのサフィックスをつけるようにしましたので、衝突しません
って書いてあるけど
0058デフォルトの名無しさん
2014/05/31(土) 00:14:16.80ID:FdQ8Co+W0059デフォルトの名無しさん
2014/05/31(土) 18:57:13.02ID:XGX5yLkH0060デフォルトの名無しさん
2014/05/31(土) 21:20:19.81ID:5YDfME91dev@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+EM0062デフォルトの名無しさん
2014/05/31(土) 21:23:24.28ID:AMs2U+EM0063デフォルトの名無しさん
2014/05/31(土) 21:29:24.15ID:FdQ8Co+W人の話をまず正確に解釈しろ
0064デフォルトの名無しさん
2014/05/31(土) 22:37:23.91ID:xM8SOXBnrowにはユニコード型の文字列が含まれています。
以下の行だとエラーになりますが、
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:CxiaUoc1BeautifulSoupで特定の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手元でコピペして試してみたらちゃんとurl出力されたよ
has_key('href')じゃなくてhas_attr('href')使えって警告は出たけど
0067デフォルトの名無しさん
2014/05/31(土) 23:43:44.85ID:1umWzhcx0068デフォルトの名無しさん
2014/05/31(土) 23:50:56.69ID:Na4FnqiVpyenvってactivateするんだっけ?もしかしてこれはvirtualenvの話?
006964
2014/06/01(日) 00:09:19.66ID:Bz5RJ4Oyユニコード型はもう1階層深いところでした。
上の質問は忘れてください。
0070デフォルトの名無しさん
2014/06/01(日) 00:47:09.03ID:LDAZuhZwそれは貴方自身で試して確認すべきことですよ
0071デフォルトの名無しさん
2014/06/01(日) 02:32:20.18ID:aUREUHMVもしそういった仕組みが無ければみなさんその辺りは自分で対策されているのでしょうか。
0072デフォルトの名無しさん
2014/06/01(日) 02:35:46.44ID:R+1cviYt0073デフォルトの名無しさん
2014/06/01(日) 02:37:36.80ID:NChbU919http://nozomi.2ch.net/test/read.cgi/php/1358570953/
0074デフォルトの名無しさん
2014/06/01(日) 08:48:04.15ID:aUREUHMV0075デフォルトの名無しさん
2014/06/01(日) 09:03:28.76ID:aUREUHMV0076デフォルトの名無しさん
2014/06/01(日) 10:46:15.46ID:QQAPK+BU0077デフォルトの名無しさん
2014/06/01(日) 12:00:06.83ID:UelQ8/AMいや、やってはいるんだけどマジで何もできない初心者用の言語なのかどうか知りたくて
0078デフォルトの名無しさん
2014/06/01(日) 12:03:00.81ID:lZbdDAn50079デフォルトの名無しさん
2014/06/01(日) 12:41:04.58ID:UelQ8/AMどっかの紹介に書いてあった
0080デフォルトの名無しさん
2014/06/01(日) 12:42:29.55ID:SbfJTSavどのレベルまで使えるってどういうこと?
商売にもなるし、趣味でも使えるよ
実装効率やサーバーの稼働率や利益率まで考えろって事?
0081デフォルトの名無しさん
2014/06/01(日) 12:49:53.35ID:+GsRp3YP(あくまでJavaとかC++とかと比べれば比較的、といった意味で)
0082デフォルトの名無しさん
2014/06/01(日) 13:01:02.58ID:+GsRp3YP今ならScratchかな?
0083デフォルトの名無しさん
2014/06/01(日) 14:05:20.35ID:iIEd2k720084デフォルトの名無しさん
2014/06/01(日) 18:50:32.51ID:5mIsRiq3mail: [sage]
0085デフォルトの名無しさん
2014/06/01(日) 19:35:42.10ID:MBRAGf+zwebできのこるためにpython勉強してるのは間違えのような気がしてきたんですがどうなのか教えてください
0086デフォルトの名無しさん
2014/06/01(日) 19:50:06.92ID:IBW92nB50087デフォルトの名無しさん
2014/06/02(月) 00:43:01.71ID:s/t3maigPHPだってJavaだってそれだけじゃ話にならん
0088デフォルトの名無しさん
2014/06/02(月) 00:51:38.17ID:oyNEP+R50089デフォルトの名無しさん
2014/06/02(月) 05:59:18.15ID:Arg7CftR生き残る為ってほど重要ならRubyにしとけば?
日本でだけはweb = Rubyみたいだから。
0090デフォルトの名無しさん
2014/06/02(月) 07:23:03.34ID:/nxod1Xxhttps://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たまにrubyがあってpythonはめったにない
0093デフォルトの名無しさん
2014/06/02(月) 10:16:55.64ID:yv/nHUfZ0094デフォルトの名無しさん
2014/06/02(月) 17:05:49.63ID:cqLxz4Q60095デフォルトの名無しさん
2014/06/02(月) 17:10:59.87ID:cqLxz4Q6>>66
レス遅くなってすいません、サイト上からはどうも抽出できなかったです。
で結局、昨日一日はまった挙句、今日からlxmlに変えて勉強しなおそうと思っているんですが
もし、BeautifulSoupで特定のdiv以下のaタグのみを抽出できる方法知っていたらご教示していただきたいです。
009695
2014/06/02(月) 19:02:59.91ID:cqLxz4Q6aタグ全て抽出しても、狙いのタグは抽出できていませんでした。
これは別の問題ですね。お騒がせしました。
0097デフォルトの名無しさん
2014/06/02(月) 19:04:52.31ID:seA5qCd2value = 20
tmp = value # tmpにvalueの現在の値をコピーした後、
value += 5 # valueに処理を行います
value = tmp # valueの状態を以前の状態に戻したいのですが
tmpの値が変わっている為以前の状態に戻らないです。
理屈は分かっていますが、どう変えるのが一番簡単でしょうか?
0098デフォルトの名無しさん
2014/06/02(月) 19:11:17.00ID:BvPtciGS俺のPythonだとtmpは20のままだよ
0099デフォルトの名無しさん
2014/06/02(月) 20:02:31.19ID:X19dTLG/0100デフォルトの名無しさん
2014/06/02(月) 20:04:38.75ID:BvPtciGS浅いコピー・深いコピーとか意味わかんないし
Cのポインタが嫌だからこっちに逃げてきたのだし
0101デフォルトの名無しさん
2014/06/02(月) 20:12:49.63ID:seA5qCd2ごめんなさい、確かにそうですね。
ちょっと勘違いしてました。
>>> 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:XrfIxkeAtmp = value.copy() か tmp = value[:]
0103デフォルトの名無しさん
2014/06/02(月) 20:30:51.09ID:4C3VTH4i>>101
近年の言語では、「ポインタの値渡し」とか、「参照の・・・」とかという
概念からは避けて通れないので、理解してみると技術の幅が広がるよ
むしろC/C++のポインタと参照の方が、親切だと思うときはある
■ このスレッドは過去ログ倉庫に格納されています