Pythonのお勉強 Part59
■ このスレッドは過去ログ倉庫に格納されています
★当スレに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(超初心者用) その41【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1549282930/
〇前スレ
Pythonのお勉強 Part58
http://mevius.5ch.net/test/read.cgi/tech/1540468210/
次スレの建立は>>985が挑戦する >>605
詳細は避けるけどストリーミング配信を行うシステム。普通にflaskだよ。 C++がPython抜いて3位 - 4月TIOBE言語ランキング 2019/04/17 10:55 後藤大地
https://news.mynavi.jp/article/20190417-810363/
TIOBE Softwareから、2019年4月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語が
どれだけ話題になっているかをインデックス化したもの。
4月TIOBE Programming Community Index / 円グラフ
https://news.mynavi.jp/article/20190417-810363/images/001.jpg
2019年4月はC++がPythonを抜いて3位に返り咲いた。ただし、Pythonのシェアが下落したの
ではなく、Pythonの増加傾向をC++の増加が上回ったことによる結果と思われる。C++は
長期にわたって下落傾向が続いていいたものの、2019年に入ってから増加傾向へ転じている。
Pythonも増加傾向が続いており、どちらも今後さらにインデックス値を増やす可能性がある。
長期にわたって1位を確保しているJavaは依然として1位のポジションにあるが、下落の
傾向が続いている。2位のC言語も長期で見ると下落を続けており、C++やPythonの存在感が
強くなってきている。 >>606
> 普通にflaskだよ。
最近はpython触ってないから知らなかったよ、ありがと >>607
これってサーバサイド限定の話じゃなくて
IoTとかの組込系の仕事が増えたってことだよな pythonとC/C++はスムーズにくっついてくれるんで、この2つが人気あるのは嬉しい傾向。 anaconda使ってるんだけど、condaでインストールできないパッケージがある場合ってどうするのが正解? >>611
pipで入れる
オススメの使い方は環境を作ってデフォルトを汚さないこと
手順は以下のような感じ
conda create 環境名
source activate 環境名
conda install パッケージ名
pip install パッケージ名
condaでインストールできるものはcondaを使う
ただpipを使くなら以後全てpipを使った方が問題が少ない 間違えた
一番最初の環境作るのは -n オプションが必要で
conda create -n 環境名
あと二番目の source activate 環境名 は最近は
conda activate 環境名
に変わったので出来なかったらこっちを試して >>613
pipenvを使う人とanacondaを使う人のユーザー層は違いそう 実はpipenvよく知らない。node.jsのpackage.jsonみたいなものと聞いたことがあるんだが正しい? nvmやnodist、nodebrewやnみたいなもんだろそれを言うなら。 やれpipenvやー、venvやー、virtualenvやー、pyenvやーってもうわけがわからないよ pipenvはrubyのbundlerが一番近いのかな venvってvirtualenvみたいに同一Pythonバージョン内で仮想環境複数つくれないの? Python 自体が始めてで基本が分ってないので苦戦してます。
関数の結果を別の関数で使うにはどうしたら良いのでしょうか?
例えば、下のプログラムはどう直したらちゃんと動くでしょうか?
アドバイスをいただけると助かります。よろしくお願いします。
https://ideone.com/BHdnXj pythonでの成果物を提供するときに必要なライブラリを自動でインストールできるようにするベストプラクティスってある? 成果物をパッケージ化する時に、そのパッケージのsetup.pyに依存するパッケージを書くのが普通ないの >>625
相手が開発者なら626
相手が一般ピープルならWebアプリ
Pythonで作ったものを他所へ配ろうという発想は何ら得るもののない修羅の道だからきっぱり諦めるのが身のため >>626でいってみます。
先方のソフトとうちのソフトをソケット通信で繋いで一つのサービスを提供することになったんだけど、先方のシステムスタブ(兼ドライバ)をpythonで作ったのよ。GUI付きでさくっと作る必要があったから。
んで、うちのソフトを提供して結合試験してもらうんだけど、せっかくなので参考までにスタブも渡してあげろと上司に言われてしまって。 pythonの成果物の配布で何の問題も発生しないようにするなら必要なパッケージ名を指示するだけでなくパッケージの実体そのものを含めておかなければ不十分
pipで拾ってくるにしても元データが削除されているリスクがあるからね >>628
setup.pyは慣れないとキツイ
恐らくスタブ作るのと同じくらいの手間がかかる
特にGUI周りは動作環境に依存して動かないこともしばしば
許されるなら仮想マシンで提供かなぁ 現実的にはreadme.txtに
・pythonをインストールしてください(url)
・下記のコマンドを入力してください。
・pip install 〜
・pip install 〜
…
だろうな。
スタブってことは、渡す狙いは先方が上手くいかなかった時にソースコードを参考にしてもらうことであって、動かすことはおまけでしょ。 電話一本かけて説明すれば済むことに時間かけちゃダメでしょ。 違う部署で使いまわされて
また事情知らない人に一から説明し治すくらいなら
これみろの一言で済ませる方が大事 最近はもっぱらAnacondaで動作確認して「AnacondaのバージョンXXインストールしてください」で済ませちゃう あれこれ手動でインストールしなくてもいいようにsetup.pyとかrequirements.txtがあるんやないのか(´・ω・`) 結合試験の時にあると嬉しい、参考程度のオマケプログラム渡すだけだろ?
そんなのうって欲しいコマンドメールで送るだけで十分でしょ。 python製プログラムを提供するんだけど楽な方法ない?
↓
setup.pyがあるよ
↓
setup.pyは慣れてない人には書くの大変だと思うよ
↓
今回くらいの話ならsetup.py書くより手書きメモの方が楽でしょ
↓
手動でインストールしなくてもいいようにsetup.pyがあるんじゃないの?
↓
今回くらいの話ならsetup.py書くより手書きメモの方が楽でしょ
無限ループ入ったな。だれかbreak文挿入して差し上げて。 if 先方との仲良さ > 60%:
way=手書きメモ
break
elif 先方との仲良さ > 30%:
way=setup.py
break
else:
way=スタブ渡さない
break 依存したパッケージも含んだsdistとかwheelって作れるんかね アイコンをダブルクリックして起動したときだけ
一部のライブラリをimportできないという謎のエラーが出て
今日の午後いろいろ試したが駄目だったのが
visual studio 2019のほうにもpythonが入ってるのを思い出して
試しに削除したら直った Vagrant, Chef は、Ruby で作られている!
だから、Rubyなんだよ
Ansible は面倒 chefとansible両方共使ったことあるけど、間違いなくansibleの方が簡単やわ Vagrant最近使わなくなったな。もっぱらDockerだわ ちなみにvagrantを作ったhashicorpはRubyを捨ててGoに乗り換えたよ Ruby が作り出した、今世紀最大の起業家、
Vagrant の作者、Mitchell Hashimoto(Hashicorp) https://github.com/mitchellh
このホモっぽい兄さんのことか
最近のコミットほとんどGoで草 ちなみにhashicorpといえばvagrantだったのは昔の話で、今ではteraformが代表的なプロダクトだ
もちろんteraformはGo製な あと、Chefも新プロダクトであるChef AutomateはGoに乗り換えた
完全にRubyにNOの流れだね
インフラ系のRubyプロダクトで有名なのはあとはfluentdが辛うじて残ってるくらいか fluentdも最近はfluent-bit(C言語製)の方がアクティブに開発されてるみたいだけど、
開発元のTreasureDataがARMに買収されたことでIoT重視に転換したのかな
TreasureDataはembulkもJRubyやめてJavaに乗り換えたみたいだし、
マジで可愛そうなくらいに壊滅状態だねインフラ分野のRuby 0,1を要素に持つリストがあって、連続する1はまとめて一回としたときに
1が何回出てくるかカウントする問題をどう実装していいのかわからずに
困っています・・・
例)
[0, 1, 1] → 1回
[0, 1, 1, 0, 1, 0, 1] → 3回
[1, 1, 0, , 1, 0, 0] → 2回
どなたかよろしくお願いします・・・ >>657
何も考えずにやればこんなん
list=[0,1,1,0,1,0,1]
init=0
cnt=0
for i in list:
if init==0 and i==1:
cnt=cnt+1
init=1
if i==0:
init=0
print(cnt) >>657
import re
a = [1,1,0,1,0,0]
_a = ‘’.join([str(c) for c in a])
_a = re.sub(r’1+’, ‘1’, _a)
_a = re.sub(‘0’, ‘’, _a)
print(len(_a)) 電車の中だからコードかけないけど
リストの頭に0を一個足して
要素n+1から要素nを引いたものが1になる数を数えればよいのでは >>657
>>> import re
>>> q = re.compile(r'01')
>>> a = [0,1,1]
>>> b = [0,1,1,0,1,0,1]
>>> c = [1,1,0,0,1,0,0]
>>> len(q.findall(''.join(map(str,[0]+a))))
1
>>> len(q.findall(''.join(map(str,[0]+b))))
3
>>> len(q.findall(''.join(map(str,[0]+c))))
2 Ruby では、文字列のsqueeze で、連続する同じ文字をまとめる。
ただし、配列にはそういうメソッドがないので、文字列に変換してから処理する
ary = [0, 1, 1, 0, 1, 0, 1]
char = "1"
ary.join.squeeze( char ) #=> "010101"
ary.join.squeeze( char ).count( char ) #=> 3 python て、case文みたいのが無いんですよね。if文でも出来るとは思いますが、なんか嫌じゃないですか?
あと、スコープが関数だと思いますが、不便ではないですか。スコープがブロックの言語もあるようですが。
識者の意見を聞きたいです。 switch-case無しは最初は抵抗あったけど、一回書いてみたら別に可読性悪くないなとわかり納得した。
スコープについてはどうなんだろうねぇ。すごく人によりけりな気がする。自分はブロックでスコープ管理するようなプログラム書く習慣がないから気になったことないな。 俺はブロックスコープいらない派
一般論として、ブロックスコープが欲しくなるような長い関数は書くな 正規表現で複数の1を一つにまとめてしまう方法はperlっぽいな >>664
Switch書かないといけないロジック自体が好ましくないのでいいと思う
必要なら辞書でそれっぽい事も出来なくはない
x = ‘hoge’
{
‘hoge’: 3,
‘piyo’: True
}[x] https://mevius.5ch.net/test/read.cgi/tech/1552194662/
ここにpython3でPOST使って書き込みするにはどうすれば良いのですかねぇ、誰かおしえてくれませぬかのぉ Ruby, Nokogiri, Selenium Webdriver を使って、
textarea に文字列を書いて、送信ボタンを押せば?
CSS Selector は、
body > div.container.container_body.mascot > div.formbox > div.formbody > form > p > textarea.formelem.maxwidth
body > div.container.container_body.mascot > div.formbox > div.formbody > form > p > input.submitbtn.btn >>670
天才ですね、
できるかわからないけど、
やってみまーす、あっざーす Python でも、Selenium Webdriver を使って出来るのかな?
漏れは、ブラウザの自動操作・スクレイピングは、Ruby でやってるけど Ruby, Selenium Webdriver では以下。
ただし、URL は、test スレに変えてから実行して!
index_url = "http://mevius.5ch.net/test/read.cgi/tech/1552194662/l1"
driver.navigate.to index_url
css_selector = "div.container.container_body.mascot > div.formbox > div.formbody > form > p > "
textarea_selector = css_selector + "textarea.formelem.maxwidth"
button_selector = css_selector + "input.submitbtn.btn"
# 文字列を入力して、送信ボタンを押す
driver.find_element( :css, textarea_selector ).send_keys( "入力文字" )
driver.find_element( :css, button_selector ).click >>674
python3 windows10pro
こんな感じでやってます
from selenium import webdriver
これいれてやってます https://seleniumhq.github.io/selenium/docs/api/py/
seleniumのクライアントはjavaネイティブ(seleniumはjava製)
C#
javascript
python
うんこruby
がある。
当然だがpythonが一番多い。 これでやりたかったのですが
無理ですかね、兄さんがた
url='https://mevius.5ch.net/test/read.cgi/tech/1552194662/'
payload={key:val,key:val}
requests.post('url/post',data=payload) 2chはcookie食ってないとまずcookie食え画面に飛ばしてくるので
requestsを使うならまずその対策をしないとだ 識者の皆様、どうもありがとうございました。
case文とスコープの件、とても参考になりました。
RubyからPythonに乗り換えようと思います。 5chにスクリプトで書き込みって荒らし目的以外思いつかんのだがww >>683
すぐ落ちるってことは需要が無いってことで、それを保守するのはどうなんだよ。
みんながいらないと思ってるスレを一生懸命あげるのは、民主主義に反してないか。 >>682
自分の書き込みをテンソルフローに学習させて
勝手に書いてみようか勉強しとります >>657
a=[1,1,0,1]
b="0"+"".join(map(str,a))
b=len(b.split("01"))-1
print(b) >>687
これいいね。正規表現使えない人でもさらっと使える。 <head><title>403 Forbidden</title></head>
<body bgcolor="white">
このエラーってなんだろう >>657
from functools import reduce
def f(xs):return(reduce(lambda a,x:(a[0]+(1 if a[1]<x else 0),x),xs,(0,0))[0])
print(f([1,0,0,1,1,1,0,0,1,0])) opencvで新しいwindowを出す度に、画面内で密度が最大になるように並べ替えたいのですが、いいアルゴリズムはあるでしょうか?
今の所if windowの数で分岐して事前計算したパラメータでresizewindowとmovewindowを使い並べるぐらいしかできませんが、スマートなやり方があれば知りたいです >>690
権限無しエラー。よくあるのはアクセス制限かけられてるとか、パスワードが必要なのに入力してないとか。 >>692
macのエクスポゼみたいなことしたいワケ? >>694
5chに書き込みしようとしたら
かえってきたエラーっす
ありがたう spyderユーザーいる?
会社のpcにpycharm入れたかったけど何故か入らんからspyderにした
しかし起動がおもすぎる
メモリ食いまくってた。。何故だ >>695
エクスポゼいいですね!
mac持ってないので使用感は分かりませんが、そのように整列させる仕組みがあれはカッコイイなと考えています matlab使ってたからspyderってmatlabっぽくて使いやすいと思ってしばらく使ってたけど解析の過程を残すなら結局jupyter notebookの方が使い勝手いいのでjupyterに移行した
自分が求めてたのは変数を随時確認することだけだったことに気付き、それはjupyterの拡張機能で実現できた >>693
単純に頭に0つけて01数える方が簡単 ⇒ >>687 VBAとUWSCのプログラミングしかしたことないんやけどpython勉強したい。
おススメの参考書ない?
夢は組み込みプログラマ 組み込みを目指しててPythonをやる意味がわからん
Cやれよ >>702 んなこたないよ。 昔組み込みにBASICが使われてきて今でもPICにすらBASICが入ってた様に、今は組み込みにPythonが入ってるケースが多くなってる。
RasberyPi や Ardiono 、EPS32 、果ては BBC のMicro:bit ですら Python。
最近売り出された、NVIDIA の Jetson 然り。
みんなPythonだぞ。 pythonで組み込みってのは趣味の範囲で広がってるけどプロの世界には入り込んでこないだろうな。メリットがない。組み込みの世界においてはpythonで得られる生産性なんてあまり意味がない。 ■ このスレッドは過去ログ倉庫に格納されています