1 名前:デフォルトの名無しさん mailto:sage [2021/12/27(月) 01:38:10.93 ID:GepmXCuJ.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ 派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。 「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合★は、 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。 Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★ 【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、 プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直
792 名前:776 [2022/04/21(木) 00:06:54.28 ID:EXXirMvu.net] >>777 文字が増えるだけで普通の文字になってくれないです line.decode('cp932') u'\u3042\u3044\u3046\r\n'
793 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:31:19 ID:68zG9eph.net] >>780 ちゃんと「あいう」とUnicode文字列で保持できてる そのGIMP環境で日本語がprintできる前提で >>> '日本語'.decode('cp932') がエラーなしなら >>> print u'\u3042\u3044\u3046\r\n'.encode('cp932') でとおるはず 環境によりcp932はutf8他かもしれんが
794 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:38:42.33 ID:Qeso+L0D.net] >>776 最後2行 line = p.stdout.readline().decode('cp932') print line で表示できるはず
795 名前:776 [2022/04/21(木) 00:53:13.48 ID:EXXirMvu.net] >>781 >>782 GIMPコンソール上では line.decode('cp932')で u'\u3042\u3044\u3046\r\n' とでてたんですが メッセージボックスだしたら gimp.message(line.decode('cp932')) 日本語表示されました。 よくわからないですがそういう文字の扱い?みたいです おさわがせしました ありがとうございます
796 名前:776 [2022/04/21(木) 01:54:42.76 ID:EXXirMvu.net] もう一つ質問なんですが stdoutで他の.pyで動かした出力が受け取れたんですが 他の.pyに入力を与えてその結果出力を受け取るにはどうしたらいいんでしょうか? 検索しても p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\oyo.py'), stdin=subprocess.PIPE,stdout = subprocess.PIPE, shell=True) みたいに stdin=subprocess.PIPE を追加するみたいなんですが、入力する変数はどこに書けばいいのか 入力を受け取る側の.pyではどうやって受け取るのか分からなかったです
797 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 02:05:23.23 ID:Qeso+L0D.net] >>784 .communicate(input=変数)
798 名前:746 mailto:sage [2022/04/21(木) 06:31:01.36 ID:EXXirMvu.net] >>785 ありがとうございます 入力を受け取る側の.pyではどうすればいいんですか?
799 名前:デフォルトの名無しさん [2022/04/21(木) 09:46:00 ID:v468I8x9.net] ターミナルから以下を入力すると問題なく実行できるのに、 ファイルcalendar.pyに保存して実行すると TypeError: 'module' object is not callableになるのは何故でしょう? import calendar print(calendar.calendar(2022))
800 名前:デフォルトの名無しさん [2022/04/21(木) 09:48:00 ID:v468I8x9.net] すみません自己解決しました。 calendar.pyの名前が被ってるからのようですね。
801 名前:746 mailto:sage [2022/04/21(木) 17:49:56.13 ID:EXXirMvu.net] 自己解決です 受け取る側にinput()で出来ました
802 名前:デフォルトの名無しさん [2022/04/21(木) 19:03:12.96 ID:FRtLfLsM.net] import tkinter でTtkが読まれないのは仕様だそうですが、いまいちしっくりこないんですが単なるインポートでコレが読み込まれるとか(Ttkのように)読み込まれないとかはどこで知ればいいのでしょうか?
803 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:17:14.76 ID:gmJJNdw9.net] >>790 from tkinter だとtkinter以外インポートしないから from tkinter import * のときってこと? それなら tkinter.__all__ でわかる
804 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:20:14.88 ID:gmJJNdw9.net] https://docs.python.org/ja/3/library/tkinter.ttk.html Ttkって拡張があるんだね これは個々の事情なので知ってないとわからないけど ここに書いてるし説明くらい読もうよしかいえん
805 名前:デフォルトの名無しさん [2022/04/21(木) 20:19:47 ID:YKw8btnC.net] import tkinter as tk import tkinter.ttk as ttk imporr tkinter.messagebox as tkmb import tkinter.filedialog as tkfd 俺が普段使うセット from tkinter import * from tkinter import ttk は推奨しない 一部のウィジェットはtk版のが使いやすかったりするから オーバーライドされてほしくないのだ
806 名前:776 [2022/04/22(金) 01:33:52.51 ID:llHCzfDa.net] >>776 です input()で入力を受け取ったpython3.10の方が文字化けしてしまって 自分なりにはいろいろencode,decode試したんですが うまくいかなかなかったです 文字化けを直すにはどうしたらいいですか? GIMPコンソール上の入力(python2.7) import subprocess input_text = 'あいう' line="" p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True) line=p.communicate(input=input_text)[0] print line python3.10の.py #!/usr/bin/env python # coding: utf-8 from tkinter import messagebox text = input() messagebox.showinfo("moji",text) ↑このメッセージボックスの中身が 画数の多い漢字と記号に化けてしまいました コピペできなかったので画像付けます https://dotup.org/uploda/dotup.org2781923.jpg.html
807 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 02:34:21.05 ID:I15ojW8g.net] >>794 line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932')
808 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 12:16:08.09 ID:j0HvfQsZ.net] >>778 テーブルを美汁でとるとき一行づつdictしてconcatinationするときに使えないかと思い
809 名前:デフォルトの名無しさん [2022/04/22(金) 13:23:31.05 ID:sHpgXsI/.net] アナコンダかをインストールして混ぜるな危険のpipとコンダをやってしまい壊れた pip一本化で問題ないですか?
810 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 13:38:07.44 ID:EkSdB4ug.net] 一本化で問題ない
811 名前:デフォルトの名無しさん [2022/04/22(金) 14:13:32.13 ID:sHpgXsI/.net] サンクス
812 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:37:59.91 ID:53M5rCU+.net] クラスを書いているとき中身が肥大化して __init__関数の引数が膨大な数になって インスタンスを作るのが大変な状態になってしまったとき リストでよく使うひな型をいくつか書いておいてそれを渡すという解決法を考えたのですが 妥当なやり方でしょうか?また他に良いやり方があればお教え願います
813 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:45:24.17 ID:CAe1t8bi.net] >>800 デザインパターンでググる
814 名前:デフォルトの名無しさん [2022/04/22(金) 16:00:19.34 ID:3+eT3Tts.net] >>800 >クラスを書いているとき中身が肥大化して >__init__関数の引数が膨大な数になって インスタンスを作るのが大変な状態になってしまったとき どんな状態?
815 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:08:00.83 ID:EkSdB4ug.net] プロセス起動するためのクラス作りたいな。で最初は実行ファイルのexeパス指定だけのシンプルなclassだったけど arg追加しよう、ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・ 引数が膨大になってくってことだろ
816 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:15:58.67 ID:p48HHJp5.net] >>79
817 名前:6 なるほどわからん >>774 の言うようにコレクションをコレクションのまま扱う感覚を身につけたほうがいいのかもしれない htmlテーブルをdictionaryにしたいならthの構成に合わせてlistやdictにする(もしくはpandasのread_html) https://www.w3schools.com/html/html_tables.aspのtable#customersなら header = [ th.text for th in table.select('tr:first-child > th')] result = [ {header[i]: td.text for i, td in enumerate(tr.select('td'))} for tr in table.select('tr')[1:] ] print(result[2]['Country’]) # Austria [] [ここ壊れてます]
818 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 17:12:11 ID:DFy/+sOR.net] 何でもやらせるほどsubprocessの極薄ラッパーになっていって 最終的にいらねえじゃんってなる
819 名前:デフォルトの名無しさん [2022/04/22(金) 18:54:56.60 ID:vYYyAoJX.net] 1スレを読んでみようと思ったのですが一つ一つリンクをクリックして戻った結果途中で"rawを読み込めませんでした"と言われこのスレに戻されてしまいました。どなたかこのスレの1を読む方法教えて頂けませんか
820 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:13:49.15 ID:CAe1t8bi.net] >>806 2ch → 5ch
821 名前:デフォルトの名無しさん [2022/04/22(金) 19:48:10.24 ID:vYYyAoJX.net] >>807 ありがとうございます! 5ちゃんねるの"くだすれpython"の現行版から過去のスレのリンクを辿ってみました part34辺りで5chから2chのログに切り替わっているせいかリンクを読み込もうとしなくてロード出来ませんでした スマホからだと読むことは出来ないと言うことでしょうか
822 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:17:22.51 ID:a0+aRfgz.net] 便所の落書き読む時間があるなら書籍の一冊でも読んだほうが有意義だぞ
823 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:24:41.56 ID:h+Fap4CC.net] >>803 > ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・ そう言うのはプロパティとかでいいだろ > 引数が膨大になってくってことだろ 毎回全部指定するつもりなのかよw
824 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:59:16.35 ID:cNb4vicF.net] 毎回全部指定したい(指定強制したい)ってことはあるからな
825 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 21:03:59.41 ID:7tkDjHFj.net] >>811 ラッパー経由になるだけだから指定強制なんて意味ないでしょ
826 名前:デフォルトの名無しさん [2022/04/22(金) 21:20:42.63 ID:72MHsUfr.net] >>800 はまだ>>800 しか書いてなくて、後は>>803 の憶測について議論してるんだよね?
827 名前:746 mailto:sage [2022/04/22(金) 21:33:54.80 ID:llHCzfDa.net] >>795 ありがとうございます! 出来ました!! エンコードとデコード両方しないと行けないのですね 助かります!!
828 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 18:41:33.50 ID:yaJafia3.net] テキストファイルの先頭からあるワードを検索し 1回目に見つかったワードを特定のワードに置換 2回目に見つかったワードをまた別のワードに置換 … という処理を実装したいです 自分の知識だと、テキストを一行ずつ読み込んでは 正規表現でワードをサーチしカウンタを加算し カウンタ値に応じてreplaceするっていうコードしか浮かばないですが 何か他に効率的・定番的な書き方があれば教えてください
829 名前:776 [2022/04/23(土) 21:11:23.83 ID:S27JpXaa.net] 度々すみません。 >>794 で教えてもらった以下の行を入れたのですが line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932') 中国語(繁体語)をinputに入れたところ以下のエラーがでてしまいます UnicodeEncodeError: 'cp932' codec can't encode character u'\u91d9' in position 0: illegal multibyte sequence 検索してみたところcp932に含まれない文字があった場合にでるみたいです u'\u91d9'はこの字でした(釙) https://0g0.org/unicode/91D9/ 中国語(繁体語)をinputに送っていたので 以下を参考にエンコードをcp932ではなくてcp950にしてみたのですが文字化けしてしまします docs.daemon.ac/python/Python-Docs-2.5/lib/standard-encodings.html 他にbig5やbig5hkscsも試してみましたが文字化けします この文字化けはどうしたらちゃんと表示されますか? こういった多言語を扱う場合どうしたら良いのでしょうか? u'\u91d9'(釙)以外にもu'\ufe50'(﹐)などにも引っかかってしまします
830 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 21:38:30.92 ID:LTun4BN3.net] >>815 そんな一般性もないような使い捨てのコードは効率よりわかりやすさが大事 文章そのままにコーディングしたらええがな
831 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:06:21.75 ID:A38Z8Utb.net] >>815 1行ずつ読み込みだとキーワードの途中改行に対応できない気がするけどいいの?
832 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:33:39.38 ID:7+1nJnMo.net] 途中改行するキーワードなんて生まれてこのかた見たことない
833 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:48:08 ID:dSfqqc1i.net] >>816 Windows の文字コードは、独特で誰も知らない。 たぶん、何百種類もあるでしょ 日本なら、CP932 だけに対応するけど、 全世界の何百種類とかに対応できない そもそも、外人はCP932すら知らないし CP何々とか、UTF-16 とか、Linux 用の全言語で処理できない。 Linuxは全言語、UTF-8 のみに統一されている これ以外の特定の端末用言語、例えば、Windows PC 用言語などは、特殊 だから基本、システムで使ってはいけない。 システムはLinuxのみで、Windows PCは単なるクライアントとしてしか使えない Ruby on Rails では辞書に定義することで、多言語化しているけど、 これはUTF-8だからできる この文字はCP932、これはCP950 とか一々、何百種類に対応できない
834 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:49:34 ID:Ac8uMNgs.net] 置換だと検索文字として\n含むのはよくあるし キーワードに改行なくてもワードラップがきちんとされてないテキストなんかだと改行コードに邪魔されてヒットしないこともよくある そういうとこはやりたいことの条件しだいだからなんともだな
835 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:04:11.07 ID:ll5AWkFj.net] >>815 re.subの引数に呼ばれるたびにカウントアップした文字列を返すreplacerを渡してやればいい
836 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:15:47 ID:pT174lS4.net] >>820 もうlocale知らん奴がいるんだなぁ
837 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:29:24.04 ID:OEg3OW8V.net] >>816 これでどうだろう import subprocess, os my_env = os.environ.copy() my_env["PYTHONIOENCODING"] = "cp65001" input_text = 'あいう釙' line="" p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True, env=my_env) line=p.communicate(input=input_text)[0] print line 後出し条件追加は控えてくれると助かる
838 名前:デフォルトの名無しさん [2022/04/24(日) 00:03:00.76 ID:XmcVNZmY.net] > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw クソチョンはウンコを食べる糞食人種w クソチョンはゲリ便をじゅるじゅると うまそうに食うw
839 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:16:33.35 ID:JO+3K+yc.net] >>824 my_env["PYTHONIOENCODING"] = "utf-8" のほうがわかりやすいかな
840 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:25:04.32 ID:lQs7d+0h.net] 外部コマンド前提だから古典Unix的に 間にiconvを挟むのが適当
841 名前:776 mailto:sage [2022/04/24(日) 12:08:29.52 ID:kM/BqeMC.net] >>824 ありがとうございます こんな方法があるんですね 驚きました まさか外国語も色々エンコードあるなんて思いもよらず 後出しになってすいませんでした >>827 どこにiconvというのを入れればよいのですか?
842 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 12:48:07.19 ID:PxrfmSzI.net] >>828 https://man.cx/iconv(1)/ja こういう外部コマンドがある。(ないなら導入する) python310.exe UTF-8出力するscript.py | iconv -f utf8 -t cp932 でcp932で出力するコマンドと同等になる。前に置くと入力も変換できる。 わかるとおもうがパスやエンコーディングは適当に読み替えて
843 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 13:28:31 ID:JO+3K+yc.net] 多言語処理するなら、824の方法でいいよ iconvなんか使ったらエラー処理面倒くさくなる 他には、バッチファイルでchcp 65001する方法や、utf-8のファイルで受け渡す方法もある
844 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:10:53.30 ID:QXI/jpLW.net] いいわけないだろw utf8決め打ちだけでいいなら苦労しない
845 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:36:36.75 ID:JO+3K+yc.net] >>831 なら、794の処理を動く形でコード書いてよ 見て判断するよ
846 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:25:05.85 ID:ir2De51z.net] Python関連から少し外れてしまうのですが、元々汎用系の技術者だったのですが、縁があってデータ分析の仕事に関わることになりました。 現在python3を手続き型の書き方でコード書いているのですが、オブジェクト思考に切り替えた方が良いタイミングやポイントありますか? 今のところ一人でpandasやpysparkを処理していて100行にも満たないくらいの小規模開発しています。 オブジェクト思考に憧れはあるのですが、まだ書いたことはありません。
847 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:35:36.96 ID:5b8jykvI.net] ( ^ω^)汎用って何が汎用なんですかお?
848 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:38:14.23 ID:ir2De51z.net] >>834 具体的にはコボラーメインでした
849 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:41:18.84 ID:GNyXlK50.net] >>833 切り替える必要はありません オブジェクト指向は大規模開発を大人数で共有しながら進めるために 編み出された作法です そんなプロジェクトにPythonは使われません
850 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:42:40.76 ID:ufUUo1o1.net] 今どきオブジェクト指向は…
851 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:55:21.47 ID:ir2De51z.net] >>836 そうなのですね 可読性とか設計的にオブジェクト思考の方が優れているイメージがあり、汎用系出身のプログラマーとしては劣等感を感じています >>837 最近の流行り=メインストリームは何でしょう?
852 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:59:31.83 ID:NGFGt/bW.net] >>836 > オブジェクト指向は大規模開発を大人数で共有しながら進めるため そんなことないだろw 継承とか具体的に使い始めるとたぶん 目からうろこだろ感動もんだろ鳥肌もんだろ汎用系からだと
853 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:40:25.60 ID:Sf8HNHhp.net] 疎結合進んでひとりでも大規模開発できるようになるし 小規模でもアタマ楽になるし学習コスト顧みても利点の方が多い
854 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:51:51.09 ID:ir2De51z.net] >>840 仕事中は時間の誓約もあるので手続型でコード書いちゃって、プライベートでは作りたいものなくてオブジェクト指向の本読んでも分かったような分からないような感じで実践できていません 皆さんはオブジェクト指向はどうやってマスターしましたか? デザインパターンの本を写経するのが一番なんですかね。。。
855 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:19:27.73 ID:bO9itIdJ.net] >>838 よほどクラス設計をきちんとやっておかないと可読性はむしろ落ちます 自分で書いたクラスでも三日経てばわからなくなります 結局のところ手続型で上から下に一直線にゴリゴリ書く方が速いし手直しも楽です ただしオブジェクト指向は作法ですから、チームが作法として採用している場合は致し方ありません が、先に述べたようにPythonでチーム開発などすることはまずありませんからご安心を
856 名前:デフォルトの名無しさん [2022/04/30(土) 00:49:48.45 ID:46aR4GCy.net] データ分析を書き下しでやるなんて聞いたことない どんな小規模よそれ
857 名前:デフォルトの名無しさん [2022/04/30(土) 01:24:52.50 ID:03xdZc7H.net] データ分析で100行に満たないとなると、オブジェクト指向じゃないと思うけどなあ. レコード同士の制約がRDBMSで取り扱えない範囲の制約だったらオブジェクト指向にした方がいいけど、 大体RDBMS的アプローチで十分じゃない? 分析手法が固まった段階で業務にいれこむとなるとちゃんとオブジェクト指向にした方がいいと思うけど、分析の段階だとPOCでしょ
858 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:13:55.43 ID:TTQ8Rhtz.net] 典型的なオブジェクト指向は、Ruby on Rails でも、最近の言語、Go, Rust, Elixir などは、オブジェクト指向ではない。 オブジェクト指向の弊害の方が目立ってきたため Elixirは関数型
859 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:19:59.25 ID:38aggrlO.net] 頭の中で完結してるけど説明が下手なのか 書くうちに発散して纏まってないけどそのまま殴り書いたか ようわからん文章やな
860 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:22:55.20 ID:Zvv3yApT.net] ぶっちゃけSQLとパワークエリで事足りると思うんですが、会社がPythonメインでやるという方針なのでPython使ってます。pandasもpysparkもデータ分析用というより大量データの結合やデータ変換に使うことが多いです。 環境的には不要で自己満になるかもなのですが、今後のスキルアップのためにオブジェクト指向取り入れて開発したいなぁという願望があります。
861 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:25:25.49 ID:MSWmTJKz.net] おまえら素人ばかりだな オブジェクト指向で作るのは理由があるからだ 理由は自分で考えろ
862 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:46.14 ID:Zvv3yApT.net] >>845 Elixeir初めて聞きました。新しい言語や関数型言語も出てきているのですね。。。
863 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:52.93 ID:MSWmTJKz.net] pythonメインでやる方針にも理由がある 理由は自分で考えろ
864 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:27:36.14 ID:MSWmTJKz.net] とにかくやれ やらない理由はいくらでもあるから とにかくやる気があるうちにやるんだ
865 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:34:17 ID:MSWmTJKz.net] やってみて わからなかったらいつでも質問しておいで
866 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:37:35 ID:Zvv3yApT.net] ありがとうございます とりあえず挑戦してみます
867 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 05:55:28.21 ID:OR8SZm5l.net] >>835 COBOLに慣れてるならGnuCOBOLでも入れて色々遊んでみたらいいんじゃね? COBOL2002からはオブジェクト指向をサポートしてる
868 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 06:14:48.85 ID:Zvv3yApT.net] >>854 COBOLでもオブジェクト指向サポートしてるバージョンあるんですね! 時代の進歩に全然追い付けてないです
869 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:21:56.93 ID:nLS5ACA1.net] 妙だな…Pythonでチーム開発とか普通にあるけど
870 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:29:49.76 ID:mj6Qj3Uj.net] >>856 日本だと少ないとはいえ、チーム開発も少しずつ増えてきてるよな というか規模の大きな開発が増えてきたから 型ヒント周りの機能が強化されてきてるんだし
871 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:48:06.80 ID:UlwKMlAZ.net] YouTubeやDropboxがPythonで書かれてるけど、1人で開発されたなんて考えてんのかね、>>842 は https://tech-camp.in/note/technology/45702/ DropboxのRian Hunter氏は「PyCon APAC 2013」で、Dropboxは全てPythonで開発していると述べています。コード量はサーバとクライアントのコードを全て合わせて93万7707行。
872 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:55:29.45 ID:0pJ/3NeQ.net] 一般的にpythonがーじゃなくて、そいつが職場で開発してるって条件下では大規模開発はありえないって話だろ
873 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 09:46:12.98 ID:2kJdiTOr.net] >>842 の気持ちはわかる たぶんバッチ処理主体でPythonを使ってる現場なんだろうけど、バッチ処理しか書けない奴って本当に一直線のコードしか書けないのよ 最近は業務系のそういう連中がPythonに進出してきていて、なかなか酷い状況だよ
874 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 12:04:18.69 ID:asMkUOFh.net] 一般常識として身につけておいたほうかがいいとは思うがpandasなんかを使ったデータ分析用途の場合はオブジェクト指向は極力避けて関数とデータを意識的に分けたほうが可読性もメンテナンス性も高いよ SeriesやDataframeのようにデータとメソッドが不可分な独自の抽象データ構造をライブラリとして提供する場合にはオブジェクト指向を使ったほうがいい
875 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 14:35:51 ID:wjVEP1qN.net] Pythonはオブジェクト指向を学ぶのには向いてないよな
876 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:03:49.44 ID:Uatckw9k.net] >>860 その通りです 私はバッチ処理専門で開発していますが 関数すら極力書かないようにしています 関数を作ると処理の流れが行ったり来たりして読みづらいからです Cで言うとmain関数の中に全ての処理があるように書きます
877 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:17:02.34 ID:XZrd/bpX.net] >>863 関数の役割分担や命名をちゃんとしてないからでは? 関数はそれ自身で責任を追って実装・検証するもの 使う側は関数内部まで気にしなくても済むようにならないと意味ない なんで便宜上行ったり来たりは発生しない 外部ライブラリやビルトインの関数の実装までふつう追わないでしょ
878 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:40:05.60 ID:wcqGltd4.net] >関数すら極力書かないようにしています さすがにそれはアカン 考えを改めた方がいい
879 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:45:43.84 ID:WuQ7ClRo.net] 個別の関数をmain関数と同居させる場合、 関数の配置の順序とかあるの? JSで関数を最後にまとめたりしているものがあったけど、 Pythonじゃ見かけないような
880 名前:デフォルトの名無しさん [2022/04/30(土) 16:56:56.93 ID:IElPr3np.net] >>863 コボラーですね分かります。 合言葉はIDENTIFICATION DIVISION。
881 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:15:45.06 ID:XOEt5cKu.net] >>866 JSはスコープごとにスクリプトを2回読むイメージで実行されるので 関数や変数の宣言は巻き上げられて先頭で宣言されてるのと同じになる Pythonにはそういう機能はないので1ファイルならmainの実行は最後にするのが普通 def main(): hoge() def hoge(): print(‘hoge’) main()
882 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:16:15.33 ID:Uatckw9k.net] >>866 他の言語は知りませんが、Pythonは関数を呼ぶ処理より前に 関数定義がないといけないんですよ だから関数のあるスクリプトファイルを開くと、まず関数の羅列が ズラズラと目に入るわけでして、文書を上から下に読んでいくという 人間の自然な動作に合わないのです
883 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:39:11.77 ID:PWl3mLPj.net] コボラーってやっぱアタオカだな
884 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:04:44.96 ID:64v4nlhT.net] >>869 def main(): sukinakansuu() def sukinakansuu(): pass if __name__ == '__main__': main() みたいに書くよ
885 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:07:46.92 ID:OR8SZm5l.net] >>866 Python の def 文は「実行文」だから定義される関数を呼び出す前に実行しないといけないのでJSみたいにするとエラーになる ちなみに実行文だから if xxx: def foo: print('foo1') else: def foo: print('foo2') みたいにして実行時に関数の定義を変えることもできる
886 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:49:26 ID:oMuBjy8I.net] 実行文??
887 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 19:22:27.31 ID:XZrd/bpX.net] https://docs.python.org/ja/3/reference/compound_stmts.html#function-definitions 式じゃないし識別子でもない単にそこで実行される文
888 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 21:51:14.91 ID:yu/EzU82.net] >>872 それ「実行文だから」とか全然理由になってない インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる 実行文ではないC言語でも定義より先に呼び出したらエラーになる
889 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:12:01.94 ID:o6QgUZIK.net] >>872 ┏━━━━━━━━━━━━┓ ┃The image you are .┃ ┃requesting does not exist .┃ ┃or is no longer available. .┃ ┃ ┃ ┃imgur.com ┃ ┗━━━━━━━━━━━━┛
890 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:22:35.44 ID:64v4nlhT.net] seleniumでaタグをclickしてswitch_to.windows(driver.window_handles[1])しても<html><head></head><body></body></html>っていうページにアクセスするようになる なんで無内容に?どうすればいいんだろう そもそもGUI上はクリックしてないんだけどなんだこれ
891 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:23:14.79 ID:OR8SZm5l.net] >>875 > インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる やれるね、だから何? > 実行文ではないC言語でも定義より先に呼び出したらエラーになる コンパイル言語で定義より先に呼び出し? 実行順序とソース上の順序を混同してるだろw
892 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:59:55.25 ID:64v4nlhT.net] >>877 解決 クリックしたあと2秒sleepさせたら出来た 読み込みに時間が掛かるんだな