Pythonのお勉強 Part56

■ このスレッドは過去ログ倉庫に格納されています
2018/02/24(土) 09:07:21.39ID:5jzCjhzv
Pythonオフィシャルサイト
http://www.python.org/

■前スレ
Pythonのお勉強 Part55
https://mevius.5ch.net/test/read.cgi/tech/1513919747/
2018/03/14(水) 18:25:01.98ID:n/nwjd00
さすがゲロウンコをひねり出す先生はおっしゃることが一味ちがうw
161質問者です(>>148 >>151)
垢版 |
2018/03/14(水) 19:14:23.24ID:xz9Rv2ZT
>>158 >>159先生ありがとうございます!
自分は正規表現が分かってないので、勉強します。

なお、>>156は自分ではありません。
2018/03/14(水) 21:26:47.25ID:y6/DiST3
>>155
アホ過ぎだから、アホ過ぎもユーザー対象にしているpythonなんだよ
他の言語では相手にされないかからね
と言うことで、pythonには俺や>>148のようなアホ過ぎが非常に多い。
でも、アホ過ぎもユーザー対象だからと言っても、見ての通り
アホ過ぎでもプログラムが出来るわけではない。
163154
垢版 |
2018/03/15(木) 01:11:18.75ID:NnpmsWbw
script[@data-hypernova-id]

まず、CSS セレクターでスクレイピングしてから、データを取得しろ
164154
垢版 |
2018/03/15(木) 01:14:00.64ID:NnpmsWbw
>>163
は、間違い

xpath なら、//script[@data-hypernova-id]

CSS セレクターなら、script[data-hypernova-id]
165154
垢版 |
2018/03/15(木) 01:32:37.48ID:NnpmsWbw
HTMLの仕様上、script要素内の<!--はコメントの開始とは解釈されないのでコメントノードも存在しませんが、
XHTMLならコメントの開始と解釈されコメントノードが生成されるはずです

実際Firefox 3、Safari 3.0.4 Beta、Opera 9.27/9.50でXHTMLのscript要素内のコメントノードを取得できました

XHTMLをtext/htmlで読み込んでいませんか?
多くのブラウザではapplication/xhtml+xml、applicatoin/xml、text/xmlで読み込まないとXHTMLとして扱ってくれません

あるテキストを含むコメントノードを取得するXPath
https://os0x.g.hatena.ne.jp/os0x/20080620/1213987223

>>154
で作ってる時に、<!-- コメント -->
この部分が、HTML では、どうしてもコメントとして取得できなかったが、
ようやく理由がわかった
2018/03/16(金) 07:50:15.92ID:TOiZPWj8
アホな質問かもしれませんが教えて下さい。
色々ライブラリがあるみたいですが、あるライブラリのヘルプみたいなそもそもの使い方、説明っていうのはどこに載っているのですか?
2018/03/16(金) 11:01:38.18ID:6YN3zoy5
>>166
そのライブラリの公式サイトとかライブラリを使ってる人のブログとか
英語ばっかだからって諦めちゃダメよ
あと、help()でも見られる
168デフォルトの名無しさん
垢版 |
2018/03/16(金) 12:51:36.68ID:kXpU5L3F
Jupyter Notebook 使い難い
ブラウザがGUIになっているなんて
2018/03/16(金) 12:59:52.28ID:CkZdro5L
使いどころ間違えてるんだよ。
エディタの替わりに使うもんじゃないぞ。
2018/03/16(金) 13:15:01.04ID:kXpU5L3F
>>169
じゃあ何に使うんだ?
171デフォルトの名無しさん
垢版 |
2018/03/16(金) 14:34:15.66ID:m5Cyk9W0
AtomでHydrogen かemacs でEIN
172デフォルトの名無しさん
垢版 |
2018/03/16(金) 14:41:53.77ID:3ma6aQHv
いやなら無理に使わなくていいのに
2018/03/16(金) 14:55:50.72ID:TOiZPWj8
>>167
ありがとう。
2018/03/16(金) 16:46:41.63ID:kXpU5L3F
>>169
Jupyter の使い所を言ってみろよ
2018/03/16(金) 17:15:49.75ID:WyQDIky+
>>174
あれは逐一コードとその実行結果を表示&記録するツール
旨いこと使うと後々便利らしいけど、がーっと.py書く為のツールじゃないっぽい
2018/03/16(金) 17:45:01.56ID:ika+QnZx
シェルに近いのか
2018/03/16(金) 17:50:54.61ID:WyQDIky+
シェルつーか、pythonが実行できるonenoteの機能縮小版みたいな感じかな、、、

最終的なコードや結果じゃなくて、途中の流れを記録して他人に見せたり自分で見返したりするツール
2018/03/16(金) 18:05:25.27ID:CkZdro5L
R言語の環境がそういう機能持っててアカデミック分野で便利に使われてたので同用途でパクったのが始まりじゃないかな。お前らはいっこもアカデミックではないので使わなくてよろしい。
2018/03/16(金) 19:22:43.08ID:9oklY2zP
>>178
標準開発環境がそれとはお粗末だ
2018/03/16(金) 19:35:22.11ID:CkZdro5L
はぁ…
Rでモデル検証とかやってる人が何を開発すると言うのか。
認知できないんだからお前にそういう世界の存在は分からない。
開発環境としてお粗末?そりゃそうだ開発環境じゃないんだから。
ごちゃごちゃ言わないで使わなければいいんだよ。
お前には必要なものでも便利なものでもないんだから。
2018/03/17(土) 02:50:31.77ID:apINGZdL
下記のようなコードがあります。
変数 i が変数 j より大きい場合だけprintを実行したいのですが
ifで条件に合う場合だけprintを実行させると
無駄な計算が増えて時間がかかってしまいます。
何か良い方法はありませんでしょうか?


for i in range(1000000):
____for j in range(1000000):
________print(i*ii)
2018/03/17(土) 03:02:07.32ID:sNNOzkAn
____for j in range(0, i)
2018/03/17(土) 03:02:17.30ID:+q1jwFei
for j in range(i+1, 1000000):
2018/03/17(土) 03:02:49.03ID:+q1jwFei
ごめん。逆だった
2018/03/17(土) 03:12:25.90ID:apINGZdL
お二方、ありがとうございました。
こんな簡単にできるんですね!
2018/03/17(土) 03:16:55.41ID:sNNOzkAn
こういう技を使うと論理や符号の勘違いでバグ起こしやすいから、素直にif文使ったほうがいい
Pythonでどうしても高速化したいんなら、CupyでGPU演算するとか、Cythonでバイナリ化するとか考えるべき
2018/03/17(土) 03:24:04.32ID:apINGZdL
そういうもの何ですか。
バグに気をつけます。。。
CupyとCython勉強してみます!
2018/03/17(土) 04:46:34.91ID:WhczEXZ3
>>187
>CupyとCython勉強してみます!
>>181のようなハイレベルのことをする人はpythionの勉強よりCupyとCythonの勉強したほうがずっと良いよ
2018/03/17(土) 04:49:20.94ID:apINGZdL
ありがとうございます。
Pythonの高速化に興味があるので勉強してみます。
2018/03/17(土) 07:47:02.84ID:6PN0ctuZ
CupyとかCythonの前に基本的なアルゴリズムの勉強したほうがいいだろ..
2018/03/17(土) 08:14:51.98ID:yHhMlxWi
計測もしてないのに高速化とか害悪以外の何者でもない。
あとそれ絶対早くなってないから。
192デフォルトの名無しさん
垢版 |
2018/03/17(土) 09:05:54.76ID:GI3013Uv
>>191
たしかに
これに取り組もうと思った動機が謎

三流の講師が宿題にでも出したのかな
2018/03/17(土) 09:56:53.44ID:Y0/A+N6A
>>186
> 論理や符号の勘違いでバグ起こしやすい
if でも一緒だろ
2018/03/17(土) 11:00:51.63ID:+q1jwFei
お手軽に高速化ならpypyおすすめ。
コードを一切変更せず、だいだい7倍くらい速くなる。
ただし、外部ライブラリで対応してないのもあるので、要注意。
あと、高速化では何より、実行時間を測定して、ボトルネックを特定することが重要。
IDEにSpyder使うと、プロファイラを簡単に使えていいよ。関数ごとの実行時間や呼び出し回数を簡単に表示できる。
本気で高速化するなら、C++で
2018/03/17(土) 11:27:58.45ID:HNJD2AYM
名前がな…
pypy
2018/03/17(土) 12:54:49.84ID:FfenXMB8
>>196
ワイ「Aさんって、pypy使ったことある?」

A(女性)「・・・」
2018/03/17(土) 13:14:34.74ID:gMO2T4Qb
早く春休み終わってほしいな
2018/03/17(土) 13:17:58.27ID:+q1jwFei
pypy = (py)^2
= py自乗
= py square
と呼ぶことにしよう
2018/03/17(土) 18:50:53.76ID:1qytDG5e
調べて無いけどpythonのforにはexit forって無いの?
2018/03/17(土) 19:02:47.92ID:4bFwFij6
>>199
breakじゃだめ?
2018/03/17(土) 19:11:52.25ID:tXhsWaKl
>>199
Pythonは他の言語とは違い超低脳でも使えるようにした言語
超低脳はそんな難しいのはつかえないから入れる意味なし
202デフォルトの名無しさん
垢版 |
2018/03/18(日) 03:58:32.91ID:HsPk0IuW
>>200
exception投げろ
203デフォルトの名無しさん
垢版 |
2018/03/18(日) 16:15:57.38ID:0NXI2kIO
すいません、教えてください
ファイル名と場所を取得したら
C:\\Users\\honya\\hoge\\hohe.jpgというような感じで
\\が二個になってしまい次に使うときは文字列で外部にもっていくので
¥一個にしたいです。
どうしたらいいですか??
記号なので検索しても検索自体がうまくいかなくて困ってます
2018/03/18(日) 16:22:48.55ID:DddemBtp
>>203
エスケープシーケンス path
でググってください
2018/03/18(日) 16:53:29.03ID:D5h2N+SG
やっぱりくだスレ必要だね
206203
垢版 |
2018/03/18(日) 17:07:55.67ID:0NXI2kIO
>>204
ありがとうございます
検索してみrて
\\になっているパスを↓のようにして
pasu=pasu.replace(r'\\', r'\')
みたんですが駄目でした・・・
もうちょっとヒントをお願いします・・・
207デフォルトの名無しさん
垢版 |
2018/03/18(日) 17:27:03.45ID:gweQjn0m
>>206
pasu=pasu.replace('\\', '/')
208デフォルトの名無しさん
垢版 |
2018/03/18(日) 17:32:05.74ID:0NXI2kIO
>>206
ありがとうございます
説明不足ですいません
外部で使うので/だとだめで
¥じゃないと受け付けてくれないんです
209203
垢版 |
2018/03/18(日) 17:32:59.30ID:0NXI2kIO
>>207
ありがとうございます
説明不足ですいません
外部で使うので/だとだめで
¥じゃないと受け付けてくれないんです
2018/03/18(日) 17:38:57.70ID:SSkDCIit
バックスラッシュが特別な意味を持たない外部の方でやればいいだろ
211203
垢版 |
2018/03/18(日) 18:02:13.39ID:0NXI2kIO
>>210
それができてたらほんと良いですよね、、、ほんとすいません
2018/03/18(日) 18:07:48.80ID:3t93zsRH
>>206
path = path.replace('\\\\', '\\')
じゃいかんのか?
2018/03/18(日) 18:12:25.93ID:eTRcfGVx
そもそも外部って何やねん、コードで示せ、コードで! エラーも載せろや
2018/03/18(日) 19:03:37.68ID:5YCBO0rZ
>>205
だれかがたててくれたっぺ
くだすれPython(超初心者用) その37
http://mevius.5ch.net/test/read.cgi/tech/1521271945/
2018/03/18(日) 21:25:06.31ID:SSkDCIit
>>211
外部でできないなら、どうやって1個とか2個とか確認してるんだ?
2018/03/18(日) 21:54:56.65ID:EVM8spxN
まあそもそも¥は一つで、表示上2つになってるだけなんだけどさ
それは既に指摘されてるし理解しない方が悪いよね
217デフォルトの名無しさん
垢版 |
2018/03/18(日) 22:33:21.42ID:9qr4sOuJ
tkinter ボタンを押しても処理が実行されない?


Sample01(user1)を実行したら、端末に出力結果が表示される想定なのですが、できてません。何処が悪いのでしょうか?

https://teratail.com/questions/118018
218デフォルトの名無しさん
垢版 |
2018/03/18(日) 22:42:51.97ID:9qr4sOuJ
どうも、ありがとうございました。
2018/03/18(日) 23:10:37.62ID:JFJ3EKTR
Ruby では、\ の代わりに、/ を使う。
C:/Users/Owner/Documents/

Ruby では、p, inspect など、デバッグ用関数で、
インタープリタ内部の表現を見ると、文字化けなどしていても、
puts などで外部出力すると、正常に動く

str = "a"
str.inspect #=> "\"a\""
" がエスケープされて、\" と表示される

str.to_s #=> "a"

内部表現では、\ でエスケープされて、\\ と表示されていても、
外部出力すれば、\ になるのだろう

つまり、君の気のせいw
2018/03/18(日) 23:18:18.93ID:kMXsuFsK
「Rubyでは」って君の名前?
2018/03/19(月) 01:29:38.00ID:whA1lTOb
pythonの入門サイトってjupiter推してるところ多いよね
イカれてるわ
2018/03/19(月) 03:19:44.00ID:g83+7/NF
python2でも3でも動きませんでした。他の方お願いします
2018/03/19(月) 03:27:08.48ID:v+iv8pOg
[0,0,0,1,1,1]

このような配列の並び替えたものを全て書き出したいのですが(重複なしで)
関数を使って簡単にできる方法はありませんでしょうか?
2018/03/19(月) 03:37:21.53ID:Nrl75llW
set使えば良いんじゃないの
2018/03/19(月) 03:39:21.03ID:v+iv8pOg
すいません。
setとどのように使うのでしょうか?
2018/03/19(月) 04:18:31.72ID:qULSWWAN
>>223
import itertools
print(list(itertools.permutations([1, 2, 3])))
2018/03/19(月) 05:09:10.23ID:v+iv8pOg
>>226
ありがとうございます。
その関数は知っていたのですが、
同じ数字を含む場合(下記のように書き換えた場合)
重複がしょうじます。。。

import itertools
print(list(itertools.permutations([0, 0, 1, 1])))

これを回避する方法はありませんでしょうか。。。
2018/03/19(月) 05:14:21.24ID:ARfIDF7Q
list(の代わりにsorted(set(
2018/03/19(月) 05:23:23.35ID:v+iv8pOg
ありがとうございます。
できました。
2018/03/19(月) 09:19:15.15ID:OIWdTKYf
sortなんてする必要なかんべ
231203
垢版 |
2018/03/19(月) 21:45:49.03ID:xtdCFGmz
色々ありがとうございます、できました。
お騒がせしてすいませんでした
助かりました。
232デフォルトの名無しさん
垢版 |
2018/03/20(火) 00:50:31.26ID:J0Id73NT
礼なら俺に言うんだな、あばよ。
2018/03/20(火) 01:01:31.56ID:8EzEDPku
初歩的な質問や話題は以下で↓
くだすれPython(超初心者用) その37
https://mevius.5ch.net/test/read.cgi/tech/1521271945/
2018/03/20(火) 01:45:04.11ID:PjVFN34O
>>232
せめてお名前を
2018/03/20(火) 01:49:09.88ID:byMmitjf
>>232
待って、行か臭い
2018/03/20(火) 02:17:47.95ID:/v3Zwt77
柳沢慎吾
237デフォルトの名無しさん
垢版 |
2018/03/20(火) 07:23:53.67ID:rmVwB3Ur
>>201
マシン語は天才でないと出来んのか?
2018/03/20(火) 21:34:43.49ID:TCtdGmJW
毎回クリーンなpythonをインストールするときに迷うんだけど、
pyenvでAnacondaごと新しく環境作るのか、pyenvの中の1つのAnacondaの中に複数の環境作るのか

どっちが良いのかな?
今はpyenvで複数環境管理してるけど無駄にデータ容量取ってたりするのか不安…
2018/03/20(火) 22:51:07.41ID:kMUzLoBL
>>238
こんなとこで聞いても不安は払拭されないからさっさとenvフォルダの容量調べて見ようよ。
2018/03/20(火) 23:13:50.12ID:90lpMvmP
>>239
pyenvでだと
Anaconda2 2.7GB
Anaconda3 5.2GB
だった
conda createだとどうなんだろ?
2018/03/21(水) 00:34:45.27ID:e7ByloC5
GUIのAnaconda Navigatorで仮想環境作ると楽でいいね
PIPじゃないと入れられないモジュールを使う時は、Anaconda3の中で別の仮想環境作って管理してる
2018/03/21(水) 00:44:53.36ID:G7nfsc4K
winpythonってどうなの?
レジストリ汚さずに済むみたいだけど
243デフォルトの名無しさん
垢版 |
2018/03/21(水) 03:54:54.83ID:/DQe9S8X
普通にPythonのインストーラから入れてる
そこからvenvでクリーンな仮想環境もつくれるし、シンプルで楽かな
244デフォルトの名無しさん
垢版 |
2018/03/21(水) 08:02:40.57ID:pPz9oHRt
そもそもいくつも同じような環境作る必要なんかないんやで?
2018/03/21(水) 09:03:56.85ID:wH+bs2Zv
>>242
多分レジストリは汚さないと思うけど、、
むしろレジストリ汚すpythonモジュールってあるの?

まぁ、ライセンス的にユルユルな上にxrcデザイナーも使えるので割と便利だけど、wxpythonのxrc関連の実装はちょいちょいバグがある。
そう言えば最新版で再検証してないな、、、暇見つけてやっとくか。
2018/03/21(水) 09:48:26.14ID:g/DZS1kr
元コメで聞いてるのはwxpythonじゃなくてwinpythonだよ
247デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:18:53.08ID:9aBHV4ji
>>242
超おすすめ
2018/03/21(水) 10:34:11.84ID:wH+bs2Zv
>>246
うわ、、ごめん、、、
2018/03/21(水) 11:56:41.70ID:K+POHQyd
>>248
という事は使うならpyqtがオススメですか?

ネットにあるのは4の情報ばかりで
5だと少し書き換えないと動かない事があって
手が出しにくいです
250デフォルトの名無しさん
垢版 |
2018/03/21(水) 12:11:39.14ID:MTE55bx9
5になって使うのやめた人は多い
2018/03/21(水) 17:10:34.93ID:0m3Rfatq
cpython(オリジナルのWindows実装)のインストーラーからインストールして、
pyでモジュールを拾ってるんだけど、
他の実装と比べた時、何かメリット・デメリットが有るのかな?
252251
垢版 |
2018/03/21(水) 17:12:27.44ID:0m3Rfatq
失礼
モジュールを拾うのは py じゃなくて、pip だねw
2018/03/21(水) 17:50:34.23ID:TuOnBZsZ
お前らエディタ何使ってる?
2018/03/21(水) 18:07:03.56ID:WXWDX/M/
hidemaruとsakuraエディタ
2018/03/21(水) 18:15:58.20ID:ZGJmhAHm
>>253
xyzzy
2018/03/21(水) 18:17:23.19ID:ww7O5zDA
eclipse+PyDev
2018/03/21(水) 18:43:35.53ID:ZIWF0mlj
vimかPyCharm
2018/03/21(水) 19:10:36.32ID:Wv1GClK5
vscode使ってる
pycharmはいつからか起動時に毎回スケルトン?だかをチェックしててHDDガリガリしてて怖くて消した
259デフォルトの名無しさん
垢版 |
2018/03/21(水) 19:44:18.74ID:LD9a0642
pycharm
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況