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が挑戦する そもそも小学校のネット環境とかがプログラミング必修化と相性最悪。
プログラミング教育、ハードやネット環境でも前途多難
〜WDLCがプロジェクト進捗状況を報告
https://pc.watch.impress.co.jp/docs/news/1156297.html
もうNintendoDSとプチコンとか。
紙と鉛筆でもプログラミングと実行結果の確認出来るHaskell(のプログラミングに必要な最低限の文法に限定したもの。ほぼ算数に変数・関数・再帰とリスト・組の概念を取り入れたものでリスト以外はほぼ数学そのもの)とかで良いんじゃねーの?
算数じゃ変数教えちゃダメなのに、プログラミングだと変数教えておkとか意味分からんが。
main = print $ 10 ^/ 2
(^/) n m | n < m = 0
(^/) n m = 1 + (^/) (n - m) m ― 割り算とは、何回引き算出来るか数えると言う演算。
10 ^/ 2
= (^/) 10 2
= 1 + (^/) 8 2
= 1 + 1+ (^/) 6 2
= 1 + 1+ 1 + (^/) 4 2
= 1 + 1+ 1 + 1 + (^/) 2 2
= 1 + 1+ 1 + 1 + 1 + (^/) 0 2
= 1 + 1+ 1 + 1 + 1 + 0 ― (^/) n m | n < m = 0 より
= 5 リストという概念も、数学的に定義出来るので数学だけでプログラミングの授業って出来るのに、算数の授業のレベル上げずにプログラミングの授業なら数学的には算数より上の概念を教えても良いとか。。。
算数の授業で論理的な思考を教えて来なかったツケをプログラミングの授業に押し付けてるんじゃねーよって言うね。 リクルート、Python向け日本語自然言語処理オープンソースライブラリ「GiNZA」公開
2019年04月03日 13時43分 公開
https://www.itmedia.co.jp/news/articles/1904/03/news087.html
リクルートはこのほど、同社のAI研究機関・Megagon Labsが開発したPython向け日本語
自然言語処理オープンソースライブラリ「GiNZA」(ギンザ)と、国立国語研究所と共同で
研究してきた学習済みモデルを組み込んだ「GiNZA日本語Universal Dependencies(UD)
モデル」をGitHubで公開した。
GiNZAは、複雑な導入作業不要で、ワンステップでモジュールとモデルファイルの導入が
可能なライブラリ。エンジニアやデータサイエンティストが自然言語処理を簡単に応用
できることを目指して開発したという。
自然言語処理ライブラリ「spaCy」をフレームワークとして利用し、オープンソース形態素
解析器「SudachiPy」を組み込んでおり、「産業用途に耐える性能を備えている」としている。
spaCyの国際化機能により、複数の欧米言語と日本語の言語リソースを切り替えて使用する
こともできる。
「GiNZA日本語UDモデル」には、Megagon Labsが国立国語研究所と共同で研究してきた
学習済みモデルを組み込んだ。国立国語研究所が蓄積してきた大規模・高品質なテキスト
コーパスに、日本語Wikipediaテキストも同時に用いて機械学習に適用しており、幅広い
分野に適応可能なモデルを構築したという。 >>408
面白そうだけど形態素解析以外に具体的に何ができるんだろう >>408
mecabはインストールが面倒だったからありがたい 書いたコードをexe化するためにpyinstallerっての使ったんだが
これってソースを難読化する効果ありますか?
あっさり解析されるなら難読化もしておきたい・・・
それと、このexeを配布することでユーザー名等の環境変数(?)がバレることってありますか windows10でpyinstallerって大量のwarningが出るんだけど、基本的に無視しても大丈夫なの?調べるとwindows-10-sdkでなんとかなるとかVS2015のランタイムを入れると大丈夫とかいうようなのはみた記憶があるんだけど >>415
VS2015のランタイムは入れないとだめだったような?
他のわーにんぐは知らない。
他のマシンにもっていってexeが動けばおk クラスが一行に理解できん
本読んでその通りに入力してできたーと喜んでいるが、じぶんが作りたいものが作れない。
写経の数が足りないだけ? >>418
何も考えずに写経してるだけじゃいつまでたってもそのままだよ。
自分が書いたものが何をするためのものか、一部を変更して思った通りに変化が現れるのか、思った通りでないならそれはなぜなのか、頭を使って考えながら書いていかないとただの無駄な作業だよ。 Python 本家のドキュメントに数行のシンプルプログラム集があったが、あれのクラスの例が解りやすかったな。
https://wiki.python.org/moin/SimplePrograms クラスは必須じゃないから最初は使わずに書いていいと思うぞ
つらつらプログラムを書いてて、ここの処理は共通だから関数に分けるかーという発想と同じように、
ここのデータ構造は共通だからクラスにするかーとか思うようになる
それに慣れると、やがて最初からここはクラスに分けておくかーとなる >>418
自分が作りたいものを分析せよ
どんな関数やどんな変数が必要か考えて
グローバルである必要がないもの、特定の関数は特定の変数に対してしか使用しないならクラスに纏める >>418
>クラスが一行に理解できん
複数行に書き分けてみれば? オブジェクト指向を勉強して何となくわかっても、それを使ったプログラミングが出来ない
そんな時はデザインパターンを勉強した方がいいのかね いや、オブジェクト指向でたくさんプログラミング書けよ >>427
>プログラミング書け
>プログラミング書け
>プログラミング書け kivyの勉強したらclassなんて勝手に見につく >>419
>>424
ありがとうございます。腰を据えてもう一度立ち向かってみます。
>>425
いっこうに です。わかりにくくてすみません。
ラムダの書き方もよーわからんですが、時間めちゃかかっても再度トライします。 オブジェクト指向になれてくる
そして俺のこのプログラムいけてね?天才じゃね?ってなる
後に上位互換のデザインパターンを知る >>429
前kivy勉強しようと思ったけど、覚えることが意外に多くて諦めた
テキストボックスに日本語を入力しようとするとうまくいかなかったり残念だった記憶しかない
classの勉強のために手を出すもんじゃないと思う jsonの連想配列の順序を保持したいのですがどうにかなりませんか
デバッグや差分取りが大変なのでなんとかしたいです
配列は構造が変わってしまうのでダメです >>433
辞書の代わりに OrderedDict を使う
import json
import collections
data = collections.OrderedDict([("1", 1), ("2", 2), ("3", 3), ("4", 4)])
print(type(data), json.dumps(data))
src = '{"1":1, "2":2, "3":3, "4":4}'
data = json.loads(src, object_pairs_hook=collections.OrderedDict)
print(type(data), json.dumps(data)) 3.6以降のCPythonなら順序変わらんのでは
3.6は実装上の話で、仕様化されたのは3.7からだけど
2系とかいう汚物は知らない 微妙にスレだったらスマヌ
web系ほぼ未経験なんだけど、pythonと並行して覚えておくと良いスキルってありま?
c++/c#歴計5年。仕事でpythonを3か月ほどかじったんだが、
c++/c#と違って、pythonは単体で仕事がなさそうなことに気づいて悩み中。
とりあえずこの辺抑えとけっての教えてくれたら嬉しす★(_ _)★ >>436 web 系をやるなら最低 HTML の知識と javascript の基本は覚えておいた方が良いかも。 C 系の経験があればjavascript はすぐに理解できるだろう。
ただ覚えるのは苦痛だろうから何か目標を作ってやったほうが楽しいかも。簡単なアプリを作ってみるとか。
flask を使えば軽量なwebアプリを作れるよ。
DB管理ツールのpgAdminは、最近 flask+python に切り替わり起動するとWebブラウザの一つのタブとして実行される。 バカでもわかる猿でもわかる
なんてのはよく見るけどゾンビでもわかるってのは初めて見るな ちょっと前にpyinstallerの話題出てたけどVS2015のランタイムってvenvの環境だけにインスト出来たりする? >>437
>>438
>>439
機械学習・HTML・javascriptはかじったので、flaskに手を出してみまふ。
さんくす★
web系はオーブン系に比べて範囲が広くて大変な気がしてきた...💦 >>442
不可能
Windowsコンテナを使う手もあるが流石にそこまで手間かけるくらいならWSL使え >>443 web系ってどんな目的で勉強したいんだよ。 そもそもどんな会社で働いてて何の為に Python を始めたの? 一般的に、Python だけで出来ることは、Ruby で出来るから、皆Rubyで作る。
Vagrant, Chef, Homebrew などがそう
Pythonは、統計・数学系・AI・ラズパイ・matplot などで使う。
だから言語の文法など、ほとんど関係ない
統計・数学系などは、大学院で数年以上やっていないと、全くわからない >>446
>web系ってどんな目的で勉強したいんだよ。
受けれる仕事の幅増やすため。
>そもそもどんな会社で働いてて何の為に Python を始めたの?
フリーランス。pythonは未経験可の短期Pjがあったから参加してみた。
>>447
>Pythonは、統計・数学系・AI・ラズパイ・matplot などで使う。
>だから言語の文法など、ほとんど関係ない
それw やっててスゲー思った。
言語仕様はすぐ理解できたけど、機械学習とかのロジック理解が大変だった^^; >>448 仕事の幅を増やすのだったらやはりweb系よりもAI系に突っ込んだ方が収入も多くなるんじゃないかな。
flask だと、アプリを作るためのツールだと考えればやっておいて損はないけど。
Web 系そのものは受注できても単価が安いよ。大きなシステムだとPython を使うケースは少ないと思うし。 まだ、Javaの方がマシ。
最近売り出された、NVIDAI の jetson nano って知ってる? 99ドル 日本では1.2万円。
https://www.nvidia.com/ja-jp/autonomous-machines/embedded-systems/jetson-nano/
こんな低価格で AI のエッジサービスとして機械学習もできる。 10cm 以下のボード。 これは開発キットで、本体のボードは1回り小さく安い。
機械学習はこの例でもわかるようにハードはどんどん安くなりどんな場所にも使われるようになっていくから、これを買ってしばらく遊んでみるのも良いのでは?
言語はPython だが、中心はAI 機械学習の各種ツール群
jetson 関連の仕事は増えていくと思うよ。 動かした経験ありと言えば受注率も上がるかも。 >>450
rubyバカがいるからあまり言いたくないが、こと日本語ウェブサイトのスクレイピングに関してはrubyでnokogiriを使った方が便利だよ
ウェブ系ならフロントエンドはJavaScript、サーバーサイドはJava,rubyがまだ主流、いずれGoになると考えている
いまだサーバーサイドでpythonの仕事は見たことがない
逆にデータサイエンティストになるならpythonかRで深層学習ならpython, 統計ならRになる Python は、R, matlab のシェアを奪った
Rust, go よりも、Ruby 風のElixir の方が良いかも。
go は、マイクロサービス用 ムダにrubyを推すからrubyというワードだけでNGにされるっていう
匿名の掲示板ならではのジレンマ NokogiriってインストールにつまづいたアホがQiitaに死ぬほど同じ内容のエントリを作成しまくってる
アレですか^^; Gemfile に、gem "nokogiri" って書いて、
そのフォルダで、Bundle install ってやるだけだろ
他のコンポーネントのバージョンによって、依存関係が悪くなって、インストールできないのかね。
すべての依存関係が良く、動くバージョンを探すのは、大変かも知れない
Ruby 2.4, 2.5 あたりなら動くだろ。
2.6 は、新しすぎるかも
まあ、関係のない話で、スマソ 811→810
813→815
817→815
818→820
のように、0か5に整形したいのだが、
やり方が分からない>< ありがとうございます!
n=818
round(n*2)/2
でしょうか?!
この件とは別の話ですが。。。
roundは精度が今一らしいですが、
何を使ったらいいのだろう。。。 n=818
n=round(n*2,-1)/2
print(n)
の間違い^^^ >>459 整数型で扱う事。
n=818
n=round(n*2,-1)//2
print(n) 数学やってる人はお茶の子さいさいなんだろうけど、数学から離れてるとすぐには思いつかないな、
((n+2)//5)*5 自分でプログラミングするときはこういうコード書いちゃうけど可読性低いよなぁ >>456
とりあえず
# 811→810
# 813→815
# 817→815
# 818→820
# のように、0か5に整形する
x = ((n+2)//5)*5
ってコメント入れとけばいいんじゃね huobi_japanのAPIを利用して売買プログラムを作りたいんですが、価格取得などはできるものの認証ありが上手くいきません
どなたかヒントを頂かませんでしょうか? わかる。難しくてできんよね。
出来るやつ尊敬するわ Ruby, Nokogiri, Selenium Webdriver を使うとか
認証は、認証用のライブラリを使うとか >>474
まあ>>472は>>1で何より先に挙げられるくらいの迷惑行為の常連だから、どれ程嫌われようが自然なことと思える。 すいませんなんとか出来ました、ほぼコピペですけど
つぎはhuobijapan頑張ってみます githubにあるものをそのままだと通らなかったので適当に修正したりliquid用のものを流用したりでなんとかなりました
huobiも作りたいと思うんですが途中です うまく行かない、ヒントが欲しい
なんとか出来た。ほぼコピペです
次は〜頑張ります
(どうやって出来ました?)
適当に修正と流用で出来ました
色々凄いなwww pythonは本の陳腐化が早いな…あれこれインストールしなきゃと思ってやったら全部エラーになって調べると
最近のバージョンには全部入ってた… まさかAnacondaとか使って
最近のバージョンには全部入ってるとか言ってないよね? 前から不思議に思ってたんだが、
なぜAnacondaなんか入れるんだ?
Pythonの実行環境を入れればそれで済むだろ >>485
pythonの実行環境とは?anaconda(というよりminiconda)使いなので擁護してみようと思う
・venvやpipenv等の関係を覚えるよりもシンプルでもちろん環境も分けられる
・conda installでインストールされるものはpipよりもパッケージ干渉が少ない
・centosなどライブラリが古い場合にバイナリごとインストールされるので異なるLinux間の互換性が高い
・conda installではR等、python以外も入れられるroot権限がない場合に楽
デメリットは
・conda installはパッケージの数が少なく別のチャネルや結局pipと併用する
ことくらいだろうか Windowsで仮想環境も含めた一通りまともに使える環境が簡単に揃う
macやlinuxだと正直要らん 10nen前にPython2学んで、ほとんど知識をアップデートせずにやってきた老害なんだけど、Python3やらvenvやらFlaskやらの知識を効率的にアップデートできるおすすめ本とかない? anacondaはデータ解析目的に使うなら便利
特にmatlab使ってた人だと仮想環境とか意識せず何でも呼び出せるのが自然になってるから アメリカではpythonが最も主流な言語らしいんだが日本ではなぜ流行らないんだ? >>488 基礎ができてるんなら本家のドキュメントで良いんじゃない?
https://docs.python.org/ja/3/index.html
https://docs.python.org/ja/3/library/venv.html
おさらいの意味で チュートリアル を読み流せば良いだろうし。
flask は単独でサイトを見れば良い。入門サイトはいろいろあるでしょ。
http://python.zombie-hunting-club.com/entry/2017/11/03/223503?amp=1
正直 紙の本なんて必要ないと思うよ。 検索すらできないし。
>>492 日本語が使えなかったからだろ。 Python3 でUTF8 が使える様になり、ようやく日本でも一般的に使われ始めた。 Python2を使わないといけないとかあったらとても使えない。
ようやくPython2 を捨てられる様になってきたから、これから本格化するだろう。 データ解析なんて書き捨てコードいっぱい書くハメになるので本当はpythonよりもrubyの方が向いてる気がする なんだやっぱ日本人が作った言語は主流になれないんだな >>491 >>494
ありがとう。めっちゃ参考になったので頑張る。 RubyにもNumrubyとかPandasとかがあればなあ Ruby にも、C言語で作られた、数値計算用の多次元配列、NArray がある
その速さは、Octave にも匹敵するほど! tkinterでbootstrap的な見た目をよくするテンプレートみたいなもんってないよね? tkinter使いやすくて手軽だから好きだが見た目どうにかならんのか ■ このスレッドは過去ログ倉庫に格納されています