X



くだすれPython(超初心者用) その47【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん垢版2020/03/07(土) 00:40:52.77ID:k5ibAr7h
当スレに★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/
0308305垢版2020/03/31(火) 13:29:13.56ID:+y4wT+20
やってみましたが特に変わらないです。10分ほど待ちましたがまだ同じ文章が出て回ってます
0309デフォルトの名無しさん垢版2020/03/31(火) 13:32:41.19ID:fqZmXB15
ありがとうございます。再度構造を確認したら間違っていることに気がつきました。

>>299
参考になりました。ありがとうございます。findの使い方、ページの構造を理解しきれてなかったので基本から見直してみます。
0311デフォルトの名無しさん垢版2020/03/31(火) 16:58:32.63ID:1xgVifiL
>>308
アンカーを省略するんじゃない

権限は足りてるか?

最近のMacOSなら、ルートレスが悪さをしてるかもしれないので
一時的にでも切ってやってみそ
0312307垢版2020/03/31(火) 17:06:20.92ID:b44czDa9
>>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では)直らないと思う
0313デフォルトの名無しさん垢版2020/03/31(火) 20:53:43.52ID:HDRrREDo
【速報】東京都が #新型コロナウイルス 感染症死亡者数を過少評価か、

「例年より少ない」とされていたインフルエンザ関連死が急増=国立感染症研究所
https://www.niid.go.jp/niid/ja/flu-m/2112-idsc/jinsoku/1852-flu-jinsoku-7.html


コロナで死んだのインフルに振り替えてるんじゃまいか
こういうニュースが出てくる時点で隠蔽はもう無理
おそらくパンデミックは避けられないと思うね
0314308垢版2020/03/31(火) 22:09:38.19ID:+y4wT+20
>>311
・アンカー省略して申し訳ないです
・私はこのmacの管理者です。それ以上のことはわかりません
・切りましたが変化ないです
>>312
・python2を使う必要があります
・anaconda4.0.0 でconda 4.8.3 py27_0 のようです(conda listで出しました)
・そのプログラムを==から<にすればいいのはわかりましたが方法がわかりません
そもそも場所もわかりません
0317デフォルトの名無しさん垢版2020/03/31(火) 22:13:29.92ID:1xgVifiL
>>314
312氏の投稿のほうが当たりっぽく
かつ
Python2系縛りがあるとなると、
308のナウのパウァーでは
どーにもならないっぽいな・・・
condaがばぐっててむりでした。どーしましょ ってさっさと上に相談してみる に1票。
0318デフォルトの名無しさん垢版2020/03/31(火) 23:55:02.12ID:1uZzdSX9
>>300
df = df.assign(累積=np.cumsum(df['スコア']))
で1行で出来ますよ
0319デフォルトの名無しさん垢版2020/04/01(水) 06:25:50.38ID:wvARRrAt
sys.stdout.buffer.write(b"\x41"*10)
ってやると「AAAAAAAAAA10」って表示されるんですけどこの最後の10ってなんですか?
これの取り方を知りたいです
0320デフォルトの名無しさん垢版2020/04/01(水) 08:42:18.93ID:U2YXFsyC
>>319
byte型とstr型まぜるな危険ちゅーか混ぜれないぜイラァ!が、Python3あるあるらしいぜ。
hoge=b'\x41'
hoge=hoge.decode()
sys.stdout.buffer.write(hoge*10)
0321312垢版2020/04/01(水) 08:56:47.44ID:rQtQCSfO
>>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対応してない)ので、今後も問題が起きた時に対応策を調べるのが結構大変だと思うよ(最新の環境の方が情報が見つけやすい)
0322デフォルトの名無しさん垢版2020/04/01(水) 11:56:52.96ID:5VJq6KKK
>>318
df['累積'] = np.cumsum(df['スコア'])
0323デフォルトの名無しさん垢版2020/04/01(水) 12:20:32.10ID:5VJq6KKK
>>320
そいつもエラーだ

>>319
最期の10 は単に戻り値が画面に出て来るだけ
>>> _ = sys.stdout.buffer.write(b"\x41"*10)

これで消える
0325デフォルトの名無しさん垢版2020/04/01(水) 12:53:19.93ID:wvARRrAt
>>320
sys.stdout.buffer.write()だとstr型は表示できません
ですが一応答えてくださってありがとうございます…

>>323
ありがとうございます!
print()のbyteをデコードして出力する感じのものだと思ってたんですが動作違うんですね…勉強になりました
0326308垢版2020/04/01(水) 12:53:42.54ID:DmxLU0iC
>>321
dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*"
を使ったら
usage: dirname path
find: /../lib: No such file or directory
と言われてしまいました
>>317
チームメイトは日本語ほぼ通じないし私の英語も足りないので難しいことを喋るのはきついです
ちなみに会社ではないし賃金もないです
0327デフォルトの名無しさん垢版2020/04/01(水) 13:51:04.05ID:U2YXFsyC
>>325
sys.stdoutするところまで確認しないで書き込んですまんそ。

言い訳すると、朝だからバタバタしていた。

>>323横レスだけどなるほどなっとく
0328321垢版2020/04/01(水) 14:31:03.22ID:rQtQCSfO
>>326
which condaの結果が取れてないのかな?
ターミナルで使うシェルのコマンドの使い方とか意味がわかってないなら、「mac ターミナル 入門」とかで検索して適当な入門記事とか読んでみると、何をしているか(わからない時の調べ方とかも)わかるようになるよ

やってることは
which condaでcondaがインストールされてる場所を調べる
dirnameコマンドでその場所のディレクトリを取得する
変数dirに結果を格納
その中(下の階層)にある名前がsubdir_data始まりのファイルをfindコマンドで探す
っていう流れなので、個別に分けて実行してみるとわかりやすいと思う

あとは、別にターミナル使わなくても、ファイル検索の機能やツールでsubdir_data.pyを探してもいいと思うよ
もし複数見つかったとしても、condaのファイルかどうかはファイルパスからわかるんじゃないかな?
0329308垢版2020/04/01(水) 15:44:10.62ID:DmxLU0iC
>>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を入れればいい感じですか?
0330デフォルトの名無しさん垢版2020/04/01(水) 18:10:19.22ID:mrdDGiKd
>>329
本家もメンテナンスしないような古いバージョンのAnacondaと戦うのは辞めた方がいい

Anacondaはconda installを使った場合はパッケージの干渉を細かくチェックしてるけども、pipを使ってはいけない訳でもない

pip install --upgrade pip
pip install pyenchant

Mojaveにpyenvでanaconda-4.0.0をインストールして上記コマンドを試してみたが普通インストールできて適当なサンプルも動いた
0332328垢版2020/04/01(水) 18:50:20.00ID:rQtQCSfO
>>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
0333デフォルトの名無しさん垢版2020/04/02(木) 07:42:24.51ID:BA8GpIv4
>>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
0336デフォルトの名無しさん垢版2020/04/02(木) 09:26:18.03ID:XZMaUUEC
obj.sort(str) みたいなのがあって、引数がリストなど受け付けないとき
obj.sort(str_1).sort(str_2)みたいに書いてるんですがバカっぽいです
なにかいい書き方はありませんか?
0338デフォルトの名無しさん垢版2020/04/02(木) 10:39:30.40ID:s8KkhiHc
>>336
objとstrがどういうものかによる

built-inのsort()/sorted()を使ってDictionaryを複数キーでソートしたい場合は
sorted(obj, key=lambda x: (x[‘str_2’], x[‘str_1’]))

obj.sort()が独自の比較ロジックを実装してるなら
それを比較関数として切り出してsort()/sorted()に渡す
0339308垢版2020/04/02(木) 11:30:42.92ID:TJziRBLB
チームメイト(そのソフト作成者)に相談したら返事もらえたのでまずそのとおりにしました
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 ならその人が全部やってくれそうです

質問に答えてくださったみなさんありがとうございます
勉強になりました。特に==を<に書き換えるあたりは興奮しました
もし補足やうまくいきそうな方法があればまだ見てますのでお願いします
0340デフォルトの名無しさん垢版2020/04/02(木) 14:11:06.61ID:LyfVZOwj
いつもありがとうございます。こちらで回答をいただきながらスクレイピングを行っている者です。
個別で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)
0341デフォルトの名無しさん垢版2020/04/02(木) 14:44:41.65ID:BA8GpIv4
>item_list = soup.find_all(class_=re.compile(r"newsFeed*"))

それは正規表現か?
そりゃ、完全一致じゃないから、かなり多くのclass が該当するはず
0342デフォルトの名無しさん垢版2020/04/02(木) 14:47:05.93ID:s8KkhiHc
>>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')
0343デフォルトの名無しさん垢版2020/04/02(木) 15:39:55.36ID:BA8GpIv4
スクレイピングは、他人が作ったソースコードを解析するから、かなり難しい。
なぜかと言うと、作者は仕様を知っているけど、解析する方は知らないから。
答えを知ってる者には簡単だけど、知らないとかなりの時間を損する!

初心者は、やめておいた方がよい

作者の仕様を予想するのと試行錯誤で、かなりの時間を損するだけで、
全くプログラミングが上達しないから!

自分で、練習用のサイトを作った方がよい

スクレイピングは、プロでも無料ではやらない。
他人の滅茶苦茶なソースコードを見ても、何も学ぶことが無いからw

単純に時間の無駄
0344デフォルトの名無しさん垢版2020/04/02(木) 16:12:04.13ID:8S0f9PYx
Web技術はこまごましてて難しすぎるんだよな
CSSセレクターって何だろうと思って調べてみたが理解できなかった
0345デフォルトの名無しさん垢版2020/04/02(木) 16:35:16.84ID:3sLVdoE7
Yahooってapi用意されてたりしないの
0347デフォルトの名無しさん垢版2020/04/02(木) 17:36:27.73ID:LyfVZOwj
>>341
正規表現です。該当してる中から取得するやり方ではいけないんですね。

>>342
わかりました。セレクターも入力してみて何が取得できるのかなど一通りやってみます。

>>343
基礎学習の後にスクレイピングがおすすめと記載されていることもあるので簡単な方だと思っていました。
よく見るサイトやフリマ系など必要なデータを取れるようになれば時間の時間の短縮になると思いましたがそのレベルになるのは難しそうですね…

皆さまご丁寧にありがとうございます。参考にさせていただきます。
0348343垢版2020/04/02(木) 18:19:50.41ID:BA8GpIv4
自分で書いた、HTML をスクレイピングすればよい。
そうすれば自分が仕様を知っていて、色々いじくれるし、
自分のPC 内で、何回でもテストできる

他人の作ったページは、いじくれないし、ほとんどが無駄な部分。
しかも、作者だけが知っている仕様を解析・予想するのに、かなりの時間が掛かる

普通は仕様書・設計書から、実装を作るけど、
逆に、実装から仕様を予想しちゃいけない!

これは、自然とは逆方向に向かうから、非常に難しい。
だから、リバースエンジニアリングは、無料ではやらないわけ

それに、かなり時間を掛けて、作者だけが知ってる答えを見つけても、何にもならないw
他人のアプリの仕様なんて、人それぞれだから、参考・勉強にならない。
自分が作る仕様と無関係
0349デフォルトの名無しさん垢版2020/04/02(木) 18:59:58.20ID:Y6xeskM7
最終的には他人の作ったサイトから情報を抜き出せるようにならなければ意味がないけどね。
0350デフォルトの名無しさん垢版2020/04/02(木) 19:07:04.02ID:94eG4g2S
スクレイピングは試行錯誤してれば急にサクッとできるようになるから
パズルみたいなものだと思って楽しめばいいよ
0351デフォルトの名無しさん垢版2020/04/02(木) 19:09:13.54ID:AMBrZHZA
utf-8でpythonから出力したファイルをExcelで開くと文字化けします
確かExcelはBom付きで保存しなおせばいいと思って、

メモ帳で開く→utf-8Bom付きで保存→Excelで開く

をしても相変わらず文字化け
前は同じ出力ファイルを開けたのですが、なにか抜けているのかなぁ?
0352デフォルトの名無しさん垢版2020/04/02(木) 19:41:52.95ID:phtOISOQ
>>351
1嫁
> ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
>   実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

+うまくいかないファイルとやらにだけ日本語含まれてたりしないか?
0353デフォルトの名無しさん垢版2020/04/02(木) 20:23:20.12ID:AMBrZHZA
>>352
すいません
自己解決しました
Pyhotn側のコードを何度かバージョンアップするうちに、
ヘッダーが壊れていました

大変失礼しました
0354デフォルトの名無しさん垢版2020/04/02(木) 20:26:14.10ID:SePhJv/q
java遅くて嫌いなのにnode.js仕方なく入れたら旧式Python入れられてパスまで通されたわ
0355デフォルトの名無しさん垢版2020/04/02(木) 20:30:17.84ID:AMBrZHZA
encoding='utf_8_sig'
とすればBOM付きになってそのままExcelで開けるんですね

今までの苦労はなんだったんだろう・・・
0356デフォルトの名無しさん垢版2020/04/02(木) 20:31:07.91ID:VXoXbP1e
だからなんなんだよ
0357デフォルトの名無しさん垢版2020/04/02(木) 21:03:21.08ID:s8KkhiHc
>>347
基礎の後に実践としてスクレイピングがオススメなのは間違いないよ
コレクション処理、テキスト処理、ネットワークI/O, ファイルI/O等
アプリケーションプログラミングにおいてコアとなる概念を学べる
それにYahooは比較的スクレイピングフレンドリーな作りだからいいチョイスだと思うよ

CSSセレクターみたいに1~2日で学べるような知識は
必要になったその都度身につけていけばいいんだけど
問題なのは何が間違ってるかを自分で調べる方法をほぼ持ってない事

まともにプログラミングできるようになるには
何が間違ってるかだけじゃなく
何が間違ってるかをどうやって調べればいいのかを知ろうとするマインドが決定的に重要
0358332垢版2020/04/02(木) 21:12:58.29ID:1ZnF9bvx
>>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の問題かもしれないけど

とりあえず、環境構築の質問はそのチームメイトにした方が確実だよ
0361デフォルトの名無しさん垢版2020/04/03(金) 01:15:06.28ID:e/zdricl
なんのスレッドなのかわからない
0363デフォルトの名無しさん垢版2020/04/03(金) 03:42:04.69ID:4iGVyiwl
コロナの自粛期間を利用して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;
}
0364デフォルトの名無しさん垢版2020/04/03(金) 04:40:51.08ID:PfXHV9pW
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は式が間違ってると思う
0367デフォルトの名無しさん垢版2020/04/03(金) 11:54:36.03ID:piuBzRB4
CできるのにわざわざPythonを学ぶ意味がわかんねえ
PythonにできてCにできないことはないだろ
0368デフォルトの名無しさん垢版2020/04/03(金) 12:18:04.28ID:Wa73rj1L
>>367
> Cにできないこと
コンパイラ要らずの安易さ。
Cの他に何でもいいから適当なスクリプトは出来るといいと思う。
0369デフォルトの名無しさん垢版2020/04/03(金) 12:32:18.01ID:1Yte4sjH
>>367
できればいいって言うわけじゃないだろ
「簡単に」できるとか「安全に」できるとか「わかりやすく」書けるとかも重要だし
0371308垢版2020/04/03(金) 12:39:41.60ID:eM25H3zx
>>358
今pyenchant3をアンインストールしてから
pip install pyenchant==1.6.6してそのソフト実行したらsyntaxerror 出なくなりました
そして.dll: unknown file typeと言われました
ソフト作成者に言ったら「気づかなかった」と言われました
以上です。本当にありがとうございました
0372デフォルトの名無しさん垢版2020/04/03(金) 13:08:06.42ID:X+7jfuxP
>>368
それは IDE にそういう機能を付ければいいだけの話
Java とかコンパイラが必要だが、eclipse を使えば
特にコンパイラのわずらわしさはない
0373デフォルトの名無しさん垢版2020/04/03(金) 15:15:28.96ID:4iGVyiwl
>>363 >>364
ご教授ありがとうございます。
Pythonのforループの書き方がちょっと独特ですね。
ご指摘いただきましたcombiの式、確かに間違ってました(笑)
正:p=p*(n-i+1)/i;
0375デフォルトの名無しさん垢版2020/04/03(金) 16:49:39.67ID:G6AJ7B4z
>>336
class my_obj:

 def sort(self,tgt):
  if type(tgt) is list:
   for i in tgt:
     〜〜〜
  elif type(tgt) is str:
      〜〜〜

こんな感じでどうっすか?
0376デフォルトの名無しさん垢版2020/04/03(金) 18:16:39.86ID:eCdbkFhI
やはりその形ですかー
同じメソッドならチェーンでない方法で連打できないかなと思ったのです。引数に無理やりイテレータぶち込むみたいな
0377デフォルトの名無しさん垢版2020/04/03(金) 18:22:08.12ID:VVxcL9Mv
>>354
javaとNode.jsに何の関係が
0380デフォルトの名無しさん垢版2020/04/03(金) 23:05:31.66ID:Np0lmeGt
プログラム言語のPythonを大学でやることになりました

Pythonの一般的な言語に対しての欠点を教えてください
また文法が簡単に書けるのは豊富なライブラリがバックにあるためだと聞きました
何でもかんでもライブラリ頼りになることはなんか弱点というか危険なこととかはありませんか?

すいませんが教えてください
0381デフォルトの名無しさん垢版2020/04/03(金) 23:09:07.99ID:6WrhvkXF
型の宣言をしないから型というものの意識が非常に弱いプログラマーとなる。
C#などでjson受ける為のclassなど書けるレベルにならないと駄目。
0382デフォルトの名無しさん垢版2020/04/03(金) 23:12:47.98ID:PfXHV9pW
・相対的に遅い(ライブラリ使ったら大抵はそこそこ〜かなり速い)
・コンパイラ型の言語に比べて型システムがゆるいので移行するのが面倒くさい(必ずしもする必要はない)
・exeファイルに固めるのが苦行(これは本当に欠点)

職業プログラマを目指さないならどれも全くどうでもいい問題
0384デフォルトの名無しさん垢版2020/04/03(金) 23:21:55.11ID:Np0lmeGt
ありがとうございます

Pythonは特段優れた言語ではなく
現在評価されているのはライブラリがたまたま現在需要がある
AI関連のヤツが充実してるからと聞きました

Pythonは廃れる危険性は薄いですか?

C言語やJavaと仮に一本でやるにはどれがいいですか?
0385デフォルトの名無しさん垢版2020/04/03(金) 23:27:30.51ID:Np0lmeGt
重視したいのは速度と安定性です
0386デフォルトの名無しさん垢版2020/04/03(金) 23:44:11.67ID:y4LIlYUL
>>384
本職目指すなら一本に絞ること自体ナンセンスだから取っつき易いのから始めて全部やれ。
研究の道具とかで何らかプログラミングができるようになりたいというなら、具体的な用途を示さないとどれが適切かは分からない。
言語本体だけで見ればその中でpythonは遅い方だが用途によっては全く問題ない速度が出たり、他の言語で作るより速いものが作りやすいこともある。
0387デフォルトの名無しさん垢版2020/04/03(金) 23:45:31.67ID:piuBzRB4
>>385
オープンソースソフトの未来は誰にもわからない
開発コミュニティがやる気を失ったりケンカ別れしたらそれでおしまい
これから言語はたくさん経験するんだから、とっかかりとして気楽にやればいいよ
0390デフォルトの名無しさん垢版2020/04/04(土) 00:16:47.31ID:Q2cNyZtm
得意分野違ったり何やるかにもよる
javaとかループする計算早い!とかいいながらGUIクソ遅いし
0391デフォルトの名無しさん垢版2020/04/04(土) 00:58:29.00ID:2GneaZJB
教えてもらえませんか?

任意の場所に多角形があって
多角形の辺を3cm、4cm、3cm、4cm.....と多角形を大きくする感じにしたいのですが
多角形の頂点を角度に合わせて計算して膨張させたつもりが
図形が移動するだけになってしまいました
vertはそれぞれの頂点座標です
移動する長さの計算は合っているんですが
元の座標がマイナスになったときにうまくいきません
どうしたら膨張させる様に頂点の座標を計算できますか

↓自分が作ったのはこれです
from mathutils import Vector
for v in vert:
___p=v+Vector((3,4))
___print("新しい座標は",p)
0394デフォルトの名無しさん垢版2020/04/04(土) 03:20:08.62ID:H0jGuf/J
>>380
基本的に欠点が少ないから普及してる

型付けについては長所短所は裏表で
動的言語と静的言語は一長一短になる
ただ両方使えるに越したことはない

しいて言えば内包表記とか表記がやや煩雑で
Rubyの方が書きやすいと個人的には思うが
AIライブラリが充実してるからみんな使ってる

>何でもかんでもライブラリ頼りになることはなんか弱点
そりゃ何でもライブラリ頼りなら
プログラミングが上達しないことが弱点なんじゃないの?
一方で車輪の再発明すると時間を浪費するのも事実だけど
0396デフォルトの名無しさん垢版2020/04/04(土) 03:35:02.21ID:H0jGuf/J
>>384
>AI関連のヤツが充実してるから
流行したのはそれが大きいだろうけど

>Pythonは特段優れた言語ではなく
いやそこそこ優れてるとは思うけどね?
他の言語と比べればわりと書きやすい方

同じ動的言語でもPerlやPHPやJavaScript
より書きやすいんじゃない?(Rubyが一番だけど)

>Pythonは廃れる危険性は薄いですか?
薄い

もし将来廃れるとしても
十年、二十年は持つだろう

>C言語やJavaと仮に一本でやるにはどれがいいですか?
PythonやってればCやJavaもそこそこ書けるはず
CのポインタやJavaの静的型付けでつまずく
かもしれないが多くの基本は共通している

まず易しい言語のPythonを
ちゃんと読み書きできるようになろう!
0397デフォルトの名無しさん垢版2020/04/04(土) 07:56:02.93ID:+dijpLcI
Pythonは何で短い行で他の言語と同じ命令ができるのですか?
(例えばプリントメソッドなど)
0398デフォルトの名無しさん垢版2020/04/04(土) 08:04:26.39ID:pUvK7e6W
裏で妖精さんたちが頑張ってくれてるから
それと引き換えに妖精さんにわかる言葉でお話する時間だけ処理速度が遅い
0399デフォルトの名無しさん垢版2020/04/04(土) 09:09:52.12ID:+dijpLcI
>>398
妖精とは?
ライブラリとはまた違うんですよね?
0404デフォルトの名無しさん垢版2020/04/04(土) 09:45:01.78ID:ahx6kiBX
Goもやってみたいけどライブラリが少ないからなぁ、kivyみたいな便利なものが欲しい
0405デフォルトの名無しさん垢版2020/04/04(土) 09:48:34.61ID:+dijpLcI
>>403
短い命令で書ける代償に何か遅いとかある?
■ このスレッドは過去ログ倉庫に格納されています

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