くだすれPython(超初心者用) その47【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
当スレに★Python以外のプログラミング言語での回答類を書くべからず★ ☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 スクショをImgur等にうp といった 手抜き(クソ行為)禁止。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ http://www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その46【Ruby禁止】 https://mevius.5ch.net/test/read.cgi/tech/1577948214/
>>249 ありがとうございます。使い方が間違っていたんですね。再度調べてみます。 >>250 >>251 ありがとうございます。seleniumでも試す際に参考にさせていただきますね。 >>252 です ありがとうございます 自分なりにルールを決めたものを使っていくことにします。 forに変数いらないのあるなんて知らなかったです 助かります >>269 > pythonやるために格安ノートPC買いたいんやけど必要スペックとかある? 格安ノートはわりとすぐに使えなくなる。 無駄遣いになる危険性があるぞ? PCには金を使え。 もしプログラマやデータサイエンティストになりたいなら。 別にクライアントサイドでプログラミングしなくてもいいんでないかい >>276 いまはやり?のビッグデータ解析とか 自然言語だの画像だのをみて、判別してくれるAIにちゃーれんじするなら、 自分のノートのスペックなんかより ぶっちゃけ、契約するスパコンのスペックががが >>258 pythonにもperlの$_変数を導入しようって話か? やっぱり変数宣言なんて不必要で、みんながみんな決められた記号を使えば、誰にも分かるコードが出来上がるじゃないか 無論prologにも無名変数として_が用意されてる ttp://karel.tsuda.ac.jp/lec/prolog/intro2/ ならもう変数命名自体を排除した方がいいのでは ここってプログラム以前の問題もありですか? 私はターミナルを使うのにあまり慣れていません。 python2.7.3を使わなければならない用事ができました。 macでpyqt4を使おうと思いましたがインストールがうまくいっていないようです。 https://qiita.com/aical/items/2d066801a7464a676994 の通りにしました。 ターミナル↓ hogenoMacBook-puro:~ hoge$ pyuic4 Traceback (most recent call last): File "/Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/PyQt4/uic/pyuic.py", line 26, in <module> from PyQt4 import QtCore ImportError: No module named PyQt4 pyuic4を使うとインストールができたかどうか確かめられるとのことで使いましたが、 どうやらpythonが認識していないようです。 pyqt4がありそうに見えるのにno moduleと言われるので困っています。 これが現在の様子です hogenoMacBook-puro:~ hoge$ python Python 2.7.13 |Anaconda 4.0.0 (x86_64)| (default, Dec 20 2016, 23:05:08) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. Anaconda is brought to you by Continuum Analytics. Please check out: http://continuum.io/thanks and https://anaconda.org >>282 PyQt4がインストールされていない conda install pyqt=4 それでも出るようなら環境変数PYTHONPATHを設定してパスを通す export PYTHONPATH=$HOME/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages >>284 ありがとうございます。解決しました。 conda install pyqt=4 はつい先ほどマニュアルを読んで実行したはずが なぜか追加要素がたくさんあって驚きました。 それでも解決しませんでしたが、次にパスを通すことでうまくいきました。 一昨日こちらでスクレイピングの質問し回答を参考にさせていただいたものです。 エラーが起きなければ25件titleとURLが取得できると思うのですが、5件しか表示させず IndexError: list index out of rangeとなってしまいます。 指定しているインデックスの問題だと思い番号をかえたりしてみましたが改善されません。何が原因なんでしょうか? import requests from bs4 import BeautifulSoup page_url ="https://news.yahoo.co.jp/topics/top-picks" ; r = requests.get(page_url) soup = BeautifulSoup(r.text, features="html.parser") a_tags = soup.find_all("li", class_="newsFeed_item") data = [] for h1_tag in a_tags: tmp_article_a_tag = h1_tag.find_all("a")[0] title = tmp_article_a_tag.text url = tmp_article_a_tag.get("href") print("title:{} url:{}".format(title, url)) data.append([title, url]) >>287 Anacondaはシステムのライブラリが足りない場合でも動くので、そういう環境の人は使えると思うよ 例えばCentOS系でDockerが使えない場合、ライブラリが古い場合でも必要なライブラリはAnacondaがインストールするので新しいpythonが使える 他には機械学習関係でcudaやcudnn等のNvidia環境を構築するのは圧倒的に楽 バージョンの干渉で迷う事はほぼない .bashrcや.zshrcにデフォルトでAnacondaを設定するとデフォルトのPythonと環境が違うのでトラブルの元になるけど、毎回sourceコマンドを叩くのも面倒なので利便性とのトレードオフかな venvみたいなめんどくさいことするならanaconda入れる方がよっぽど楽だけどね。 PATH設定くらいだからそこまで問題がわからなくなることが多いとも思わん。 condaに入ってないライブラリをpipで持ってきて地獄を見たことがあるから、最近はpoetry使ってる 今の主流はpipenvなのかな? conda使ってるのにpipで入れてる上になんか入らないやつ手動でsite-packageフォルダにコピーしてるけどダメなの? いい加減、ライブラリ・パッケージ管理ツールを統一して欲しいもんだが 次々と新しいものが出てくるばかりでどうにもならんな 追加で質問です $conda install -c dan_blanchard pyenchant でインストールしようとしていますが、 10分経っても終わりません。なにかいい方法はないでしょうか。 Collecting package metadata (repodata.json): \ ←この棒がずっと回っている anacondaを使った理由はたまたまネットで見つけたページにそう書いてあったからです。 私はとあるソフトを使いたいだけでプログラミングについてはよくわかりません。 >>286 ブラウザの開発ツールでページ構造よく見てみ 5個ごとに入ってる広告がliの直下はaタグではなくdivになってるから ちょ、python最新版にしたらkerasが対応ついてきてなくて積んだww keras, ras, whatever will be will be. >>286 Ruby で作ったけど、最初の部分は省くけど、( >>251 を参照) li.newsFeed_item の子孫のa は、29件で、li.newsFeed_item の直下のa は、25件。 Python のfind_all("a")[0] は、子孫も含めるのじゃないか? 出力は、こういう感じ title:富士フ、アビガン治験開始へ3/30(月) 22:52 url:https://news.yahoo.co.jp/pickup/6355698 title:大連市 北九州にマスク20万枚3/30(月) 22:40 url:https://news.yahoo.co.jp/pickup/6355699 doc = Nokogiri::HTML( driver.page_source ) elements = doc.css( "li.newsFeed_item" ) # li.newsFeed_item の子孫のa は、29件 results = elements.map { |elem| elem.at_css( "a" ) } puts results.length results.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" } puts "------------------------------------" # li.newsFeed_item の直下のa は、25件 ary = elements.each.each_with_object( [ ] ) do |elem, ary| elem.children.each do |child| if child.node_name == "a" ary.push child break end end end puts ary.length ary.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" } 昨日から学習始めました。 pandasで質問なんですが、このようなDataFrameがあるとして、 日付 スコア 2020-03-01 20 2020-03-02 15 2020-03-03 25 ︙ ↑これにカラムを追加して累積のスコアを取得したいです。 日付 スコア 累積 2020-03-01 20 20 2020-03-02 15 35 2020-03-03 25 60 ︙ カラムの追加は出来ています。 データは長いものなんですが、forを使うんですかね? それともちょうどいいメソッドみたいなものがあるんでしょうか? くだ質ですけどよろしくお願いします。 この辺組み合わせろ cumsum Series concat >>301 >>302 ヒントありがとうございます! 何度もすいません 環境書いてなかったので mac mojave10.14.6 python2.7.3 anaconda で pyenchantを入れようとして conda install -c dan_blanchard pyenchant を使ったものの Collecting package metadata (repodata.json): / が数時間ほど出続けて一向に終わりません。 conda install pyenchantも試しましたが同じような結果でした。 IDEは多分xcordだと思います。 >>302 出来ました!ありがとうございます! 嬉しい! やってみましたが特に変わらないです。10分ほど待ちましたがまだ同じ文章が出て回ってます ありがとうございます。再度構造を確認したら間違っていることに気がつきました。 >>299 参考になりました。ありがとうございます。findの使い方、ページの構造を理解しきれてなかったので基本から見直してみます。 >>308 アンカーを省略するんじゃない + 権限は足りてるか? + 最近のMacOSなら、ルートレスが悪さをしてるかもしれないので 一時的にでも切ってやってみそ >>308 ゴメン linux用のパッケージ入れようとしてたのが原因なら、無反応じゃなくてエラーになってたはずだね condaのバグでそういう症状が報告されてるから、そっちかな (Anaconda 4.0.0なら関係ないかもだけど、condaをアップデートしてたらありえそう) https://github.com/conda/conda/issues/9221 mmoisseさんのコメントに従ってsubdir_data.pyを編集しないとダメなんだけど、無理そうならpython3で試すとか この修正はcondaに取り込まれないので( https://github.com/conda/conda/pull/9600 )、もしこれが原因なら、待ってても(python2では)直らないと思う 【速報】東京都が #新型コロナウイルス 感染症死亡者数を過少評価か、 「例年より少ない」とされていたインフルエンザ関連死が急増=国立感染症研究所 https://www.niid.go.jp/niid/ja/flu-m/2112-idsc/jinsoku/1852-flu-jinsoku-7.html … コロナで死んだのインフルに振り替えてるんじゃまいか こういうニュースが出てくる時点で隠蔽はもう無理 おそらくパンデミックは避けられないと思うね >>311 ・アンカー省略して申し訳ないです ・私はこのmacの管理者です。それ以上のことはわかりません ・切りましたが変化ないです >>312 ・python2を使う必要があります ・anaconda4.0.0 でconda 4.8.3 py27_0 のようです(conda listで出しました) ・そのプログラムを==から<にすればいいのはわかりましたが方法がわかりません そもそも場所もわかりません ┐(´д`)┌ 現状をまだパンデミックだと認めてないのはただの政治判断ッショ >>315 は>>313 宛な 自分でアンカー省略するなといっといてコレとはなさけなや (´・ω・`)トボーン >>314 312氏の投稿のほうが当たりっぽく かつ Python2系縛りがあるとなると、 308のナウのパウァーでは どーにもならないっぽいな・・・ condaがばぐっててむりでした。どーしましょ ってさっさと上に相談してみる に1票。 >>300 df = df.assign(累積=np.cumsum(df['スコア'])) で1行で出来ますよ sys.stdout.buffer.write(b"\x41"*10) ってやると「AAAAAAAAAA10」って表示されるんですけどこの最後の10ってなんですか? これの取り方を知りたいです >>319 byte型とstr型まぜるな危険ちゅーか混ぜれないぜイラァ!が、Python3あるあるらしいぜ。 hoge=b'\x41' hoge=hoge.decode() sys.stdout.buffer.write(hoge*10) >>314 >conda 4.8.3 4.7.11以降だから、やっぱり該当するね >・そのプログラムを==から<にすればいいのはわかりました お、それが分かるんならもうちょっと その続きの部分でmmoisseさんがashleymaeconardに教えてる↓のコマンドで見つかるはず dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*" 「which conda」でcondaがインストールされてる場所がわかるので、そのディレクトリ下からsubdir_dataっていうファイルを探すって感じ おそらく ../lib/python2.7/site-packages/conda/core/subdir_data.py みたいな場所にあるんじゃないかな? でも、python2も使おうとしてるpyenchantも古い(最近のはpython2対応してない)ので、今後も問題が起きた時に対応策を調べるのが結構大変だと思うよ(最新の環境の方が情報が見つけやすい) >>318 df['累積'] = np.cumsum(df['スコア']) >>320 そいつもエラーだ >>319 最期の10 は単に戻り値が画面に出て来るだけ >>> _ = sys.stdout.buffer.write(b"\x41"*10) これで消える >>320 sys.stdout.buffer.write()だとstr型は表示できません ですが一応答えてくださってありがとうございます… >>323 ありがとうございます! print()のbyteをデコードして出力する感じのものだと思ってたんですが動作違うんですね…勉強になりました >>321 dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*" を使ったら usage: dirname path find: /../lib: No such file or directory と言われてしまいました >>317 チームメイトは日本語ほぼ通じないし私の英語も足りないので難しいことを喋るのはきついです ちなみに会社ではないし賃金もないです >>325 sys.stdoutするところまで確認しないで書き込んですまんそ。 言い訳すると、朝だからバタバタしていた。 >>323 横レスだけどなるほどなっとく >>326 which condaの結果が取れてないのかな? ターミナルで使うシェルのコマンドの使い方とか意味がわかってないなら、「mac ターミナル 入門」とかで検索して適当な入門記事とか読んでみると、何をしているか(わからない時の調べ方とかも)わかるようになるよ やってることは which condaでcondaがインストールされてる場所を調べる dirnameコマンドでその場所のディレクトリを取得する 変数dirに結果を格納 その中(下の階層)にある名前がsubdir_data始まりのファイルをfindコマンドで探す っていう流れなので、個別に分けて実行してみるとわかりやすいと思う あとは、別にターミナル使わなくても、ファイル検索の機能やツールでsubdir_data.pyを探してもいいと思うよ もし複数見つかったとしても、condaのファイルかどうかはファイルパスからわかるんじゃないかな? >>328 あああ微妙にわかった気がしてきました なるほどだから一行に$が何回も出てきたのかと納得しました 確かにwhich condaを試すと回答が出てこず何事もなかったかのように hogenoMacBook-puro:~ hoge$ が出てくる状況になっていました。 ウインドウを閉じてまた開くと普通の回答が戻ってきて不気味です 今度はfind: /Users/hoge/.pyenv/shims/../lib: No such file or directory になって多少進歩しましたが見つからないですね mdfind subdir_data*は何も出ません。 find / -name subdir_data*は末尾にPermission deniedのついた大量のデータが出てきましたが condaという文字が見当たらないです と書き込もうとしてfindの回答したデータに気づきました /Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/conda/core/subdir_data.py これだ なぜか/Users/hoge/.pyenv/versions/anaconda-4.0.0/系統の回答には 頭のfind: も末尾の: Permission deniedもついていなくて目が滑っていたようです 早速finderにパスを打ち込んで直接書き換えることで変更し、バグが直ったようです 現在のバージョンはpython3.4を要求してきたので古いのにします ttps://pypi.org/project/pyenchant/1.2.0/#history 2.0.0を入れればいい感じですか? >>329 本家もメンテナンスしないような古いバージョンのAnacondaと戦うのは辞めた方がいい Anacondaはconda installを使った場合はパッケージの干渉を細かくチェックしてるけども、pipを使ってはいけない訳でもない pip install --upgrade pip pip install pyenchant Mojaveにpyenvでanaconda-4.0.0をインストールして上記コマンドを試してみたが普通インストールできて適当なサンプルも動いた >>329 あーそっかnatxはpy34なんだねゴメン https://anaconda.org/search?q=platform%3Aosx-64+pyenchant xrysoflis の方がpy27だから、そっちを使えば良いんじゃないかな?Filesタブで確認できるよ >>330 も言ってるし、朝も書いたけど古すぎて後々かえって困ると思うのでオススメできないけど、python2使わなくちゃいけないならpyenchantもv2以下になるね 一応conda skeleton使ってPyPIパッケージもインストールできるよ https://qiita.com/itsumonotakumi/items/f0273c2a3a04ef808dbd >>329 >ウインドウを閉じてまた開くと、普通の回答が戻ってきて不気味です Mac では端末の設定ファイルに、~/.bashrc を使うか知らないけど、 たぶん端末の設定ファイルに、設定を書き込んだから、 端末を再起動(閉じて開き直す)すると、設定ファイルを再読み込みするから、状態が変わる! だから設定ファイルに書き込んだら、常に端末を再起動すればよい 例えば、Windows 10, WSL, Ubuntu 18.04 で、Ruby のバージョンマネージャー・rbenv を使うと、 ~/.bashrc に、以下の2行を追加するように言われる。 内容は、環境変数PATH の先頭に、rbenv のパスを追加して、rbenv init を実行する export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" 2行を追加してから、source ~/.bashrc と入力して、~/.bashrc を再読み込みするか、 端末を再起動すると、更新された、~/.bashrc を読み込むので、 echo $PATH と入力すると、確かに先頭に、~/.rbenv/bin が追加されているので、 which rbenv と入力すると、~/.rbenv/bin/rbenv が表示される。 これで、rbenv コマンドをグローバルで使える 以下、rbenv install 2.6.5, rehash, global で、好きなバージョンを使えるようになる rbenv which ruby と入力すると、確かに、versions の下に、インストールされている! ~/.rbenv/versions/2.6.5/bin/ruby 最近はMacのデフォルトシェルはzshになってるからそれで嵌るやつは嵌る obj.sort(str) みたいなのがあって、引数がリストなど受け付けないとき obj.sort(str_1).sort(str_2)みたいに書いてるんですがバカっぽいです なにかいい書き方はありませんか? バカっぽい以前に何をしたいのかよくわからん 安定ソート前提なの? >>336 objとstrがどういうものかによる built-inのsort()/sorted()を使ってDictionaryを複数キーでソートしたい場合は sorted(obj, key=lambda x: (x[‘str_2’], x[‘str_1’])) obj.sort()が独自の比較ロジックを実装してるなら それを比較関数として切り出してsort()/sorted()に渡す チームメイト(そのソフト作成者)に相談したら返事もらえたのでまずそのとおりにしました python -m pip install pyenchantで 3.0.1 が無事インストールできました >>330 ERROR: Package 'pyenchant' requires a different Python: 2.7.13 not in '>=3.5'と言われました >>332 conda install -c xrysoflis pyenchant==1.6.6しましたが The environment is inconsistent, please check the package plan carefully The following packages are causing the inconsistenc- - https://repo.continuum.io/pkgs/free/osx-64::ipython==4.1.2=py27_1 (同じようなものが何行も) failed with initial frozen solve. Retrying with flexible solve. Solving environment: - でこれ以上進まなくなりました >>333 残念ながら今の私には理解できません >>334 私のはbashのままのようです 早速インストールした環境を使ってそのソフトを動かしたところ、 SyntaxError: invalid syntaxと言われました。 チームメイトによるとそのソフトはmacで起動確認してないので動かないのかもしれないそうです ええ… 幸いwindows ならその人が全部やってくれそうです 質問に答えてくださったみなさんありがとうございます 勉強になりました。特に==を<に書き換えるあたりは興奮しました もし補足やうまくいきそうな方法があればまだ見てますのでお願いします いつもありがとうございます。こちらで回答をいただきながらスクレイピングを行っている者です。 個別でURL、タイトルなど取得し無事に出力することができたのでページ内の全URLを出力してみたところ、 予定では別々な25件のURLが出力されると思ったのですが、 同じURLが220件出力されてしまいました。原因はenumerateの使い方が間違っている。 取得する場所が間違っているからだったりするのでしょうか? import requests import re from bs4 import BeautifulSoup page_url ="https://news.yahoo.co.jp/topics/top-picks" ; r = requests.get(page_url) soup = BeautifulSoup(r.text, features="html.parser") item_list = soup.find_all(class_=re.compile(r"newsFeed*")) for num,item in enumerate(item_list): news_url = news.find(class_="newsFeed_item_link").get("href") print("num:", num) print("url", news_url) print("*" * 100) >item_list = soup.find_all(class_=re.compile(r"newsFeed*")) それは正規表現か? そりゃ、完全一致じゃないから、かなり多くのclass が該当するはず >>340 とりあえずIPythonとかのREPLで確認しながらやれ item_list = soup.find_all(class_=re.compile(r"newsFeed*")) の後にREPLにitem_listとタイプしたり、len(item_list)とタイプしたり、item_list[24]とかタイプすれば 中に何が入ってるか、何件取得できてるか、思ったものが取得できてるかを確認できる 試行錯誤しながらいいけど CSSセレクター勉強して欲しいものを取得できるようにならないとスクレイピングとか無理よ item_list = soup.select('li.newsFeed_item > a.newsFeed_item_link') スクレイピングは、他人が作ったソースコードを解析するから、かなり難しい。 なぜかと言うと、作者は仕様を知っているけど、解析する方は知らないから。 答えを知ってる者には簡単だけど、知らないとかなりの時間を損する! 初心者は、やめておいた方がよい 作者の仕様を予想するのと試行錯誤で、かなりの時間を損するだけで、 全くプログラミングが上達しないから! 自分で、練習用のサイトを作った方がよい スクレイピングは、プロでも無料ではやらない。 他人の滅茶苦茶なソースコードを見ても、何も学ぶことが無いからw 単純に時間の無駄 Web技術はこまごましてて難しすぎるんだよな CSSセレクターって何だろうと思って調べてみたが理解できなかった >>341 正規表現です。該当してる中から取得するやり方ではいけないんですね。 >>342 わかりました。セレクターも入力してみて何が取得できるのかなど一通りやってみます。 >>343 基礎学習の後にスクレイピングがおすすめと記載されていることもあるので簡単な方だと思っていました。 よく見るサイトやフリマ系など必要なデータを取れるようになれば時間の時間の短縮になると思いましたがそのレベルになるのは難しそうですね… 皆さまご丁寧にありがとうございます。参考にさせていただきます。 自分で書いた、HTML をスクレイピングすればよい。 そうすれば自分が仕様を知っていて、色々いじくれるし、 自分のPC 内で、何回でもテストできる 他人の作ったページは、いじくれないし、ほとんどが無駄な部分。 しかも、作者だけが知っている仕様を解析・予想するのに、かなりの時間が掛かる 普通は仕様書・設計書から、実装を作るけど、 逆に、実装から仕様を予想しちゃいけない! これは、自然とは逆方向に向かうから、非常に難しい。 だから、リバースエンジニアリングは、無料ではやらないわけ それに、かなり時間を掛けて、作者だけが知ってる答えを見つけても、何にもならないw 他人のアプリの仕様なんて、人それぞれだから、参考・勉強にならない。 自分が作る仕様と無関係 最終的には他人の作ったサイトから情報を抜き出せるようにならなければ意味がないけどね。 スクレイピングは試行錯誤してれば急にサクッとできるようになるから パズルみたいなものだと思って楽しめばいいよ utf-8でpythonから出力したファイルをExcelで開くと文字化けします 確かExcelはBom付きで保存しなおせばいいと思って、 メモ帳で開く→utf-8Bom付きで保存→Excelで開く をしても相変わらず文字化け 前は同じ出力ファイルを開けたのですが、なにか抜けているのかなぁ? >>351 1嫁 > ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と > 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 +うまくいかないファイルとやらにだけ日本語含まれてたりしないか? >>352 すいません 自己解決しました Pyhotn側のコードを何度かバージョンアップするうちに、 ヘッダーが壊れていました 大変失礼しました java遅くて嫌いなのにnode.js仕方なく入れたら旧式Python入れられてパスまで通されたわ encoding='utf_8_sig' とすればBOM付きになってそのままExcelで開けるんですね 今までの苦労はなんだったんだろう・・・ >>347 基礎の後に実践としてスクレイピングがオススメなのは間違いないよ コレクション処理、テキスト処理、ネットワークI/O, ファイルI/O等 アプリケーションプログラミングにおいてコアとなる概念を学べる それにYahooは比較的スクレイピングフレンドリーな作りだからいいチョイスだと思うよ CSSセレクターみたいに1~2日で学べるような知識は 必要になったその都度身につけていけばいいんだけど 問題なのは何が間違ってるかを自分で調べる方法をほぼ持ってない事 まともにプログラミングできるようになるには 何が間違ってるかだけじゃなく 何が間違ってるかをどうやって調べればいいのかを知ろうとするマインドが決定的に重要 >>339 condaでinstallする前にpipで(サポート外の)3.0.1を入れたからじゃない?(でもよく入ったね?) エラーメッセージ読めばわかると思うけど、環境の不整合が起きてるんだと思う >SyntaxError: invalid syntaxと言われました。 pyenchantは3.0.0からpython2のサポートしてないのでpython2.7ではpyenchant 3.0.1入れても不具合でるんじゃないかな https://github.com/pyenchant/pyenchant/releases/tag/v3.0.0 例えばpython3から導入された(python2に対応してない)構文で書かれているコードをpython2で動かすと、対応してないのでSyntaxError(構文エラー)が出るということはありうるよ もちろん、チームメートの人が言うようにOSの問題かもしれないけど とりあえず、環境構築の質問はそのチームメイトにした方が確実だよ HTMLのスクレイピングは簡単だが JavaScriptだと一気に難しくなる コロナの自粛期間を利用してPythonを勉強し始めました。 下記のCのコードをPythonに変換しようと思ったのだが いきなりforループの書き方でハマってます。 ご教授お願いします #include <stdio.h> long combi(int,int); int main() { int n,r; for(n=0; n<=5; n++){ for(r=0; r<=n; r++) printf("%d C %d=%ld",n,r,combi(n,r)); printf("\n"); } } long combi(int n, int r) { int i; long p=1; for(i=1; i<=r; i++) p=p*(n+i+1)/i; return p; } def combi(n,r): __p = 1 __for i in range(1,r+1): ____p = p * (n-i+1) // i __else: return p for n in range(1,6): __for r in range(n+1): __print(f"{n} C {r} = {combi(n,r)}") どうでもいいが元のコードのcombiは式が間違ってると思う for n in range(1,6): __for r in range(n+1): ____print(f"{n} C {r} = {combi(n,r)}") のミス >>363 Cって、forearchないんだっけ?あれと一緒よ CできるのにわざわざPythonを学ぶ意味がわかんねえ PythonにできてCにできないことはないだろ >>367 > Cにできないこと コンパイラ要らずの安易さ。 Cの他に何でもいいから適当なスクリプトは出来るといいと思う。 >>367 できればいいって言うわけじゃないだろ 「簡単に」できるとか「安全に」できるとか「わかりやすく」書けるとかも重要だし >>358 今pyenchant3をアンインストールしてから pip install pyenchant==1.6.6してそのソフト実行したらsyntaxerror 出なくなりました そして.dll: unknown file typeと言われました ソフト作成者に言ったら「気づかなかった」と言われました 以上です。本当にありがとうございました >>368 それは IDE にそういう機能を付ければいいだけの話 Java とかコンパイラが必要だが、eclipse を使えば 特にコンパイラのわずらわしさはない >>363 >>364 ご教授ありがとうございます。 Pythonのforループの書き方がちょっと独特ですね。 ご指摘いただきましたcombiの式、確かに間違ってました(笑) 正:p=p*(n-i+1)/i; ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる