当スレに★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:1RQ0Wdhu383デフォルトの名無しさん
2020/11/16(月) 20:01:01.30ID:ysP24k7m はえーそんなのあるんだ
384デフォルトの名無しさん
2020/11/16(月) 21:09:34.49ID:lpvH3HhJ >>382
watchdog使ったところでビジーループの問題は解決しない
watchdog使ったところでビジーループの問題は解決しない
385デフォルトの名無しさん
2020/11/17(火) 10:43:44.47ID:KFJ2cj0W >>384
無能には無理なんだろうな…w
無能には無理なんだろうな…w
386デフォルトの名無しさん
2020/11/18(水) 15:35:14.76ID:cVTuS9Vl ウェブアプリのレスポンスをjsonで返そうとして
res = '{"status":"{status_code}","error":"{error}"}'
return res.format(status="200",error="")
みたいにすると変数res内の{とformatの{が干渉してエラーが出てしまいます
なので
res = '"status":"{status_code}","error":"{error}"'
return '{'+res.format(status="200",error="")+'}'
としたのですが、、なんかかっこ悪い気がしてもやもやします・・
もっといい方法はないでしょうか
json.dumpsを使うと
res['status'] = 200
res['error'] = ''
の行が増えてしまうのでそのあたりが気になります
res = '{"status":"{status_code}","error":"{error}"}'
return res.format(status="200",error="")
みたいにすると変数res内の{とformatの{が干渉してエラーが出てしまいます
なので
res = '"status":"{status_code}","error":"{error}"'
return '{'+res.format(status="200",error="")+'}'
としたのですが、、なんかかっこ悪い気がしてもやもやします・・
もっといい方法はないでしょうか
json.dumpsを使うと
res['status'] = 200
res['error'] = ''
の行が増えてしまうのでそのあたりが気になります
387デフォルトの名無しさん
2020/11/18(水) 16:02:18.01ID:/USRxP5S ちょっと何言ってるか分からないんだけど、
return json.dumps({“status":status_code,"error":error})って事ではないの?
return json.dumps({“status":status_code,"error":error})って事ではないの?
388デフォルトの名無しさん
2020/11/18(水) 16:19:03.18389デフォルトの名無しさん
2020/11/18(水) 16:31:36.23ID:/USRxP5S やっぱり何がしたいのかわからんわw
390デフォルトの名無しさん
2020/11/18(水) 16:55:17.63ID:grk01deG >>386
たぶん希望しているのはこういう事かな
res = '{{"status":"{status}","error":"{error}"}}'
https://docs.python.org/ja/3/library/string.html#formatstrings
たぶん希望しているのはこういう事かな
res = '{{"status":"{status}","error":"{error}"}}'
https://docs.python.org/ja/3/library/string.html#formatstrings
391デフォルトの名無しさん
2020/11/18(水) 16:59:39.36ID:cVTuS9Vl392デフォルトの名無しさん
2020/11/18(水) 17:21:35.12ID:vHQTDRO5 res.format(status=500, error='Error: "foobar”’)とかするとバグらない?
素直に関数化するかクラス化したほうが良いと思うな
def res(status_code, error):
__return json.dumps({'status': status_code, 'error': error})
res(500, 'Error: "foobar"')
素直に関数化するかクラス化したほうが良いと思うな
def res(status_code, error):
__return json.dumps({'status': status_code, 'error': error})
res(500, 'Error: "foobar"')
393デフォルトの名無しさん
2020/11/18(水) 22:53:36.69ID:uoMUJNdk 確かにJSONで返すなら、ちゃんとパーサーにお願いしたほうが確実だよね
394デフォルトの名無しさん
2020/11/18(水) 23:26:31.23ID:4/YKHsf6 ここに書いてある事がほとんど分からないんですが
本当に超初心者のスレですか?
本当に超初心者のスレですか?
395デフォルトの名無しさん
2020/11/18(水) 23:45:00.61ID:hkPPdx4I 簡単に説明←簡単じゃない
初心者向け←初心者向けじゃない(書いてる奴が初心者)
よくあること
初心者向け←初心者向けじゃない(書いてる奴が初心者)
よくあること
396デフォルトの名無しさん
2020/11/18(水) 23:47:39.86ID:cVTuS9Vl >>392,369
error以外のものを付加したいときとかは普通に関数化してますね
今回は例外処理含めstatsuとerrorがintとstrのみとわかっているので
よりスマートな書き方がないかなと模索してただけです
関数化するとプログラムを分けたときに
同じものを貼るのも、またはimportするのもあれだし、と思って。
その辺を気にしないうまい処理の仕方があるのかもしれませんが
error以外のものを付加したいときとかは普通に関数化してますね
今回は例外処理含めstatsuとerrorがintとstrのみとわかっているので
よりスマートな書き方がないかなと模索してただけです
関数化するとプログラムを分けたときに
同じものを貼るのも、またはimportするのもあれだし、と思って。
その辺を気にしないうまい処理の仕方があるのかもしれませんが
397デフォルトの名無しさん
2020/11/19(木) 06:48:28.38ID:SrLjxFgj398デフォルトの名無しさん
2020/11/19(木) 08:41:29.87ID:YoVNSJkp >>272
Macならhomebrewでpyenvで管理するのが1番楽
anaconda使いたきゃpyenvの中で管理されてるわけだし、pyenvからanacondaの好きなバージョン入れりゃ良いだけ
Macならhomebrewでpyenvで管理するのが1番楽
anaconda使いたきゃpyenvの中で管理されてるわけだし、pyenvからanacondaの好きなバージョン入れりゃ良いだけ
399デフォルトの名無しさん
2020/11/19(木) 10:53:10.35ID:z88yTjzg400デフォルトの名無しさん
2020/11/19(木) 12:09:45.64ID:oRKf5Y34 >>399
それだとstr()が環境によるのか仕様かはわかりませんが
”が'で表示されてしまいますね
実際そのコードをサーバー立てた試験はしてませんが
以前、JSONをバックエンド側でシングルクオートで書くと
クライアント側でエラーが起きた記憶があります
あと、毎回status_codeとerrorを変数に置く必要もない気がします
もしstr()のシングルクエート化が問題なく
statusもerrorも固定であればもうこれでいいのでは
return str({"status":200,"error":"err"})
自分は簡単な場合はこんな感じです
res = '{{"status":{},"{}":"{}"}}'
#分岐
return res.format(200,"msg","ok")
それだとstr()が環境によるのか仕様かはわかりませんが
”が'で表示されてしまいますね
実際そのコードをサーバー立てた試験はしてませんが
以前、JSONをバックエンド側でシングルクオートで書くと
クライアント側でエラーが起きた記憶があります
あと、毎回status_codeとerrorを変数に置く必要もない気がします
もしstr()のシングルクエート化が問題なく
statusもerrorも固定であればもうこれでいいのでは
return str({"status":200,"error":"err"})
自分は簡単な場合はこんな感じです
res = '{{"status":{},"{}":"{}"}}'
#分岐
return res.format(200,"msg","ok")
401デフォルトの名無しさん
2020/11/19(木) 15:47:35.30ID:EbSX4tjh402デフォルトの名無しさん
2020/11/19(木) 16:15:53.36ID:oRKf5Y34 >>401
>文字列をコピペして回るくらいなら
そんなこといい出したらimport行もプログラム毎にコピペしてません・・?
関数もコピペしてますよね
親で読み込むならまだしもモジュール名に困りますし。
gitで管理するほどのものでもないし
そういう簡単な用途でない場合は
普通に関数化するしjson.dumpsも使っていますし
gitで管理するレベルのモジュール化も実際してしますけどね
>文字列をコピペして回るくらいなら
そんなこといい出したらimport行もプログラム毎にコピペしてません・・?
関数もコピペしてますよね
親で読み込むならまだしもモジュール名に困りますし。
gitで管理するほどのものでもないし
そういう簡単な用途でない場合は
普通に関数化するしjson.dumpsも使っていますし
gitで管理するレベルのモジュール化も実際してしますけどね
403デフォルトの名無しさん
2020/11/19(木) 16:54:21.20ID:4Pgi61oy 質問です
「実用的でないPythonプログラミング」という本をやっているのですが
Pylintのところで
コマンドプロンプトに
> pylint -rn --max-line-length=79 --generate-rcfile > myconfig.pylintrc
という風に設定ファイルを作った後に
> pylint --rcfile myconfig.pylintrc pseudonyms_main(評価したいプログラム名です)
とすると
Traceback (most recent call last):
File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\owner\AppData\Local\Programs\Python\Python39\Scripts\pylint.exe\__main__.py", line 7, in <module>
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\__init__.py", line 22, in run_pylint
PylintRun(sys.argv[1:])
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\lint\run.py", line 298, in __init__
linter.read_config_file(verbose=self.verbose)
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file
parser.read_file(fp)
File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 718, in read_file
self._read(f, source)
File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 1017, in _read
for lineno, line in enumerate(fp, start=1):
つづきます
「実用的でないPythonプログラミング」という本をやっているのですが
Pylintのところで
コマンドプロンプトに
> pylint -rn --max-line-length=79 --generate-rcfile > myconfig.pylintrc
という風に設定ファイルを作った後に
> pylint --rcfile myconfig.pylintrc pseudonyms_main(評価したいプログラム名です)
とすると
Traceback (most recent call last):
File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\owner\AppData\Local\Programs\Python\Python39\Scripts\pylint.exe\__main__.py", line 7, in <module>
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\__init__.py", line 22, in run_pylint
PylintRun(sys.argv[1:])
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\lint\run.py", line 298, in __init__
linter.read_config_file(verbose=self.verbose)
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file
parser.read_file(fp)
File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 718, in read_file
self._read(f, source)
File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 1017, in _read
for lineno, line in enumerate(fp, start=1):
つづきます
404デフォルトの名無しさん
2020/11/19(木) 16:54:40.27ID:4Pgi61oy File "c:\users\owner\appdata\local\programs\python\python39\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "c:\users\owner\appdata\local\programs\python\python39\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode
return codecs.utf_8_decode(input, errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
となって評価してくれません
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "c:\users\owner\appdata\local\programs\python\python39\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode
return codecs.utf_8_decode(input, errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
となって評価してくれません
405デフォルトの名無しさん
2020/11/19(木) 17:09:06.67ID:4Pgi61oy OSはindows10でPythonのバージョンは3.9です
406デフォルトの名無しさん
2020/11/19(木) 17:11:36.55ID:4Pgi61oy407デフォルトの名無しさん
2020/11/19(木) 17:23:13.66ID:YSWc8XxM408デフォルトの名無しさん
2020/11/19(木) 17:28:17.91ID:ikoVfZxF 教えて下さい。
tkinterのテキストに処理の状況を表示していきたいのですが、処理終了後に
一気に再描画される感じになってしまいます。
printしてshellに出力されるような感じで、テキストに出力するにはどうしたら
よいでしょうか。
サンプルです。
------
import tkinter
import tkinter.scrolledtext as tkst
def click():
for i in range(10000000):
# 10000回ループに1回テキスト出力
if (i / 10000 ) % 1 == 0:
editArea.insert('end',str(i)+'回目\n') # 一気に描画される
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()
------
どうかよろしくおねがいします。
tkinterのテキストに処理の状況を表示していきたいのですが、処理終了後に
一気に再描画される感じになってしまいます。
printしてshellに出力されるような感じで、テキストに出力するにはどうしたら
よいでしょうか。
サンプルです。
------
import tkinter
import tkinter.scrolledtext as tkst
def click():
for i in range(10000000):
# 10000回ループに1回テキスト出力
if (i / 10000 ) % 1 == 0:
editArea.insert('end',str(i)+'回目\n') # 一気に描画される
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()
------
どうかよろしくおねがいします。
409デフォルトの名無しさん
2020/11/19(木) 17:32:51.21ID:YSWc8XxM >>408
flush()について調べてみるとハッピーになれるかもしれない
flush()について調べてみるとハッピーになれるかもしれない
410デフォルトの名無しさん
2020/11/19(木) 17:40:55.60ID:4Pgi61oy >>407
評価したいプログラムは
https://github.com/rlvaugh/Impractical_Python_Projects/blob/master/Chapter_1/pseudonyms_main.py
です、たぶん全角は入ってないと思います
いま3.9から3.8.6に変えてみて同じことをやってみても
Traceback (most recent call last):
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\owner\AppData\Local\Programs\Python\Python38\Scripts\pylint.exe\__main__.py", line 7, in <module>
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\__init__.py", line 22, in run_pylint
PylintRun(sys.argv[1:])
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\lint\run.py", line 298, in __init__
linter.read_config_file(verbose=self.verbose)
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file
parser.read_file(fp)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 718, in read_file
self._read(f, source)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 1017, in _read
for lineno, line in enumerate(fp, start=1):
つづきます
評価したいプログラムは
https://github.com/rlvaugh/Impractical_Python_Projects/blob/master/Chapter_1/pseudonyms_main.py
です、たぶん全角は入ってないと思います
いま3.9から3.8.6に変えてみて同じことをやってみても
Traceback (most recent call last):
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\owner\AppData\Local\Programs\Python\Python38\Scripts\pylint.exe\__main__.py", line 7, in <module>
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\__init__.py", line 22, in run_pylint
PylintRun(sys.argv[1:])
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\lint\run.py", line 298, in __init__
linter.read_config_file(verbose=self.verbose)
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file
parser.read_file(fp)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 718, in read_file
self._read(f, source)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 1017, in _read
for lineno, line in enumerate(fp, start=1):
つづきます
411デフォルトの名無しさん
2020/11/19(木) 17:41:42.54ID:4Pgi61oy File "c:\users\owner\appdata\local\programs\python\python38\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "c:\users\owner\appdata\local\programs\python\python38\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode
return codecs.utf_8_decode(input, errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
というふうになって同じみたいです
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "c:\users\owner\appdata\local\programs\python\python38\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode
return codecs.utf_8_decode(input, errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
というふうになって同じみたいです
412デフォルトの名無しさん
2020/11/19(木) 17:50:31.40ID:OpsIjeL3413デフォルトの名無しさん
2020/11/19(木) 17:51:00.78ID:KWn/SEv2414デフォルトの名無しさん
2020/11/19(木) 17:57:08.10ID:4Pgi61oy415デフォルトの名無しさん
2020/11/19(木) 18:03:30.56ID:EbSX4tjh >>402
値をあちこちにコピペして使うことと
値を参照してる変数や関数をあちこちで使うことの違い
複数のファイルで同じようなimportを何度も繰り返しやってるなら
__init__.pyとかでまとめればいい
gitは何の関係が?
値をあちこちにコピペして使うことと
値を参照してる変数や関数をあちこちで使うことの違い
複数のファイルで同じようなimportを何度も繰り返しやってるなら
__init__.pyとかでまとめればいい
gitは何の関係が?
416デフォルトの名無しさん
2020/11/19(木) 18:11:08.22ID:UFBeFMfP >>git
自分はそこそこできるんだぜアピールじゃないかなw
よくいるよね。こういうタイプの人。
自分はそこそこできるんだぜアピールじゃないかなw
よくいるよね。こういうタイプの人。
417デフォルトの名無しさん
2020/11/19(木) 18:23:43.14ID:NbNudS2h418デフォルトの名無しさん
2020/11/19(木) 18:26:14.64ID:YSWc8XxM >>414
じゃあBOMがついてるとか?
じゃあBOMがついてるとか?
419デフォルトの名無しさん
2020/11/19(木) 18:31:09.44ID:oRKf5Y34 >>415
>複数のファイルで同じようなimportを何度も繰り返しやってるなら
ええ、そういう用途のときはそうすればいいと思いますよ
>gitは何の関係が?
ホストPC以外で開発する場合、通常はクラウドでコンテナ作って云々すると思いますが
いちいち簡易レスポンスのためのimportをコピペするのが面倒なので
gitでリモートします
>複数のファイルで同じようなimportを何度も繰り返しやってるなら
ええ、そういう用途のときはそうすればいいと思いますよ
>gitは何の関係が?
ホストPC以外で開発する場合、通常はクラウドでコンテナ作って云々すると思いますが
いちいち簡易レスポンスのためのimportをコピペするのが面倒なので
gitでリモートします
420デフォルトの名無しさん
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倍ぐらい余計に時間がかかったりするのがプログラミングの常だもの
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 地震 [Hitzeschleier★]
- ブスだけど処女もらってくれる人いる?
- 仮に放射線混ざってたとしてもテムとアリエク使うわ
- ドーは
- 親父が同級生(クラスの真面目委員長JK)の母親と結婚した。ウソじゃない。事実なんだ
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- B型ってA型の天敵じゃね
