[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2ch.scのread.cgiへ]
Update time : 06/13 06:19 / Filesize : 149 KB / Number-of Response : 532
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part60



1 名前:デフォルトの名無しさん [2019/04/30(火) 08:34:23.34 ID:sH/UeeJ6.net]
★当スレに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オフィシャルサイト
www.python.org/

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

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

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

次スレの建立は>>985が挑戦する

482 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 19:29:15.98 ID:t7F5nOi/.net]
なんとなくソートっぽい

483 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:16:55.97 ID:wtNNzOUb.net]
計算量を落とす基本は、n^2 を、n log(n) の形にする事!

2^10 = 1,024 だから、2^20 = 百万。
ここで、データ数が百万の場合、百万 * 20 = 2千万になる!

一方、n^2 = 百万 * 百万 = 1兆

だから、log(n)の部分は、せいぜい、20〜50ぐらいだから無視できる!
つまり並べ替えて、ソートを使うのが速い!

だから、単純な2重ループになっていたら、ダメ!
ループの内側に、優先度キュー・2分ヒープなど、何らかのソートを使っていないと、ダメ!

484 名前:デフォルトの名無しさん [2019/06/07(金) 22:27:46.33 ID:iFZF9YQL.net]
関数の中でグローバルな変数にアクセスするのはglobal宣言が必要ですが
リスト変数の場合はappendなどの操作をすると
宣言なしでグローバルなリスト変数にアクセスします

これを禁止するにはどうしたらいいでしょうか?
グローバルな変数にアクセスするときはすべて関数の引数として
渡して意図せず引数にないリストにアクセスしてしまうことは避けたいんです

485 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 23:07:12.51 ID:iFZF9YQL.net]
main 関数に相当するものを作ることにしました

486 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 02:05:30.81 ID:9yqPu4ja.net]
何をなさる

487 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 08:27:06.81 ID:5drHbnb0.net]
Pythonって継承ってライブラリの作者しか使わないんじゃね?って思った
抽象クラスの概念ないしポリモーフィズム簡単だし

488 名前:デフォルトの名無しさん [2019/06/08(土) 11:41:57.09 ID:ryWt2Gls.net]
abstractなクラスも作れる
何ならinstance化禁止にも出来る

489 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 12:20:56.35 ID:9vptTvmT.net]
>>488
それって言語仕様じゃないでしょ?

490 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 12:39:59.66 ID:sdBs9egv.net]
標準ライブラリで実装されていることが言語仕様に入らないとか言い出すとasync awaitも言語仕様に文法は存在するけど何もしないコードになる



491 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 12:59:07.72 ID:JxaHk6L1.net]
pythonでなくても最近は継承は否定的に見られてるだろ。

492 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 13:07:52.88 ID:T9GDbnq/.net]
継承無いと、オーバーロード擬きの判定がダックになって面倒この上ない

493 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 14:18:21.59 ID:JxaHk6L1.net]
なるほど、人の迷惑になりそうなクソな書き方をしたい人か。

494 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:19:29.84 ID:g6YzXvGd.net]
勝手に風潮作らないで

495 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:36:25.60 ID:wPg0m4E0.net]
ヤバイくらいに言葉が足りてないなw

継承を悪用したアホな設計が蔓延した結果、継承は悪用されやすいので別の代替手段が模索されているという感じだ

例えばjavaは多重継承を禁止した結果、extendsに加えてimplementsなんてものがある
全部implementsでいいんでは?と昔ながらに思ったものだ

496 名前:デフォルトの名無しさん [2019/06/08(土) 19:03:56.74 ID:CdSbqwtc.net]
そしてdefaultメソッドとか作る始末

497 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 01:20:04.97 ID:rn4C+nSw.net]
継承は、Ruby on Rails とか、フレームワークの作者が作るもの。
それを使う方は、そのクラスを継承させて使う

フレームワークの作者以外が、継承を前提にしたクラスを書くのは、滅多にない

498 名前:デフォルトの名無しさん [2019/06/09(日) 11:04:45.99 ID:V8qyq4Ge.net]
多くはないのは同意するが
滅多にないは言い過ぎ
訂正汁

499 名前:デフォルトの名無しさん [2019/06/09(日) 12:40:55.08 ID:BmQn1SBQ.net]
baka niiha muri

500 名前:デフォルトの名無しさん [2019/06/09(日) 13:28:49.95 ID:0qCJsaBL.net]
importについて教えてください。
現在作成しているプログラムはこのような構造になっています。

hogehoge
┣ db ┳ models.py # DBのスキーマを管理するモジュール。rds.pyをインポートしている
┃   .┃ rds.py # DBのセッションを管理するモジュール
┃   .┗ __init__.py
┗ app.py # Webサーバを起動するモジュール

(1)最初に事前準備として手動でmodels.pyを実行する事でDBの作成を行います。
# python db/models.py

(2)その後Webサーバを起動してプログラムの利用が始まります。
# python app.py

ここで質問なのですが、models.pyの中のimport文の書き方によって(1)と(2)のどちらかでエラーが発生します。
(1)でうまく動く時は import rds
(2)でうまく動く時は import db.rds

どうしてこのような挙動になるのか、(1)と(2)のどちらでも動くようにするにはどうしたら良いのかご教示ください。
よろしくお願い致します。



501 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 13:46:58.29 ID:Gi1Jt9cY.net]
pythonに限らず相対パスの話で
models.py自身から見りゃそりゃrdsは同じフォルダにある、
app.pyからrdsを見ると\db\rdsにある

502 名前:デフォルトの名無しさん [2019/06/09(日) 14:03:14.07 ID:0qCJsaBL.net]
>>501
ありがとうございます。
どちらの場合でもエラーはmodels.pyから出るのですが、
app.pyで実行した場合はmodels.pyの中のrds.pyへのパスもmodels.pyから見たものではなくapp.pyが基準になるという事ですか?
なんてこったどうすればいいんだ・・・

503 名前:デフォルトの名無しさん [2019/06/09(日) 14:07:25.86 ID:V8qyq4Ge.net]
from . import rds
これだけでいけるはず

必要があれば __init__.py にも何か書く

504 名前:デフォルトの名無しさん [2019/06/09(日) 21:50:27.72 ID:XtRL47qQ.net]
python + chrome + seleniumで制御しています。 
拡張機能を読み込むとインストールに成功しましたのページが開いてしまい。それを手作業で消さないと続きが実行されません。
何か良い方法があれば教えてくれませんか?

505 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 22:00:15.81 ID:o1V0PdsM.net]
>>504
毎回インストールしてるのん?
インストール済のchrome使うのはダメ?

506 名前:デフォルトの名無しさん [2019/06/09(日) 22:46:33.49 ID:XtRL47qQ.net]
profileで拾っても拡張はインストールされた状態にならないので、毎回Optionsでインストールしています。
インストールされた状態でselenium動かせるならそれの方が良いです。

507 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 22:55:59.43 ID:o1V0PdsM.net]
profile指定で拡張そのままで起動できてるけどなあ…
ログイン状態とか維持できてる?
俺も最初はそんな問題あったような気がするけど…
正直原因は覚えてない

508 名前:デフォルトの名無しさん [2019/06/09(日) 23:03:33.80 ID:XtRL47qQ.net]
ログイン状態はキープできてるのですが。。
わかりましたProfile使って色々やってみます。
何か間違えているのでしょうね
ありがとうございました

509 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 17:53:35.07 ID:wG4IEdp6.net]
Pythonが最高値を記録 - 6月開発言語ランキング 2019/06/11 08:49 後藤大地
https://news.mynavi.jp/article/20190611-840797/

TIOBE Softwareから、2019年6月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語が
どれだけ話題になっているかをインデックス化したもの。2019年6月におけるインデックス
は次のとおり。

6月TIOBE Programming Community Index / 円グラフ
https://news.mynavi.jp/photo/article/20190611-840797/images/002l.jpg

2019年6月はPythonが8.530%と、観測が始まってから最も高い水準に到達した。TIOBE
Softwareはこのままの傾向が続いた場合、今度3年から4年でPythonがJavaとC言語を抜いて
最も人気があるプログラミング言語になると予測している。

TIOBE Softwareはこうした動向の理由として、Javaはクラス、静的メソッド、パッケージ
などプログラミングの初心者が学ぶには冗長すぎる傾向があること、C言語ではメモリ
管理に直面することなどを挙げている。こうした言語と比べると、Pythonはシンプルで
ワンライナーで済むこともあり、その簡単さが普及につながっているという。

510 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 20:51:17.82 ID:nbZ/cYor.net]
pandasを使ってCSVファイルを開く処理を書いたのですが、
そのファイルのセルの一つに”Null”という文字列が含まれていたため、pandasを介すとそこのセルがNaN扱いになってしまいました
これを文字列のNullのまま扱ってもらうようにはできないでしょうか?
書いたコードはこんな感じです
import pandas as pd
df = pd.read_csv('D:/Desktop/python.csv', delimiter="\t", index_col=[0], header=None)
print(df) #Nullという文字が書かれたセルがNaN扱いになってしまった



511 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 22:35:59.26 ID:yU84dTYh.net]
試しにpandas使ってみたらNullっていう文字列はNullって文字列のままで表示されましたよ
そのpython.csvがおかしいんでないの? テキストエディタで中身確認した?

512 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 22:50:52.65 ID:nbZ/cYor.net]
>>511
レスありがとうございます
そのCSVの中身はこのようになってます(OpenOfficeCalcで開いたもの)
https://i.imgur.com/QPR1ycq.png
A2の文字列がNullです
これをpandasで開くとこうなります
https://i.imgur.com/hUpmSMu.png

513 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 23:00:26.74 ID:yU84dTYh.net]
うんうん、そのCSVをメモ帳とかのテキストエディタで開いて中身を確認すると
nullのところが空になっているんじゃないかな?

514 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 23:05:29.26 ID:nbZ/cYor.net]
>>513
すみませんメモ帳で開いたものがこちらです
https://i.imgur.com/1ioyTau.png
空にはなってないです

515 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 23:27:40.11 ID:yU84dTYh.net]
うーん、同じようなファイルを作って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で読み込んだ時点でデータが
変わっていると予想

516 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 23:31:41.04 ID:yU84dTYh.net]
あ、ファイルの文字コードをutf-8にしたらencoding指定無しでいけたわ
でもnull文字はnull文字のままで、NaNにはならないなぁー

517 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 00:05:34.02 ID:BNfp0i08.net]
わざわざ同じように試していただいて本当にお手数おかけしてます
せっかくですので問題が起こっているCSVファイルもあげさせていただきました
もしよければチェックしていただけるとありがたいです
https://dotup.org/uploda/dotup.org1870215.csv

518 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 00:17:35.61 ID:dGJQWhEh.net]
>>> 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 猛攻撃
>>>

ででぇーん、再現ならず・・じゃあ私もう寝るから、おやすみー

519 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 00:21:06.05 ID:dGJQWhEh.net]
ちなみに私の環境のpandasはAnacondaに入ってたやつで、バージョンは以下のとおり
>>> pd.__version__
'0.20.3'
>>>

520 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 00:21:38.85 ID:BNfp0i08.net]
うーん再現ならずですか・・・
お付き合いいただきありがとうございました、おやすみなさい



521 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 00:23:24.16 ID:BNfp0i08.net]
自分のpandasのバージョンは0.24.2なので、もしかしたらそこが原因かもしれませんね
いろいろ試してみます
ありがとうございました

522 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 06:14:33.53 ID:v9kdzfUv.net]
google colabで読み込んでどうなる?

523 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 09:52:59.33 ID:dGJQWhEh.net]
>>512
OpenOfficeよりもLibreOfficeの方が良いらしいですよ
ttps://tedaeri.com/app-which-openoffice-or-libreoffice/

524 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 10:08:38.96 ID:kCj8PQiR.net]
>>523
>しかし、既に「Apache OpenOffice」のユーザーがあまりにも多く、終わらせようにも影響力が大きいです。

普及のためには、M$との互換性が高く移行も容易、みたいな宣伝をするくせにw

525 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 21:48:46.24 ID:DK5Xdw8/.net]
win上のAnacondaのspyderのエディターで書いて実行する場合
qt5もtkinterもボタンを押して変化なし

Anaconda powershellというのでpython ファイル名だとちゃんと動いた

526 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 22:46:29.53 ID:BSq+d1KN.net]
出来るだけきれいなコードを書けるようになりたいと思ってます
動けば良いってレベルから次に行きたい
こういう場面はこういう処理の書き方のほうが良いとかはどうやって身につければ良いですか?

527 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 22:50:55.79 ID:6508qYyd.net]
独学じゃ無理
仕事で他人にコードレビューで叩かれて覚えるもんだ

528 名前:デフォルトの名無しさん [2019/06/12(水) 22:59:45.07 ID:uvvnpCRF.net]
>>526
人が書いたコードを読むこと
標準ライブラリとかで使う部分だけでもいいから読んでみる

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

ていうか、色々ありすぎてキリがないけど
人が書いたコードを読むのは絶対必要かな

529 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 23:14:51.17 ID:eCiQ25Tx.net]
>>497
java,c++みたいな静的な言語の場合はそうだが、ruby,pythonみたいな言語の場合は
クロージャー渡すインターフェイスのが直感的。

530 名前:デフォルトの名無しさん [2019/06/13(木) 00:18:27.47 ID:QGxbtz9r.net]
>>526
Pythonできれいなコードはあり得ない。C, C++, C#などで書き直すしかない。



531 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 01:32:57.26 ID:SaZXT9dZ.net]
>>539 そりゃねーよ。

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

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

プログラミングのお題スレ Part14
https://mevius.2ch.net/test/read.cgi/tech/1558168409/






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<149KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef