2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

【まず1嫁】くだすれPython(超初心者用) その59

1 :デフォルトの名無しさん:2023/07/13(木) 18:48:41.56 ID:INS7SIu4.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/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###

2 :デフォルトの名無しさん:2023/07/13(木) 19:23:06.59 ID:WmHCeekq.net
>>1
まず1乙

3 :デフォルトの名無しさん:2023/07/14(金) 12:11:43.42 ID:8YyBZiGG.net
>>1
O2

4 :デフォルトの名無しさん:2023/07/17(月) 18:37:08.11 ID:RkwKE2ib.net
うまいプログラムの構造がさっぱりわかりません…

入門書を終えて早速何か作ってみようと思い、画像を拡張子を変換するソフトを書いています
リーダブルコードにはシンプルであれとか単一責任うんぬんと書いて納得したつもりでしたが、いざ実践しようとするとわからんわからん

「画像を読み込む関数」、「画像を変換する関数」、「画像を保存する関数」
と作成してきましたが、pillowいじくって1、2行なので車輪の再発明どころか傷つけてる感じです
1つの関数にすべて集約してconvertと名付けたら良くないのでしょうか…

5 :デフォルトの名無しさん:2023/07/17(月) 20:35:13.91 ID:G9UN+W0k.net
>>4
標準ライブラリを見るとわかると思うけど、1, 2行だけの関数は別に悪いことではないし、珍しい事でもない
その関数のテストを書いたり、メンテしたりしてると実感できる
他の人の書いたコードとか特にそうだと思う

ていうか、色々詰め込んだ関数作ってしまってから、リファクタリングというものを知って悩むことも多いよね
最初から書き直した方が早いんじゃねみたいな

6 :デフォルトの名無しさん:2023/07/17(月) 20:36:34.03 ID:0uTi8g2P.net
良いです

7 :デフォルトの名無しさん:2023/07/17(月) 20:49:31.09 ID:66zneY7T.net
convert関数でそれぞれの関数を呼び出せるようにした方が楽になりそう

8 :デフォルトの名無しさん:2023/07/17(月) 20:52:17.81 ID:G9UN+W0k.net
忘れてたり知らない関数を触ろうとするとき、ドキュメントとかコメントも頼るけど実際たどるのはコードだから一つの関数に盛沢山だったら結構大変

9 :デフォルトの名無しさん:2023/07/17(月) 21:52:54.20 ID:0bPr8N4/.net
極端な話、外からの役割がconvertなら内部はどうなっててもいい
最初から良質なコードは書けなくて当然
いつでもリファクタできる体制でいることが大事かな

10 :デフォルトの名無しさん:2023/07/18(火) 16:13:32.68 ID:fggT64M6.net
画像処理の勉強してるんなら
pillow(PIL)使ったら負け

11 :デフォルトの名無しさん:2023/07/18(火) 20:03:13.98 ID:C4fQDhf3.net
病∞∞∞∞!
漠∞∞∞∞∞!
向∞∞∞∞∞∞!
大∞∞∞∞∞∞∞!
度∞∞∞∞∞∞∞∞!
蔵∞∞∞∞∞∞∞∞∞!

12 :デフォルトの名無しさん:2023/07/18(火) 23:01:13.81 ID:OPFTyCeA.net
ご意見ありがとうございます
元画像を消去するかとか保存先はどうするかとか考えてたら複雑になってきたのでクラスを設けました
パスの扱いと画像の操作で2つ役割があるけどもう面倒なのでこのまま突き進みます
未来の修正は未来の自分に託す、ということで…

13 :デフォルトの名無しさん:2023/07/18(火) 23:04:24.96 ID:/0siiIN2.net
今の自分が把握できないコードを
記憶が曖昧になった未来の自分がどうにかできると思うのか…

14 :デフォルトの名無しさん:2023/07/19(水) 11:43:21.48 ID:x9es5cRL.net
成長した場合「だれだこんなバカなコード描いたのは」

成長してない場合「何描いてたか判んね」

15 :デフォルトの名無しさん:2023/07/19(水) 15:09:29.58 ID:o1ug+L9a.net
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/
まず前スレ消化を

16 :デフォルトの名無しさん:2023/07/21(金) 08:51:32.52 ID:eg4croCb.net
pythonは関数が全部外から見られてしまうから
プライベートメソッドにする代わりに関数内関数にして隠すってやり方もある
なお速度は犠牲になる

17 :デフォルトの名無しさん:2023/07/21(金) 09:17:50.55 ID:K8DDsRHC.net
見えるからって使うほうがどうかしてる
リフレクション系がお手軽だからこんだけ周辺ツール充実してんだし

18 :デフォルトの名無しさん:2023/07/21(金) 09:48:08.75 ID:nT1sUe2+.net
>>16
setter getterでそんなに速度落ちるの……

19 :デフォルトの名無しさん:2023/07/21(金) 14:10:39.48 ID:73tgjVOL.net
>>16
class の中の関数というかプライベートは
hoge() #public
_hoge() #protected
__hoge() #private
みたいなイメージ

20 :デフォルトの名無しさん:2023/07/21(金) 14:11:27.20 ID:73tgjVOL.net
プライベートにしてても観えるって言うのは嬉しい

21 :デフォルトの名無しさん:2023/07/23(日) 06:27:28.03 ID:AFBOcw0H.net
>>4
そのconvert関数のアイデアは、ファサードパターンとしてよく知られるデザインパターンのひとつ。
まあファサードはわざわざ勉強しなくてもすぐに気がつく小ネタ程度のパターンだけど、他には知っておくと役に立つものがいっぱいある。

22 :デフォルトの名無しさん:2023/07/24(月) 08:59:12.66 ID:hxZ6wCW4.net
f文字列はpython3.6だから7年前の新機能だぞ
もうなんのことわりも無しに使っていいだろ

23 :デフォルトの名無しさん:2023/07/24(月) 09:28:19.51 ID:b4teMFwb.net
>古いPythonでは動かないから

"{}".format() だってもっと古いPythonだと動かないんじゃね

24 :デフォルトの名無しさん:2023/07/24(月) 16:29:20.89 ID:l1YnwZV8.net
Gストリングが動いた!

25 :デフォルトの名無しさん:2023/07/24(月) 17:49:45.93 ID:vRnyNwob.net
format使ってないわ

26 :デフォルトの名無しさん:2023/07/26(水) 11:04:30.02 ID:62leoIOO.net
tkinterでウィンドウサイズを取得したいのですがうまくいきません
https://techiedelight.com/compiler/?a1ad

root.geometry("500x300")を実行して、実際に表示されるウィンドウサイズもそのくらいの大きさなのですが
ラベルに表示される内容は"1x1+0+0"となってしまいます
"500x300+<実際の表示位置>"にならないのは何故ですか

192 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver.24052200