X



Pythonのお勉強 Part56
■ このスレッドは過去ログ倉庫に格納されています
0124デフォルトの名無しさん
垢版 |
2018/03/10(土) 22:03:18.26ID:CYNPOxqI
PTVSは先日新しいIntelliSenseが正式にアナウンスされて
ライブラリデータベースが不要になったみたいだけど
未だに試験的で型不明が増えたり一部退化しとるな

あとはCondaサポートが追加されたり…
0125デフォルトの名無しさん
垢版 |
2018/03/10(土) 22:47:27.80ID:uUYTpCvs
Anacondaについてるspyderをそのまま使ってるけどpycharmの方がいいのかね。
好き好きなんだろうけども、ある程度使って比べないとメリットデメリット分からんからなあ。
0126デフォルトの名無しさん
垢版 |
2018/03/10(土) 23:09:45.15ID:vFw8BYES
自分で考えなくてもAIがなんかいい感じにしてくれるんでしょう?
というのが増えそう
0128デフォルトの名無しさん
垢版 |
2018/03/11(日) 01:10:04.76ID:HogP+vFk
>>126
将来はそんな感じになって、個人が作る趣味レベルのソフトはAIでプログラムを
作るになるんだろうな。10年ぐらい先には、趣味レベルものを作るときは
気合を入れてプログラミング言語覚える必要ないになっていたりしてな。
0129デフォルトの名無しさん
垢版 |
2018/03/11(日) 02:34:21.01ID:hpuVB5+/
10年前にも、そのまた10年前にも言われてたなそれ。
さらにそのまた10年前にも略
0130デフォルトの名無しさん
垢版 |
2018/03/11(日) 10:43:54.31ID:wWFsao1Q
簡単なものは作れるだろうけど、AIも人間がプログラムして動いてるんだから、いくら学習しても人間を越えることはないだろうな
工夫ってのが出来ないし
0131デフォルトの名無しさん
垢版 |
2018/03/11(日) 10:53:20.08ID:zWe+i43K
人間が理解不能なものは作れるんじゃね
それが有効に動くものなら理解不能のままでも使えばいい
0133デフォルトの名無しさん
垢版 |
2018/03/11(日) 11:11:10.40ID:u0Fc0bsI
そのAIが作ったプログラムが違法アップロードとかしたら誰が責任取るんだろ
AIの製造元? AIに指示したユーザー?
0136デフォルトの名無しさん
垢版 |
2018/03/11(日) 11:48:21.93ID:wrJvYVnh
チェスのディープブルーはわりとごり押しだもんな。昔ながらというか。
囲碁のgoogle AlphaGoならまた違うんだが。
0138デフォルトの名無しさん
垢版 |
2018/03/11(日) 12:09:49.19ID:8JC0BCod
>>135
AI同士が撃ち合いして人間が把握していない手はあるんだろ
0139デフォルトの名無しさん
垢版 |
2018/03/11(日) 12:10:09.57ID:93lmuZEG
>>135
アホなの?
人が考えられないような打ち方を生成するなんてド素人でもできるわ
難しいのはそのなかから有効な手を絞り込む方
0140デフォルトの名無しさん
垢版 |
2018/03/11(日) 12:11:36.51ID:8JC0BCod
いよいよ2ともお別れか
0141デフォルトの名無しさん
垢版 |
2018/03/11(日) 13:02:26.58ID:BorRgPy6
たまに10年前の技術を前提にカキコしてる人がいるのは5chが時空を超えて繋がっているからである。
0144デフォルトの名無しさん
垢版 |
2018/03/11(日) 20:16:20.99ID:1mhcZmSW
rubyいつ流行ったっけ
0145デフォルトの名無しさん
垢版 |
2018/03/11(日) 20:30:10.28ID:lvju0XX+
10年かもう少し前くらいには
国産オブジェクト指向スクリプト言語や
言うてお前らみたいなんが飛びついとったで
0148デフォルトの名無しさん
垢版 |
2018/03/13(火) 21:13:11.46ID:hWh8GdfX
BeautifulSoupで、bidの107.206を抽出する方法はある?

s = '<!--{"rates":[{"code":"USDJPY","name":"米ドル/円","bid":107.206,"ask":107.207,"high":107.279,"low":106.254,"open":106.408'
s = s.replace('<!--{"rates":[{"code":"USDJPY","name":"米ドル/円","bid":','')
ここから先が分からない。
0149デフォルトの名無しさん
垢版 |
2018/03/13(火) 22:01:24.56ID:exPfn8I7
>>148
そもそもそこからわざわざBeautifulSoupを使う意味がわからんのだが
先に <!― から ―> までの { } の JSON を取り出して bit キーの値を取り出した方が良いんじゃないの

その方法で無理矢理やるなら
s = re.sub(r',.+', '', s)
とか
0151デフォルトの名無しさん
垢版 |
2018/03/13(火) 22:36:15.65ID:hWh8GdfX
>>149
分からない(>_<)
Expecting value: line 1 column 1 (char 0)が出ます。


import requests, json
url = 'https://fx.minkabu.jp/pair'
res = requests.get(url)
webdata = json.loads(res.text)
print(webdata)
0154デフォルトの名無しさん
垢版 |
2018/03/14(水) 04:19:45.10ID:QheYb9tS
doc = Nokogiri::HTML(<<EOT)
<html><body>
<script type="application/json" data-hypernova-id="b8a86d1a-ba57-4db9-86fb-072499e821e3" data-hypernova-key="RateList">
<!--{"rates":[{"code":"USDJPY","name":"米ドル/円","bid":106.714,"ask":106.717, 以後省略 }]}-->
</script>
</body></html>
EOT

#script タグで、data-hypernova-id 属性を持つもの
elem = doc.xpath("//script[@data-hypernova-id]")

#テキスト部分
/"bid":([^,]*),/ =~ elem.first.content
puts $1 #=> 106.714

Ruby で作った。
正規表現は、"bid": で始まり、, 以外の文字が続いて、, がある。
, 以外の文字が続いている部分を、キャプチャーする
0155デフォルトの名無しさん
垢版 |
2018/03/14(水) 14:58:19.61ID:2cAisCwC
質問者もアホすぎ
回答者も糞すぎ
0158デフォルトの名無しさん
垢版 |
2018/03/14(水) 16:10:09.31ID:P1q1sBXB
>>> import requests
>>> import re
>>> url='https://fx.minkabu.jp/pair'
>>> response = requests.get(url)
>>> response.status_code
200
>>> charset = re.search(r'charset=(.+)', response.headers['content-type']).group(1)
>>> charset
'utf-8'
>>> content = response.content.decode(charset)
>>> re.search(r'"bid":(\d+\.?\d+)', content).group(1)
'106.495'
>>>

注意点:
・レスポンスのステータスコード(response.status_code)を確認して正常にアクセスできた(スタータスコードが200番台)かを確認すること
・requestsは取得したhtmlデータのcharsetを自動判定してエンコードまでしてくれる(自動でエンコードされたデータはresponse.text)が、
 この自動判定はよく間違えるので信用しない方がいい。よって、ここではレスポンスヘッダーのcontent-typeからcharsetを取得している
 ヘッダーから取得できない場合はボディからcharsetの取得を試みるとよい
0159デフォルトの名無しさん
垢版 |
2018/03/14(水) 16:28:13.72ID:P1q1sBXB
「答え全部教えちゃって、相手の勉強にならないだろ」と思われるかもしれないが、これは答えではなく参考例だ
参考例は正常に動作する例じゃないと参考にすらならない、質問者はこれを足掛かりにエラー処理などを実装するだろう
ステータスコードの分岐処理も必要だ、連続アクセスしないようにスリープ処理も必要だ、取得したいデータが増えれば
正規表現の例を参考に学習をすすめることだろう、、そう私はただの参考例を書いただけなのだ
それに比べれば先人たちの回答はウンコ、、ウンコと言わざるを得ない・・
0161質問者です(>>148 >>151)
垢版 |
2018/03/14(水) 19:14:23.24ID:xz9Rv2ZT
>>158 >>159先生ありがとうございます!
自分は正規表現が分かってないので、勉強します。

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

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

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

CSS セレクターなら、script[data-hypernova-id]
0165154
垢版 |
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 では、どうしてもコメントとして取得できなかったが、
ようやく理由がわかった
0166デフォルトの名無しさん
垢版 |
2018/03/16(金) 07:50:15.92ID:TOiZPWj8
アホな質問かもしれませんが教えて下さい。
色々ライブラリがあるみたいですが、あるライブラリのヘルプみたいなそもそもの使い方、説明っていうのはどこに載っているのですか?
0167デフォルトの名無しさん
垢版 |
2018/03/16(金) 11:01:38.18ID:6YN3zoy5
>>166
そのライブラリの公式サイトとかライブラリを使ってる人のブログとか
英語ばっかだからって諦めちゃダメよ
あと、help()でも見られる
0168デフォルトの名無しさん
垢版 |
2018/03/16(金) 12:51:36.68ID:kXpU5L3F
Jupyter Notebook 使い難い
ブラウザがGUIになっているなんて
0171デフォルトの名無しさん
垢版 |
2018/03/16(金) 14:34:15.66ID:m5Cyk9W0
AtomでHydrogen かemacs でEIN
0172デフォルトの名無しさん
垢版 |
2018/03/16(金) 14:41:53.77ID:3ma6aQHv
いやなら無理に使わなくていいのに
0175デフォルトの名無しさん
垢版 |
2018/03/16(金) 17:15:49.75ID:WyQDIky+
>>174
あれは逐一コードとその実行結果を表示&記録するツール
旨いこと使うと後々便利らしいけど、がーっと.py書く為のツールじゃないっぽい
0177デフォルトの名無しさん
垢版 |
2018/03/16(金) 17:50:54.61ID:WyQDIky+
シェルつーか、pythonが実行できるonenoteの機能縮小版みたいな感じかな、、、

最終的なコードや結果じゃなくて、途中の流れを記録して他人に見せたり自分で見返したりするツール
0178デフォルトの名無しさん
垢版 |
2018/03/16(金) 18:05:25.27ID:CkZdro5L
R言語の環境がそういう機能持っててアカデミック分野で便利に使われてたので同用途でパクったのが始まりじゃないかな。お前らはいっこもアカデミックではないので使わなくてよろしい。
0180デフォルトの名無しさん
垢版 |
2018/03/16(金) 19:35:22.11ID:CkZdro5L
はぁ…
Rでモデル検証とかやってる人が何を開発すると言うのか。
認知できないんだからお前にそういう世界の存在は分からない。
開発環境としてお粗末?そりゃそうだ開発環境じゃないんだから。
ごちゃごちゃ言わないで使わなければいいんだよ。
お前には必要なものでも便利なものでもないんだから。
0181デフォルトの名無しさん
垢版 |
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)
0186デフォルトの名無しさん
垢版 |
2018/03/17(土) 03:16:55.41ID:sNNOzkAn
こういう技を使うと論理や符号の勘違いでバグ起こしやすいから、素直にif文使ったほうがいい
Pythonでどうしても高速化したいんなら、CupyでGPU演算するとか、Cythonでバイナリ化するとか考えるべき
0187デフォルトの名無しさん
垢版 |
2018/03/17(土) 03:24:04.32ID:apINGZdL
そういうもの何ですか。
バグに気をつけます。。。
CupyとCython勉強してみます!
0188デフォルトの名無しさん
垢版 |
2018/03/17(土) 04:46:34.91ID:WhczEXZ3
>>187
>CupyとCython勉強してみます!
>>181のようなハイレベルのことをする人はpythionの勉強よりCupyとCythonの勉強したほうがずっと良いよ
0191デフォルトの名無しさん
垢版 |
2018/03/17(土) 08:14:51.98ID:yHhMlxWi
計測もしてないのに高速化とか害悪以外の何者でもない。
あとそれ絶対早くなってないから。
0192デフォルトの名無しさん
垢版 |
2018/03/17(土) 09:05:54.76ID:GI3013Uv
>>191
たしかに
これに取り組もうと思った動機が謎

三流の講師が宿題にでも出したのかな
0194デフォルトの名無しさん
垢版 |
2018/03/17(土) 11:00:51.63ID:+q1jwFei
お手軽に高速化ならpypyおすすめ。
コードを一切変更せず、だいだい7倍くらい速くなる。
ただし、外部ライブラリで対応してないのもあるので、要注意。
あと、高速化では何より、実行時間を測定して、ボトルネックを特定することが重要。
IDEにSpyder使うと、プロファイラを簡単に使えていいよ。関数ごとの実行時間や呼び出し回数を簡単に表示できる。
本気で高速化するなら、C++で
0201デフォルトの名無しさん
垢版 |
2018/03/17(土) 19:11:52.25ID:tXhsWaKl
>>199
Pythonは他の言語とは違い超低脳でも使えるようにした言語
超低脳はそんな難しいのはつかえないから入れる意味なし
0202デフォルトの名無しさん
垢版 |
2018/03/18(日) 03:58:32.91ID:HsPk0IuW
>>200
exception投げろ
0203デフォルトの名無しさん
垢版 |
2018/03/18(日) 16:15:57.38ID:0NXI2kIO
すいません、教えてください
ファイル名と場所を取得したら
C:\\Users\\honya\\hoge\\hohe.jpgというような感じで
\\が二個になってしまい次に使うときは文字列で外部にもっていくので
¥一個にしたいです。
どうしたらいいですか??
記号なので検索しても検索自体がうまくいかなくて困ってます
0206203
垢版 |
2018/03/18(日) 17:07:55.67ID:0NXI2kIO
>>204
ありがとうございます
検索してみrて
\\になっているパスを↓のようにして
pasu=pasu.replace(r'\\', r'\')
みたんですが駄目でした・・・
もうちょっとヒントをお願いします・・・
0207デフォルトの名無しさん
垢版 |
2018/03/18(日) 17:27:03.45ID:gweQjn0m
>>206
pasu=pasu.replace('\\', '/')
0208デフォルトの名無しさん
垢版 |
2018/03/18(日) 17:32:05.74ID:0NXI2kIO
>>206
ありがとうございます
説明不足ですいません
外部で使うので/だとだめで
¥じゃないと受け付けてくれないんです
0209203
垢版 |
2018/03/18(日) 17:32:59.30ID:0NXI2kIO
>>207
ありがとうございます
説明不足ですいません
外部で使うので/だとだめで
¥じゃないと受け付けてくれないんです
0211203
垢版 |
2018/03/18(日) 18:02:13.39ID:0NXI2kIO
>>210
それができてたらほんと良いですよね、、、ほんとすいません
0216デフォルトの名無しさん
垢版 |
2018/03/18(日) 21:54:56.65ID:EVM8spxN
まあそもそも¥は一つで、表示上2つになってるだけなんだけどさ
それは既に指摘されてるし理解しない方が悪いよね
0217デフォルトの名無しさん
垢版 |
2018/03/18(日) 22:33:21.42ID:9qr4sOuJ
tkinter ボタンを押しても処理が実行されない?


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

https://teratail.com/questions/118018
0218デフォルトの名無しさん
垢版 |
2018/03/18(日) 22:42:51.97ID:9qr4sOuJ
どうも、ありがとうございました。
0219デフォルトの名無しさん
垢版 |
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
■ このスレッドは過去ログ倉庫に格納されています

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