当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。
【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
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
〇前スレ〇 くだすれPython(超初心者用) その50【まず1嫁】
http://mevius.5ch.net/test/read.cgi/tech/1598527450/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
くだすれPython(超初心者用) その51【まず1嫁】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/10/17(土) 10:05:38.14ID:1RQ0Wdhu420デフォルトの名無しさん
2020/11/19(木) 18:33:57.52ID:oRKf5Y34 というかホストPCで開発するときも
プロジェクト毎にcloneすると思うけど
毎回ファイルごとコピペしてる人が多いのかな
プロジェクト毎にcloneすると思うけど
毎回ファイルごとコピペしてる人が多いのかな
421デフォルトの名無しさん
2020/11/19(木) 18:43:27.44ID:4Pgi61oy >>418
BOMっていうのは知らなかったですけど
https://qiita.com/JINr/items/255429d6174fad76b9b7
ここに書いてあることをやってみたのですが
BOM付きっていうところをにはチェックは入ってなかったです
あらためてチェックなし状態で上書き保存して同じことしても
同じようなエラーが出ました
BOMっていうのは知らなかったですけど
https://qiita.com/JINr/items/255429d6174fad76b9b7
ここに書いてあることをやってみたのですが
BOM付きっていうところをにはチェックは入ってなかったです
あらためてチェックなし状態で上書き保存して同じことしても
同じようなエラーが出ました
422デフォルトの名無しさん
2020/11/19(木) 18:53:18.11ID:ikoVfZxF >> 409
コメントありがとうございます。
flush() 色々と調べてみましたが、まだ有効に使えていませんが、
調べているうちに、update()とsee()というメソッドがあるのが
わかり、組合せたら上手くいきました。
ヒントいただきありがとうございました。
一応、結果報告
import tkinter
import tkinter.scrolledtext as tkst
import sys
def click():
for i in range(10000000):
# 10000回ループに1回テキスト出力
if (i / 10000 ) % 1 == 0:
editArea.insert('end',str(i)+'回目\n') # OK
editArea.update()
editArea.see('end')
#sys.stdout.flush()
print(str(i)+'回目') # このようにしたい
# メインウィンドウ作成
root = tkinter.Tk()
root.geometry("600x400")
Button1 = tkinter.Button(root,text='実行',command=click)
Button1.pack()
editArea = tkst.ScrolledText(root,wrap= tkinter.WORD, width=20,height = 10)
editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5)
root.mainloop()
コメントありがとうございます。
flush() 色々と調べてみましたが、まだ有効に使えていませんが、
調べているうちに、update()とsee()というメソッドがあるのが
わかり、組合せたら上手くいきました。
ヒントいただきありがとうございました。
一応、結果報告
import tkinter
import tkinter.scrolledtext as tkst
import sys
def click():
for i in range(10000000):
# 10000回ループに1回テキスト出力
if (i / 10000 ) % 1 == 0:
editArea.insert('end',str(i)+'回目\n') # OK
editArea.update()
editArea.see('end')
#sys.stdout.flush()
print(str(i)+'回目') # このようにしたい
# メインウィンドウ作成
root = tkinter.Tk()
root.geometry("600x400")
Button1 = tkinter.Button(root,text='実行',command=click)
Button1.pack()
editArea = tkst.ScrolledText(root,wrap= tkinter.WORD, width=20,height = 10)
editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5)
root.mainloop()
423デフォルトの名無しさん
2020/11/19(木) 19:00:41.46ID:j3QxrLZF424デフォルトの名無しさん
2020/11/19(木) 19:03:04.41ID:YSWc8XxM >>422解決おめ+報告乙
>sys.stdout.flush()
おう、これ↑は標準出力(Win系ならDOS窓)への出力をいますぐやれよ という命令だから・・・
sysのimportもコメントアウトしちゃって大丈夫にみえる
>sys.stdout.flush()
おう、これ↑は標準出力(Win系ならDOS窓)への出力をいますぐやれよ という命令だから・・・
sysのimportもコメントアウトしちゃって大丈夫にみえる
425デフォルトの名無しさん
2020/11/19(木) 19:04:21.67ID:YSWc8XxM426デフォルトの名無しさん
2020/11/19(木) 19:11:37.20ID:4Pgi61oy >>423
!!!その通りでした!!!
myconfig.pylintrcがBOMつきUTF-16になっていました・・・
本にフォルダでShiftを押しながら右クリックで
「コマンドウィンドウをここで開く」か「PowerShellウィンドウをここで開く」を選べと書いてあったので
PowerShellで開いてやってました
すいません正確な情報じゃなくて・・・
myconfig.pylintrcをUTF-8にしたらうまくできました!!!
ありがとうございます!
!!!その通りでした!!!
myconfig.pylintrcがBOMつきUTF-16になっていました・・・
本にフォルダでShiftを押しながら右クリックで
「コマンドウィンドウをここで開く」か「PowerShellウィンドウをここで開く」を選べと書いてあったので
PowerShellで開いてやってました
すいません正確な情報じゃなくて・・・
myconfig.pylintrcをUTF-8にしたらうまくできました!!!
ありがとうございます!
427デフォルトの名無しさん
2020/11/19(木) 22:17:37.25ID:Na4zD9bI >>419
クラウドでコンテナ云々とか別に普通じゃないと思うけど
場合によるでしょ
というか今どきはVSCodeのリモート開発がマジでローカルで開発してるみたいで便利でいいよ
あと、jsonモジュールはPython標準なのだから、よっぽど性能を出したいとかじゃなければ標準ライブラリ使った方がトラブらないと思う。自分のいい加減なコードより10万倍ぐらいテストされてるだろうから。
そもそも性能出したいときにPython使わないし、jsonモジュールを使わない方がいいケースがあまり思いつかないなあ。
クラウドでコンテナ云々とか別に普通じゃないと思うけど
場合によるでしょ
というか今どきはVSCodeのリモート開発がマジでローカルで開発してるみたいで便利でいいよ
あと、jsonモジュールはPython標準なのだから、よっぽど性能を出したいとかじゃなければ標準ライブラリ使った方がトラブらないと思う。自分のいい加減なコードより10万倍ぐらいテストされてるだろうから。
そもそも性能出したいときにPython使わないし、jsonモジュールを使わない方がいいケースがあまり思いつかないなあ。
428デフォルトの名無しさん
2020/11/19(木) 22:31:26.53ID:oRKf5Y34 >>427
いや普通に主にVSCodeでのリモート開発ですよ
>ローカルで開発してるみたいで
そのためのコンテナなんですけどね・・
場合によってVSCodeなり別だったりでgit管理、運用がコンテナってだけで。
普通は仮想環境下ならこれらはセットだと思いますよ・・
あと繰り返しになりますが
>intとstrのみとわかっている
みたいな単純な用途の場合ですよ
いや普通に主にVSCodeでのリモート開発ですよ
>ローカルで開発してるみたいで
そのためのコンテナなんですけどね・・
場合によってVSCodeなり別だったりでgit管理、運用がコンテナってだけで。
普通は仮想環境下ならこれらはセットだと思いますよ・・
あと繰り返しになりますが
>intとstrのみとわかっている
みたいな単純な用途の場合ですよ
429デフォルトの名無しさん
2020/11/19(木) 23:28:35.13ID:Na4zD9bI >>428
なるほど、ちゃんと読んでなかったけど
importを書きたくないからの主張なのか
なら、json.dumpsの1行上にimport jsonを書いて2行コピーするのはどうかな?
何回importがあっても問題ないし、文が書けるところならどこにでも書けるし、
式で完結させたければ
__import__('json').dumps(obj)
とすればいいみたい。(これにはちょっと驚いた)
自分はめちゃくちゃ簡単なはずのjsonでも固定のjsonを条件によって2個出し分ければいいとかじゃなければ、
たかだかjsonを出すのに、strに変な文字が入らないか考えたりintをstrに変換する方法を考えたりして、余計な判断が入るのが嫌だから、jsonモジュール任せだな。
まあ、楽な方法は人それぞれだと思うんでjsonモジュールを使わないのが楽と思う人もいるのは否定しないけど。
なるほど、ちゃんと読んでなかったけど
importを書きたくないからの主張なのか
なら、json.dumpsの1行上にimport jsonを書いて2行コピーするのはどうかな?
何回importがあっても問題ないし、文が書けるところならどこにでも書けるし、
式で完結させたければ
__import__('json').dumps(obj)
とすればいいみたい。(これにはちょっと驚いた)
自分はめちゃくちゃ簡単なはずのjsonでも固定のjsonを条件によって2個出し分ければいいとかじゃなければ、
たかだかjsonを出すのに、strに変な文字が入らないか考えたりintをstrに変換する方法を考えたりして、余計な判断が入るのが嫌だから、jsonモジュール任せだな。
まあ、楽な方法は人それぞれだと思うんでjsonモジュールを使わないのが楽と思う人もいるのは否定しないけど。
430デフォルトの名無しさん
2020/11/19(木) 23:38:08.43ID:zsB/MCGD 考え方は人それぞれなんでしょうけど、「スマートな書き方」という質問に対して、JSON形式で返すのならjson.dumps使ったほうが他人がコードを読んでも「あ、これはJSONで返すんだな」と意味が理解しやすいしスマートだと思うなぁ
自己満足的なスマートか、保守性も考えたスマートなのか、方向性の違いかしら。
自己満足的なスマートか、保守性も考えたスマートなのか、方向性の違いかしら。
431デフォルトの名無しさん
2020/11/19(木) 23:57:14.70ID:gzIvj2mX import書きたくないから文字列コピペするとかちょっと意味わからん
432デフォルトの名無しさん
2020/11/20(金) 00:20:07.13ID:aJFtJ7NQ >>429
>importを書きたくないからの主張
'{"status":200,"error":"hoge"}'
とか直接書いてもいいし
res(200,"hoge")とかでもしいし
json.dumps(res)とかでもいい
自作モジュールで管理するでもいいし
という前提があります
が今回は、関数に分けるまでもjsonモジュール使うまでもなさそうだな
という用途で、かつ汎用的に流用したい、かつ変数代入やimportの省略による行数の節約
などができないかと思ったときに
formatの使い勝手が良かったしかし、{の干渉があった
が、結果的にその干渉を除くことができました
ってだけの話です
書きたくないというより使うまでもないな
ということに尽きると思います
>importを書きたくないからの主張
'{"status":200,"error":"hoge"}'
とか直接書いてもいいし
res(200,"hoge")とかでもしいし
json.dumps(res)とかでもいい
自作モジュールで管理するでもいいし
という前提があります
が今回は、関数に分けるまでもjsonモジュール使うまでもなさそうだな
という用途で、かつ汎用的に流用したい、かつ変数代入やimportの省略による行数の節約
などができないかと思ったときに
formatの使い勝手が良かったしかし、{の干渉があった
が、結果的にその干渉を除くことができました
ってだけの話です
書きたくないというより使うまでもないな
ということに尽きると思います
433デフォルトの名無しさん
2020/11/20(金) 00:25:40.46ID:Y24NtUEO >>432
個人的な趣味だけど、まあC言語とかで書いてるなら言うことは同意できるよ。C言語で書いててそこからの移植とか。
個人的な趣味だけど、Python使ってて「使うまでもない」かどうか一々判断するのは面倒だなって思っちゃう。Pythonって、使えるものは何でも使ってやれの富豪プログラミングの精神に近いかなと。
まあ個人的な趣味でしかないんで、その判断をするのが異常だとは思わないよ。色々な理由があるのだろうし。
個人的な趣味だけど、まあC言語とかで書いてるなら言うことは同意できるよ。C言語で書いててそこからの移植とか。
個人的な趣味だけど、Python使ってて「使うまでもない」かどうか一々判断するのは面倒だなって思っちゃう。Pythonって、使えるものは何でも使ってやれの富豪プログラミングの精神に近いかなと。
まあ個人的な趣味でしかないんで、その判断をするのが異常だとは思わないよ。色々な理由があるのだろうし。
434デフォルトの名無しさん
2020/11/20(金) 01:08:25.18ID:kqUw2Oqc435デフォルトの名無しさん
2020/11/20(金) 01:22:02.94ID:aJFtJ7NQ 極論""返すだけだとしてもどんな場合でもチェックすべきだ
みたいな議論と同じでその主張はさすがに違和感あります >>434
みたいな議論と同じでその主張はさすがに違和感あります >>434
436デフォルトの名無しさん
2020/11/20(金) 01:28:55.33ID:1jDOgyGC statusコードを成型して返すだけのモジュールは別のケースで使っていて
今回はそれを使わないケースだった、というだけの話なのですが
もしかするとどんな場合でもformatを使った書き方でやっている
と勘違いしてる人がいるのかもしれない
今回はそれを使わないケースだった、というだけの話なのですが
もしかするとどんな場合でもformatを使った書き方でやっている
と勘違いしてる人がいるのかもしれない
437デフォルトの名無しさん
2020/11/20(金) 05:05:30.75ID:pwTm9Uxw >>272
漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
438デフォルトの名無しさん
2020/11/20(金) 05:15:51.38ID:pwTm9Uxw Ruby on Rails では、API モードがあって、API 用のアプリも作れる
初心者は、そういう事を知らないから、
何でも時間をかけて、低品質なアプリを自分で作るw
初心者は、そういう事を知らないから、
何でも時間をかけて、低品質なアプリを自分で作るw
439デフォルトの名無しさん
2020/11/20(金) 05:29:48.35ID:pwTm9Uxw >>411
>UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
これで、検索してみれば?
UTF-8 は以下のように、先頭ニブル・4ビットで、1〜4バイト文字を判別しています
1バイト文字: 0000〜0111: 0〜7
多バイト文字の2バイト目以降
1000〜1011: 8〜11(8〜B)
2バイト文字: 1100〜1101: 12〜13(C〜D)
3バイト文字: 1110: 14(E)
4バイト文字: 1111: 15(F)
0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?
>UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
これで、検索してみれば?
UTF-8 は以下のように、先頭ニブル・4ビットで、1〜4バイト文字を判別しています
1バイト文字: 0000〜0111: 0〜7
多バイト文字の2バイト目以降
1000〜1011: 8〜11(8〜B)
2バイト文字: 1100〜1101: 12〜13(C〜D)
3バイト文字: 1110: 14(E)
4バイト文字: 1111: 15(F)
0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?
440デフォルトの名無しさん
2020/11/20(金) 05:43:06.55ID:pwTm9Uxw 我流の人は、Git のプルリクを知らなそう。
就職では必須項目
上の人が見たら、一発で書き直し。
バグりやすいコードは、プルリクを受け付けられないだけ
議論するだけムダ
チェックを通ったコードは、合法になるから、
皆が模範にしてコピペするから、我流はダメ!
就職では必須項目
上の人が見たら、一発で書き直し。
バグりやすいコードは、プルリクを受け付けられないだけ
議論するだけムダ
チェックを通ったコードは、合法になるから、
皆が模範にしてコピペするから、我流はダメ!
441デフォルトの名無しさん
2020/11/20(金) 06:50:20.26ID:DAmoUJMr442デフォルトの名無しさん
2020/11/20(金) 08:19:06.00ID:azkfkwLr >>431
んだんだ
んだんだ
443デフォルトの名無しさん
2020/11/20(金) 08:27:43.79ID:04W8lkpW パイソンって書いた事ねーんだけっども、ブロックってインデントで
表現するんだべ?するってーと、100行のブロックにifに入れてぇ
ときは、100行分インデントすんのけ?
表現するんだべ?するってーと、100行のブロックにifに入れてぇ
ときは、100行分インデントすんのけ?
444デフォルトの名無しさん
2020/11/20(金) 09:03:36.27ID:azkfkwLr445デフォルトの名無しさん
2020/11/20(金) 09:09:51.23ID:WciP5EDn でも範囲の指定は自分でやらんとならんよね。
他の言語ならブロックの開始と終了を書いてやればいいんだけど
pythonは自分で範囲指定してインデントしてやる必要がある。
他の言語ならブロックの開始と終了を書いてやればいいんだけど
pythonは自分で範囲指定してインデントしてやる必要がある。
446デフォルトの名無しさん
2020/11/20(金) 09:33:53.10ID:04W8lkpW やっぱりそれなりのエディタや統合環境が前提なのかな(もちろん批判ではない)。
マジレスありがとう。
マジレスありがとう。
447デフォルトの名無しさん
2020/11/20(金) 09:52:05.41ID:azkfkwLr448デフォルトの名無しさん
2020/11/20(金) 11:05:57.25ID:T+fLV2lq 行選択してtabキー押すだけじゃないの?
秀丸ってそうなの?
秀丸ってそうなの?
449デフォルトの名無しさん
2020/11/20(金) 11:14:42.02ID:azkfkwLr450デフォルトの名無しさん
2020/11/20(金) 11:26:50.71ID:E6icsWYy なんでVSCODE使わないの?
451デフォルトの名無しさん
2020/11/20(金) 11:33:54.21ID:iBr2xRx4 回答者側と思しき立場でただのgit管理にすら怪訝する人が上の方でちらほらいたので正直驚いたけど
個人開発であってもgitはほぼ必須になってくる場面があるのでまとめて覚えておいて損はない
個人開発であってもgitはほぼ必須になってくる場面があるのでまとめて覚えておいて損はない
452デフォルトの名無しさん
2020/11/20(金) 11:48:54.11ID:SYPK5ijx >>451
流れ軽く読んで来たけど
・実装の重複を防ぐためのクラス/メソッド抽出してモジュール化
⇒設計的な話
・Gitでモジュール化したものを管理する
⇒バージョン/ファイル管理的な話
この二つは本質的には別問題だけど、何故か混同された話になってて
よく分からん事になってるな
(実際の開発考えるとGit使ったやり方になるから分からん話でもないが)
流れ軽く読んで来たけど
・実装の重複を防ぐためのクラス/メソッド抽出してモジュール化
⇒設計的な話
・Gitでモジュール化したものを管理する
⇒バージョン/ファイル管理的な話
この二つは本質的には別問題だけど、何故か混同された話になってて
よく分からん事になってるな
(実際の開発考えるとGit使ったやり方になるから分からん話でもないが)
453デフォルトの名無しさん
2020/11/20(金) 11:58:33.01ID:azkfkwLr >>450
ネットブックだと動かない
ネットブックだと動かない
454デフォルトの名無しさん
2020/11/20(金) 12:11:55.05ID:pblrwhkp Notepad++にPython Indentを入れれば同じことができる。
455デフォルトの名無しさん
2020/11/20(金) 12:32:50.55ID:azkfkwLr だがおれは秀丸派
456デフォルトの名無しさん
2020/11/20(金) 12:47:59.38ID:27JFXKUI >>439
>4バイト文字: 1111: 15(F)
>0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?
1バイト文字は0xxx-xxxx
2バイト文字は110x-xxxx
3バイト文字は1110-xxxx
4バイト文字は1111-0xxx
↑この制限だけでも4バイト文字の先頭バイトは0xF0~0xF7の範囲
実際はUnicodeのコードポイントの上限がU+10FFFFまでなので0xF0~0xF4(1111-0100)
>4バイト文字: 1111: 15(F)
>0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?
1バイト文字は0xxx-xxxx
2バイト文字は110x-xxxx
3バイト文字は1110-xxxx
4バイト文字は1111-0xxx
↑この制限だけでも4バイト文字の先頭バイトは0xF0~0xF7の範囲
実際はUnicodeのコードポイントの上限がU+10FFFFまでなので0xF0~0xF4(1111-0100)
457デフォルトの名無しさん
2020/11/20(金) 13:12:12.59ID:pRZ0VqUl chromebookでも動くvscode(´・ω・`)
458440
2020/11/20(金) 13:17:17.31ID:pwTm9Uxw YouTube で有名な、雑食系エンジニア・KENTA が言ってる
Git のプルリクは、転職に必須項目だと
Git のプルリクは、転職に必須項目だと
459デフォルトの名無しさん
2020/11/20(金) 13:33:16.00ID:RwZlwr9h パソコンor通信環境のスペック次第だが仮想環境であればvscodeに限らず大体使える
スマホですら動く
スマホですら動く
461デフォルトの名無しさん
2020/11/20(金) 14:07:20.42ID:geOpYg9g462デフォルトの名無しさん
2020/11/20(金) 14:57:48.56ID:gfvoQY5i gitを持ち出したのは>>416の指摘通りだろうけど、書いてる内容見るとpythonのモジュールを理解してなさそう
自分が知らなかったことや見落としてたことを絶対に認めずに (本人にとっての)俺はできるんだぞアピールで返す人はスルーに限る
自分が知らなかったことや見落としてたことを絶対に認めずに (本人にとっての)俺はできるんだぞアピールで返す人はスルーに限る
463デフォルトの名無しさん
2020/11/20(金) 15:40:25.51ID:abuyzRZn464デフォルトの名無しさん
2020/11/20(金) 16:07:05.73ID:Cnjv1GAE いやプルリクそのものじゃなく今までにプルリクした実績のことじゃないの
GitHubアカウントを見せてこんなことしてきましたよと自己アピールする感じで
そんなん実際にするのか知らんけど
GitHubアカウントを見せてこんなことしてきましたよと自己アピールする感じで
そんなん実際にするのか知らんけど
465デフォルトの名無しさん
2020/11/20(金) 16:12:52.30ID:dRk/TXCB 日本語翻訳のプルリクでもええか?
466デフォルトの名無しさん
2020/11/20(金) 16:21:35.66ID:abuyzRZn467デフォルトの名無しさん
2020/11/20(金) 16:27:14.70ID:SYPK5ijx >>466
流石にそれは偏見すぎる
流石にそれは偏見すぎる
468デフォルトの名無しさん
2020/11/20(金) 16:51:03.75ID:zSvQnKz4 最初の質問が>>386だからな
こんなもんjsonモジュール使えで終わる話だろ
こんなもんjsonモジュール使えで終わる話だろ
469デフォルトの名無しさん
2020/11/20(金) 17:12:00.89ID:27JFXKUI プルリクはOSSに限らないよ
転職の話はプルリクベースの開発スタイルに馴染みがあるかどうか
もしくは適応できるかどうかっての話だと思う
転職の話はプルリクベースの開発スタイルに馴染みがあるかどうか
もしくは適応できるかどうかっての話だと思う
470デフォルトの名無しさん
2020/11/20(金) 17:38:21.51ID:AGMq159w すまん、それpython関係ある???
471デフォルトの名無しさん
2020/11/20(金) 17:53:38.81ID:04W8lkpW あげるなよ、何かを信じてる方々の啓蒙活動なんだから。
背景雑音だっぺ。
背景雑音だっぺ。
472デフォルトの名無しさん
2020/11/20(金) 19:34:59.52ID:M1wpYzhx モジュール化してimportするまでもない
git管理するまでもない
関数化はしてもいいがするまでもない
そういう用途下で、ただのformat関数をつかった文字列出力の小技の話なのに
なぜかどんな場合にもimportすべきだjsonモジュール使ってチェックすべきだ
みたいな勢力がいる違和感
git管理するまでもない
関数化はしてもいいがするまでもない
そういう用途下で、ただのformat関数をつかった文字列出力の小技の話なのに
なぜかどんな場合にもimportすべきだjsonモジュール使ってチェックすべきだ
みたいな勢力がいる違和感
473デフォルトの名無しさん
2020/11/20(金) 19:42:56.25ID:abuyzRZn >>472
違和感でも何でもない
技術者にはそれぞれ己の中に譲れないポリシーがある
「〜するまでもない時はしないでいい」というのもポリシーだし
「どんな時も〜するべきだ」というのもポリシーだ
それが匿名掲示板でぶつかり合うとこうなる
違和感でも何でもない
技術者にはそれぞれ己の中に譲れないポリシーがある
「〜するまでもない時はしないでいい」というのもポリシーだし
「どんな時も〜するべきだ」というのもポリシーだ
それが匿名掲示板でぶつかり合うとこうなる
474デフォルトの名無しさん
2020/11/20(金) 20:00:35.31ID:OHdUFTne >>462
git持ち出したのは>簡単な用途でない場合
の一例ですよ
簡易的に仮想環境化で動作確認したい場合とか
statusを返すようなモジュール個別開発したりcloneしたりバージョン管理もする必要のない用途例として出しただけです
ここの人なら普通に使ってるものだと思っていたし
できる人のアピールになぜgit?という感じで正直謎でした
git持ち出したのは>簡単な用途でない場合
の一例ですよ
簡易的に仮想環境化で動作確認したい場合とか
statusを返すようなモジュール個別開発したりcloneしたりバージョン管理もする必要のない用途例として出しただけです
ここの人なら普通に使ってるものだと思っていたし
できる人のアピールになぜgit?という感じで正直謎でした
475デフォルトの名無しさん
2020/11/20(金) 20:29:53.22ID:l5Hw5z7m 2行目で何をしてるのか教えて下さい
s = input()
print(max(map(len, s.split('S'))))
s = input()
print(max(map(len, s.split('S'))))
476デフォルトの名無しさん
2020/11/20(金) 20:35:44.50ID:azkfkwLr >>475
print、max、map、len、split
それぞれでggrks
続きは↓でな
https://mevius.5ch.net/test/read.cgi/tech/1258320456/
print、max、map、len、split
それぞれでggrks
続きは↓でな
https://mevius.5ch.net/test/read.cgi/tech/1258320456/
477デフォルトの名無しさん
2020/11/20(金) 20:47:13.53ID:uMSrjpcB JSONで返しますって言ってるAPIがJSON風の自前の文字列返してくるとか嫌がらせ以外のなにものでもない
何のためにJSONが存在してると思っている
何のためにJSONが存在してると思っている
478デフォルトの名無しさん
2020/11/20(金) 20:54:33.52ID:abuyzRZn >>475
sに入力した文字列を'S'を境にして区切り、区切った文字列ごとに文字数を算出し
その中から最大の数を選んで表示する
これは難解
map関数は関数型言語からバクッてきた機能らしく、Pythonの文脈に馴染んでおらず
使うと大抵可読性が落ちる
プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
sに入力した文字列を'S'を境にして区切り、区切った文字列ごとに文字数を算出し
その中から最大の数を選んで表示する
これは難解
map関数は関数型言語からバクッてきた機能らしく、Pythonの文脈に馴染んでおらず
使うと大抵可読性が落ちる
プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
479デフォルトの名無しさん
2020/11/20(金) 20:57:12.97ID:Y24NtUEO バージョン管理しない書き捨ての用途だとしてもjsonモジュール使う方が何も考えなくていいもの
jupyterで適当なコード書くときだってjson numpy pandasあたりは大体始めに必要だとわかってimportしとくわ。
自分でフォーマットする合理性が理解できない。
「jsonモジュールを使うまでもない」というが、「jsonモジュールを敢えて使わない理由はない」と思ってしまう。
それこそ内包forを使うまでもないから使わない、みたいな話と同じように感じてしまう。
車輪の再発明はどうしても必要とされない限りは基本的に避けた方がいい行為、ということにも合意はなされない、のかな。
jupyterで適当なコード書くときだってjson numpy pandasあたりは大体始めに必要だとわかってimportしとくわ。
自分でフォーマットする合理性が理解できない。
「jsonモジュールを使うまでもない」というが、「jsonモジュールを敢えて使わない理由はない」と思ってしまう。
それこそ内包forを使うまでもないから使わない、みたいな話と同じように感じてしまう。
車輪の再発明はどうしても必要とされない限りは基本的に避けた方がいい行為、ということにも合意はなされない、のかな。
480デフォルトの名無しさん
2020/11/20(金) 20:59:04.30 >>477
つまりパーサーを通したものこそ真のJSONである、と・・
しかし、そのパーサーの中身は・・?
これやってみては
if json.dumps({"status":200}) == '{"status": 200}':
_print(True)
つまりパーサーを通したものこそ真のJSONである、と・・
しかし、そのパーサーの中身は・・?
これやってみては
if json.dumps({"status":200}) == '{"status": 200}':
_print(True)
481デフォルトの名無しさん
2020/11/20(金) 21:00:33.44ID:Y24NtUEO482デフォルトの名無しさん
2020/11/20(金) 21:01:42.82ID:azkfkwLr483デフォルトの名無しさん
2020/11/20(金) 21:08:06.35ID:Y24NtUEO >>480
筋悪だな
json.dumps(json.loads('{"status": 200}')) == json.dumps({"status":200})
ぐらいにしないとFalseになる可能性は十分にある、今実験してTrueなったから未来永劫Trueだろう、というのは考えが甘いよ
それがTrueになるのはどのPythonの実装でなら担保されるのかな?
要は、いちいちJSONの仕様を100%確かめて、100%準拠した手書きJSONを書くというのは割りに合わないということ。
import jsonとかjson.dumpsと書くたったの10秒ぐらいの余計な時間で、
もし間違ったJSONを出力してパーサーの方でパースできない原因を究明することになったときに必要な何十分がなくなるんだから、
余計な10秒をかけない理由がない
変に手抜きすると結局その手抜きが原因で100倍ぐらい余計に時間がかかったりするのがプログラミングの常だもの
筋悪だな
json.dumps(json.loads('{"status": 200}')) == json.dumps({"status":200})
ぐらいにしないとFalseになる可能性は十分にある、今実験してTrueなったから未来永劫Trueだろう、というのは考えが甘いよ
それがTrueになるのはどのPythonの実装でなら担保されるのかな?
要は、いちいちJSONの仕様を100%確かめて、100%準拠した手書きJSONを書くというのは割りに合わないということ。
import jsonとかjson.dumpsと書くたったの10秒ぐらいの余計な時間で、
もし間違ったJSONを出力してパーサーの方でパースできない原因を究明することになったときに必要な何十分がなくなるんだから、
余計な10秒をかけない理由がない
変に手抜きすると結局その手抜きが原因で100倍ぐらい余計に時間がかかったりするのがプログラミングの常だもの
484デフォルトの名無しさん
2020/11/20(金) 21:09:07.64ID:l5Hw5z7m485デフォルトの名無しさん
2020/11/20(金) 21:14:07.28ID:Y24NtUEO >>484
少ない行数で書けることがカッコいい、わけではないが、このぐらいのmapは流石に読めたほうがいい
これを5行で書くほうが良いと言うのは、正直いって10年以上前にプログラミングを習ってそこから知識がアップデートされてない人種だと思ったほうが良い
勿論初心者なら、ちょっと読み解くのが難しいから自分には5行でしか書けない、5行のパターンじゃないと読むのが難しい、というのでも構わない
でも今どきJavascriptなんかでこんな書き方は当たり前なんだから、向上心があるなら慣れるべきだと思う
少ない行数で書けることがカッコいい、わけではないが、このぐらいのmapは流石に読めたほうがいい
これを5行で書くほうが良いと言うのは、正直いって10年以上前にプログラミングを習ってそこから知識がアップデートされてない人種だと思ったほうが良い
勿論初心者なら、ちょっと読み解くのが難しいから自分には5行でしか書けない、5行のパターンじゃないと読むのが難しい、というのでも構わない
でも今どきJavascriptなんかでこんな書き方は当たり前なんだから、向上心があるなら慣れるべきだと思う
486デフォルトの名無しさん
2020/11/20(金) 21:23:59.20ID:aJFtJ7NQ >>483
ただの書き方の解釈、開発環境での用途の話であって
Trueが担保されるかどうかは別の話
余計な10秒をかけたくないときに使えば良いだけ
ただの文字出力用途で100倍余計に時間がかかってしまう具体例を教えてほしい
ただの書き方の解釈、開発環境での用途の話であって
Trueが担保されるかどうかは別の話
余計な10秒をかけたくないときに使えば良いだけ
ただの文字出力用途で100倍余計に時間がかかってしまう具体例を教えてほしい
487デフォルトの名無しさん
2020/11/20(金) 21:39:21.22ID:Y24NtUEO >>486
え、「ちゃんとパース可能なJSON」を書き出したいんじゃなくて、「ただの文字出力」をしたいって話だったの?
ただ単純に「ちゃんとパース可能なJSON」を書き出すのが目的だとしたら、
1. JSONの規格を100%理解しているわけではないプログラマーがいい加減に書き出した文字列(テスト回数10回ぐらい)
2. Pythonの標準ライブラリとして用意されているjsonモジュールを使ってオブジェクトをJSON文字列に書き出した文字列(テスト回数100万回ぐらい)
のどっちが良いか、で、1が良いなんてことあるの?
1が良い場合もないとは言えないと思うけど、何かしら条件が必要だと思わない?
「いい加減に書き出した」せいで1時間デバッグに余計にかかったんだとしたら360倍時間かかってるわけで
そもそも{}がうまく出ないとか5chに質問してる時点で相当解決に時間かかってるのでは…?
え、「ちゃんとパース可能なJSON」を書き出したいんじゃなくて、「ただの文字出力」をしたいって話だったの?
ただ単純に「ちゃんとパース可能なJSON」を書き出すのが目的だとしたら、
1. JSONの規格を100%理解しているわけではないプログラマーがいい加減に書き出した文字列(テスト回数10回ぐらい)
2. Pythonの標準ライブラリとして用意されているjsonモジュールを使ってオブジェクトをJSON文字列に書き出した文字列(テスト回数100万回ぐらい)
のどっちが良いか、で、1が良いなんてことあるの?
1が良い場合もないとは言えないと思うけど、何かしら条件が必要だと思わない?
「いい加減に書き出した」せいで1時間デバッグに余計にかかったんだとしたら360倍時間かかってるわけで
そもそも{}がうまく出ないとか5chに質問してる時点で相当解決に時間かかってるのでは…?
488デフォルトの名無しさん
2020/11/20(金) 21:56:03.77ID:AGMq159w pythonでmap, filterあたり使う理由ってほぼないだろ
内包表記に比べて遅いしgeneratorで返ってくるし
内包表記に比べて遅いしgeneratorで返ってくるし
489デフォルトの名無しさん
2020/11/20(金) 22:04:18.19ID:V+7Wns2i490デフォルトの名無しさん
2020/11/20(金) 22:08:29.63ID:Y24NtUEO >>488
内包表記に比べて遅い、は最近のPythonだとFalseだよ
内包表記に比べて短く書けるわけではない、というのは場合によりTrue
map(lambda x: func(x, 2), arr)と書くよりは
[func(x, 2) for x in arr]と書くほうが短いが、
map(str, arr)とかだったら、
[str(x) for x in arr]より短いから意味がないということもないと思う
list付けてもこの場合はmapの方が短いしね
と言いつつ、関数の呼び出しの形の差でmapを使うか内包表記を使うかいちいち考えるのはめんどくさいので常に内包表記使ってるけど...
内包表記に比べて遅い、は最近のPythonだとFalseだよ
内包表記に比べて短く書けるわけではない、というのは場合によりTrue
map(lambda x: func(x, 2), arr)と書くよりは
[func(x, 2) for x in arr]と書くほうが短いが、
map(str, arr)とかだったら、
[str(x) for x in arr]より短いから意味がないということもないと思う
list付けてもこの場合はmapの方が短いしね
と言いつつ、関数の呼び出しの形の差でmapを使うか内包表記を使うかいちいち考えるのはめんどくさいので常に内包表記使ってるけど...
491デフォルトの名無しさん
2020/11/20(金) 22:10:42.73ID:aJFtJ7NQ >>487
繰り返しになるけど、文字出力と同等の用途なだけ
個人的にフロントで「ちゃんとパース可能なJSON」を解釈できればいい、その程度の用途
あとはfomatの{回避にふと疑問を持ち質問を投げた、それだけこと
というか他でjson.dumpsは普通に使ってるので
こっち({回避の疑問)の方が主ではあります
繰り返しになりますが、何がなんでもformatを使って自己パーサーを作る、なんていう質問意図ではないです
個人用途で、キーや値の変更による成型を考える場合の変数代入や関数化する過程で発生する
json.dumps使用以外の過程を省きつつ
フロントで解釈できる程度の結果を得たい(得た)というだけの話
個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
繰り返しになるけど、文字出力と同等の用途なだけ
個人的にフロントで「ちゃんとパース可能なJSON」を解釈できればいい、その程度の用途
あとはfomatの{回避にふと疑問を持ち質問を投げた、それだけこと
というか他でjson.dumpsは普通に使ってるので
こっち({回避の疑問)の方が主ではあります
繰り返しになりますが、何がなんでもformatを使って自己パーサーを作る、なんていう質問意図ではないです
個人用途で、キーや値の変更による成型を考える場合の変数代入や関数化する過程で発生する
json.dumps使用以外の過程を省きつつ
フロントで解釈できる程度の結果を得たい(得た)というだけの話
個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
492デフォルトの名無しさん
2020/11/20(金) 22:29:11.10ID:27JFXKUI493デフォルトの名無しさん
2020/11/20(金) 22:36:29.18ID:wMzkLTJS494デフォルトの名無しさん
2020/11/20(金) 22:40:22.91ID:Y24NtUEO >>491
「フロントで「ちゃんとパース可能なJSON」を解釈できればいい」のならjson.dumps(obj) 一択
1行でコピペできないという問題も__import__('json').dumps(obj)という書き方で解決された
なぜそこまで自分のコードが信頼できるのか疑問
jsonモジュール(別にjsonモジュールに限らず、他の言語も含む世の中にある名の知れたライブラリ)を書いたプログラマーのほうが
色んな人にソースコードの動作を検証してもらってるし、コード自体も査読してもらってるし、長い時間をかけてそのモジュールを書いているし、
そもそもオープンソースとして公開する時点で優秀なプログラマーの可能性が高い
あなたの言う「スマートなやり方」というのは、「言語/言語のエコシステムの補助を使わずになんとかする方法」なのかな?
「適当な文字出力」と「パース可能なJSONの出力」はハードルが違うからね。
あと、この場合あなたが書きたいのは「パーサ」じゃなくて「シリアライザ」とか「フォーマッタ」と呼ばれる
ぶっちゃけ何度もimportしても構わないからimportは必ずプログラムの頭に書かなくてもいいとか知らなかったことを認めるのが癪で
引っ込みがつかなくなってるのではないかな?
超初心者用のスレなんで、知識が怪しいんじゃないか、というところにツッコミを入れるのもアレだけど、パーサの誤用とか含めて
プライドが高い割には知識が怪しいように思っちゃうなぁ。
「フロントで「ちゃんとパース可能なJSON」を解釈できればいい」のならjson.dumps(obj) 一択
1行でコピペできないという問題も__import__('json').dumps(obj)という書き方で解決された
なぜそこまで自分のコードが信頼できるのか疑問
jsonモジュール(別にjsonモジュールに限らず、他の言語も含む世の中にある名の知れたライブラリ)を書いたプログラマーのほうが
色んな人にソースコードの動作を検証してもらってるし、コード自体も査読してもらってるし、長い時間をかけてそのモジュールを書いているし、
そもそもオープンソースとして公開する時点で優秀なプログラマーの可能性が高い
あなたの言う「スマートなやり方」というのは、「言語/言語のエコシステムの補助を使わずになんとかする方法」なのかな?
「適当な文字出力」と「パース可能なJSONの出力」はハードルが違うからね。
あと、この場合あなたが書きたいのは「パーサ」じゃなくて「シリアライザ」とか「フォーマッタ」と呼ばれる
ぶっちゃけ何度もimportしても構わないからimportは必ずプログラムの頭に書かなくてもいいとか知らなかったことを認めるのが癪で
引っ込みがつかなくなってるのではないかな?
超初心者用のスレなんで、知識が怪しいんじゃないか、というところにツッコミを入れるのもアレだけど、パーサの誤用とか含めて
プライドが高い割には知識が怪しいように思っちゃうなぁ。
495デフォルトの名無しさん
2020/11/20(金) 22:40:35.67ID:aJFtJ7NQ496デフォルトの名無しさん
2020/11/20(金) 22:43:05.19ID:abuyzRZn >>481
個人のポリシーでしかないから押し付けるつもりはないが
内包表記も関数型言語からの取入れであり可読性の悪いコードになる
何せコードを右から読まなくてはいけないからね
よって自分は先のmapとこの内包表記は極力使わないようにしてる
forとifとappendでリストにまとめるスタイルが一番しっくりくる
個人のポリシーでしかないから押し付けるつもりはないが
内包表記も関数型言語からの取入れであり可読性の悪いコードになる
何せコードを右から読まなくてはいけないからね
よって自分は先のmapとこの内包表記は極力使わないようにしてる
forとifとappendでリストにまとめるスタイルが一番しっくりくる
497デフォルトの名無しさん
2020/11/20(金) 22:43:14.36ID:8FBZ4Sqf498デフォルトの名無しさん
2020/11/20(金) 22:48:59.72ID:aJFtJ7NQ >>494
>importは必ずプログラムの頭に書かなくてもいい
importの場所は主題ではないですよ
そのobjはどこでどうやって成型した・するのでしょうか
>信頼できるのか
繰り返しになりますけど、ただのJSON文字列同等の用途で使っている
という理解だからです
繰り返しになりますが、そうではない、と思うなら普通にjsonモジュールを使っています
個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
>importは必ずプログラムの頭に書かなくてもいい
importの場所は主題ではないですよ
そのobjはどこでどうやって成型した・するのでしょうか
>信頼できるのか
繰り返しになりますけど、ただのJSON文字列同等の用途で使っている
という理解だからです
繰り返しになりますが、そうではない、と思うなら普通にjsonモジュールを使っています
個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
499デフォルトの名無しさん
2020/11/20(金) 22:50:34.06ID:Y24NtUEO >>496
どこまで複雑な内包表記を認めるかというのは、仰るとおりポリシー次第なところはあるね。
3重内包表記ぐらいまでは書くことあるけど、書くときはノリノリで書いてシンプルに纏まったぜ、やった、って思っても、
後で2重目のループの処理を修正したいときに地獄を見ることがあったりするのは事実。
内包表記はその存在自体がややこしいので一切認めません、というのもポリシーとしては普通にありだと思う。
関数型言語からの取り入れという事実を後押しする形になるのだが、
数式を読み慣れてると、内包表記やmapは数式に近い形なので、逆に可読性は悪くない、と思うケースも多いのだよなぁ
リストの中身を2乗して全部足すみたいな場合とかね。forループで手続き的にやる方が見通しが悪くなると個人的に思う。
どこまで複雑な内包表記を認めるかというのは、仰るとおりポリシー次第なところはあるね。
3重内包表記ぐらいまでは書くことあるけど、書くときはノリノリで書いてシンプルに纏まったぜ、やった、って思っても、
後で2重目のループの処理を修正したいときに地獄を見ることがあったりするのは事実。
内包表記はその存在自体がややこしいので一切認めません、というのもポリシーとしては普通にありだと思う。
関数型言語からの取り入れという事実を後押しする形になるのだが、
数式を読み慣れてると、内包表記やmapは数式に近い形なので、逆に可読性は悪くない、と思うケースも多いのだよなぁ
リストの中身を2乗して全部足すみたいな場合とかね。forループで手続き的にやる方が見通しが悪くなると個人的に思う。
500デフォルトの名無しさん
2020/11/20(金) 22:58:01.95ID:Y24NtUEO >>498
status = 200
error = None
とかいう値が入ってるとして
__import__('json').dumps({'status': status, 'error': error})
で終わりなんだけどな
result_obj = {'status': status, 'error': error}
__import__('json').dumps(result_obj)でもいいし
もちろん
__import__('json').dumps({'status': 200, 'error': None})
でもいい
JSONを書き出すのに、「文字列」なんて概念を持ち出す必要がないのよ
dictがそのままjsonモジュールで妥当なJSONになって各言語のパーサーでそのまま解釈できると考えておしまい
だから、いちいち妥当でない可能性のある「文字列」の状態を考えたくない
status = 200
error = None
とかいう値が入ってるとして
__import__('json').dumps({'status': status, 'error': error})
で終わりなんだけどな
result_obj = {'status': status, 'error': error}
__import__('json').dumps(result_obj)でもいいし
もちろん
__import__('json').dumps({'status': 200, 'error': None})
でもいい
JSONを書き出すのに、「文字列」なんて概念を持ち出す必要がないのよ
dictがそのままjsonモジュールで妥当なJSONになって各言語のパーサーでそのまま解釈できると考えておしまい
だから、いちいち妥当でない可能性のある「文字列」の状態を考えたくない
501デフォルトの名無しさん
2020/11/20(金) 22:58:07.55ID:GCIXM+fw502デフォルトの名無しさん
2020/11/20(金) 22:59:54.94ID:HBV8TmEn 一連のやりとり見てこれを思い出した
ほんとなんで自信満々なんだろう?
「staticおじさん」はなぜ自信満々なのか
https://xtech.nikkei.com/it/atcl/watcher/14/334361/122100450/
ほんとなんで自信満々なんだろう?
「staticおじさん」はなぜ自信満々なのか
https://xtech.nikkei.com/it/atcl/watcher/14/334361/122100450/
503デフォルトの名無しさん
2020/11/20(金) 23:02:30.97ID:aJFtJ7NQ504デフォルトの名無しさん
2020/11/20(金) 23:07:40.26ID:Y24NtUEO >>503
え、マジでわからんの?
statusが500だったりerrorになんか入っているときも書き方同じじゃん?
じゃあさ、formatを使う場合と__import__('json').dumpsを使う場合でコードを並べて、
formatの方がここが優れていると教えてくれよ。
逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、formatだと余計なエスケープ処理が入ると思うけどなぁ。
え、マジでわからんの?
statusが500だったりerrorになんか入っているときも書き方同じじゃん?
じゃあさ、formatを使う場合と__import__('json').dumpsを使う場合でコードを並べて、
formatの方がここが優れていると教えてくれよ。
逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、formatだと余計なエスケープ処理が入ると思うけどなぁ。
505デフォルトの名無しさん
2020/11/20(金) 23:10:29.05ID:P/qrHO+P 現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル | Udemy
https://www.udemy.com/course/python-beginner/
https://www.udemy.com/course/python-beginner/
506デフォルトの名無しさん
2020/11/20(金) 23:12:44.36ID:998hZ133507デフォルトの名無しさん
2020/11/20(金) 23:17:41.85ID:wMzkLTJS >>495
> その程度の読解力やレッテル貼りするような人格だと苦労しそう
レッテル貼り?
質問の内容から判断してるんだけど?
読解力とか意味わからんしw
> お察しします
人の事を心配するレベルじゃないことを自覚したほうがいいと思うぞ…
> その程度の読解力やレッテル貼りするような人格だと苦労しそう
レッテル貼り?
質問の内容から判断してるんだけど?
読解力とか意味わからんしw
> お察しします
人の事を心配するレベルじゃないことを自覚したほうがいいと思うぞ…
508デフォルトの名無しさん
2020/11/20(金) 23:20:59.09ID:Y24NtUEO >>506
C#のLINQみたいにmapとかmaxとかをリストやジェネレータのメソッドとして追加できたらその書き方も出来るのだろうね。
実際、pandasやnumpyでは当該ライブラリで用意しているクラスではそのような書き方ができるような配列ライクなクラスを用意している。
Python言語が生まれた時期が微妙に古いというのが不自然な文法に影響しているかもね。
習いたての頃は、なんでarr.len()じゃなくてlen(arr)なんだ、って思ったもの。
C#のLINQみたいにmapとかmaxとかをリストやジェネレータのメソッドとして追加できたらその書き方も出来るのだろうね。
実際、pandasやnumpyでは当該ライブラリで用意しているクラスではそのような書き方ができるような配列ライクなクラスを用意している。
Python言語が生まれた時期が微妙に古いというのが不自然な文法に影響しているかもね。
習いたての頃は、なんでarr.len()じゃなくてlen(arr)なんだ、って思ったもの。
509デフォルトの名無しさん
2020/11/20(金) 23:26:46.17ID:aJFtJ7NQ >>504
もう上の方で書いてます
res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")
result_obj = {'status': 200, 'error': None}
__import__('json').dumps(result_obj)
__import__('json').dumps({'status': 200, 'error': None})
>逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、
入らない用途なので自分の環境下では問題ありません
もう上の方で書いてます
res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")
result_obj = {'status': 200, 'error': None}
__import__('json').dumps(result_obj)
__import__('json').dumps({'status': 200, 'error': None})
>逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、
入らない用途なので自分の環境下では問題ありません
510デフォルトの名無しさん
2020/11/20(金) 23:34:39.47ID:uMSrjpcB511デフォルトの名無しさん
2020/11/20(金) 23:37:51.38ID:Y24NtUEO >>509
res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")
と
__import__('json').dumps({'status': 200, 'error': None})
を比較して、前者のほうがスマートだと感じるなら、
他の人にも散々指摘されてるが、あなたはおそらく殆どの人が同意できない感覚の持ち主だろう
ゴーイングマイウェイで頑張ってくれ、ぶっちゃけ一緒に仕事はしたくないが
会社の経理のおばちゃんが、計算ミスばっかりするからどうしてかと思ったら、なんと算盤使って紙に向かって計算してて、
「頼むからExcel覚えてExcelでやってくれ」ってお願いしてるんだけど、「私は算盤が得意だからいいの!」って言われてる感じ
res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")
と
__import__('json').dumps({'status': 200, 'error': None})
を比較して、前者のほうがスマートだと感じるなら、
他の人にも散々指摘されてるが、あなたはおそらく殆どの人が同意できない感覚の持ち主だろう
ゴーイングマイウェイで頑張ってくれ、ぶっちゃけ一緒に仕事はしたくないが
会社の経理のおばちゃんが、計算ミスばっかりするからどうしてかと思ったら、なんと算盤使って紙に向かって計算してて、
「頼むからExcel覚えてExcelでやってくれ」ってお願いしてるんだけど、「私は算盤が得意だからいいの!」って言われてる感じ
512デフォルトの名無しさん
2020/11/20(金) 23:42:08.20ID:aJFtJ7NQ >>511
例えばstatusコードを複数吐くとき
どうなりますか
res = '{{"status":{},"error":"{}"}}'
res.format(201,"null")
res.format(202,"null")
res.format(203,"null")
res.format(204,"null")
res.format(205,"null")
__import__('json').dumps({'status': 201, 'error': None})
__import__('json').dumps({'status': 202, 'error': None})
__import__('json').dumps({'status': 203, 'error': None})
__import__('json').dumps({'status': 204, 'error': None})
__import__('json').dumps({'status': 205, 'error': None})
例えばstatusコードを複数吐くとき
どうなりますか
res = '{{"status":{},"error":"{}"}}'
res.format(201,"null")
res.format(202,"null")
res.format(203,"null")
res.format(204,"null")
res.format(205,"null")
__import__('json').dumps({'status': 201, 'error': None})
__import__('json').dumps({'status': 202, 'error': None})
__import__('json').dumps({'status': 203, 'error': None})
__import__('json').dumps({'status': 204, 'error': None})
__import__('json').dumps({'status': 205, 'error': None})
513デフォルトの名無しさん
2020/11/20(金) 23:48:08.89ID:Y24NtUEO >>512
複数回出すなら、
import json
json.dumps({'status': 201, 'error': None})
json.dumps({'status': 202, 'error': None})
とするだろうけど
本当に多いなら
res = lambda s, e: json.dumps({'status': s, 'error': e})
res(201, None)
res(202, None)
短く書くというのが目標ならlambdaでもまだ意図は明確だしformatより短いよ。
複数回出すなら、
import json
json.dumps({'status': 201, 'error': None})
json.dumps({'status': 202, 'error': None})
とするだろうけど
本当に多いなら
res = lambda s, e: json.dumps({'status': s, 'error': e})
res(201, None)
res(202, None)
短く書くというのが目標ならlambdaでもまだ意図は明確だしformatより短いよ。
514デフォルトの名無しさん
2020/11/20(金) 23:59:39.49ID:aJFtJ7NQ515デフォルトの名無しさん
2020/11/21(土) 00:01:48.28ID:TffSxZDq >>514
ここまで示されててわからんの?煽るだけじゃなくて勉強しようよ。
res = lambda s, k, v: json.dumps({'status': s, k: v})
res(500, 'error', 'hoge')
ここまで示されててわからんの?煽るだけじゃなくて勉強しようよ。
res = lambda s, k, v: json.dumps({'status': s, k: v})
res(500, 'error', 'hoge')
516デフォルトの名無しさん
2020/11/21(土) 00:11:54.22ID:RHs1PlgB >>515
ありがとうございます
キー名はそのまま代入できたのですね!
自分が書いたjson.dumpsを使った方ではlambda式では長くなってしまい
結局formatでいいか、みたいな経緯がありました
あとは辞書の結合やショートカット機能使えない環境化をでも使ってみたいのでそのあたりを工夫してみようと思います!
ありがとうございます
キー名はそのまま代入できたのですね!
自分が書いたjson.dumpsを使った方ではlambda式では長くなってしまい
結局formatでいいか、みたいな経緯がありました
あとは辞書の結合やショートカット機能使えない環境化をでも使ってみたいのでそのあたりを工夫してみようと思います!
517デフォルトの名無しさん
2020/11/21(土) 00:15:10.92ID:TffSxZDq えぇぇ、
いやまぁ納得してもらえたならいいけど、、、
良かったね
いやまぁ納得してもらえたならいいけど、、、
良かったね
518デフォルトの名無しさん
2020/11/21(土) 01:07:30.25ID:v5QqbOTJ そうか
lispのコードをさんざん見てきた私は
内包表記もmapも普通なんだけどな
分かりにくい人がいるというのを認識した
lispのコードをさんざん見てきた私は
内包表記もmapも普通なんだけどな
分かりにくい人がいるというのを認識した
519デフォルトの名無しさん
2020/11/21(土) 01:09:15.76ID:5FVo37Wp 普通にhttpレスポンスを生成する関数の中でモデルをjson化してれば
json.dumpsのところだけをlambdaにしたいなんてことにはならないと思うんだけどなぁ
json.dumpsのところだけをlambdaにしたいなんてことにはならないと思うんだけどなぁ
520デフォルトの名無しさん
2020/11/21(土) 06:50:26.86ID:XFVQeQAy■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★7 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★6 [Hitzeschleier★]
- ちんちんぼっきする人が羨ましい
- 麻婆豆腐食べてる
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- 日銀が利上げしたら、国債金利も上がって日本が詰むという事実 [805596214]
- 👊😅👊三☁😶‍🌫三⛅🏡
