Pythonのお勉強 Part60

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/04/30(火) 08:34:23.34ID:sH/UeeJ6
★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

◆エラーを解決したいときはエラー表示と
 環境(Pythonのバージョン・OS・IDEの種類とバージョン)をシッカリ書く

◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので
  ↓にあげてるような、ソースコード用サイトに貼ってきてくだしあ
    (スクリーンショットをimgurうp等の横着をしない)
ttp://ideone.com/      推定最大手。デフォ設定がCなので、Pythonするには選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう。
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)

◇Pythonオフィシャルサイト
http://www.python.org/

◇まとめwiki
ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その43【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1555397061/

〇前スレ
Pythonのお勉強 Part59
http://mevius.5ch.net/test/read.cgi/tech/1552194662/

次スレの建立は>>985が挑戦する
2019/06/11(火) 23:05:29.26ID:nbZ/cYor
>>513
すみませんメモ帳で開いたものがこちらです
https://i.imgur.com/1ioyTau.png
空にはなってないです
2019/06/11(火) 23:27:40.11ID:yU84dTYh
うーん、同じようなファイルを作ってpandasで開いてみたけどnullはnullのままだわw

私の環境はWindowsで、メモ帳で>>514の途中までのデータを入力したファイル(文字コードはsjis)を用意して
encoding指定してpandasで開いてみました(encoding指定しないとエラーになる)
>>> df = pd.read_csv(r'C:\Users\tk\Desktop\aaa.csv', delimiter="\t", index_col=[0], header=None, encoding='cp932')
>>> print(df)
1
0
nudge 軽い突き
null ゼロ
nuptial 結婚式
obscenity わいせつ
>>>

ということで、そちらの環境は日本語が含まれているファイルを開いているのにencoding指定無しで開けているのが異なる
もしかしたらencodingエラーを無視して開いているんじゃないのかな?それでpandasで読み込んだ時点でデータが
変わっていると予想
2019/06/11(火) 23:31:41.04ID:yU84dTYh
あ、ファイルの文字コードをutf-8にしたらencoding指定無しでいけたわ
でもnull文字はnull文字のままで、NaNにはならないなぁー
2019/06/12(水) 00:05:34.02ID:BNfp0i08
わざわざ同じように試していただいて本当にお手数おかけしてます
せっかくですので問題が起こっているCSVファイルもあげさせていただきました
もしよければチェックしていただけるとありがたいです
https://dotup.org/uploda/dotup.org1870215.csv
2019/06/12(水) 00:17:35.61ID:dGJQWhEh
>>> df = pd.read_csv(r'C:\Users\tk\Desktop\dotup.org1870215.csv', delimiter="\t", index_col=[0], header=None)
>>> print(df)
1
0
nudge 軽い突き
null ゼロ
nuptial 結婚式
obscenity わいせつ
obsessive 妄想を持った人
omen 前兆
onslaught 猛攻撃
>>>

ででぇーん、再現ならず・・じゃあ私もう寝るから、おやすみー
2019/06/12(水) 00:21:06.05ID:dGJQWhEh
ちなみに私の環境のpandasはAnacondaに入ってたやつで、バージョンは以下のとおり
>>> pd.__version__
'0.20.3'
>>>
2019/06/12(水) 00:21:38.85ID:BNfp0i08
うーん再現ならずですか・・・
お付き合いいただきありがとうございました、おやすみなさい
2019/06/12(水) 00:23:24.16ID:BNfp0i08
自分のpandasのバージョンは0.24.2なので、もしかしたらそこが原因かもしれませんね
いろいろ試してみます
ありがとうございました
2019/06/12(水) 06:14:33.53ID:v9kdzfUv
google colabで読み込んでどうなる?
2019/06/12(水) 09:52:59.33ID:dGJQWhEh
>>512
OpenOfficeよりもLibreOfficeの方が良いらしいですよ
ttps://tedaeri.com/app-which-openoffice-or-libreoffice/
2019/06/12(水) 10:08:38.96ID:kCj8PQiR
>>523
>しかし、既に「Apache OpenOffice」のユーザーがあまりにも多く、終わらせようにも影響力が大きいです。

普及のためには、M$との互換性が高く移行も容易、みたいな宣伝をするくせにw
2019/06/12(水) 21:48:46.24ID:DK5Xdw8/
win上のAnacondaのspyderのエディターで書いて実行する場合
qt5もtkinterもボタンを押して変化なし

Anaconda powershellというのでpython ファイル名だとちゃんと動いた
2019/06/12(水) 22:46:29.53ID:BSq+d1KN
出来るだけきれいなコードを書けるようになりたいと思ってます
動けば良いってレベルから次に行きたい
こういう場面はこういう処理の書き方のほうが良いとかはどうやって身につければ良いですか?
2019/06/12(水) 22:50:55.79ID:6508qYyd
独学じゃ無理
仕事で他人にコードレビューで叩かれて覚えるもんだ
528デフォルトの名無しさん
垢版 |
2019/06/12(水) 22:59:45.07ID:uvvnpCRF
>>526
人が書いたコードを読むこと
標準ライブラリとかで使う部分だけでもいいから読んでみる

PEP8にできる範囲で準拠してみるとか
他にはテストを書いてみるとかも役に立ってると思う

ていうか、色々ありすぎてキリがないけど
人が書いたコードを読むのは絶対必要かな
2019/06/12(水) 23:14:51.17ID:eCiQ25Tx
>>497
java,c++みたいな静的な言語の場合はそうだが、ruby,pythonみたいな言語の場合は
クロージャー渡すインターフェイスのが直感的。
530デフォルトの名無しさん
垢版 |
2019/06/13(木) 00:18:27.47ID:QGxbtz9r
>>526
Pythonできれいなコードはあり得ない。C, C++, C#などで書き直すしかない。
2019/06/13(木) 01:32:57.26ID:SaZXT9dZ
>>539 そりゃねーよ。

Python だって型を指定することもできるんだぞ。 可読性はそれだけでも上がる。
初心者はそんなことは考えなくて良い。

人のプログラムを眺めること、ひたすら自分で練習問題を解いて人の回答と見比べてみること。

プログラミングのお題スレ Part14
https://mevius.2ch.net/test/read.cgi/tech/1558168409/
2019/06/13(木) 06:40:21.43ID:NulSwGzN
>>526
可読性が高く、きれいなコードが書けるのは、Ruby。
誰もが読めるから、アルゴリズムを説明する、仮想言語にもよく使われる

Node.js などは、Rubyのすべての実装を、JavaScript に移植したもの!
可読性が高いから、他の言語から、よく参考にされる

Rubyで「プログラミングのお題スレ」の問題を解くのが、お勧め!
2019/06/13(木) 07:41:24.30ID:vbUZdfMk
>>532
そんな素晴らしいRubyが驚異的な勢いでシェアを失っているのだから、どこかに重大な欠陥があると考えるのが自然だろうね
https://www.tiobe.com/tiobe-index/
2019/06/13(木) 07:48:08.30ID:k5DFsQwe
7年前のここから成長できなかったんだろ
https://el.jibun.atmarkit.co.jp/rails/2011/01/debianruby-1aff.html

開発者コミュニティが未熟だとはDHHも言及しておる
2019/06/13(木) 08:13:31.56ID:N68D4F9N
>>532
あのスレは簡単なお題に対して短いプログラムで回答することが多く、one linerも多いだろう。
質問者の求めているものが得られるような場所じゃないぞ。

毎度のことだか、ところ構わず自分の好きなものを推すのはやめろ。「相手の求めること」と「自分の好きなもの」が違うことが理解できないのか?
2019/06/13(木) 08:24:08.02ID:5cAqIW1C
アルゴリズムの説明に使われるのってRubyよりPythonの方が圧倒的に多いよね
そもそもPythonは意図的にアルゴリズムの文献で使われてるような仮想言語(擬似言語の間違いだと思うが)
に似せて作られてるから当然ではあるんだが
2019/06/13(木) 09:46:07.28ID:g8amv0Zv
C言語が多いだろ
2019/06/13(木) 10:03:17.67ID:S2o13G1a
CとJavaとPythonが多いよな。基本がCで、オブジェクト指向関係だとJavaが多いイメージ。結局は使用人口なんだろう。
抽象度の高いスクリプト言語の擬似コードとしては、RubyよりもPythonの方が多い印象だな。使用人口の点もあるし、クセが相対的に少ないので無難ということなんだろうが。
2019/06/13(木) 10:07:43.77ID:jbT5ijCY
>>526です
レス頂いた方ありがとうございます
単純にプログラミング能力不足なところもあるとは思うんですが
人のコード見ても理解出来ないときがあるのでいろんな人のを見て自分との差を考えてみます
2019/06/13(木) 11:24:57.82ID:GWyBJ7G0
異教徒は雑草の如く湧いてくる。
2019/06/13(木) 16:51:10.14ID:RGywZD7u
>>539 理解できないときは、自分で実行させて中間の値がどう変わっていくのかをみていくと理解が早い。

そして自分で少し変えた例題を作って実行させてみる。

Python は、基本は優しそうに見えるから侮って勉強を怠ると、奈落の底に落ちるかも知れない。
登れば登るほど頂上が見えないようなところがあるな。 ライプラリが半端なく多いからね。 あんなのもこんなのも大抵できてしまう。
542532
垢版 |
2019/06/14(金) 00:26:24.31ID:gXbRy3uY
IT 大賞を取った本「プログラマ脳を鍛える数学パズル」2015 も、多くはRuby の解答

一部は、JavaScript で書いてある
2019/06/14(金) 00:49:15.52ID:xBXyqLPT
>>542 どこの国の話だよ。 アメリカの大賞はどうだった?

Ruby が日本で生き延びられていたのは、Python のUTF の扱いが遅れたからに他ならない。 Python3 になってからやっと日本でも使われ始めたというだけの話。

いい加減死んだ子の年を数えるのはやめろよ。 虚しくなるだけ。
2019/06/14(金) 00:58:00.02ID:Guh3Kqz1
Pythonの話しない?
Rubyとか役目終えたし
545デフォルトの名無しさん
垢版 |
2019/06/14(金) 20:18:37.97ID:apjsiMiU
東京の書店の本棚はPythonだらけw
Pythonだけで一棚完全占拠+moreww
rubyは全盛期でも一列ちょっとが精々で一棚埋めたことなんてなかったけど最近は四分の一棚未満とか言う悲惨な状況wwwww
546デフォルトの名無しさん
垢版 |
2019/06/14(金) 20:21:05.91ID:apjsiMiU
>>545
ごめん打ち間違えたwww
> 四分の一棚未満とか言う悲惨な状況wwwww
四分の一棚もあるわけないわw
「四分の一列未満とか言う悲惨な状況wwwww」の間違いww
2019/06/14(金) 20:31:13.90ID:uMeUmtQc
今は小学校から大学まで学校全てでPython メインで教えてるからね。 ruby の講座なんて見たことない。
2019/06/14(金) 20:46:52.48ID:bmYBdO4W
異教徒じゃ、異教徒が現れたぞ
一匹見つけたら20匹は隠れているぞ
549デフォルトの名無しさん
垢版 |
2019/06/15(土) 11:14:09.22ID:Z5/LYv7k
>>545
ほんそれ
しかも*ubyは全盛期は*ailsばっかりだったしな
2019/06/16(日) 01:47:23.85ID:RkEkN9gF
Rubyの2.0が出るタイミングとPythonの3.0が出るタイミングが同じくらいだったんだけど
windowでのunicodeファイル名の扱いがrubyは絶望的ということで、自分はこの時期にRubyからpythonに乗り換えたんだよなぁ
2019/06/16(日) 01:52:13.41ID:RkEkN9gF
>>536
論文で疑似コードでよく見るのはpascalっぽいなぁと思う
2019/06/16(日) 14:49:27.57ID:yEr4r4hL
pascal臭さはpythonの良さだったのに最近のpythonはよりrubyに近づいてる。
総じてクソな方向だと思う。
2019/06/16(日) 16:14:21.89ID:Ls3vXLZ0
music playerをraspberry piで動かそうと思うんだけど
mp3はpygameでできるんだけどflacファイルの再生ってどうやったらいいんだろう?
554デフォルトの名無しさん
垢版 |
2019/06/16(日) 17:11:59.12ID:Z9zSyDOE
S○X
2019/06/16(日) 17:17:45.96ID:ZECmHa8A
>>553
ぐぐったらすぐ出てきたけどこれは?
https://qiita.com/itoru257/items/8af2902d8ce851ae74ea
2019/06/16(日) 17:18:50.20ID:ZECmHa8A
>>553
スマンflac無かったわw
2019/06/16(日) 17:21:27.93ID:ZECmHa8A
>>556
これかな?
https://teratail.com/questions/183663
rawデータにしてサウンドデバイスに流してみるとか
558デフォルトの名無しさん
垢版 |
2019/06/17(月) 10:50:38.89ID:gprQuYsc
教えるのが上手いベテランさん
たい焼きを使って初心者の俺にクラスの概念を教えろ下さい。
https://kuzunoha-ne.hateblo.jp/entry/2018/11/22/221303
2019/06/17(月) 10:55:13.82ID:Lf4SaB10
毎日毎日僕らは鉄板の
560デフォルトの名無しさん
垢版 |
2019/06/17(月) 11:28:20.75ID:lxO8a0KV
> 558
ruby誘導だったから放置
561デフォルトの名無しさん
垢版 |
2019/06/17(月) 11:31:51.79ID:gprQuYsc
Rubyの話じゃ無いっすよ先輩
ちゃんとPythonに書き換えてるコードのリンクっす

つか、当方PythonかじりたてでPython以外の言語知らないっす
562デフォルトの名無しさん
垢版 |
2019/06/17(月) 11:47:16.23ID:gprQuYsc
>>547
普通の小学生はScratch>>Pythonなのに
松山市の子供達はスモウルビィー>>Ruby

ファミコン>>スーパーファミコン
セガマークIII>>メガドライブ

に似てる気がして、迷わずPythonを選びました。
手続き型でスクレイピングで遊んでたらもっとPythonが知りたくなって
クラスの壁にぶち当たり、先輩達に相談に来たっす。

https://smalruby.jp/
563デフォルトの名無しさん
垢版 |
2019/06/17(月) 11:47:43.64ID:gprQuYsc
スマヌ松江市
2019/06/17(月) 11:54:02.82ID:D4rpPP9R
当方PythonかじりたてでPython以外の言語知らないっす

の割にはrubyに詳しいなω
お前たい焼きの当事者だろ
2019/06/17(月) 12:18:08.68ID:1eZbDMm7
1. 小麦との出会い
2019/06/17(月) 12:50:10.19ID:PGXWl9Ws
>>558 ルーピーじゃなかったらなぜ最初から Python たい焼きを参考にしなかったんだ?
じっくり自分で見てみろ。

Pythonで学ぶ 基礎からのプログラミング入門
第20回
オブジェクト指向について学ぼう(2)
https://news.mynavi.jp/article/python-20/
https://news.mynavi.jp/article/python-20/images/001.jpg
2019/06/17(月) 12:55:37.21ID:PGXWl9Ws
>>566 あれ? 画像が出ないな。 ブラウザで開けば見れるが。
こっちの画像の方が理解しやすいだろう。

https://image.itmedia.co.jp/ait/articles/0803/12/r801.gif
568デフォルトの名無しさん
垢版 |
2019/06/17(月) 13:32:22.87ID:gprQuYsc
マジ参考になるサイトありがとうございます!

ルーピー?Rubyチョイスしてしまったイタい子の事?ですか?
自分は最近Pythonはじめて言語選びでRubyのことさらり見ただけなので、よくわかりません。
ただ、世界的になったPythonと松江の田舎おじさん達の居場所作り言語を比較してもしょうがないと思うっす。
それにリンダリカウスさんはプログラミングできなさそうなのに、イミフな絵本作って居場所作りしてるし。

初心者の自分ですら、PythonとRubyどっちを選べば良いかぐらいわかります。
2019/06/17(月) 13:33:45.28ID:PGXWl9Ws
ここが結構まとまってそうだけど Python2 だから注意してね。Print文は ptint() に変換してね。

10. Pythonでオブジェクト指向@
https://sites.google.com/site/kuraitlab/programing-language/python/python-oop1
「クラスはたい焼きの型」で、「インスタンスがたい焼き」の関係です。
たい焼きクラスには「泳げたい焼き君」を歌うメソッドを定義します。
次にたい焼きをひとつ作ってメソッドを呼び、歌わせてみましょう。
570デフォルトの名無しさん
垢版 |
2019/06/17(月) 14:12:55.67ID:gprQuYsc
クラスの概念理解できた気がします。ありがとうっす!
小規模なモンしか書いた事ない初心者なんで、メリットが直感的には理解できてませんが、
数名のプロジェクトや大規模なコードになると訂正修正がすんなりスマートに行くのも何となく理解できます。
ちょっと長めのアプリでも作ってクラスを利用するやり方を少しずつ学んでいきます。

あと、もいっこ質問なんすけど、Pythonが英語を学ぶ事なら
Rubyは韓国語みたいな認識でいいですか?
2019/06/17(月) 14:45:02.78ID:PGXWl9Ws
>>570 もう良いよ。 死んだ子に鞭を打つようなことはやめよう。 一人 *uby使いがPython スレを荒らして困ってるだけ。
*uby自体は悪くないけどうざいから自分はスマホの方ではNGワードに叩き込んでる。
572デフォルトの名無しさん
垢版 |
2019/06/17(月) 16:40:00.84ID:gprQuYsc
>>570
Rubyは半島言語そのもの
2019/06/17(月) 18:13:31.76ID:1OuEx0ms
>>569 おっとっと、わかると思うが、print() ね。
2019/06/18(火) 00:11:26.08ID:D6aR/xXH
ぱいたん
2019/06/18(火) 02:01:02.01ID:6yN19r5b
>>572
IDが……。お前のメンタリティは、まさに他から嫌われまくったRuby信者のそれと同じだわ
2019/06/18(火) 05:04:17.92ID:E9jOJggr
自作自演ワロス
577デフォルトの名無しさん
垢版 |
2019/06/18(火) 06:14:11.68ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
578デフォルトの名無しさん
垢版 |
2019/06/18(火) 09:08:01.48ID:kixTd3MF
ごめんなさい
ちょっと盛り上げるために自演っぽくしました
本当にクラスのリンク教えてくれた人ありがとう

Rubyはやってません
2019/06/18(火) 16:41:50.60ID:skZhrTT7
sympy で、 a+b+c = 7 で、a,b,c が異なる正の整数の場合の組み合わせをすべて表示しろ、と言う様な場合どうするの? 1,2,4 といく組み合わせが欲しいんだけど

a,b,c = sympy.symbols( 'a:c')
print( sympy.solve(a+b+c-7,a) )
とかでも答えが出てこない。

色々調べたけど異なる数字というのをどう表現するのかわからない、集合? FiniteSet ?
580デフォルトの名無しさん
垢版 |
2019/06/18(火) 17:30:18.18ID:QwXxieVT
print( [list(_) for _ in ((sympy.solve((a+b+c-7, b-x, c-y), a, b, c) for x in range(100)) for y in range(100))] )
581デフォルトの名無しさん
垢版 |
2019/06/18(火) 18:01:48.15ID:SfhKVoXs
正の整数だったので
print( [[__ for __ in _ if __[a]>0 and __[b]>0 and __[c]>0] for _ in ((sympy.solve((a+b+c-7, b-x, c-y), a, b, c) for x in range(100)) for y in range(100))] )
582デフォルトの名無しさん
垢版 |
2019/06/18(火) 18:03:43.76ID:SfhKVoXs
ああ異なるもあったか
がんがれ
583デフォルトの名無しさん
垢版 |
2019/06/18(火) 18:11:26.29ID:SfhKVoXs
print( [[__ for __ in _ if __[a]>0 and __[b]>0 and __[c]>0 and len(set(__.values()))==3] for _ in ((sympy.solve((a+b+c-7, b-x, c-y), a, b, c) for x in range(100)) for y in range(100))] )
2019/06/18(火) 22:19:53.95ID:vXUKKx8C
djangoでusernameをuseridに置き換えて使いたいんだけど、
これって単純にテキストエディタで
env環境のdjangoファイルのusernameを全部useridに置き換えたらいいんだろうか?
2019/06/19(水) 02:01:30.44ID:vbzhpePV
>>583 こんなことしないといけないの? なんかスパッと出してくれるとばかり思ってた。
しかも異なる数字というのも面倒くさい。
print に空のリストが出てくるし、これはどうとでもなるけど。

でも solve の結果の変数として、a,b,c と3つ書けるのは勉強になった。 有難う。

正の整数というのは、symbols で文字列を定義するときに、integer=True , positive=True とするからチェックはいらないんだけど。ここで different=True とかあれば助かったのにな。

--------

なんか似たようなのがあった、明日ゆっくり見てみる。
https://stackoverflow.com/questions/41313116/python-sympy-solve-equations-with-different-values

linsolve とset を使うみたいだな。

plug_in_for_vars = ...

これはどういう意味? Ellipsis ? 略号? 組混み常数?
Ellipsis
The same as the ellipsis literal "...". Special value used mostly in conjunction with extended slicing syntax for user-defined container data types.

もう寝る
586デフォルトの名無しさん
垢版 |
2019/06/19(水) 09:39:17.88ID:7l13oIkn
Unicode を生バイナリに変換するにはどうすればいいですか?
UTF8などのエンコードは不明だとした場合
587デフォルトの名無しさん
垢版 |
2019/06/19(水) 09:44:28.84ID:7l13oIkn
>>586と一緒の人ですが
もともとはエンコード不明な文書のエンコードを判定したいんですけど
そのエンコード不明な文字列がユニコードとなっていて、判定ソフトに渡すとそこで停止します
そこで生バイナリで渡す必要があるのかなと
2019/06/19(水) 09:55:09.82ID:XfBh72nj
Unicode文字列になった時点ですでに情報が落ちている可能性があるので
一般論として、変換前のバイナリを入手すべきだ

それでもやりたいなら
Unicode文字列が0-255のコードポイントの範囲ならlaten1でbytesに変換
その範囲外ならordでチマチマやる
589デフォルトの名無しさん
垢版 |
2019/06/19(水) 09:55:50.28ID:7l13oIkn
バイト文字列 ⇔ Unicode文字列は .encode("unicode-escape")で出来るらしいですが
動作はしたのですがアスキーと判定されました
正しく判定ができてない UTF8なのに
590デフォルトの名無しさん
垢版 |
2019/06/19(水) 09:58:07.39ID:7l13oIkn
ここが駄目ですか?
このtxtがユニコードなのですが


r = requests.get(url)
txt = r.text
591デフォルトの名無しさん
垢版 |
2019/06/19(水) 10:01:50.44ID:7l13oIkn
解決しました
ヒントもらって調べたら生データはこっちで取れました
判定も成功です

r = requests.get(url)
txt = r.content
2019/06/19(水) 12:14:56.41ID:kRHU1GSn
>>585
ディオファントス方程式だからsympy.solveじゃ解けないでしょ
こっち使うべき
https://docs.sympy.org/latest/modules/solvers/diophantine.html
2019/06/19(水) 15:40:51.42ID:gIy8vH6x
言語なんてとっかかりは簡単そうに見えるけど、仕事でやらないと身につかない。
594デフォルトの名無しさん
垢版 |
2019/06/19(水) 16:45:16.79ID:hXvD76L8
やる氣スイッチ
2019/06/19(水) 16:47:25.35ID:gIy8vH6x
>>592 なんかいろんな関数があるけど便利そうな機能ですね。 有難う。
何となくわかったけどなんで関数が別れてるのか理解できない。 練習してみれば理解できるんでしょうけど、奥が深すぎる。
2019/06/19(水) 18:31:23.10ID:gIy8vH6x
>>595 日本語のページがあったのでさらっと見たら、やはり日本語だと理解が早い。
要は方程式のタイプにより使い分けるという話ね。

https://showa-yojyo.github.io/notebook/python-sympy/diophantine.html

https://python.atelierkobato.com/diophantine/

でも練習しないとわからないのは同じだけど。 でも結果を予測できるようにはなった。
597デフォルトの名無しさん
垢版 |
2019/06/19(水) 19:09:24.37ID:b1RkNn/r
チュートリアル読んできた方がいいよ
2019/06/20(木) 11:28:37.71ID:ok8sRwUq
jupyter上でipywidgetsを用いて、一つのスライダーを動かすと、ほかのスライダーが自動で動くようにしたい

同じ値に揃えるだけならリンクで簡単なんだけど、積が一定とか和が一定のような条件で自動で連動させる簡単な方法ってある?
2019/06/20(木) 12:57:43.48ID:jU4LCfdb
>>597 読んでもよくわからない。

diophantine(x+y+z-7)
# {(t0, t0+t1, -2t0-t1+7)} << この答えの中の t0 t1 に値を入れる方法は?
s=diophantine(x+y+z-7)

例題では、 何かの変数に popしてるみたいだけど
x_1 = s.pop() # 外の {} が取れるだけ (t0, t0+t1, -2t0-t1+7)

x0,y0,z0 =s.pop()
x0 # t0
y0 # t0+t1
z0 # -2t0-t1+7
t0,t1=symbols('t0 t1') # こうするとなんとなく t0,t1 は答えの中のt0,t1 に似てるみたいだけど代入はできない
t0=1
t1=1
x00=t0
y01=t0+t1
z01= -2*t0-t1+7
x00==x0 #True
y01==y0 #True
z01==z0 #True
ここからが解らない。

t0,t1=1 ,2
(t0, t0+t1, -2*t0-t1+7) # (1,3,3)
みたいに一つずつ入れていくのもバカみたいな気がする。 全ての組み合わせは出ないのかな?
2019/06/20(木) 13:04:22.36ID:88lkef84
qiitaだけGoogleアドセンス広告ブロックできないけど何かやってるのかな
2019/06/20(木) 13:24:29.88ID:qiZ0ArhZ
Python関係ない独り言はママに聞いてもらえ
2019/06/20(木) 13:41:46.39ID:ok8sRwUq
媒介変数はt_0みたいにアンダースコア付きになってる

代入できない問題は新しいxをsympify(str(x0))で文字列経由で定義してやれば出来るけど代入出来ない理由と正しいやり方は知らない
603デフォルトの名無しさん
垢版 |
2019/06/20(木) 14:02:42.27ID:R3CNAp+/
代入
上から30%-40%くらいらへん
https://living-sun.com/ja/python/722599-get-all-positive-integral-solutions-for-a-linear-equation-python-sympy.html
2019/06/20(木) 14:21:50.03ID:jU4LCfdb
>>603 なるほど段々わかってきた。代入もできてるみたいだね。その中の例題

from sympy import *
x, y, z = symbols("x y z")
[s] = diophantine(x*411 + y*295 + z*161 - 3200)
print(s)# (t_0, 2627*t_0 + 161*t_1 - 19200, -4816*t_0 - 295*t_1 + 35200)
t_0, t_1 = s[2].free_symbols
for t0 in range(int(35200/4816)+1): # これがミソ
 for t1 in range(int(35200/295)+1): # これがミソ
  sol = [expr.subs({t_0: t0, t_1: t1}) for expr in s] # 代入
   if min(sol) > 0:
    print(sol) # [4, 2, 6]
605デフォルトの名無しさん
垢版 |
2019/06/20(木) 15:05:44.02ID:9IsAc6k5
.free_symbols がミソ
ただし結局のところ
やってることは >>583 と変わらない
2019/06/20(木) 15:06:52.46ID:jU4LCfdb
出来た。 有難うございました。

なぜか、ソースをアップできないので ideon にあげました。 sympyがインストールされていないので実行はできませんが
https://ideone.com/3jwKlB
607デフォルトの名無しさん
垢版 |
2019/06/20(木) 15:17:31.22ID:9IsAc6k5
x, y, z, t_0, t_1= symbols('x y z t_0 t_1', integer=True, positive=True, nonzero=True)

ここの t_0 と t_1 は意味が無いと思う
2019/06/20(木) 16:39:17.52ID:Gh9YFRfh
>>607 そうそう全く意味ない、わかってたけど取るのを忘れてた。 nonezero 属性がつけられるかなと思ったんだけど、意味なかった。
むしろ、to,t1 に nonezero 属性をつければよかったのかも。 if min(sol)> 0 を無くしたかった。

今外だから試せないけど。
2019/06/20(木) 16:57:34.33ID:Gh9YFRfh
>>608 t0,t1も無理だね、最後の式で 0が出てくるから
2019/06/20(木) 19:21:11.34ID:f8C0fCZ6
プログラミングは小さいことをこつこつ続けるのがコツですか?
2019/06/20(木) 19:28:21.47ID:PrZKlplW
>>610 その通り。 小学生が算数の練習問題を沢山解いて、すぐに答えが出るようになるのと同じ。
練習、練習。

基礎ができてきたら、方程式を覚えるように次のステップに入る。 結構奥も深いから基礎をしっかりしておく方が良い。

基礎ができていないと上に進んだ時につまづく。
最初の基礎は、入門書レベルで良い。 そのレベルの問題ならカンニングしなくても8割がたサラサラ解けるようになったら次に進む。
2019/06/20(木) 19:30:39.76ID:YlBdXsDL
大きな志を持つことが大事だと思う
2019/06/20(木) 19:30:44.80ID:PrZKlplW
なぜすぐに解ける事が重要かというと、短い時間でプログラムする事が職業プログラマーだから。
時間をかけてとくなんてのは許されない。 難しい問題に時間がかかるのは仕方ないが、基本はさらっと進まないと仕事にならない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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