X



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

レス数が1000を超えています。これ以上書き込みはできません。
2020/11/15(日) 11:56:58.93ID:4ZGD55Ii
>>364
んなわけあるかっ!
2020/11/15(日) 13:03:57.44ID:Q3DWzppx
plt.subplot(2, 2, 4)
plt.plot(ほにゃらら)
pltshow()
print('end')

みたいにplt.subplot使ってplt.show()するとplt.show()でグラフ表示した後フリーズして
print('end')
が実行されないのですが・・・、どうすればいいでしょう?
グラフ自体は望んだ通りのものが表示されているのですが、グラフウインドウを閉じてもprintが実行されません。
2020/11/15(日) 13:28:33.67ID://uHFZpN
>>364
なぜsleepコマンドだと思ったのか
370デフォルトの名無しさん
垢版 |
2020/11/15(日) 13:50:29.62ID:1NoBqfO6
フリーズはしていない
戻って来て欲しい時は
plt.draw()
371デフォルトの名無しさん
垢版 |
2020/11/15(日) 14:04:02.28ID:1NoBqfO6
ごめん間違った
この手順でやってみ
>>> from matplotlib import pyplot as plt
>>> plt.subplot(2, 2, 4)
>>> plt.plot([[1,2,3],[4,5,6]])
>>> plt.pause(0.1) # ここで表示されて 0.1 秒後に戻る
>>> plt.plot([[1,2,3],[4,5,8]])
>>> plt.gcf().canvas.draw() # 更新
2020/11/15(日) 15:07:46.36ID:tav0pD0x
安易にsleep使う素人が多すぎて困る。
2020/11/15(日) 16:53:25.64ID:lz+gXz1a
sleepの使いどころも知らない自称玄人さんジワるw
2020/11/15(日) 17:14:49.77ID:Q3DWzppx
>>371
できました。ありがとうございます。m(_ _)m
でもなんでできたのか、わからない・・・???

plt.show()
でなんでフリーズして

plt.pause(0.1)
plt.gcf()canvas.draw()
だと戻ってくるんでしょう?
2020/11/15(日) 17:25:25.17ID:U+/Dwi3J
フリーズはしていない
2020/11/15(日) 17:51:06.67ID:tav0pD0x
>>373
sleepなんか使う必要ないから。
2020/11/15(日) 20:09:31.44ID:Q3DWzppx
>>375
むむむ・・・
何が原因なんだろう・・・・・・
2020/11/15(日) 20:29:01.79ID:8j4ATkh0
ここにprintfがないとなぜか動かないんだ
2020/11/16(月) 12:36:25.59ID:A2ai6viK
>>348
pyqt5でも乱れる。俺はだいたいウィンドウをリサイズなしの大きさ固定にしてるけど、
フォントの関係か、だいたい乱れる(大きくは乱れない)。
デザイナーで微調整が必要だな。
380デフォルトの名無しさん
垢版 |
2020/11/16(月) 12:44:51.86ID:sF1WJXNT
https://support.microsoft.com/ja-jp/help/3025083/windows-scaling-issues-for-high-dpi-devices
https://www.eizo.co.jp/support/compati/software/win/windows_hidpi/
2020/11/16(月) 19:38:01.87ID:ZlvPcwtM
Pythonおじさんがマイクロソフトに入ったから、EXCELにPython同梱して操作できるようにしてくれ(´・ω・`)
2020/11/16(月) 19:45:47.18ID:ZYi19Xfa
普通にwatchdogモジュール使えばいいんじゃないの
383デフォルトの名無しさん
垢版 |
2020/11/16(月) 20:01:01.30ID:ysP24k7m
はえーそんなのあるんだ
2020/11/16(月) 21:09:34.49ID:lpvH3HhJ
>>382
watchdog使ったところでビジーループの問題は解決しない
2020/11/17(火) 10:43:44.47ID:KFJ2cj0W
>>384
無能には無理なんだろうな…w
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'] = ''
の行が増えてしまうのでそのあたりが気になります
2020/11/18(水) 16:02:18.01ID:/USRxP5S
ちょっと何言ってるか分からないんだけど、
return json.dumps({“status":status_code,"error":error})って事ではないの?
2020/11/18(水) 16:19:03.18
>>387
ええ、関数化やモジュール化するまでもなければ簡潔に書ける方法はないかな
ということです
status_codeが200だけ出てくる場合なら別にそれでいいと思いますが
2020/11/18(水) 16:31:36.23ID:/USRxP5S
やっぱり何がしたいのかわからんわw
2020/11/18(水) 16:55:17.63ID:grk01deG
>>386
たぶん希望しているのはこういう事かな
res = '{{"status":"{status}","error":"{error}"}}'
https://docs.python.org/ja/3/library/string.html#formatstrings
2020/11/18(水) 16:59:39.36ID:cVTuS9Vl
>>390
で、できました!
"\{"とかで出来きず他の方法がありそうな気がしていましたが
{{だとは・・
ありがとうございました!
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"')
2020/11/18(水) 22:53:36.69ID:uoMUJNdk
確かにJSONで返すなら、ちゃんとパーサーにお願いしたほうが確実だよね
2020/11/18(水) 23:26:31.23ID:4/YKHsf6
ここに書いてある事がほとんど分からないんですが
本当に超初心者のスレですか?
2020/11/18(水) 23:45:00.61ID:hkPPdx4I
簡単に説明←簡単じゃない
初心者向け←初心者向けじゃない(書いてる奴が初心者)

よくあること
2020/11/18(水) 23:47:39.86ID:cVTuS9Vl
>>392,369
error以外のものを付加したいときとかは普通に関数化してますね
今回は例外処理含めstatsuとerrorがintとstrのみとわかっているので
よりスマートな書き方がないかなと模索してただけです
関数化するとプログラムを分けたときに
同じものを貼るのも、またはimportするのもあれだし、と思って。
その辺を気にしないうまい処理の仕方があるのかもしれませんが
2020/11/19(木) 06:48:28.38ID:SrLjxFgj
>>394
Pythonにはいろんな機能があるから、質問も多岐にわたるわけで
理解できないものがあって当然
JSONなんて使わない人は一生使わない機能だし
2020/11/19(木) 08:41:29.87ID:YoVNSJkp
>>272
Macならhomebrewでpyenvで管理するのが1番楽
anaconda使いたきゃpyenvの中で管理されてるわけだし、pyenvからanacondaの好きなバージョン入れりゃ良いだけ
399デフォルトの名無しさん
垢版 |
2020/11/19(木) 10:53:10.35ID:z88yTjzg
>>386 >>396
status_code=200
error="error"
res = str({"status":status_code,"error":error})
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")
2020/11/19(木) 15:47:35.30ID:EbSX4tjh
>>400
>res = '{{"status":{},"{}":"{}"}}'

jsonシリアライザーを使わず文字列+format関数を使うメリットなくない?

それに>>396で言ってるプログラムを分けた時に
テンプレートになる文字列をコピペして回るくらいなら
関数化/モジュール化してimportしたほうが健全だよ
2020/11/19(木) 16:15:53.36ID:oRKf5Y34
>>401
>文字列をコピペして回るくらいなら
そんなこといい出したらimport行もプログラム毎にコピペしてません・・?
関数もコピペしてますよね
親で読み込むならまだしもモジュール名に困りますし。
gitで管理するほどのものでもないし

そういう簡単な用途でない場合は
普通に関数化するしjson.dumpsも使っていますし
gitで管理するレベルのモジュール化も実際してしますけどね
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):
つづきます
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

となって評価してくれません
2020/11/19(木) 17:09:06.67ID:4Pgi61oy
OSはindows10でPythonのバージョンは3.9です
2020/11/19(木) 17:11:36.55ID:4Pgi61oy
>>405
> OSはindows10でPythonのバージョンは3.9です
indows→Windows
2020/11/19(木) 17:23:13.66ID:YSWc8XxM
>>403-406
3.9なんて使うからじゃろ
3.8にしとけよ
あと
ターゲットの本文?に全角文字入ってないか?入ってたらそれをヤメレ
408デフォルトの名無しさん
垢版 |
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()
------
どうかよろしくおねがいします。
2020/11/19(木) 17:32:51.21ID:YSWc8XxM
>>408
flush()について調べてみるとハッピーになれるかもしれない
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):
つづきます
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
というふうになって同じみたいです
2020/11/19(木) 17:50:31.40ID:OpsIjeL3
>>403
文字コード変えてないか?
VSCODEとかのテキストエディタで該当ファイルを開いた時に
ちゃんとUTF-8になってるか?
413デフォルトの名無しさん
垢版 |
2020/11/19(木) 17:51:00.78ID:KWn/SEv2
>>410
その評価したいプログラムがUTF-16で保存されてるみたいだから
VS CodeかなにかでUTF-8で保存しなおせば大丈夫かも
2020/11/19(木) 17:57:08.10ID:4Pgi61oy
>>412
>>413
Visual Studio Codeで開くと右下(ですよね?)には
UTF-8って表示されています
2020/11/19(木) 18:03:30.56ID:EbSX4tjh
>>402
値をあちこちにコピペして使うことと
値を参照してる変数や関数をあちこちで使うことの違い

複数のファイルで同じようなimportを何度も繰り返しやってるなら
__init__.pyとかでまとめればいい

gitは何の関係が?
2020/11/19(木) 18:11:08.22ID:UFBeFMfP
>>git
自分はそこそこできるんだぜアピールじゃないかなw
よくいるよね。こういうタイプの人。
2020/11/19(木) 18:23:43.14ID:NbNudS2h
>>416
いるよね
質問者のくせにアドバイスに挑発的な返しをする人
2020/11/19(木) 18:26:14.64ID:YSWc8XxM
>>414
じゃあBOMがついてるとか?
2020/11/19(木) 18:31:09.44ID:oRKf5Y34
>>415
>複数のファイルで同じようなimportを何度も繰り返しやってるなら
ええ、そういう用途のときはそうすればいいと思いますよ

>gitは何の関係が?
ホストPC以外で開発する場合、通常はクラウドでコンテナ作って云々すると思いますが
いちいち簡易レスポンスのためのimportをコピペするのが面倒なので
gitでリモートします
2020/11/19(木) 18:33:57.52ID:oRKf5Y34
というかホストPCで開発するときも
プロジェクト毎にcloneすると思うけど
毎回ファイルごとコピペしてる人が多いのかな
2020/11/19(木) 18:43:27.44ID:4Pgi61oy
>>418
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()
2020/11/19(木) 19:00:41.46ID:j3QxrLZF
>>421
myconfig.pylintrcの方がBOM付きUTF-16LEになってる予感
もしかしてpowershellでやった?
2020/11/19(木) 19:03:04.41ID:YSWc8XxM
>>422解決おめ+報告乙

>sys.stdout.flush()
おう、これ↑は標準出力(Win系ならDOS窓)への出力をいますぐやれよ という命令だから・・・
sysのimportもコメントアウトしちゃって大丈夫にみえる
2020/11/19(木) 19:04:21.67ID:YSWc8XxM
>>421
今知れてよかったな>BOMの存在
(これからもまれに苦しんでいくことだろう)

>>423横じゃが
なるほどなっとくありうる展開
2020/11/19(木) 19:11:37.20ID:4Pgi61oy
>>423
!!!その通りでした!!!
myconfig.pylintrcがBOMつきUTF-16になっていました・・・
本にフォルダでShiftを押しながら右クリックで
「コマンドウィンドウをここで開く」か「PowerShellウィンドウをここで開く」を選べと書いてあったので
PowerShellで開いてやってました
すいません正確な情報じゃなくて・・・
myconfig.pylintrcをUTF-8にしたらうまくできました!!!
ありがとうございます!
2020/11/19(木) 22:17:37.25ID:Na4zD9bI
>>419
クラウドでコンテナ云々とか別に普通じゃないと思うけど
場合によるでしょ
というか今どきはVSCodeのリモート開発がマジでローカルで開発してるみたいで便利でいいよ
あと、jsonモジュールはPython標準なのだから、よっぽど性能を出したいとかじゃなければ標準ライブラリ使った方がトラブらないと思う。自分のいい加減なコードより10万倍ぐらいテストされてるだろうから。
そもそも性能出したいときにPython使わないし、jsonモジュールを使わない方がいいケースがあまり思いつかないなあ。
2020/11/19(木) 22:31:26.53ID:oRKf5Y34
>>427
いや普通に主にVSCodeでのリモート開発ですよ
>ローカルで開発してるみたいで
そのためのコンテナなんですけどね・・
場合によってVSCodeなり別だったりでgit管理、運用がコンテナってだけで。
普通は仮想環境下ならこれらはセットだと思いますよ・・
あと繰り返しになりますが
>intとstrのみとわかっている
みたいな単純な用途の場合ですよ
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モジュールを使わないのが楽と思う人もいるのは否定しないけど。
2020/11/19(木) 23:38:08.43ID:zsB/MCGD
考え方は人それぞれなんでしょうけど、「スマートな書き方」という質問に対して、JSON形式で返すのならjson.dumps使ったほうが他人がコードを読んでも「あ、これはJSONで返すんだな」と意味が理解しやすいしスマートだと思うなぁ
自己満足的なスマートか、保守性も考えたスマートなのか、方向性の違いかしら。
2020/11/19(木) 23:57:14.70ID:gzIvj2mX
import書きたくないから文字列コピペするとかちょっと意味わからん
2020/11/20(金) 00:20:07.13ID:aJFtJ7NQ
>>429
>importを書きたくないからの主張
'{"status":200,"error":"hoge"}'
とか直接書いてもいいし
res(200,"hoge")とかでもしいし
json.dumps(res)とかでもいい
自作モジュールで管理するでもいいし
という前提があります
が今回は、関数に分けるまでもjsonモジュール使うまでもなさそうだな
という用途で、かつ汎用的に流用したい、かつ変数代入やimportの省略による行数の節約
などができないかと思ったときに
formatの使い勝手が良かったしかし、{の干渉があった
が、結果的にその干渉を除くことができました
ってだけの話です
書きたくないというより使うまでもないな
ということに尽きると思います
2020/11/20(金) 00:25:40.46ID:Y24NtUEO
>>432
個人的な趣味だけど、まあC言語とかで書いてるなら言うことは同意できるよ。C言語で書いててそこからの移植とか。
個人的な趣味だけど、Python使ってて「使うまでもない」かどうか一々判断するのは面倒だなって思っちゃう。Pythonって、使えるものは何でも使ってやれの富豪プログラミングの精神に近いかなと。
まあ個人的な趣味でしかないんで、その判断をするのが異常だとは思わないよ。色々な理由があるのだろうし。
2020/11/20(金) 01:08:25.18ID:kqUw2Oqc
>>432
このケースで文字列のコピペでいいと思うのはたぶん君だけ

可読性/変更容易性/テスト容易性など他と比べて何一ついい点がなく明らかにマズい書き方
2020/11/20(金) 01:22:02.94ID:aJFtJ7NQ
極論""返すだけだとしてもどんな場合でもチェックすべきだ
みたいな議論と同じでその主張はさすがに違和感あります >>434
2020/11/20(金) 01:28:55.33ID:1jDOgyGC
statusコードを成型して返すだけのモジュールは別のケースで使っていて
今回はそれを使わないケースだった、というだけの話なのですが
もしかするとどんな場合でもformatを使った書き方でやっている
と勘違いしてる人がいるのかもしれない
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 もある
2020/11/20(金) 05:15:51.38ID:pwTm9Uxw
Ruby on Rails では、API モードがあって、API 用のアプリも作れる

初心者は、そういう事を知らないから、
何でも時間をかけて、低品質なアプリを自分で作るw
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バイト文字を示すけど、それで始まる文字が存在しないのかも?
2020/11/20(金) 05:43:06.55ID:pwTm9Uxw
我流の人は、Git のプルリクを知らなそう。
就職では必須項目

上の人が見たら、一発で書き直し。
バグりやすいコードは、プルリクを受け付けられないだけ

議論するだけムダ

チェックを通ったコードは、合法になるから、
皆が模範にしてコピペするから、我流はダメ!
2020/11/20(金) 06:50:20.26ID:DAmoUJMr
>>432
> かつ変数代入やimportの省略による行数の節約などができないかと思った
いつの時代のおじいちゃんなんだよw
2020/11/20(金) 08:19:06.00ID:azkfkwLr
>>431
んだんだ
2020/11/20(金) 08:27:43.79ID:04W8lkpW
パイソンって書いた事ねーんだけっども、ブロックってインデントで
表現するんだべ?するってーと、100行のブロックにifに入れてぇ
ときは、100行分インデントすんのけ?
2020/11/20(金) 09:03:36.27ID:azkfkwLr
>>443
せやけど
IDEがまともだったり、テキストエディタでもSakuraエディタみたいなPythonソースコードモードがあるエディタなら
自動でやってくれるべ?
2020/11/20(金) 09:09:51.23ID:WciP5EDn
でも範囲の指定は自分でやらんとならんよね。
他の言語ならブロックの開始と終了を書いてやればいいんだけど
pythonは自分で範囲指定してインデントしてやる必要がある。
2020/11/20(金) 09:33:53.10ID:04W8lkpW
やっぱりそれなりのエディタや統合環境が前提なのかな(もちろん批判ではない)。
マジレスありがとう。
2020/11/20(金) 09:52:05.41ID:azkfkwLr
>>446
だがおれはいつもは秀丸でコードを書いている。
範囲指定→右クリメニュー「インデント」→おk!
448デフォルトの名無しさん
垢版 |
2020/11/20(金) 11:05:57.25ID:T+fLV2lq
行選択してtabキー押すだけじゃないの?
秀丸ってそうなの?
2020/11/20(金) 11:14:42.02ID:azkfkwLr
>>448
行番号選択ってこと?
できるかもしらんが、してないなぁ
2020/11/20(金) 11:26:50.71ID:E6icsWYy
なんでVSCODE使わないの?
2020/11/20(金) 11:33:54.21ID:iBr2xRx4
回答者側と思しき立場でただのgit管理にすら怪訝する人が上の方でちらほらいたので正直驚いたけど
個人開発であってもgitはほぼ必須になってくる場面があるのでまとめて覚えておいて損はない
2020/11/20(金) 11:48:54.11ID:SYPK5ijx
>>451
流れ軽く読んで来たけど
・実装の重複を防ぐためのクラス/メソッド抽出してモジュール化
 ⇒設計的な話
・Gitでモジュール化したものを管理する
 ⇒バージョン/ファイル管理的な話

この二つは本質的には別問題だけど、何故か混同された話になってて
よく分からん事になってるな
(実際の開発考えるとGit使ったやり方になるから分からん話でもないが)
2020/11/20(金) 11:58:33.01ID:azkfkwLr
>>450
ネットブックだと動かない
2020/11/20(金) 12:11:55.05ID:pblrwhkp
Notepad++にPython Indentを入れれば同じことができる。
2020/11/20(金) 12:32:50.55ID:azkfkwLr
だがおれは秀丸派
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)
2020/11/20(金) 13:12:12.59ID:pRZ0VqUl
chromebookでも動くvscode(´・ω・`)
458440
垢版 |
2020/11/20(金) 13:17:17.31ID:pwTm9Uxw
YouTube で有名な、雑食系エンジニア・KENTA が言ってる

Git のプルリクは、転職に必須項目だと
2020/11/20(金) 13:33:16.00ID:RwZlwr9h
パソコンor通信環境のスペック次第だが仮想環境であればvscodeに限らず大体使える
スマホですら動く
460403
垢版 |
2020/11/20(金) 13:44:15.80ID:OhxLwjcY
>>439
>>423で解決しましたよ
2020/11/20(金) 14:07:20.42ID:geOpYg9g
>>451
git管理に怪訝してる人なんて一人もいないでしょ
むしろgitも理解してるから話が噛み合わない
2020/11/20(金) 14:57:48.56ID:gfvoQY5i
gitを持ち出したのは>>416の指摘通りだろうけど、書いてる内容見るとpythonのモジュールを理解してなさそう

自分が知らなかったことや見落としてたことを絶対に認めずに (本人にとっての)俺はできるんだぞアピールで返す人はスルーに限る
2020/11/20(金) 15:40:25.51ID:abuyzRZn
>>458
プルリクっていろんな人が好き勝手にソースをいじるOSS開発で役立つ機能っしょ
転職に何ら関係ないと思うが
2020/11/20(金) 16:07:05.73ID:Cnjv1GAE
いやプルリクそのものじゃなく今までにプルリクした実績のことじゃないの
GitHubアカウントを見せてこんなことしてきましたよと自己アピールする感じで
そんなん実際にするのか知らんけど
2020/11/20(金) 16:12:52.30ID:dRk/TXCB
日本語翻訳のプルリクでもええか?
2020/11/20(金) 16:21:35.66ID:abuyzRZn
>>464
そういうことね
あまり意味ないと思うなあ
プルリクって他人の作ったアプリに寄生する行為だし
こいつ採用してもOSSにかまけて仕事しないんじゃないかと思われるだけだろう
2020/11/20(金) 16:27:14.70ID:SYPK5ijx
>>466
流石にそれは偏見すぎる
2020/11/20(金) 16:51:03.75ID:zSvQnKz4
最初の質問が>>386だからな
こんなもんjsonモジュール使えで終わる話だろ
2020/11/20(金) 17:12:00.89ID:27JFXKUI
プルリクはOSSに限らないよ
転職の話はプルリクベースの開発スタイルに馴染みがあるかどうか
もしくは適応できるかどうかっての話だと思う
470デフォルトの名無しさん
垢版 |
2020/11/20(金) 17:38:21.51ID:AGMq159w
すまん、それpython関係ある???
2020/11/20(金) 17:53:38.81ID:04W8lkpW
あげるなよ、何かを信じてる方々の啓蒙活動なんだから。
背景雑音だっぺ。
2020/11/20(金) 19:34:59.52ID:M1wpYzhx
モジュール化してimportするまでもない
git管理するまでもない
関数化はしてもいいがするまでもない
そういう用途下で、ただのformat関数をつかった文字列出力の小技の話なのに
なぜかどんな場合にもimportすべきだjsonモジュール使ってチェックすべきだ
みたいな勢力がいる違和感
2020/11/20(金) 19:42:56.25ID:abuyzRZn
>>472
違和感でも何でもない
技術者にはそれぞれ己の中に譲れないポリシーがある
「〜するまでもない時はしないでいい」というのもポリシーだし
「どんな時も〜するべきだ」というのもポリシーだ
それが匿名掲示板でぶつかり合うとこうなる
2020/11/20(金) 20:00:35.31ID:OHdUFTne
>>462
git持ち出したのは>簡単な用途でない場合
の一例ですよ
簡易的に仮想環境化で動作確認したい場合とか
statusを返すようなモジュール個別開発したりcloneしたりバージョン管理もする必要のない用途例として出しただけです
ここの人なら普通に使ってるものだと思っていたし
できる人のアピールになぜgit?という感じで正直謎でした
2020/11/20(金) 20:29:53.22ID:l5Hw5z7m
2行目で何をしてるのか教えて下さい

s = input()
print(max(map(len, s.split('S'))))
2020/11/20(金) 20:35:44.50ID:azkfkwLr
>>475
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が存在してると思っている
2020/11/20(金) 20:54:33.52ID:abuyzRZn
>>475
sに入力した文字列を'S'を境にして区切り、区切った文字列ごとに文字数を算出し
その中から最大の数を選んで表示する

これは難解
map関数は関数型言語からバクッてきた機能らしく、Pythonの文脈に馴染んでおらず
使うと大抵可読性が落ちる
プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
2020/11/20(金) 20:57:12.97ID:Y24NtUEO
バージョン管理しない書き捨ての用途だとしてもjsonモジュール使う方が何も考えなくていいもの
jupyterで適当なコード書くときだってjson numpy pandasあたりは大体始めに必要だとわかってimportしとくわ。

自分でフォーマットする合理性が理解できない。
「jsonモジュールを使うまでもない」というが、「jsonモジュールを敢えて使わない理由はない」と思ってしまう。
それこそ内包forを使うまでもないから使わない、みたいな話と同じように感じてしまう。
車輪の再発明はどうしても必要とされない限りは基本的に避けた方がいい行為、ということにも合意はなされない、のかな。
2020/11/20(金) 20:59:04.30
>>477
つまりパーサーを通したものこそ真のJSONである、と・・
しかし、そのパーサーの中身は・・?
これやってみては
if json.dumps({"status":200}) == '{"status": 200}':
_print(True)
481デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:00:33.44ID:Y24NtUEO
>>475 >>478
print(max([len(st) for st in s.split('S')]))
だったら理解できるのかな?
特に478、こっちの書き方なら十分にPython流で明快とされると思うのだが
2020/11/20(金) 21:01:42.82ID:azkfkwLr
>>479
> 車輪の再発明
そういえば
去年あたり、このスレに
「エクスポーネンシャルの逆関数を発明した俺天才!」みたいな書き込みしにきたあふぉがいたなぁ・・・  (´ー`)
483デフォルトの名無しさん
垢版 |
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倍ぐらい余計に時間がかかったりするのがプログラミングの常だもの
2020/11/20(金) 21:09:07.64ID:l5Hw5z7m
>>478,481
なるほど。ありがとうございます。
少ない行数で書ける人に憧れてましたけどそうなんですね…
485デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:14:07.28ID:Y24NtUEO
>>484
少ない行数で書けることがカッコいい、わけではないが、このぐらいのmapは流石に読めたほうがいい
これを5行で書くほうが良いと言うのは、正直いって10年以上前にプログラミングを習ってそこから知識がアップデートされてない人種だと思ったほうが良い
勿論初心者なら、ちょっと読み解くのが難しいから自分には5行でしか書けない、5行のパターンじゃないと読むのが難しい、というのでも構わない
でも今どきJavascriptなんかでこんな書き方は当たり前なんだから、向上心があるなら慣れるべきだと思う
2020/11/20(金) 21:23:59.20ID:aJFtJ7NQ
>>483
ただの書き方の解釈、開発環境での用途の話であって
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に質問してる時点で相当解決に時間かかってるのでは…?
488デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:56:03.77ID:AGMq159w
pythonでmap, filterあたり使う理由ってほぼないだろ
内包表記に比べて遅いしgeneratorで返ってくるし
489デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:04:18.19ID:V+7Wns2i
>>488
シーケンシャルに処理していくならgeneratorを連鎖させると速い
それでも generator内包表記で充分なのは確かだが
490デフォルトの名無しさん
垢版 |
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を使うか内包表記を使うかいちいち考えるのはめんどくさいので常に内包表記使ってるけど...
2020/11/20(金) 22:10:42.73ID:aJFtJ7NQ
>>487
繰り返しになるけど、文字出力と同等の用途なだけ
個人的にフロントで「ちゃんとパース可能なJSON」を解釈できればいい、その程度の用途
あとはfomatの{回避にふと疑問を持ち質問を投げた、それだけこと
というか他でjson.dumpsは普通に使ってるので
こっち({回避の疑問)の方が主ではあります

繰り返しになりますが、何がなんでもformatを使って自己パーサーを作る、なんていう質問意図ではないです
個人用途で、キーや値の変更による成型を考える場合の変数代入や関数化する過程で発生する
json.dumps使用以外の過程を省きつつ
フロントで解釈できる程度の結果を得たい(得た)というだけの話

個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
2020/11/20(金) 22:29:11.10ID:27JFXKUI
>>491
formatでつまづいた結果
5chで叩かれて悔しい思いして
100倍余計に時間かかったね
2020/11/20(金) 22:36:29.18ID:wMzkLTJS
>>491
だからそれが正しいと思うならそうすればいい
ただそう考える人はあまりいないと言うだけの話
特に職業プログラマーはチームで作業してることが多いから個人が考える「かっこいい方法」は忌み嫌われて当然
ましてや>>386程度の質問をするレベルじゃあねw
494デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:40:22.91ID:Y24NtUEO
>>491
「フロントで「ちゃんとパース可能なJSON」を解釈できればいい」のならjson.dumps(obj) 一択
1行でコピペできないという問題も__import__('json').dumps(obj)という書き方で解決された

なぜそこまで自分のコードが信頼できるのか疑問
jsonモジュール(別にjsonモジュールに限らず、他の言語も含む世の中にある名の知れたライブラリ)を書いたプログラマーのほうが
色んな人にソースコードの動作を検証してもらってるし、コード自体も査読してもらってるし、長い時間をかけてそのモジュールを書いているし、
そもそもオープンソースとして公開する時点で優秀なプログラマーの可能性が高い
あなたの言う「スマートなやり方」というのは、「言語/言語のエコシステムの補助を使わずになんとかする方法」なのかな?

「適当な文字出力」と「パース可能なJSONの出力」はハードルが違うからね。
あと、この場合あなたが書きたいのは「パーサ」じゃなくて「シリアライザ」とか「フォーマッタ」と呼ばれる

ぶっちゃけ何度もimportしても構わないからimportは必ずプログラムの頭に書かなくてもいいとか知らなかったことを認めるのが癪で
引っ込みがつかなくなってるのではないかな?
超初心者用のスレなんで、知識が怪しいんじゃないか、というところにツッコミを入れるのもアレだけど、パーサの誤用とか含めて
プライドが高い割には知識が怪しいように思っちゃうなぁ。
2020/11/20(金) 22:40:35.67ID:aJFtJ7NQ
>>492
投げた質問が返ってくるまでその質問タスクしか処理できないなんてありませんよ・・
あなたはそうなのかもしれませんけど

>>493
その程度の読解力やレッテル貼りするような人格だと苦労しそう
お察しします
2020/11/20(金) 22:43:05.19ID:abuyzRZn
>>481
個人のポリシーでしかないから押し付けるつもりはないが
内包表記も関数型言語からの取入れであり可読性の悪いコードになる
何せコードを右から読まなくてはいけないからね
よって自分は先のmapとこの内包表記は極力使わないようにしてる
forとifとappendでリストにまとめるスタイルが一番しっくりくる
2020/11/20(金) 22:43:14.36ID:8FBZ4Sqf
>>474
gitの話が簡単でない用途の例ってますます分からん

"gitで管理するレベルのモジュール"??
管理しないモジュールがあるの?
ファイル1個追加するだけっしょ?
2020/11/20(金) 22:48:59.72ID:aJFtJ7NQ
>>494
>importは必ずプログラムの頭に書かなくてもいい
importの場所は主題ではないですよ
そのobjはどこでどうやって成型した・するのでしょうか

>信頼できるのか
繰り返しになりますけど、ただのJSON文字列同等の用途で使っている
という理解だからです
繰り返しになりますが、そうではない、と思うなら普通にjsonモジュールを使っています

個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
499デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:50:34.06ID:Y24NtUEO
>>496
どこまで複雑な内包表記を認めるかというのは、仰るとおりポリシー次第なところはあるね。
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になって各言語のパーサーでそのまま解釈できると考えておしまい
だから、いちいち妥当でない可能性のある「文字列」の状態を考えたくない
501デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:58:07.55ID:GCIXM+fw
>>475
某言語では
s split("S") map(size) max println
2020/11/20(金) 22:59:54.94ID:HBV8TmEn
一連のやりとり見てこれを思い出した
ほんとなんで自信満々なんだろう?

「staticおじさん」はなぜ自信満々なのか
https://xtech.nikkei.com/it/atcl/watcher/14/334361/122100450/
2020/11/20(金) 23:02:30.97ID:aJFtJ7NQ
>>500
いやだから(一つとして)その
>とかいう値が入ってるとして
の行数の話をしているだけですよ
statusが500のとき、errorに何かしら入れるとき
どうしますか?っていうだけの話
504デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:07:40.26ID:Y24NtUEO
>>503
え、マジでわからんの?
statusが500だったりerrorになんか入っているときも書き方同じじゃん?
じゃあさ、formatを使う場合と__import__('json').dumpsを使う場合でコードを並べて、
formatの方がここが優れていると教えてくれよ。
逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、formatだと余計なエスケープ処理が入ると思うけどなぁ。
2020/11/20(金) 23:10:29.05ID:P/qrHO+P
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル | Udemy
https://www.udemy.com/course/python-beginner/
2020/11/20(金) 23:12:44.36ID:998hZ133
>>481
ナゼこう左から右へと流れるように書けないのかと悩むこと小一時間、

 s.split(’S’).map(len).max()

>>478,496 に賛同するに至る

 >>478
 > プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
 >>496
 > forとifとappendでリストにまとめるスタイルが一番しっくりくる

これぞPythonスタイルなり
2020/11/20(金) 23:17:41.85ID:wMzkLTJS
>>495
> その程度の読解力やレッテル貼りするような人格だと苦労しそう
レッテル貼り?
質問の内容から判断してるんだけど?
読解力とか意味わからんしw

> お察しします
人の事を心配するレベルじゃないことを自覚したほうがいいと思うぞ…
508デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:20:59.09ID:Y24NtUEO
>>506
C#のLINQみたいにmapとかmaxとかをリストやジェネレータのメソッドとして追加できたらその書き方も出来るのだろうね。
実際、pandasやnumpyでは当該ライブラリで用意しているクラスではそのような書き方ができるような配列ライクなクラスを用意している。
Python言語が生まれた時期が微妙に古いというのが不自然な文法に影響しているかもね。
習いたての頃は、なんでarr.len()じゃなくてlen(arr)なんだ、って思ったもの。
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に二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、
入らない用途なので自分の環境下では問題ありません
2020/11/20(金) 23:34:39.47ID:uMSrjpcB
>>509
このスレの人間にはあなたの質問のレベルが高すぎると思うんですよ

https://www.python.jp/pages/pythonjp_discord.html
ぜひお越しください
511デフォルトの名無しさん
垢版 |
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でやってくれ」ってお願いしてるんだけど、「私は算盤が得意だからいいの!」って言われてる感じ
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})
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より短いよ。
2020/11/20(金) 23:59:39.49ID:aJFtJ7NQ
>>513
'{{"status":{},"{}":"{}"}}'
を書いてみてください
515デフォルトの名無しさん
垢版 |
2020/11/21(土) 00:01:48.28ID:TffSxZDq
>>514
ここまで示されててわからんの?煽るだけじゃなくて勉強しようよ。
res = lambda s, k, v: json.dumps({'status': s, k: v})
res(500, 'error', 'hoge')
2020/11/21(土) 00:11:54.22ID:RHs1PlgB
>>515
ありがとうございます
キー名はそのまま代入できたのですね!
自分が書いたjson.dumpsを使った方ではlambda式では長くなってしまい
結局formatでいいか、みたいな経緯がありました
あとは辞書の結合やショートカット機能使えない環境化をでも使ってみたいのでそのあたりを工夫してみようと思います!
517デフォルトの名無しさん
垢版 |
2020/11/21(土) 00:15:10.92ID:TffSxZDq
えぇぇ、
いやまぁ納得してもらえたならいいけど、、、
良かったね
2020/11/21(土) 01:07:30.25ID:v5QqbOTJ
そうか
lispのコードをさんざん見てきた私は
内包表記もmapも普通なんだけどな
分かりにくい人がいるというのを認識した
2020/11/21(土) 01:09:15.76ID:5FVo37Wp
普通にhttpレスポンスを生成する関数の中でモデルをjson化してれば
json.dumpsのところだけをlambdaにしたいなんてことにはならないと思うんだけどなぁ
2020/11/21(土) 06:50:26.86ID:XFVQeQAy
>>501はlispなん?
すげーな
原始的な言語だと聞いていたけど、splitもmapもあるじゃん
2020/11/21(土) 07:22:59.30ID:Va5Vhbzu
こんにちは。

pandasのdataframeのデータから、別途用意されたカラム名リストの
カラムだけ取り出す方法をご教授願います。

例:

df

はa〜zの列がある。

list = ('d', 'g', 'h')

にあるカラム名の列だけ取り出したい。

(listの中身はその都度変わって数も多い。)

よろしくお願いします。
522521
垢版 |
2020/11/21(土) 07:40:18.66ID:Va5Vhbzu
リストは()じゃなくて[]でした。
2020/11/21(土) 07:54:32.25ID:v5QqbOTJ
>>520
lispのmapとsplitが便利だから
それ以後の言語には持ち込まれたわけで
524521
垢版 |
2020/11/21(土) 08:22:43.36ID:Va5Vhbzu
自己解決しました。

data = df[df.columns.intersection(list)]
525デフォルトの名無しさん
垢版 |
2020/11/21(土) 10:37:59.41ID:TffSxZDq
>>524
細かいことだが、
listという名前は上書きしないほうが良い(list関数が使えなくなる)
のと、
listの要素がcolumnsに必ず含まれているのが保証されるなら、
data = df[list]だけでいけるよ
526440
垢版 |
2020/11/21(土) 12:18:46.35ID:jQLdetle
VSCode で、Microsoft の拡張機能を入れてない香具師とか、
git のプルリクを知らない香具師とか、
JSON ではなく文字列を結合する香具師とか、問題外

文字列の結合を認めたら、SQL・HTML タグを文字列で書いたりして、SQL インジェクションされる

新技術を学べない、老害に多い

日本人は植物油を多く使うから、脳にアミロイドが貯まって、新しく記憶できない。
全員が痴呆症w
動物油なら、こういう事はない

プルリクもKENTA が言ってるから、マコなりの学校にも、グループ学習がある。
グループ学習やっていない香具師は、採用されませんって。
でも、高い授業料を払って、グループ学習する意味はないと反論する人もいる

Ruby on Rails なんて、Rails Way・レールに乗る。
我流・レールに乗っていない方法は、すべて却下される

YouTube で有名なRubyist、伊藤淳一の動画でも、コードレビューしてる
2020/11/21(土) 12:47:45.12ID:TffSxZDq
今どき香具師なんて言葉使ってるのが老害
2020/11/21(土) 14:41:23.41ID:sC5Fd4g2
少し上の過去レスを追うこともできない古い人間 >439
529デフォルトの名無しさん
垢版 |
2020/11/21(土) 16:32:50.83ID:RuZftilT
macOS での python の質問もここで良いのですか?それとも他に板やスレがありますか?
2020/11/21(土) 18:06:02.09ID:9ThAje8p
>>527
ルビ厨の相手すんなよ…
2020/11/21(土) 19:18:21.04ID:G/gsSEBM
ガイジはガイジ仲間を見つけると相手をしたくなる
2020/11/21(土) 20:56:16.84ID:a8Ztm65P
>>529
初心者の質問板
533529
垢版 |
2020/11/21(土) 23:22:52.56ID:yoIvpsjT
>>532 その様な名前の板は今はないようです。

色々と探しましたが、他に適当な場所がなさそうなのでここで質問させてもらいます。

http://codepad.org/4R0nolza

の python コードが linux や FreeBSD では正常に動くのですが、macOS では動きません。
問題なく起動してウインドウは表示されるのですが、"Run" ボタンを押すと、
----------------------------------------------------------------
gi.repository.GLib.Error: g-io-error-quark: 子プロセス“/bin/ls”の起動に失敗しました: Failed to fdwalk: Too many open files in system (0)
----------------------------------------------------------------
となり機能しません。
理由や解決方法が分かる方がいましたら、よろしくお願いします。
pygobject3 と gtk+3 は brew install してあります。
maxfiles は 256 から 500000 に増やしても変わらないので関係ない様に思います。
macOS を持ってる方が居ましたら、同じ様に動かないか、試して貰えると助かります。危険なコードではないです。
2020/11/22(日) 00:11:27.43ID:XUuDe+rV
>>533
ググると出てくるよ
https://gitlab.gnome.org/GNOME/vte/-/issues/296
2020/11/22(日) 00:29:35.12ID:XkZ25nA+
>>533
初心者の質問
https://matsuri.5ch.net/qa/
536529
垢版 |
2020/11/22(日) 03:46:53.92ID:cFZbur5B
>>534
情報どうもです。なるほど、バグでしたか。では、待てば治りますかね。
そうとは知らず、だいぶ時間を費やしてしまった。。。
537デフォルトの名無しさん
垢版 |
2020/11/22(日) 16:28:51.73ID:G9NcntIf
>>129
MACの一部のプログラムはpythonで動いてて、それが昔から変わってないからなはず
だからアンインスコするとOSが正常動作しなくなる場合があるので注意
538デフォルトの名無しさん
垢版 |
2020/11/22(日) 19:43:13.90ID:ybcOLacK
>>518
lispの内包表記って、どんなの?
2020/11/22(日) 19:57:14.75ID:8S0A0EeS
>>538
https://docs.python.org/ja/3/tutorial/datastructures.html#list-comprehensions
2020/11/23(月) 07:17:21.35ID:xSj92hSq
Common Lispのloopマクロのことかな
多重ループの動作とか違うけど
2020/11/23(月) 13:04:17.83ID:jG27y6sh
javascriptとpython行ったり来たりすると変数宣言つけ忘れるのいらっとする
2020/11/23(月) 16:16:30.12ID:8ahwCiT0
俺もjavascriptというかGASと行き来してるんだがセミコロンの有無とかごちゃごちゃになる
2020/11/23(月) 17:33:21.21ID:QPYZ0Uk0
質問です
古いバージョンのPython(3.6など)と新しいバージョンのそれ(3.9など)が
同じパソコンにインストールされている時に、
バージョンを指定してコマンドプロンプトで起動するには
どうすればよいでしょうか?
2020/11/23(月) 17:47:33.05ID:I3+EYDwP
>>543
起動したいバージョンの方が先にくるように環境変数を書き換える
2020/11/23(月) 18:13:44.52ID:hekS2Nxq
>>543
フルパスで起動する
546543
垢版 |
2020/11/23(月) 18:24:55.81ID:QPYZ0Uk0
>>544
>>545
分かりました
ありがとうございました
2020/11/23(月) 19:38:33.80ID:ILFQzaXV
py launcherにチェック入れてインストールしてあるなら
py -3.6 〜
py -3.9 〜
のようにバージョン番号指定で起動できる
548デフォルトの名無しさん
垢版 |
2020/11/23(月) 20:56:03.18ID:uZZUCgAn
>>543
Windowsならpy -3.6 もしくはpy -3.9で起動できる
仮想環境もpy -3.9 -m venv envでつくれる
2020/11/24(火) 04:18:20.78ID:FGR0jZQZ
>>548
  >>547してないと、それむりくね?
550543
垢版 |
2020/11/24(火) 19:13:50.73ID:HZvvV0Lc
やってみたら出来ました
答えてくれた方、ありがとうございました
2020/11/24(火) 19:14:13.91ID:FWk6XcjL
なんで相対Importこんな癖強いの
552デフォルトの名無しさん
垢版 |
2020/11/24(火) 19:22:37.02ID:1r1WUQcO
pythonのimport周りはガチでゴミ
2020/11/24(火) 20:20:37.92ID:FWk6XcjL
同じ階層なら何も引っかからずにすんなり通るのに(´・ω・`)
2020/11/24(火) 23:51:24.27ID:rjI7LKiS
カタカナの伸ばし棒がすべて半角ハイフン-になっているとして
・コ-ヒ- → コーヒー
・コ-ヒ--砂糖入り- → コーヒー-砂糖入り-
・カフェオレ-ミルク- → カフェオレ-ミルク-
こういうのってPythonで可能?規則性がない場合出現しうるあらゆる単語を手動で対策しないと無理かな
-の前がカタカナなら伸ばし棒に変換ってので単語としては成立するけどカフェオレーミルクーはお手上げ
2020/11/24(火) 23:55:11.19ID:NI0G1gzk
>>554
正規表現をご存知でない?
2020/11/25(水) 00:20:42.57ID:e2GmmQnc
規則性ないから辞書がないと無理でしょ
カフェオレーミルクーというメニューがないと知らないといけないから
2020/11/25(水) 08:50:41.22ID:F6rJOYse
言語の問題でない気がするが・・・556に一票。
558デフォルトの名無しさん
垢版 |
2020/11/25(水) 09:34:58.20ID:RkyjIoNj
>>554
>カフェオレ-ミルク-
これはどういうこと?カフェオレにさらにミルクが入ってるの?
それとも、カフェオレとはコーヒーにミルクが入ったものですよっていうこと?
その辺が曖昧だよね
559デフォルトの名無しさん
垢版 |
2020/11/25(水) 10:12:51.09ID:BL1+yQyO
主題副題分割なら、まずは全部の箇所で分割して、
コ -ヒ-
これはハイフンを閉じ括弧の亜種として対になってるから第一次判定に合格、
そしてコが主題でヒが副題、
しかし文字数判定であり得ない(主題副題共に1文字)から、主題でなければ副題でも無い、とすりゃいい

***

1 コ -ヒ--砂糖入り-
2 コ-ヒ --砂糖入り-
3 コ-ヒ- -砂糖入り-
4 コ-ヒ-- 砂糖入り-

1番はそれっぽいが「ハイフンは二つ重ならない」というルールで却下
2番も「副題主題はハイフンからは始まらない」として却下
4番は問題外
残るは3番は副題のハイフンが括弧対を形成しているので合格
560デフォルトの名無しさん
垢版 |
2020/11/25(水) 10:20:06.38ID:BL1+yQyO
丁度いいのがあった
フル-ル・ド・ラパンのハ-ブティ--ローズヒップ-
ttps://pbs.twimg.com/media/C-kqXNUUQAMoc-5.jpg
2020/11/25(水) 10:25:03.24ID:DoFzLzHw
後ろの-砂糖〜-とかのパターンは限られてそうだから、
こんな感じでだいたいはできないかな?
(?<!-)-(?!($|[ミ砂]))
2020/11/25(水) 10:55:23.79ID:BeZXjuPe
11/20

Python の無料動画の神、キノコードの37分の新動画が出てる。
たぶん、以前の各動画をまとめたものだと思う

【徹底解説】Windowsでの環境構築|Pythonでプログラミングをはじめる準備をしよう!
https://www.youtube.com/watch?v=kb6op3-E_lg
2020/11/25(水) 12:29:17.61ID:Eovv5MKD
>>559
炭酸コ-ヒ--クリ-ム-
はどうするよ
2020/11/25(水) 12:54:47.49ID:Eovv5MKD
C-1000タケダ-ミルク-はどうするよ
565デフォルトの名無しさん
垢版 |
2020/11/25(水) 13:06:14.77ID:BL1+yQyO
どうにかするルールを考えればいいじゃん

でも今回は、
炭酸コ-ヒ--クリ-ム- は「ハイフンは二つ重ならない」のルールで何とかする
C-1000タケダ-ミルク- は「主題副題が短すぎる」のルールで何とかする
566デフォルトの名無しさん
垢版 |
2020/11/25(水) 13:17:21.18ID:BL1+yQyO
主題副題分割なんだから、多分こういうのも念頭にあるんじゃないのか
ギャラクシ-エンジェル-激レアフォ-チュンクッキ--
本当のところの用途は知らんけど
2020/11/25(水) 13:22:18.15ID:bqcTiXDb
本当の用途は歌手名/曲名なんじゃないか
あと炭酸コーヒーは美味しくないから法で規制した方がいい
2020/11/25(水) 13:50:19.95ID:B0nrdhk4
プリティ-プロジェクトの孤高のビュ-ティ-プリンセス、るかにゃんこと姫乃川琉歌のクリスマスライブ衣装-にゃっぱれ恋泥棒バ-ジョン-

ちょっと規則性見いだせなかったわ
569デフォルトの名無しさん
垢版 |
2020/11/25(水) 14:22:40.62ID:BL1+yQyO
「装-」の「(漢字)ー」のパターンは無いとしていい
漢字の後に長音が続くパターンだ

すると、それはハイフンでなければならない
さらに、それが末尾でないなら、対括弧の開始ハイフンになる
2020/11/25(水) 14:26:29.69ID:s/U6WABr
終ー了ーw
571デフォルトの名無しさん
垢版 |
2020/11/25(水) 14:31:59.92ID:BL1+yQyO
1、主題副題の文字数が短すぎる
2、副題の後に文字があるパタンは実は副題ではなく、全文は分割できない
 つまり、閉じ括弧相当のハイフンの後に文字は来ない、故に分割してはならない
2020/11/25(水) 15:47:17.11ID:RoX/Ogzq
ゴ-ヤ-チャンプル-
ゴ-ヤ-マ-ボ-
ゴ-ヤ-マヨバタ-

ゴーヤ-チャンプル-、ゴーヤ-マーボ-、ゴーヤ-マヨバタ-なのか
ゴーヤーチャンプルー、ゴーヤーマーボー、ゴーヤーマヨバターなのか

どちらとも取れる単語がある限りは辞書使っても100%は無理なので
おおよそいけそうなルールを自分で決めてあとは諦める
2020/11/25(水) 17:08:34.67ID:CO7swdP4
コーヒーくらいジャンルが限定されてれば末尾がーのものも限られるだろうからコーヒーとか特定ワードで引っ掛ければと思うがノンジャンルなら厳しいかもね
574554
垢版 |
2020/11/25(水) 19:06:50.76ID:Sppz/PEX
いろいろレスサンクス
やはり当初の作戦通りン以外のひらがな、カタカナの後は伸ばし棒で基本処理するよ。
クリ-ム、ミルク、ローズヒップの後は-にすると、手前に来る単語で徐々に狭めていく。ジャンルが近い頻出単語はこれで潰せる
>>572こういうのがほんとに厄介、どちらの可能性もある単語。もう入力した本人に聞くしかないレベルのものとかもある
人間が判断するようなことをPythonにやらせるのはやはり難しいか
575デフォルトの名無しさん
垢版 |
2020/11/25(水) 19:11:55.38ID:nXT1AK4P
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

強姦と窃盗するために生きてるゴミw
クソチョンw
2020/11/25(水) 19:17:52.71ID:KvQs2Dst
>>574
人間だって前提知識(単語力)がないと困るところだろJK
2020/11/25(水) 20:32:05.96
全部googleに投げて「もしかして」を拾えばいいのでは
2020/11/25(水) 20:34:43.45ID:zD7zhP2P
ぼく「google死ね」
google「もしかして:お前が死ね」
2020/11/25(水) 20:44:05.71ID:YGLcy80q
Pythonこそこういうの得意なんじゃないの
機械学習的なやつで
2020/11/25(水) 20:50:30.10ID:V89kYTjd
本件のように、一件の間違いも許されないデータ処理に機械学習は適さないと思う
2020/11/25(水) 21:40:05.68ID:7hZTXx85
半角スペースでも入れてくれりゃ楽なのにな
2020/11/25(水) 21:47:27.42ID:Sppz/PEX
>>579
自分も機械学習ってそういうもんなのかと思ってた
いまだに機械学習がなんなのかもわからんし使ったこともない
2020/11/25(水) 22:14:39.20ID:e2GmmQnc
>>580
そもそも人間でも正答率100%じゃないこの手の問題は機械学習向けでしょ
ゴーヤーチャンプルーは沖縄料理だから日本人大体知ってるけど、人によるし、
マリ-ゴールド-コ-ヒ-とかだと、
マリ・ゴールド・コーヒーという名前のものがあるのかないのかで全然答え変わってくるし、
判定者(判定システム)がそういう名前のものがあるかないのかは知りようがないのでは?
まあ、どうしてもルールベースもやってくれ、と言われたなら仕方ないからルールは考えるけど、
辞書や機械学習なしにやるのは筋悪案件なのには変わりない。
2020/11/25(水) 22:47:17.02ID:GINPOaUE
答え(勝ち負けとか正解不正解)が分からなければ機械学習出来ない
何か機械学習を勘違いしてない?
何千何万何百万と間違って最適化していくのが機械学習
正解不正解の判定が出来なければ学習不可能
答えが分かるならこの問題は解決する
学習型spamフィルタみたいに人が教え込んで辞書なりフィルタ定義を構築していくのは機械学習とは違うぞ
2020/11/25(水) 23:15:22.99ID:7hZTXx85
機械学習でやってみたら少し面白そうなテーマではある
'-'が'-'なのか'ー'なのかを間にある文字同士の結びつきで当てる分類タスクになるのかな
2020/11/25(水) 23:47:21.82ID:zhDDaAJr
>>580
>>572みたいな表記揺れがあったらどうしようも無いだろ
正解すらあるかないかわからんのに間違いが許されないって言われても困るw
2020/11/26(木) 00:12:14.66
raiseした直下ってreturnとかbreakとか必要?
2020/11/26(木) 00:27:20.76ID:IMBwVNgm
本について質問です
友人にPythonスタートブックを勧められたのですが、
他にも良い入門書ってありますか?
2020/11/26(木) 00:38:20.52ID:Ahy8UMnM
>>588
おすすめの本じゃないが
自分は市の図書館で入門書を5冊くらい借りて覚えた
個々人で合う合わないあると思うが数でカバーできる

買おうと思ってる本も図書館にあるなら借りてみるといい
2020/11/26(木) 01:03:27.64ID:nrM3g88W
図書館使う人とかあまり好きになれない。身銭使って学べない奴は薄っぺらいんだよなあ。
591588
垢版 |
2020/11/26(木) 01:04:05.68ID:IMBwVNgm
>>589
ありがとうございます
検討してみます
2020/11/26(木) 01:31:10.09ID:MXca/5hQ
>>589
pythonは人気がありすぎて、図書館で借りようにも、なかなか読めないよw
まぁ、多言語経験者なら公式ドキュメントを読んだほうがよほどためになるとおもうし、
わざわざ自腹きって本を買って読まなきゃならないものでもないな。
立ち読み程度で十分。
2020/11/26(木) 01:31:12.38ID:X4oHX3Yn
>>584
スパムメールのベイジアン学習も機械学習の一つの手法だと思うが
違うとしたら境目はなに?
大体、「答えが分からなければ機械学習できない」と、「人が教え込んでいくのは機械学習じゃない」は矛盾してない?
2020/11/26(木) 02:02:57.72ID:KChL8khM
>>592
自分の住んでるところでも貸し出し中は多かったよ
貸し出し中でも貸し出し予約出来るが
貸し出し中じゃないものから選んで借りた
ネット経由で最寄りの図書館受け取りだし気軽に借りれる

最近は逆引き系の書籍を借りてみたがそこそこ使えそうなの購入検討中
2020/11/26(木) 13:43:41.02ID:BC4iA6x5
>>590
別に金をけちるためと言ってるわけでもなく、図書館の正当な活用方法が何で気に入らないのか分からないが、お前のその決めつけも薄っぺらいものだと思うぞw
2020/11/26(木) 13:53:40.08ID:jm3BjrWz
図書館を選ぶのは金をケチりたいからでしょ
2020/11/26(木) 14:18:20.57ID:dGdApgXM
pythonの入門書とか時間と金の無駄
無駄なものにお金をケチって有意義なものにお金を使うのは賢い選択
2020/11/26(木) 14:22:28.77ID:pWRU7DEh
そりゃPythonで食っていくぞーって人なら本買えよって思うけど、このスレはそんな人ばかりじゃないから
2020/11/26(木) 14:23:24.62ID:ye1vQ6Qi
学び方は人それぞれ
本をじっくり読み込むスタイルが合う人もいれば、
キーボードを叩きながらPC画面で学べるオンライン学習サイトが合う人もいる
大切なことは毎日続けること
人は三日プログラミングから離れると、自分の書いたコードすら読めなくなる
2020/11/26(木) 14:27:01.12ID:l+ppMWJa
オンラインにも情報転がってるし金を出す意味はない
時間は惜しみなく出せ
2020/11/26(木) 15:41:49.21ID:nrM3g88W
愚者はそうやって時間を捨て老いていく。
賢者は金を払い、効率よく順序よく学びスキルを身につける。
602デフォルトの名無しさん
垢版 |
2020/11/26(木) 16:42:01.95ID:D+V6U/tS
本だけ買い揃えて満足してそう
2020/11/26(木) 16:43:48.99ID:0+aT9pM+
典型的な積読バカがいると聞いて
2020/11/26(木) 16:47:36.29ID:xBQH8cKm
本読む価値があるのって設計とかCSの本とかじゃないの
言語単体なら本買うより公式リファレンス見た方がマシ
2020/11/26(木) 16:49:19.09ID:vejzC3OQ
自称賢者はカネさえ払えば効率が良いと考えているようだな
取捨選択すらできないで効率もへったくれもないと思うんだが
2020/11/26(木) 16:50:37.84ID:ae4kcUSb
>>604
それだとEffective Pythonが読めないぞ
607588
垢版 |
2020/11/26(木) 17:11:15.74ID:IMBwVNgm
書き込みとかしたいのでやはり買うことにしました
図書館を勧めてくれた方ごめんなさい
SBクリエイティブの「Python超入門」にしました
608デフォルトの名無しさん
垢版 |
2020/11/26(木) 17:44:52.48ID:StrviZCw
私、本に書き込む人って嫌い
2020/11/26(木) 18:17:13.29ID:nrM3g88W
>>605
初心の話をしてるだよ、右も左もわからない状態で取捨選択できるような人間少ないだろう。
多少過激な物言いをすると直ぐに時系列を理解しないこーゆう愚者が現れ恥を晒す。
610デフォルトの名無しさん
垢版 |
2020/11/26(木) 18:22:28.42ID:T0UZuAda
>>600
オススメのサイトとかある?
2020/11/26(木) 18:24:27.19ID:ko8YYDT7
Pythonの入門書を選ぶのは結構難しいよな
とある事情で他人に勧める参考書を探しているのだけれども、
基本を押さえていて、リファレンス的になりすぎず、かといって変に応用だけやるみたいにもなっておらず、間違いがない本を探すのはかなり難しかった。
他言語の経験がある人なら公式チュートリアル読めで終わりなんだけどね
612デフォルトの名無しさん
垢版 |
2020/11/26(木) 18:41:18.80ID:fjpYUDuO
図書館にPythonの本は何冊かあるんだけど普通に10年前くらいのあるなぁ…
2015年出版とかの本は使えるのだろうか?
2020/11/26(木) 18:42:37.49ID:YYN7U/8V
>>611
だから図書館で複数纏めて借りたんだけどね
筆者毎に薦める開発環境も入り方も全く違うから
自分に合うのが1冊あれば他は返却するつもりだったし
合うのが無くてもそれぞれ読み合わせるつもりだった
2020/11/26(木) 19:11:36.57ID:l+ppMWJa
>>610
めちゃくちゃ叩かれそうだけど書く
paizaとqiitaを往復するのがいいと思う
paizaのスキルチェック受けながらわからないところを調べていく
pythonでなにか作りたいとかなければこれがベストなんじゃないかな
課題を与えてもうのはとても良いことだと個人的には思う
2020/11/26(木) 19:20:10.25ID:zyTAEVOK
>>611
なにを勉強するにも入門書ってあうあわない+良し悪しがあってむつかしいねぇ

>>613
複数まとめて借りたってちゃんと最初からかいてたっけっか?
2020/11/26(木) 19:24:22.04ID:YYN7U/8V
>>615
>>589で最初から言ってる
2020/11/26(木) 20:18:23.65ID:zyTAEVOK
>>613>>589だったのか!!!
なんか勘違いしてたわごめん

ねるぽ
2020/11/26(木) 20:25:58.77ID:Su7UQCea
>>609
だから自分で調べるなりここで聞けばいいだけだろ?
金出して教えを請うたりしたところで、大した違いはない
各種選択肢の中から結局自分で解決方法を選ぶことになるんだから

金出せば簡単にすむと思ってる輩には難しいのかもしれないけど、
自分でやろうとする気のないのは何やってもだめなんだよ
2020/11/26(木) 20:48:24.82ID:nrM3g88W
>>618
論点がズレてるから絡まなくてよい。
読書はよい、このように思考がバグってる奴の相手をしなくてすむからな。洗練された筆者と時空を超えて対話するツールである。
2020/11/26(木) 20:52:28.72ID:4zwvuqDK
>>619
賢者モード 乙
2020/11/26(木) 21:55:47.46ID:H5c28v3A
自身がバグっていないと証明することは不完全性定理により不可能なんだっけ

賢い俺らは自身と外界の両方から情報を得てアップデートしていこうな!
2020/11/26(木) 22:02:03.50ID:BC4iA6x5
>>619
高校生が背伸びして難しいことを言ってみたという感じかな?
623デフォルトの名無しさん
垢版 |
2020/11/26(木) 22:40:02.36ID:NeNbHCSj
>>614
paizaってスキルチェックなんかもあったんだ…知らなかったなぁ…ありがとナス!
2020/11/26(木) 22:56:41.34ID:nrM3g88W
>>622
いいえ、アラフォーです
2020/11/27(金) 13:46:54.91ID:m0c4MBXJ
>>619
> 洗練された筆者と時空を超えて対話するツールである。
> 洗練された筆者と時空を超えて対話するツールである。
> 洗練された筆者と時空を超えて対話するツールである。
( ( ( ( ( (゚∀゚) ) ) ) ) )ユンユンユーン
626588
垢版 |
2020/11/28(土) 12:23:46.13ID:bhBilOI2
この本コメントの書き方が載ってない… 信じられない…

まあ#で書くって知ってはいるけど
2020/11/28(土) 18:52:16.51ID:duaGF17R
>>611
他の言語に比べると入門書の質が悪すぎると思う
2020/11/28(土) 21:20:00.04ID:wikslLsj
>>627
わかる
質の低い入門書が量産されるのは
公式ドキュメントの質が低いから
2020/11/28(土) 21:25:27.00ID:7MYLw5P/
マジか…Pythonは初心者にも分かりやすいって聞いて始めたんだけど…
630デフォルトの名無しさん
垢版 |
2020/11/28(土) 21:27:25.17ID:73Gx5wYa
純粋の母数の問題じゃねえか?
スタージョンの法則で90%はゴミ、
ただし業界のピラミッドがでかけりゃデカいほどクズ本は巷に溢れる
Haskell本の少なさを見てみろ

ネコも杓子もpython入門書を書いてる、
圧倒的なまでに量産されてる、
それが原因だ
2020/11/28(土) 21:28:57.39ID:Qx/oNDgY
プログラミング自体の初心者が多いので、
畢竟、入門書もプログラミング自体の基礎から始める必要があるんじゃないかねぇ
2020/11/28(土) 21:32:14.00ID:mMC1knSV
>>629
わかりやすいぞ
これほどわかりやすい言語は他にない
C・Java・JavaScript・Ruby・Go…これらの言語に挫折してきた俺がPythonだけは覚えられたからな
2020/11/28(土) 22:26:16.41ID:FGpMIdZG
「みんなのPython」など、多くの本の質が低下した

なぜ、文法が減ったかと言うと、
Jupyter Notebook, Pandas など、ライブラリの説明が増えたから

一方、Ruby では「たのしいRuby」1冊で、十分に文法が説明されている
634633
垢版 |
2020/11/28(土) 22:36:37.55ID:FGpMIdZG
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる

この2つ以外は、出てこない

最初に、Python, PHP を学べとは、絶対に言わない。
将来的に、Pythonをやりたいからと言って、Pythonから始めてはいけないって言ってる

つまり小学生が将来、大学へ行きたいからと言って、
いきなり大学の試験勉強から始めてはいけない

小学生は、小学生の勉強から始めなければならない。
次に中学生になれば、中学生の勉強をする。
そして高校生の勉強をする

つまり、勉強の順番が大切
2020/11/28(土) 22:55:57.26ID:9//L8RlG
>>630
母数警察です👮🚓
母数は分母のことではありません
統計用語としてのparametersの訳です
詳しくはwikipediaなどを引いてみてください
2020/11/28(土) 23:25:18.30ID:bhBilOI2
>>634
ま た お 前 か
2020/11/29(日) 03:06:12.24ID:9kWt1Kcb
でたルビおじw
2020/11/29(日) 10:04:01.50ID:GnQH3nQR
Python で デスクトップアプリwwww
とか言われてるの見て、違うんかなと思ってたけど、最近OKINI の MyPaint ってソフトのGITHUB みたらほぼ Python で書かれてたわ
ちゃんと快適に動作するんやね
PyQt とか、PyGTK とか、 Native Library をゴリゴリによんでるっぽいが、それが楽なのは良いよね
639デフォルトの名無しさん
垢版 |
2020/11/29(日) 14:49:24.35ID:EaJiwQmK
>>623
paizaスキルチェックは答えを公開してはいけない規約のせいで良いコードが見れない。
paizaスキルチェックはスキルを伸ばし終えた人が就職のためにやるものだと思う。

スキルを伸ばしたいならCheckiOで冒険するのがベストだゾ
https://checkio.org/

checkioでは問題を解いた後、Best Solutionsで他の人が書いたコードで高評価が多かったものが見れる。
そういうのを読んでいけばスキルが向上していくと思うわ。
640デフォルトの名無しさん
垢版 |
2020/11/29(日) 15:42:13.31ID:nZSW4pQM
じゃあ最初からいいモノだけを見せて純粋培養すればもっと効率よくなるじゃん
自分で解くだけ時間の無駄じゃん
2020/11/29(日) 16:31:12.91ID:krdYa2S6
インプットとアウトプットは別物だからなぁ
2020/11/29(日) 17:49:42.57ID:yRBxHDUY
AtCoderでいいかな
643デフォルトの名無しさん
垢版 |
2020/11/29(日) 17:59:19.66ID:QDwVKtUj
>>610
<5分で始めるクリップボードにコピーしたテキストを検索>
退屈なことはPythonにやらせよう編

#! python
import webbrowser, sys, pyperclip
if len(sys.argv) > 1:
# この下の1行は半角スペース4個分あけてから書く(半角スペースを開けなかった時のエラーメッセージは"IndentationError: expected an indented block")
keyword = ' '.join(sys.argv[1:])
else:
# この下の1行は半角スペース4個分あけてから書く
keyword = pyperclip.paste()
# ttpsをhttpsに変更して使ってね
webbrowser.open("ttps://www.deepl.com/translator#xx/ja/" + keyword)
webbrowser.open("ttps://stackoverflow.com/search?q=" + keyword)
webbrowser.open("ttps://qiita.com/search?q=" + keyword + "&sort=like")
webbrowser.open("ttps://teratail.com/search?q=" + keyword)
webbrowser.open("ttps://www.google.com/search?q=" + keyword)
# ttps://duckduckgo.com/bang_lite.html

# Automate the Boring Stuff with Python > Chapter 11 – Web Scraping > Step 3: Handle the Clipboard Content and Launch the Browser
# ttps://automatetheboringstuff.com/chapter11/
# RUNNING PROGRAMS
# ttps://automatetheboringstuff.com/2e/appendixb/
# 翻訳版:退屈なことはPythonにやらせよう ――ノンプログラマーにもできる自動化処理プログラミング Al Sweigart 著、相川 愛三 訳
644デフォルトの名無しさん
垢版 |
2020/11/30(月) 12:39:15.63ID:79yVLdeW
Tweepyで3-leggedOAuth認証とAccessToken,AccessTokenSecretの取得方法教えて
2020/11/30(月) 14:02:35.50ID:wCS2S4dQ
押忍
iniファイルの読み出しに付いて教えてほしいです

URLをブラウザからコピーするとURLエンコードされた状態でコピーされます
これをそのままiniファイルに貼り付けると、configparserで読み出すときにエラーになってしまいます

[example]
url = https://example.com/%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A/abcdefg/
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
ini['example']['url']
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 1255, in __getitem__
return self._parser.get(self._name, key)
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 799, in get
return self._interpolation.before_get(self, section, option, value,
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 395, in before_get
self._interpolate_some(parser, option, L, value, section, defaults, 1)
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 442, in _interpolate_some
raise InterpolationSyntaxError(
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A/abcdefg/'


今は仕方なく適当なサイトでURLデコードして貼り付けてますが、結構な手間です
手間かけずに巧くやる方法はないでしょうか

ちなみにデコードすると以下になります
https://example.com/あいうえお/abcdefg/
2020/11/30(月) 14:06:29.94ID:mKaKPR0T
>>645
つurllib.parse.unquote()
647デフォルトの名無しさん
垢版 |
2020/11/30(月) 16:21:12.97ID:lAYyI3JE
>>645
config = configparser.ConfigParser(interpolation=None)

https://stackoverflow.com/questions/14340366/configparser-and-string-with/62592195#62592195
https://docs.python.org/ja/3/library/configparser.html#interpolation-of-values
2020/11/30(月) 18:40:04.84ID:wCS2S4dQ
>>647
うぉぉぉ出来たぁぁぁぁ
こんどケツ貸すヨ
2020/12/03(木) 22:55:54.00ID:KIgHVg2T
とあるサイトでrequests.postでうまく投稿ができない

ポストすると
投稿成功のときは”投稿に成功しました”
投稿内容が不正だったときは”投稿内容を確認してください”
というhtmlが返ってくる
pythonのrequestsから投稿するとこの”投稿内容を確認してください”が返ってくる

ブラウザ側でも試したところクッキーを消したときにだけ同じ投稿ミスになることは確定だが
”投稿に失敗しました”ではなく”投稿内容を確認してください”というエラー表示に糸口がありそうな気がする
s = requests.Session()でs.post()とやってみたけどやはりポスト内容が反映されていない
headersつけたりもしたけど同じ
ブラウザからajaxでの投稿には成功
パラメータを.encode("utf-8")したり
dataにjson.dumpsでやってもだめだった

他のサイトでは大抵sessionの問題だけで普通にrequests.postでできるけど
そのサイトではなぜか上で書いたようにいろいろやってもことごとく投稿ミスする
曖昧な情報しかだせないけど、他に考えられる要因があれば教えてください
どうせcookie周りの問題だと思うけどsession.cookiesで確認した内容と
ブラウザで確認したcookieにそう変わり無かったしお手上げ状態
2020/12/03(木) 23:23:43.14ID:XMGdMuHX
>>649
フォームでノンス入ってんじゃないの?
2020/12/03(木) 23:39:07.22ID:Glofd6fS
>>649
1. Chrome -> デベロッパーツール -> ネットワークタブを開いて成功するリクエストを投げる
2. ネットワークタブから該当のPOSTリクエストをCopy as cURLでコピる
3. ターミナルにペーストしてcURL使ってPOSTリクエストを投げる
(5chみたいに重複ではじかれる仕組みがあるならリクエスト内容を変えること)

まずはこれで切り分け
cURLでもリクエストが成功するなら
その内容を徐々に削っていけば最小限必要なものが何か分かる

でそれをpythonに実装する
2020/12/03(木) 23:44:55.74ID:KIgHVg2T
>>650-651
パラメータは成功したものをそのコンソールでコピペしてるからタイプミスはないとして
そのパラメータも簡単で、idとnameとcommentとnonce(3文字の数字)だけだった
(リダイレクトもないタイプだったのでpreserve logする必要もなかった)
そのnonceに対応する値もパラメータには無かった
簡略して書くと文字通りこんな感じのパラメータをポストしてるだけだった
prm = {"id":"id","name":"name","comment":"comment","nonce":"123"}
(もちろん重複エラーを出されないようにポストするときにはポスト内容を変えて何回もテストしてる)
数字認証にもタイムアウトがあると思って、ブラウザでサイト開いて数字をメモしてpython側で投稿テストした

書いてて思ったけど、もしかするとその数字認証の数字発行のタイミングとセッションに関係性があるのかもしれない
(発行された数値から作られたcookieを使う必要?)ので
それで試してみるd
2020/12/04(金) 00:11:56.59ID:V5csDP6P
>>652
Copy as cURLでCookie含むヘッダーも全部コピってくれる
パラメータだけじゃなく一連のHTTPのリクエスト/レスポンスを見るようにしないと原因わからないよ
2020/12/04(金) 00:55:14.15ID:mbGy2PTH
>>653
すまn書き忘れたがそれでコピーしたヘッダーとかポストパラメータを整えて
まずajaxで投稿成功したものを、pythonにて(header設定の有無など)投稿テストしてる


とりあえず解決した
(python側のセッションと依存関係のない)ブラウザで開いた問題のサイトを開いて得た認証数字とcookieを使って
python側のrequestsでそのcookieを設定しつつその認証数字をpostしたところ
投稿に成功した
どうやらcookieと数字認証を紐づけしてセッションとして扱うという
そのサイトの仕様だったっぽい
ありやした
2020/12/04(金) 03:07:55.96ID:2+VKdPy1
opencvのセットアップ本当にめんどくさくてワロタwww
散々漁った挙げ句ビルドツール揃えてgtkフラグ立てて自分でビルドしろとかなんじゃそりゃwwww
2020/12/04(金) 08:25:51.51ID:hUNPjPlE
>>655
pip install opencv-python
でできない?
2020/12/04(金) 09:52:22.67ID:AvYQsRML
cmakeとかlibなんちゃらみたいなのが入ってないとpipで入らない
2020/12/04(金) 11:36:09.84ID:J43e5p8N
3.5サポート終了か

3.6終了されるとヤバいんだよなあ
深層学習の色んなモジュールで安定してるのが全部ダメになる
2020/12/04(金) 12:12:28.38ID:QkN7upSm
>>655
これ走らせるだけだぞ
https://git.io/JIYVn
2020/12/04(金) 18:19:21.77ID:huRYsfdX
Pythonは3.3のyield fromで完成した
それ以降はどうでもいい機能追加ばかりで言語の簡潔さが損なわれる一方だ
2020/12/04(金) 18:36:46.19ID:cMvL3wzj
>>660
お前f-string使うの禁止な
2020/12/04(金) 18:41:31.28ID:AvYQsRML
>>660
type hints使うなよな
2020/12/04(金) 18:57:25.08ID:0C1YXDY5
趣味レベルでしかプログラミングしないから遅延評価?とかジェネレーター?って使ったことないわ
使いみちがイマイチ思い浮かばないんだけど何に使ってんの?
2020/12/04(金) 21:48:57.69ID:vKhGRfH5
>>663
ジェネレーターはメモリ節約以外で使わんなぁ
2020/12/05(土) 03:39:12.78ID:qj4AFT3z
遅延評価って、lazy getter みたいなのかと思ったら、yield のことか
2020/12/05(土) 06:15:08.82ID:FCSL7Haz
ジェネレータは動作テストなんかで簡易的なステップ実行をさせる時に便利
コマンドラインでnext()を打つたびに一個ずつデータが返ってくるから
2020/12/05(土) 10:13:37.67ID:gZAhFzLL
デバッガでステップ実行中すればいいだろ
わざわざコード書くのかw
668デフォルトの名無しさん
垢版 |
2020/12/05(土) 12:40:24.70ID:Na39OKS5
ブログ書いてたら彼女と無料で海外留学という名のデートに行けた話【影響力やばい】
https://www.youtube.com/watch?v=Y8Q1z3Mi7BQ
若いうちから人を雇ったり、任せるクセをつけるべき理由とは?
https://www.youtube.com/watch?v=6yAvDQxhldI
【対談】インフルエンサーマーケティングに300万円突っ込んでみた結果...
https://www.youtube.com/watch?v=AMjWD0F8PLQ
収入を上げたければ、自分の影分身を作るべし
https://www.youtube.com/watch?v=V3Kc-lUxH88
勉強のために10日間で21個のアプリを作った話【初心者時のプログラミング学習】
https://www.youtube.com/watch?v=JkN5kmR9dgk
学校では教えてくれないことの中にはお宝が眠っている
https://www.youtube.com/watch?v=oq92u9nJ7FY
ブロガーからステップアップしていくために必要なスキル
https://www.youtube.com/watch?v=F6qsOyRIaQE
2020/12/05(土) 13:28:53.84ID:ZDhFj9p4
今オブジェクト指向勉強してるんですが
同一クラスの中で関数の継承って出来ないんですか?
抽象化した関数を1つ定義してそこから継承して微妙に役割の違う関数をいくつか生やしたいんですが

class Hoge():
def abstract():
def concrete1(abstract):
def concrete2(abstract):
2020/12/05(土) 13:34:53.57ID:v7lcL9sk
できない
関数の継承っていうのがよくわからない
2020/12/05(土) 13:42:39.17ID:ZDhFj9p4
なるほど
それでは大本の処理は同じで細部だけが異なる関数を定義したい場合ってどう書けば良いんですか?
関数ごとに抽象クラス継承した新しいクラス定義するしか無いんですかね?
2020/12/05(土) 13:45:09.96ID:En2ZUb0e
>>669
そういう時は関数を受け取る関数を1つ定義して
微妙に違う部分を引数として渡すことが多い
2020/12/05(土) 13:46:47.29ID:3OUqO/Qz
Ruby では、lazy を付ければ無限配列も扱える

最初に、無限配列を実体化しない。
必要な所までしか演算しない

p ( 1..Float::INFINITY ).lazy.select{ |n| n.even? }.first( 3 )

出力
[2, 4, 6]
2020/12/05(土) 14:28:45.82ID:IToZisS4
結局実装はイテレーター使うようなもんだろ。。そんなクソ機能どうでもええわ
2020/12/05(土) 15:04:02.90ID:2CGyf7zj
>>672横レスだが
簡潔にして要点をおさえてるすばらしいレスage
2020/12/05(土) 16:42:25.74ID:En2ZUb0e
>>674
そんなどうでもいいクソ機能はPythonにもあるんですけど・・・
677デフォルトの名無しさん
垢版 |
2020/12/05(土) 17:20:49.97ID:gZAhFzLL
>>674横レスだが
簡潔にして要点をおさえてるすばらしいレスage
2020/12/05(土) 18:10:26.12ID:2n9rdHeb
関数を受け取ってちょっと処理をつけ足したり変更したりした
新しい関数を返すのって、それデコレータって機能の出番じゃないかな
勉強始めたけどちょっと難しくて一時挫折中の機能だわ
2020/12/06(日) 11:47:20.63ID:Ki7zJHSL
>>678
デコレータは既存の関数を包む形で別の機能を追加するものなので意図がちょっと違う
メソッド横断的に共通して利用する機能を実装するときに使うのが一般的

@log(level=ERROR)
def foobar():

>>672はデザインパターンで言うテンプレートメソッドを高階関数で実装するやり方
2020/12/06(日) 12:52:46.51ID:jZtFYDuX
筋がいいか分からんがメソッド名で引数調整するとか?

def func_core(self,format)
# 処理

def func_csv(self,*args,**kwargs)
kwargs['format']='csv'
self.func_core(*args,**kwargs)
2020/12/06(日) 18:07:14.38ID:boBfQzjD
# get image pixel count using opencv
imgCV = cv2.imread(file_name)
height, width, channel = imgCV.shape

height, width, channel = imgCV.shape
AttributeError: 'NoneType' object has no attribute 'shape'

となるんですが、なんでだろう?
前はこのコードで動いていたように思うのですが・・・
2020/12/06(日) 18:12:46.84ID:mEKOV6LG
>>681
まず1嫁
683デフォルトの名無しさん
垢版 |
2020/12/06(日) 19:14:40.59ID:SvaTNPrC
画像読み込みに失敗してる
たから、imgCVにNoneが入っている
684デフォルトの名無しさん
垢版 |
2020/12/06(日) 22:17:30.03ID:cg3234iv
python 3.7.9
win10
bs4
requests

データ収集中に発生した問題につきお答えいただければ幸いです

<span class =“calcHEADas1”>40</span>

上のようなspanという要素に囲まれた40というテキストがあります。そして下に書かれたものを実行すると空文字が返ってきてしまいました。確かに40というテキストはあるのになぜ空文字が返ってくるのでしょうか。同じ境遇の方いらっしゃいましたら是非知恵を貸していただきたいです。

s = soup.select_one('span[class="calcHEADas1"]')
print(span.text)
2020/12/06(日) 22:36:23.87ID:mEKOV6LG
>>684
よくみてみそ
「"」と「“」と「”」は違う
2020/12/06(日) 22:44:06.26ID:Ki7zJHSL
>>684
spanの後ろにスペース入れて[class=…]としてるから
spanより下位の要素でクラス名が’calcHEADas1’のものを探しにいってる

span要素のクラス名ならスペースを入れちゃだめ
CSSのルール
687デフォルトの名無しさん
垢版 |
2020/12/06(日) 22:49:17.73ID:cg3234iv
>>685
>>686

お二人方のご指摘通りでした。
恥ずかしい限りです…! 3年くらい勉強してまいります!!
勇気が出ました
2020/12/07(月) 07:04:38.96ID:IkSRrVfT
解決報告乙
がんがれー
2020/12/07(月) 13:08:18.23ID:LDzktyL7
全角文字が混じっているだろ。
半角英数字以外はダメ!

Ruby では、

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<span>xyz</span>
<span class="abc">あいう</span>
EOT

elements = doc.css( 'span[class="abc"]' )
puts elements.first.content #=> あいう
2020/12/07(月) 16:08:47.46ID:ezb7MAV6
>>689
死ねキチガイ
2020/12/07(月) 17:17:34.51ID:eJ2ObSAu
>>689
ニシキヘビに食われればいいんだ
2020/12/07(月) 19:06:04.12ID:kUJZ7+dL
今loggingとtqdmで表示がぐちゃぐちゃになるから困ってて
調べたらカスタムハンドラー使えって出てきたんだけど
logging.confでcustom handlerを実装する方法ってあるのかな?

https://stackoverflow.com/questions/5346661/
2020/12/08(火) 12:58:50.73ID:QO/1LqBg
ファイルパスのデータ列のデリミタは何が適切ですか?
カンマはファイル名に入力出来るからダメだし
コロンはドライブ名称にくっついてるからダメだし

ひとまず半角アスタリスクとかクエスチョンマークで妥協してますけどこれでいいんですかね?

パス1*パス2*...*パスn
のような感じです今
694デフォルトの名無しさん
垢版 |
2020/12/08(火) 13:10:57.97ID:qUjj4bQw
ワイルドカードと被るやん
セミコロンでよくね?
2020/12/08(火) 14:02:18.54ID:lZ/QPFbs
unix系ではほんとの文字がファイル名に使えてしまうし
プラットフォーム依存したくないのなら何らかのエスケープした上で適当なデリミタ使えばいいんじゃね?
2020/12/08(火) 14:33:43.81ID:CDSUfSjl
>>693
JSONやCSVなど適当なシリアライズフォーマットを選んで配列をシリアライズしましょう
単純な用途にオレオレフォーマットを再発明しても誰も得しないよ
2020/12/08(火) 14:39:55.69ID:Xg+JZs6m
普通に、CSV で、カンマ区切りで良い

要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(")があれば、
クォート文字で囲まれるだけ

あ,"a,b"
いう, xy

ファイルに、: ; * などを使うと、バグる。
ハイフン・アンダーバーだけにしておくべき
698デフォルトの名無しさん
垢版 |
2020/12/08(火) 14:53:31.44ID:O6ovwbXJ
タブ区切りのTSVでいいんじゃないか
そもそも一行に繋げて書く意味あるのか
そしてここは5chなんで正式なデリミタは<>だ
2020/12/08(火) 18:55:43.08ID:lpLUbgnY
>>693
普通にCSVでカンマかTSV(タブ区切り)でええやろ
別にファイル名にカンマが混じっててもエスケープするなり

むしろアスタリスクとか変なもん混ぜると後でくそっそ面倒だぞ
(アスタリスクなんて正規表現のワイルドカードと被るから、絶対に揉める)
2020/12/09(水) 00:11:56.51ID:f0tiUfmU
質問です

統合開発環境を使うのと、
テキストエディタ+コマンドプロンプトで作業するのとでは
どちらが良いでしょうか?
2020/12/09(水) 00:36:04.09ID:XzWvmoKM
>>700
目的、好み、能力などでどちらがよいかは人それぞれ

ただコマンドプロンプトという書き方をしてるところを見ると
IDEを使ったほうがよさそうに思える
2020/12/09(水) 01:10:02.17ID:/cMUVFNS
Python入門者ってわけじゃないならPyCharmが開発しやすい
とりあえずやってみたいって感じならAnacondaでJypyterNotebook
VSCodeでやりたいならVSCode
2020/12/09(水) 01:26:35.17ID:jODQKuwy
I Don't Like Notebooks (by Joel Grus)
https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/
2020/12/09(水) 08:10:15.18ID:psoc2su5
プログラミング完全初心者で、初めて学ぶ言語がpythonです。pycharmを使って勉強しています。
指定された任意の時間で動作するプログラム(アラームのようなもの)を作っており、自分のPCでは期待通り動く状態まで持っていくことが出来ました。
これをネット上で公開して不特定多数の人に使ってみてもらいたいと思うのですが、ここから先何を勉強・用意すれば良いのかアドバイス頂けると幸いです。
今一番わからないのは「pythonで書いたプログラムをどうやってweb上で動かすのか」という点です。

その他のポイントとしては
・プロのエンジニアを目指しているわけではないが、ニッチな需要に応える簡素なサービスを作ってみたい
・xserverを使ってwordpressでブログを公開しているが、同じサーバーにこのプログラムを置けるのか?
・FlaskとかDjangoを使うべきなのか

以上、よろしくおねがいします。
2020/12/09(水) 08:30:00.61ID:aEFgnzx2
693
皆さんありがとう
そっかタブとかもあるのかあ・・
2020/12/09(水) 12:26:26.93ID:7lJYNuqP
>>704
ウェブサーバの知識が必要かな
王道なのはapacheかnginxだけど、pythonだけなら
python -m http.server
でウェブサーバになるから、そこに肉付けしていけばいい
2020/12/09(水) 12:41:15.63ID:rIU0lDlE
中華からの謎の大量アクセスで一撃で落ちるけどな
2020/12/09(水) 12:51:57.91ID:/MUc+cdS
>>704
鯖マシンにPythonをインスコするor最初からPython動くよっていってるレンタル鯖をかりる

やればぁー
置ける 704の設定次第
使えばぁー
2020/12/09(水) 15:06:10.60ID:y7KEYUhD
ベンチャーでは、AWS, Ruby on Rails が多い

AWS Lambda, Batch などのサーバーレスとか
2020/12/09(水) 15:53:48.69ID:psoc2su5
>>706-709
返答ありがとうございます。お教えいただいた点について勉強してみます。
711700
垢版 |
2020/12/09(水) 16:39:45.80ID:f0tiUfmU
>>700です
返信が遅くなってすいません
レスくれた方、参考になりました
ありがとうございました

Visual Studio CodeとAnacondaをインストールしようと思います
712デフォルトの名無しさん
垢版 |
2020/12/09(水) 19:43:21.29ID:oTqbLT2F
Pythonで競馬予想ソフト作りたいんですがどう勉強していけばいいですかね?
C言語は趣味程度に書いてたのでPythonの基礎的なところはすぐにモノになりそうなんですが
2020/12/09(水) 19:53:12.28ID:9U2YLq5f
>>712
言語そのものの習得より競馬予想アルゴリズムの研究にはるかに時間がかかると思うけど、
そこは置いとくとしたら、公式サイトのPythonチュートリアルをやれば十分。
714デフォルトの名無しさん
垢版 |
2020/12/09(水) 20:27:08.07ID:oTqbLT2F
>>713
ありがとうございます。
ちなみに公式サイトのPythonアルゴリズムってのはググれば出てきますか?
715デフォルトの名無しさん
垢版 |
2020/12/09(水) 20:28:39.57ID:oTqbLT2F
おーあった。これかな
https://docs.python.org/3/tutorial/index.html
2020/12/09(水) 20:37:34.05ID:/MUc+cdS
チュートリアルとアルゴリズムの違いがわからないってどういうことだ
Cとやらもハローワールドうごきません(^O^) ってかんじなのか
2020/12/09(水) 20:45:18.86ID:/MUc+cdS
>>714-715 = >>712
広義のマルチポストするようなクサレ精神をまず矯正しろ
https://mevius.5ch.net/test/read.cgi/tech/1600035173/246

はなしはそれからだな
2020/12/09(水) 20:48:09.46ID:fxsKXvPp
最近はなんでも機械学習だよ
過去3年分くらいのデータ集めて学習させるだけで的中率9割くらいなら軽く出るよ
719デフォルトの名無しさん
垢版 |
2020/12/09(水) 20:59:03.75ID:oTqbLT2F
>>717
せやな(笑)
2020/12/09(水) 21:01:36.45ID:/MUc+cdS
716が図星すぎてヌカみそがうけつけないんですねわかります
721デフォルトの名無しさん
垢版 |
2020/12/09(水) 21:05:46.65ID:oTqbLT2F
>>720
ありがとうございました!
2020/12/09(水) 23:43:18.95ID:aOSmD5C7
>>718
まじでそれ
前処理できる人材足りないらしいしpython独学学生のワイは少し希望を見出している
723デフォルトの名無しさん
垢版 |
2020/12/10(木) 05:13:21.20ID:lCcaS4oF
# >>643のShell Script版
#!/bin/bash
CLIPB=$(exec xclip -o -selection clipboard)
CHON=''\'''
[ "$#" -ge 1 ] && ERROR="$CHON""$@""$CHON"
[ "$#" -eq 0 ] && ERROR="$CHON""$CLIPB""$CHON"
GOOGLE=$(rev <<< '=q?hcraes/moc.elgoog.www//:sptth')"$ERROR"
QIITA=$(rev <<< '=q?hcraes/moc.atiiq//:sptth')"$ERROR""&sort=like"
TERATAIL=$(rev <<< '=q?hcraes/moc.liataret//:sptth')"$ERROR"
echo 'DuckDuckGo !Bang一覧:'$(rev <<< 'lmth.etil_gnab/moc.ogkcudkcud//:sptth')
SHUFFLE_BANGS=$(shuf -e '!yjr' '!hashtag' '!gnuk' '!yt' '!so' '!ig' '!bili' '!r' '!qiita' -n 1)
SHUFFLE_KEYWORDS="$CHON"$(shuf -e 'python' 'shell script' '日本人' '料理' 'つまった' -n 1)"$CHON"
DUCKDUCKGO_BANG=$(rev <<< '=q?/moc.ogkcudkcud//:sptth')"$SHUFFLE_BANGS"' '"$SHUFFLE_KEYWORDS"
STUDY_KEYWORDS="$CHON"$(shuf -e '# Bash' '# grep' '# shuf' '# ヒアドキュメント' -n 1)"$CHON"
grep -B 2 -A 3 -n "$STUDY_KEYWORDS" "$HOME/Documents/studyRecord.md"
sleep $(shuf -i 5-7 -n 1)'s'
google-chrome "$GOOGLE" "$QIITA" "$TERATAIL" "$DUCKDUCKGO_BANG"
2020/12/10(木) 12:39:28.70ID:OCEZ6BZz
693だけどタブはダメやった。
c:\tempみたいなパスが入ってた時にデリミタ扱いされた・・
*と?はワイルドカードで揉めるみたいだから
半角の<か>で区切ってみる。これならどうだぁ
2020/12/10(木) 16:12:02.86ID:V5qSWfNd
>>724
アドバイスを全無視ww
タブがダメなんじゃなく君がダメなだけ
2020/12/10(木) 16:59:38.88ID:YnqEzhEp
ファイルパスのリストをわざわざ連結したい理由が思いつかない
2020/12/10(木) 17:23:44.75ID:+R9MuRqA
てかPythonで使うだけならpickleで十分だろ
csvに書き出すなら改行するのが一番楽だろうに
728デフォルトの名無しさん
垢版 |
2020/12/10(木) 17:34:45.19ID:PyjUl2il
>>724
\はエスケープするよ普通は
2020/12/10(木) 18:51:00.01ID:HstTQkWC
ファイルパスの\ を、/ に変換すれば?

Windows でも、/ が使えるでしょ?
2020/12/10(木) 19:07:01.26ID:Jj6v3tGp
>>724
どうしてもCSV使いたくないなら、せめて先人の知恵に倣えよ。
2020/12/10(木) 20:52:17.08ID:JL8Xc0jO
SQLiteの分離レベルってどういうときに使うの。。
入門サイト見てみたけどほとんどどこも使ってないんだけど
2020/12/10(木) 22:02:25.46ID:8O7UePfH
速度を要求されるシステムとかで使う
2020/12/10(木) 22:47:51.03ID:7mTcrT9w
>>731
pythonのsqlite3モジュールにあるコネクションのisolation_levelは
トランザクションタイプの指定でDBMSの分離レベルとは何の関係もない

Noneを渡せばimplicit transaction
それ以外はexplicit transactionでロックの取り方が変わる
https://docs.python.org/3/library/sqlite3.html#sqlite3-controlling-transactions
https://sqlite.org/lang_transaction.html#deferred_immediate_and_exclusive_transactions
2020/12/11(金) 00:35:35.74ID:ZvpiNjnc
>>732
>>733
ほーん みてみるd
2020/12/11(金) 01:14:57.41ID:slOz+bz6
質問です

下のコードの9行目は、なぜコメントのような結果(num_list1と同じ内容)
にならないのでしょうか?
https://paiza.io/projects/Qpy8sFx-h5avv5Gl83RZoQ

どなたかよろしくお願いします
2020/12/11(金) 01:30:44.54ID:ahD9n8Mk
Python結構人いるんだな
2020/12/11(金) 04:45:14.45ID:U3Oy8MkO
>>735
num_list1 を表示したいの?
そしたら9行目の print() の中には num_list1 を入れないとダメじゃない?
738737
垢版 |
2020/12/11(金) 04:47:46.13ID:U3Oy8MkO
>>735
ゴメン再代入されないのはなぜって質問なのか
上から順番に実行されていくから、num_list1を変更してもnum_list2は変更されないからだよ
739737
垢版 |
2020/12/11(金) 04:52:28.06ID:U3Oy8MkO
>>735
この説明が分かりやすいと思う
https://hibiki-press.tech/python/reference_copy/590
2020/12/11(金) 09:18:34.13ID:J0GcYQf+
プルダウンメニューを自動選択→カートに入れるという自動購入の動作をさせたいのですが、セレクトボックスのidがあらかじめわからない場合はこの動作をさせる事は不可能ですか?
販売時間にならないと、購入ページが前もってわからないタイプのものです
2020/12/11(金) 12:12:30.12ID:s+ujdTab
>>735
変数に新しい参照を代入しているのかそれとも参照先の値を変更しているのかの違い

num_list1 = [1, 2, 3]
num_list2 = num_list1
num_list1 = [4, 5, 6]
↑新しい参照を代入している(俗に言う参照の値渡し)

num_list1[0] = 10
↑num_list1が参照している先の値を変更している
2020/12/11(金) 13:03:04.49ID:/AL4j9WO
>>740
id 以外でも、CSS セレクターや、2番目などの順番でも指定できるけど、
ページ構成の変化には対応するのが難しい

その点、idなら1つに決まるから、プログラミングしやすい
2020/12/11(金) 17:46:58.96ID:QKh+o6Fo
cssセレクタでselectを指定すれば要素特定出来るだろ。どうせセレクトボックスなんてページにそれ一つしかないんだろ。
744735
垢版 |
2020/12/11(金) 18:50:53.04ID:slOz+bz6
>>737
>>741
ありがとうございました
分かりました
745デフォルトの名無しさん
垢版 |
2020/12/11(金) 20:48:28.78ID:OnRhFRT3
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
2020/12/12(土) 07:26:05.11ID:ch7aCOL8
numpyでnumpy.ndarray.appendしても、ビューが生成されるだけです。
元のndarrayに追加するような方法はありますか?
747740
垢版 |
2020/12/12(土) 07:31:04.72ID:nMhR9jlV
>>742
>>743
ありがとうございます
cssセレクタで出来ました
2020/12/12(土) 13:37:27.43ID:cOibJfw/
以下のコードで
https://pypi.org/project/python-osc/

以下のような箇所がありますが、これはどのような処理ですか?
{0}の部分に、args[0]の値を埋め込んでprintするような処理に見えますが~{1}の部分は何のために書かれているのかよく分かりません。
特に意味はないんでしょうか?

def print_volume_handler(unused_addr, args, volume):
print("[{0}] ~ {1}".format(args[0], volume))
2020/12/12(土) 13:51:37.21ID:G9l4ULGH
volumeも書き出してる
2020/12/12(土) 13:58:17.22ID:cOibJfw/
>>749
なるほど、ありがとうございます。
2020/12/12(土) 14:04:22.44ID:o4Bj7yJm
f文字使った方がわかりやすいよね
2020/12/12(土) 15:00:38.21ID:efKG+ZBS
f文字使うと古いPythonで動かないコードを世に放つことになるからなあ
少なくとも3系のPythonで動くように書かないと世のためにならない
2020/12/12(土) 19:23:58.03ID:04B3jJ4R
そんなんfに限らないだろ
2020/12/12(土) 19:50:36.86ID:EiovETKX
俺が総理大臣に就任した暁には、全てのpythonライブラリにはtype hintの使用を義務づける

そして引数のファイルパスの型にstrしか受け付けないライブラリには罰則を与える
2020/12/12(土) 20:28:20.19ID:RWVkhqgv
じゃあAny型で
2020/12/12(土) 20:49:24.20ID:K2sR/21p
型ヒントはさらにまずいね
f文字はなんならformat版に機械的に変換できそうだけど
型ヒントの付いてるコードからヒントを取り除くのは骨が折れそうだ
2020/12/12(土) 22:39:53.01ID:nX9tiJMr
最近はどんどん古いバージョン切って捨てるのがトレンドやろ
誰がこんな世の中にしたんやろなあ
大迷惑
758デフォルトの名無しさん
垢版 |
2020/12/12(土) 22:55:43.15ID:lNVasAwT
新しいほうがいいじゃん?
どうせPythonなんて作っては捨て、
作っては捨ての繰り返しだから。

その場でちょっとしたもの
作るときに使う言語だから。

Pythonなんてバカでもチョンでも
使えんだからさ
2020/12/12(土) 23:11:17.51ID:IXV68dFS
正直保守が必要な物をPythonで開発するのは馬鹿だろ
2020/12/12(土) 23:14:04.79ID:aMZWlLv7
でも3.6が良い
2020/12/13(日) 00:08:48.22ID:4S8DBomt
flaskってどうよ
2020/12/13(日) 00:12:29.23ID:17gHgA0W
fastapiのほうがいい
2020/12/13(日) 00:23:18.51ID:5jMUJn8y
>>759
枯れていて商用に耐えうるメジャーな現役言語ってCかCOBOLしかなくて
しかもこれらの言語はひどく生産性が悪いというソフトウェア界の闇
Pythonはこの辺で仕様凍結宣言をして、COBOLの代替を目指すべき時期に来ている
2020/12/13(日) 00:44:13.02ID:wYkyDrTo
fはintでもそのまま放り込んでエラー出ないから楽
2020/12/13(日) 02:24:10.75ID:1g8P/X2h
pythonでRSSリーダー作れましゅか?
2020/12/13(日) 08:33:14.93ID:5x8B+jfI
>>765
むしろどうしてむりだとおもったんでちゅっかー
2020/12/13(日) 11:11:56.15ID:EpHdNzxH
Web 系でごにょごにょするなら TypeScript おすすめしましゅ!
2020/12/13(日) 11:26:07.69ID:5jMUJn8y
済まないがブロックにカッコを使う言語はノーサンキュー
2020/12/13(日) 12:45:14.88ID:17gHgA0W
えーカッコいいじゃん
カッコだけに





カッコだけに
2020/12/13(日) 16:53:54.07ID:LGBnBUYf
a.jp/1.jpgからa.jp/500.jpgまでの画像をダウンロードするにはどんなふうに書けばいいの
2020/12/13(日) 17:08:01.88ID:zFOj0dh9
for i in range(1, 501):
s = "a.jp/" + i + ".jpg"
...
772デフォルトの名無しさん
垢版 |
2020/12/13(日) 17:38:40.19ID:LGBnBUYf
>>771
こう?


import requests

for i in range(1, 501):

url = ""https://cz-cdn.shoeisha.jp/static/actibook/9784798155302/books/images/2/"; + i + ".jpg""
file_name = " i + ".jpg""

response = requests.get(url)
image = response.content

with open(file_name, "wb") as aaa:
aaa.write(image)
2020/12/13(日) 17:54:46.42ID:zFOj0dh9
>>772
二重引用符のくくり方がちょっと
2020/12/13(日) 17:55:43.28ID:25RZkjwi
これ、ちょっと間違えると攻撃に間違われるから気を付けてね
2020/12/13(日) 18:10:55.43ID:LGBnBUYf
>>773
見直してもわからないので教えてください
2020/12/13(日) 18:14:05.73ID:m4Wl6k1W
ggrks
2020/12/13(日) 18:17:26.94ID:zFOj0dh9
「連番 ダウンロード Python」
2020/12/13(日) 18:23:08.09ID:LGBnBUYf
python 複数画像ダウンロード
とかでググってたわ
thx
2020/12/13(日) 20:55:03.28ID:4MwCzqHm
世の中みんなhomebrew使ってパッケージ管理してるみたいですが、pip3だけでなんとかなりますかね
当方homebrewがインストールできない環境です。
780デフォルトの名無しさん
垢版 |
2020/12/13(日) 21:00:09.98ID:w38sGQBv
>>771
TypeError: can only concatenate str (not "int") to str
このぐらいは実行しなくてもTypeErrorになるのがわかんなきゃ初心者から脱却できてないぞ
2020/12/13(日) 22:02:44.00ID:aUJFbM7m
>>770
単に連番の画像ダウンロードするだけならcURL使うといいぞ
$ curl -O https://cz-cdn.shoeisha.jp/static/actibook/9784798155302/books/images/2/[1-500].jpg

リトライも帯域制御も並列化も簡単にできる
後処理でpython使いたいとしてもたいていのユースケースはファイル連携で十分
2020/12/13(日) 22:47:51.42ID:QWR2aP5/
>>781
たまに見かける
images/[1-10]/1.jpg
みたいなパターンだと -O/--remote-name オプションでは大変なことになるけどね
2020/12/13(日) 22:58:51.46ID:bSx7ciZe
Ruby では、

library rss
https://docs.ruby-lang.org/ja/latest/library/rss.html

RSS/Atom 形式
2020/12/13(日) 23:42:26.71ID:aUJFbM7m
>>782
そういう場合は-oで指定すればいいんだぞ
images/[1-10]/{1}.jpg -o “#1_#2.jpg”とかね
785デフォルトの名無しさん
垢版 |
2020/12/14(月) 00:13:16.38ID:H9Yj00dL
# >>643のpyperclipを使って
# Python Documetationで学んだことをメモ用ファイルにコピペ

import pyperclip
clipb = pyperclip.paste() + '\n' # クリップボードの中身を取得
print('コレをコピペ -> ' + clipb)
open('memo_pythonDoc.txt','a').write(clipb) # 追記モード('a')でopenして変数clipbの中身をwrite
2020/12/14(月) 12:34:28.18ID:IWkHCo3l
>>772
うちも最初の頃は+でつないでたけど、こういうミスがあるからf文字使うようになった
いちいち型を考える必要ない
2020/12/14(月) 12:52:19.29ID:KsIuaWid
やっぱf文字は強制にした方が新規には分かりやすそう
Python3.10からはデフォルトにしよう
それかPython4
2020/12/14(月) 13:15:39.31ID:r/dWM1IA
PEP582採用して仮想環境を抹殺
型ヒント強制
fstring強制

頼んだぞ、Python Foundation
2020/12/14(月) 14:16:48.83ID:v8t5CwIX
>>787
その前にf-stringをf文字列と訳すよう矯正する必要ありそう
790デフォルトの名無しさん
垢版 |
2020/12/14(月) 19:04:53.73ID:hG9yFSan
fを付けない通教の文字列を標準でf-stringにする向きもあるらしいな
2020/12/14(月) 21:40:54.17ID:ycPwgo2u
%s %d %fの挿入絶滅した?
2020/12/14(月) 23:29:40.38ID:30kSf89N
コンパイル可能にする動きはないの?
配布が面倒すぎて困る
2020/12/15(火) 00:51:27.65ID:+RD1gPFt
exeで配布しようとするからでしょ
パッケージ配布なら何も面倒なことはない
794デフォルトの名無しさん
垢版 |
2020/12/15(火) 11:21:51.02ID:GRKD/Ma/
shift-jisのサイトのソースコードを取得し文字コードをutf8に変換する方法を教えてください

import nkf
import requests

url = "https://kakaku.com";
body = requests.get(url).text.encode('UTF-8')
body = nkf.nkf("-w", body)
print(body)

こんな感じでやったのですが文字化けしてしまいます
BeautifulSoupは使えません
2020/12/15(火) 11:55:29.71ID:XKndzQaP
response = requests.get(url)
response.encoding = response.apparent_encoding
body = response.text
2020/12/15(火) 12:18:50.95ID:sett0sNL
Pythonで〇〇できますかって質問ここでしていいですか?
797デフォルトの名無しさん
垢版 |
2020/12/15(火) 12:22:33.10ID:GRKD/Ma/
>>795
できましたありがとうございます!!
2020/12/15(火) 15:52:44.91ID:hTSxdvaB
>>796
いいんでないの
まぁpythonでできないことは本質的に機械じゃできないことだったりするけども
799デフォルトの名無しさん
垢版 |
2020/12/15(火) 22:17:03.19ID:fn0JFbgC
他の言語ちょっとやったことあるってレベルならどの参考書買えばいいんだろうか。チュートリアルはちょっと読みにくい
2020/12/15(火) 23:14:40.71ID:vYGb7HVK
プロ向きなら、パーフェクトシリーズだけど、
猿向きなら、スッキリシリーズかな?

パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020/6

改訂2版 パーフェクトRuby、Rubyサポーターズ、2017
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/7
2020/12/16(水) 00:03:04.29ID:LU6zCuge
>>799
玉石混合の入門書の中で、自分が勉強しようと思っていろいろ比較してみた所、
ソーテック社の「詳細 Python3 入門ノート」って本が良い感じでした
2020/12/16(水) 00:57:01.88ID:J2/86fXM
オライリーのはじめてのpython
803デフォルトの名無しさん
垢版 |
2020/12/16(水) 07:31:45.32ID:VaidjUHq
スッキリシリーズは流石にダメでしょ
2020/12/16(水) 11:49:30.65ID:E5QK4Bac
SBクリエイティブのpython超入門しか買ってないけど理解できた
2020/12/16(水) 18:00:40.16ID:LU6zCuge
>>804
あの本は一見良さそうだけど地雷
コメントの記述方法が載ってないとかあり得ない
806デフォルトの名無しさん
垢版 |
2020/12/17(木) 20:17:02.64ID:me3npDEa
pyautoguiで特定アプリ内の画像認識をしようとしているのですが、
ウィンドウの指定をして、
そのウィンドウが見えていない、バックグラウンドでも認識させる方法はありますでしょうか
RPAを作ってみたのですが、そのRPAを動かしている間、パソコンに触れなくなるため
バックグラウンドでの動作にしたいです。

pyautogui.locateOnScreen →アクティブウィンドウしかだめ
2020/12/17(木) 20:21:07.32ID:nC3KtugT
複数のデスクトップを変える、仮想デスクトップでも、ダメなのか?
808デフォルトの名無しさん
垢版 |
2020/12/17(木) 21:18:19.91ID:HOK8mWEY
給与計算のチェックとかpythonでできますか?
エクセルvbaより楽にできますか!?
2020/12/17(木) 21:54:36.97ID:FF9ZK33o
>>808
できるよ
openpyxlでcsvに変えてからpandasで処理するのが一番いい
2020/12/17(木) 22:09:02.55ID:E6QqmaoP
エクセルvbaのように書式を保って処理できないんですね!
残念です!
2020/12/17(木) 22:50:55.00ID:5gjmPPN4
できるよ。わざわざpandas使うのは809の趣味
2020/12/18(金) 00:16:31.15ID:9JHdyeAr
何をもってできないと思ったのか逆に気になるな
2020/12/18(金) 09:15:36.09ID:hahJhxSX
言ってもない処理を809がわざわざ書いたから
それしかできないのはしょうがないんだろうと思ったんどろう
2020/12/18(金) 09:24:12.07ID:ZgbltKIK
どろう
2020/12/18(金) 09:26:26.05ID:6XgFq4AT
給与計算で書式を保ちたいと要求していないし「一番いい」と言ってることから他にやり方があることが示されているし809のやり方が特別悪いとも思わんな
2020/12/18(金) 10:10:14.37ID:tG03PZfz
そんなにムキにならなくてもw
何でもかんでもpythonでやれば楽になるわけじゃないんだから
2020/12/18(金) 14:20:04.01ID:8Pq4G6/a
Excelに限らずGUI周りの処理はPython避けたほうが賢明
818sage
垢版 |
2020/12/18(金) 21:18:36.14ID:a9/WYqr/
808です。
手当の変更のインプットやアップロードはがんばっていれて
チェックは一瞬で楽にできればと思いました。パイソン勉強いたします。
パソコン教室にいきます。
ちなみに810はほかの人です。
2020/12/18(金) 22:00:33.26ID:9JHdyeAr
excel操作とGUIは関係なくないか?
ファイル名指定してCUIでいじるんだし。
2020/12/19(土) 09:30:15.24ID:zKdXY8Ql
python 3.7.9でimport win32com.clientを使おうとしとるんやが
importエラーで先に進めない

pip install pywin32 :インストールできたがimportエラー
githubからexe落としてきてインストール :やっぱり動かない

importで詰まったの初めてなんだが
win32comどうやったら使えるん
2020/12/19(土) 11:16:43.59ID:zKdXY8Ql
820だが自己解決できたわ
ここからや
2020/12/19(土) 19:52:27.72ID:5S97jaCy
>>821
解決方法も書いてね
2020/12/19(土) 23:27:44.16ID:KNibJcyt
これからpython始めたいのですがOSはmacの方が良いんでしょうか
windowsしか使った事が無いけどググると環境構築や情報量はmacが優位との事で迷ってます
目的としてはexcelメールの自動化やwebスクレイピングを業務の中で出来るようになればと考えており、結局windowsで動かす事になりそうなのですがmac↔windowsで環境を跨ぐと支障は出るものでしょうか
2020/12/19(土) 23:34:28.88ID:Uc1plkB7
その程度の用途でmacにする意味はまったくない
2020/12/19(土) 23:43:59.81ID:OsP/HwCY
>>823
AnacondaかWSLでPython使えば大丈夫だと思う
2020/12/20(日) 00:02:14.02ID:dQ4w2OO8
情報ならubuntuの方が多そう
827デフォルトの名無しさん
垢版 |
2020/12/20(日) 00:45:13.65ID:BAtdGKu+
>>823
windowsでもインストーラー落として実行するだけ
2020/12/20(日) 07:14:52.70ID:zJwsC3QS
普段使いしてるWindowsに入れればいいよ
セットアップの項目でpythonを環境変数に追加すれば使いやすさは変わらん
2020/12/20(日) 12:08:39.60ID:llRQx8oF
>>819
2020/12/20(日) 14:17:31.37ID:vakUvLku
WindowsとMacではターミナルの使いやすさが違う
Windows Terminalでかなり改善されてるけどね
2020/12/20(日) 16:43:50.35ID:8E3b/swc
プログラム初心者にWSLを薦めるのは鬼だな
2020/12/20(日) 16:50:04.61ID:CqW8rd2f
WinならNative Pythonにpipenv入れるのが一番良くないか?
Anacondaは個人のライブラリとか入れていくと環境グチャグチャになるから面倒くさいわ
2020/12/20(日) 21:48:57.73ID:VdeMiIWR
>>832
anacondaにpipenvみたいな機能あるけど使ってないの?
2020/12/20(日) 22:54:35.97ID:8E3b/swc
anacondaのがバグったとき捨てて一から作り直ししやすいってのはある。
2020/12/20(日) 23:26:08.37ID:fYZvWS3R
自分の書いたプログラムを周りの人間と共有する必要があって
その周りの大半がanaconda使ってる状況以外でconda系から始めるのはやめとけ

anacondaとtkinterは初心者をつまづかせる2大無用の長物

最初は直接python入れときゃいい
836デフォルトの名無しさん
垢版 |
2020/12/20(日) 23:53:36.33ID:tNXdbpIs
今更、anaconda勧めてくるのは無視していいと思う
2020/12/20(日) 23:55:27.38ID:VdeMiIWR
>>835
まあそうかも。
ある程度他のビルドが通りやすい他のOSでPython使ってからだと、 Pure Pythonじゃない部分も面倒見てくれるAnacondaはいいんだけど、
ほんとの初心者でpipで入らないモジュールに困るまではいらないかもね。
Anacondaの癖なのかそうでないか見定められるまではAnaconda使わない方がいいかもね。
838デフォルトの名無しさん
垢版 |
2020/12/21(月) 09:40:55.51ID:bAOWuplU
科学計算、データサイエンスの環境を手っ取り早く作りたいというわけでなければ、anacondaはすすめないかな。
2020/12/21(月) 09:44:51.81ID:bAOWuplU
ここ一年ぐらいに出版された入門書って環境構築どう解説してるんだろう
2020/12/21(月) 10:01:11.52ID:M/flfVv0
>>833
conda cloudにないけどpypiにだけはあるみたいなライブラリをpip経由で入れると依存関係壊れるのが嫌
逆は基本ないからpip使うのが結局総合的には楽でいいと思う
あとOpenCVみたいなのは自分でビルドしちゃうのが使えない機能があったりしなくて楽
841デフォルトの名無しさん
垢版 |
2020/12/21(月) 13:22:58.36ID:G5T16kgS
>>839
WSLにDocker 、構築済みコンテナマウント、ローカルにVC-CODE、
2020/12/21(月) 15:21:20.98ID:XP0/uvDJ
Windows 10 Home 版に、WSL2, Docker を入れた

OS の連続アップデートに、3時間掛かった。
CPU-i3, 8GB メモリを、CPU・電力エコモードで使っているから、コンパイルが遅いのかも

その後、WSL1 から、WSL2への変更。
Dockerのインストール自体は簡単だった

これで、Windows10 プロ版じゃなくても、Dockerを使える。
Kubernetes も入っていた

君らには、CPU-i7, 16GBメモリ、SSD-256GB以上を勧める

念のために、Windows 10 プロ版もプリインストールしておけ。
プリインストールなら、5千円と安いから

16GBメモリあれば、WSL2の互換性が悪い場合に、
Virtual Box で直接、Linuxも使える
2020/12/21(月) 18:09:40.54ID:YgDTrDhJ
>>832
おそらくその目的ならanacondaでも全く問題ない
2020/12/21(月) 18:18:57.29ID:YgDTrDhJ
>>835,836
たまにはanacondaを触ってみるといいよ
昔の問題だらけの時代とは全然違うから
今はpyenv+pipenvを教えるよりもminicondaだな
tkinterだけは特定のmacOSでトラブルになるから公式のがいいかな
2020/12/21(月) 18:22:34.07ID:X2UxBsP1
PythonでもSmoozみたいなアプリ作れますか?閲覧してる情報まるごとぶっこ抜くってなかなかにシビれます。
2020/12/21(月) 18:30:40.24ID:YgDTrDhJ
>>845
kivyを使えば作れないことはないがネイティブアプリ開発にpythonを使うのは大変だと思う
2020/12/21(月) 18:52:08.50ID:ym6gHmkT
numpyやscikit-learnなんかはanacondaがデフォルトでintel-mkl使うバージョンが入ってて速いそうだが
それらを使うならanacondaの方がいいかもな
Vanillaでmkl使う方をインストール出来るならそれでいいんだろうけど
848デフォルトの名無しさん
垢版 |
2020/12/21(月) 20:03:41.57ID:+4hTUwSB
弘法筆を選ばず

弘法環境を選ばず
厨房環境を論ずるのみ
2020/12/21(月) 22:28:54.80ID:UbzYfHI9
WSL, virtualbox, 直python勧めるくらいなら明らかにanacondaのがマシだわ。
こいつら勧めるとかまともにプログラムやってないとしか思えんわ。
2020/12/21(月) 22:36:10.92ID:RFvP+jrS
>>848
書家(とりあえず二人にききました)に言わせると
うまいひとほど筆も紙も選びますw
だぞ
851デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:40:16.48ID:+4hTUwSB
>>850
上手くない人があーでもないこーでもない言ってる
852デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:41:07.37ID:+4hTUwSB
プログラムは
センス9割
環境1割
853デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:45:52.65ID:+4hTUwSB
かつて「プログラムは環境で決まる」という宣伝があったそうな
「決まる」というのは、最後の詰めのことを言っているのだろう
良い環境を使うか駄目な環境を使うかによって90点のプログラムになるか、95点のプログラムになるかは重大であろうから
環境を選ばなくてはいけないのだろう
しかし50点のプログラムを書いてる者が環境で5点プラスして何になるのだね
anacondaよりpipenvの方が環境が良いとしても
その環境の差が重要になるほどのプログラムを書いているのかね?

環境、構築、と主張するのはその環境構築が必要になるほどのプログラムを書いている者だけでいい
854デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:51:42.32ID:+4hTUwSB
釣り、ゴルフ、ゲーム、書道、絵画、カメラ、ドライビング、SEX
2020/12/21(月) 22:58:48.82ID:JGiC8qIT
要約:俺は苦労して覚えた。おまえらも苦労しろ
そう言ってるようにしか聞こえない
856デフォルトの名無しさん
垢版 |
2020/12/21(月) 23:00:06.72ID:JTbvcCyB
人に勧める時はちゃんと環境選んでやれよ
2020/12/21(月) 23:21:37.69ID:U66hSQRf
>>853
その理屈だと
50点+5点の方が
90点+5点より環境による変化大きいじゃん
算数出来る?
858デフォルトの名無しさん
垢版 |
2020/12/21(月) 23:44:56.81ID:+4hTUwSB
50点乙
859デフォルトの名無しさん
垢版 |
2020/12/21(月) 23:45:31.80ID:+4hTUwSB
>>857だと
90 < 55だってさ
2020/12/21(月) 23:47:49.32ID:56qSn/9L
環境周りは基本的なことが理解できてからでいいんだって
このスレでもanacondaでつまづいてるやつ腐るほど見てきただろ?

プロジェクト単位の依存性管理や
Pythonのバージョン管理をどうするのがいいの?
って段階になってから考えればいいよ

これからpython始めたいんですがってやつに即anaconda入れろはホント頭おかしいよ
余計なレイヤーを学ぶ必要がない方法があるならそれに越したこと無い
2020/12/22(火) 00:13:37.49ID:Fh2P5wuU
>>860
anaconda入れてPATH通せってのがそこまで深刻な複雑さを生むとは思わんがな。
python直に使ってて依存問題起きたらそれこそ初心者じゃテンパって終わるぞ。
862デフォルトの名無しさん
垢版 |
2020/12/22(火) 00:21:37.04ID:PFh/rGOz
>>850
そりゃプロなら選んで当然だけどさ
思い通りの紙と筆(環境)が揃わなくたって突然下手くそになったりしないでしょう?
そう言う事だよw
863デフォルトの名無しさん
垢版 |
2020/12/22(火) 00:25:13.93ID:PFh/rGOz
>>861
大概Python始めたいんですけどどうしたらいいですか?なんて聞く奴はPATH?何それ??状態だから
864デフォルトの名無しさん
垢版 |
2020/12/22(火) 00:37:55.16ID:T7BUya2f
ひたすら書くだけのコード屋が偉そうに
2020/12/22(火) 00:55:31.77ID:AKmT4Cni
>>863
そのレベルだとpipenvも全く同じでは?
2020/12/22(火) 01:04:27.16ID:CkUf338T
かつて環境アセスメントという
地球環境から職場環境までいっしょくたに扱うわけのわからん国の通知があって
なんじゃこりゃっておもった

環境って開発環境のことか?
867デフォルトの名無しさん
垢版 |
2020/12/22(火) 03:20:24.57ID:HVt96BYo
これでいいだろ

【徹底解説】Windowsでの環境構築|Pythonでプログラミングをはじめる準備をしよう! - YouTube
https://www.youtube.com/watch?v=kb6op3-E_lg
868デフォルトの名無しさん
垢版 |
2020/12/22(火) 08:13:39.37ID:/GVtgweb
MACでコードを書いて、WINDOWSでそれを使うってことできるのでしょうか?
2020/12/22(火) 09:25:53.47ID:jdNtdfk4
>>868
普通に出来るぞ
870デフォルトの名無しさん
垢版 |
2020/12/22(火) 16:47:04.00ID:GKhnHiXj
プログラマーとして自分は無理だと判断すりゃ次の人生を考え少しでも若いうちに早めに転職した方が良い
老婆心ながら忠告しておく
2020/12/22(火) 16:49:45.44ID:ZGF4ip3s
>>843
Anacondaってpipとconda混ぜて使っても依存関係解決してくれるようになったの?
872デフォルトの名無しさん
垢版 |
2020/12/22(火) 17:06:55.26ID:uVrRPi3R
思いたったら
何歳からでも始めれば良いさ
2020/12/22(火) 17:29:06.72ID:uzy9az6A
>>871
pipを使う場合は、環境構築だけconda createで作成して、あとは全部pipでインストール

condaで後からインストールしても良いけど、依存関係を解消しようとした頑張った挙句、どうしても解決できないものはコンフリクトして失敗する
2020/12/22(火) 17:39:49.72ID:FC/vybFL
すまん、パッケージマネージャはもうpoetryの一強だから
2020/12/22(火) 18:28:41.61ID:Hji39els
>>874
povertyみたいで嫌
2020/12/23(水) 20:18:46.69ID:9M0dxGbs
質問です

listの要素をごっそり型変換するにはmap関数を使えばいいとあったのですが、
map関数の戻り値がイテレータであるとはどういうことでしょうか?
2020/12/23(水) 20:33:31.77ID:/fS+7Fr+
>>876
イテレータはlistと同様にfor分等で一つずつ取り出せるけど、実際の中身は取り出すまでメモリ確保しない
listに1億個の要素があったとするとlistならメモリを沢山必要とするけど、イテレータなら問題ない

使い方はほとんど同じだけどprint()で見ると違いが分かる
878876
垢版 |
2020/12/24(木) 00:32:29.33ID:UwmGclax
>>877
何となく分かりました。
ありがとうございます。

list()関数と併用したいと思います。
2020/12/25(金) 00:08:02.52ID:eWDcI5x6
pythonをソースインストールしてんだけど
./configureの--without-PACKAGEのPACKAGE一覧ってどっかにないかな?
--with-PACKAGE=noでも良いんだけど
このオプションがマトモに機能してる気がしない
要らないパッケージ省いたスリムなpython作りたいんだけど
ソースのREADMEもgithubの記事もどこにも書いてないんよね
2020/12/25(金) 01:08:46.07ID:8LlCCPCm
>>879
pythonに適した使い方じゃないだろそれ。
881デフォルトの名無しさん
垢版 |
2020/12/25(金) 13:56:38.42ID:BaOphPzO
そのPACKAGE一覧が./configure --helpでその下にずらっとでてくるやつでしょ
ただ、それで、そのスリムなPythonが作れるわけじゃないけど
2020/12/26(土) 11:45:48.33ID:URkT4AMD
変数の宣言位置について質問です

下記のようなコードでは、if文が始まる前に
変数new_nameを宣言しておいた方がいいでしょうか?
https://paiza.io/projects/SG9gLGhkhsAzxAZ4UKz4mQ
883デフォルトの名無しさん
垢版 |
2020/12/26(土) 14:06:08.04ID:CIvbBvts
>>882
必要ないです
884デフォルトの名無しさん
垢版 |
2020/12/26(土) 14:32:22.42ID:CIvbBvts
条件分岐ならdictも使える
https://paiza.io/projects/rmCvhYR_d8PzwBEsEgMadQ

if文使うにしてもnew_name自体使わないと思う
885882
垢版 |
2020/12/26(土) 16:01:56.86ID:URkT4AMD
>>883
>>884
分かりました
ありがとうございます

ただ、>>882は例があまり良くないのですが、
要は分岐のブロック内で新たに変数が出てくる際に、Javaなどでは
String newName;
等と宣言しておくことが出来るのですが、
Pythonでは変数のメモリ確保?だけやるというのは出来なそうなので、
どうするのが望ましいのかなと疑問に思ったのです

この点に関してもどなたか助言をいただけると助かりますので
よろしくお願いします
2020/12/26(土) 16:29:43.05ID:ItMdJLnh
>>885
宣言したいだけなら
new_name =None
な書き方で良い
887デフォルトの名無しさん
垢版 |
2020/12/26(土) 16:38:56.17ID:S22m+gw3
すみません、ここを見てPythonをインストールしたのですが、
エディタというのはどこにインストールされているのでしょうか
MACに標準にあるテキストエディットをつかっても、pyという拡張子は作れませんでした

>エディタで先程作成したフォルダ「python_lesson」を開き、その中に「script.py」ファイルを作成してください。
https://prog-8.com/docs/python-env
2020/12/26(土) 16:47:26.77ID:ItMdJLnh
>>887
標準のテキストエディタでも別に行けるぞ
多分、拡張子の表示辺りが無くて分かりづらいと思うが
script.py.txtみたいな状態になってるはず

ちなみに、そこのチュートリアルで出てくるエディタはVSCodeで
別ページにインストール手順が書いてある
(そのページの一番上に
・テキストエディタ
HTML & CSS の開発環境を用意しよう! を参考にしてください。って書いてある)
2020/12/26(土) 18:35:57.65ID:pHrrDNwV
VSCodeのような支援ツールは使わない方がいい
一文字ずつ自分の指でタイプして書き上げたコードこそが自分の財産になる
890デフォルトの名無しさん
垢版 |
2020/12/26(土) 18:51:29.24ID:4mRY/k01
素手でトイレ掃除してそう
2020/12/26(土) 19:06:03.65ID:5Glc6mpm
そもそもプログラミング使ってる時点で甘えてんだよ
全部紙に書いてそれをファイリングしてデータ管理すべきだわ

ハンコ・紙の申請書・手書き・対面受け渡し
この4つを徹底した業務を10年以上やってから初めてプログラミングをやるべき

ちゃんと自分の財産が形成されてるからコード一行一行から良い風味が出てくる
892882
垢版 |
2020/12/26(土) 19:11:06.24ID:URkT4AMD
>>886
ありがとうございました
2020/12/26(土) 19:26:11.90ID:Q9Cqduz6
>>891
wwwwwくやしいわろたwwww
2020/12/26(土) 19:34:47.99ID:wXkuq1W2
>>885
pythonにブロックスコープは無いんだ…
だからJavaみたいにブロック内部で別の変数を定義することはできないよ
他のスクリプト言語もだいたいそうだから悲観しなくていいよ
895デフォルトの名無しさん
垢版 |
2020/12/26(土) 20:07:32.21ID:JYcv42HE
>>891
楽してキーボードカタカタしただけのプログラムは”心”が籠ってなくて冷たい印象を受けるからな
使い手を想いながら心を込めて千枚通しでパンチカードに一つ一つ穴を開けるべき
2020/12/26(土) 20:26:26.68ID:lTeoZ7+5
パンチカード使うとか甘えてんのかよ
男なら黙ってプラグボードに決まってるだろ
2020/12/26(土) 22:39:38.47ID:xNQiwGF7
フォンノイマン型コンピュータを使うことが甘え
TTLロジックで論理をハードコードすべき
2020/12/26(土) 22:45:42.78ID:Pu0ECC81
>>880,881
とりあえずmicropythonをビルドして使う事にした
公式配布されてるembeddable pythonのlinux版を作りたかったのよ

>>887
macならFinder設定の拡張子表示をするようにしとくといいよ
パンチカードとまでは言わないけどターミナルでviって打つと
一応標準でエディタは入ってる
質問の文章的にかなり初心者っぽいけどがんばって
2020/12/26(土) 23:48:20.74ID:aomFNOZx
Ruby にはブロックスコープがあるから、プログラミングしやすい

MicroPython か

Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11/25

この本を読んだ印象では、
宇宙開発などの組み込み用、Lua, Squirrel の代替になる

Apache などのミドルウェアに組み込んで、拡張機能を作る。
ロジック・文字列処理は、C よりも、GC のあるmrubyでやった方が、安全性が高い
2020/12/27(日) 06:31:17.91ID:vuz4qqtK
>>888
昔、方眼紙にチャート手書きしてたっけな。
2020/12/27(日) 07:13:24.57ID:+tApAhgR
>>899
るびおじおったw
2020/12/27(日) 08:27:33.49ID:CaXXLtf4
Ruby
をNGワードに追加。
2020/12/27(日) 09:36:53.54ID:0MIy7os4
BASIC,COBOL,Pythonと学んできた身からすると
ブロックスコープって何それ状態なのだが
つまりPythonの関数スコープがifやforにもあるってこと?
頭おかしくなりそう
2020/12/27(日) 09:56:36.92ID:JDlKWc3Q
>>903
withの挙動知るともっとおかしくなるぞ
インデント下げてる箇所で変数定義しても、withの外で使える
905デフォルトの名無しさん
垢版 |
2020/12/27(日) 10:35:02.77ID:vBqHOnr5
>>899
そんなに楽な言語じゃ気持ちがこもらないダルルォ?
2020/12/27(日) 10:50:21.84ID:0MIy7os4
>>904
どういうことなの…
できればサンプルコードを頼みたい
バグの元だろ
2020/12/27(日) 10:51:09.98ID:mqWB+gDR
ブロックスコープが無いのはスクリプト言語でもPHPとPythonくらい

バグの温床になりやすい
908デフォルトの名無しさん
垢版 |
2020/12/27(日) 13:14:13.85ID:vBqHOnr5
>>906
with open(‘test.txt’, ‘w’) as f:
____print(f)

print(f)
2020/12/27(日) 13:22:56.67ID:2030r+Fs
>>908
え、動かんでしょこれ
動くん?
2020/12/27(日) 13:35:42.01ID:ZwH7MfQO
withはスコープ外れたらファイル閉じるから無理なんじゃないの?
if文ならそうだけど
911デフォルトの名無しさん
垢版 |
2020/12/27(日) 13:52:55.21ID:SKaFVEwY
勿論 closeされるがファイルオブジェクトは残る
912デフォルトの名無しさん
垢版 |
2020/12/27(日) 14:19:22.56ID:+iG1rhj8
インデント下げてる場所 だったらこんなんじゃあないの

with open(‘test.txt’, ‘w’) as f:
____count = 1
____print(f)

printf(count)
2020/12/27(日) 14:47:56.00ID:bhLcvV8F
まずそもそもスコープを生成しないし、宣言キーワード無いからねぇ
某言語のブロックにしてもその実はクロージャというか別物だし…
仕様自体よりも思い込み・勘違い・混同の方が問題であろうかなと
2020/12/27(日) 18:29:26.40ID:MlpROiPU
>>913
嘘ついちゃダメ
nonlocalやglobalは宣言キーワード
スコープ周りが貧弱なので使いにくいハックが必要になってる

javascriptもブロックスコープがない時代はそんなのいらないと強弁してる人が沢山いたんだよねー
2020/12/27(日) 18:52:35.43ID:0MIy7os4
>>904
よく考えたらおかしくはないな
Pythonでスコープが作られるのは関数とクラスのみだから
withの中が外と同じレベルなのは当然ではなかろうか
2020/12/27(日) 19:22:15.13ID:bhLcvV8F
>>914
代入文が暗黙的なローカル宣言でも、そもそも既出のブロックではスコープを作らないって話から
そこだけ切り取って嘘と言われましても…。明らかにlet相当も無いよねって文脈ですし
そうなっているので参照できるよって事で、要る要らないの話でもないですしね…
2020/12/27(日) 19:45:54.90ID:JDlKWc3Q
>>915
初めてpython触るヤツには違和感しかないぞ
918デフォルトの名無しさん
垢版 |
2020/12/27(日) 19:54:56.15ID:+iG1rhj8
本物の初心者なら違和感ゼロじゃね
2020/12/27(日) 21:17:25.27ID:VS6+Jx70
Pythonからプログラミングはじめた人は
変数のスコープという概念自体を理解してないことが大多数なので
違和感なくてもバグを作るだけ
920デフォルトの名無しさん
垢版 |
2020/12/27(日) 21:36:17.81ID:IoLxP1+p
もう雑談になってるから続けたいならせめて質問にしてくれ
2020/12/28(月) 08:15:32.26ID:1wnarVmc
>>912
動きはするだろうが、なんでwriteでファイル開いてそのポインタをプリントしてるのか意味不明。
2020/12/28(月) 08:33:07.62ID:SqIAwzQp
ブロックスコープは欲しい。
多分どうしようも無いGILをのぞいて、
Pythonの最もおおきな欠点だと思う。
まあ関数内defをして直後にその関数呼べばいいのかもしれんけど。
2020/12/28(月) 10:06:03.35ID:W49AY227
Pythonの本を選ぶときにスコープについて解説してある箇所を見れば本の良し悪しが分かる

初心者がプログラミングの学習を始めて遅くても3日目には習う基本事項にもかかわらず
スコープについて整理してわかりやすく解説してるPython本は驚くほど少ない
2020/12/28(月) 12:40:30.36ID:jUcg1lZl
JavaScript(JS), Python の関数はクロージャだから、関数外の変数を取り込んでしまう。
ただし、新しいJSには、ブロックスコープも出来たかも?

一方、Ruby の関数はクロージャじゃないから、関数外の変数を取り込まない

関数外の範囲は大きすぎるので、
取り込むとバグが多くなって、開発が難しくなるから、
透過しない厳格な関数スコープにした

その代わり、関数内にはブロックスコープを作る。
これはクロージャだから、ブロック外の変数を取り込む

関数内は20行程度だから、範囲が小さいので、透過しても大丈夫
2020/12/28(月) 13:41:03.84ID:k1Eqi9cA
withは名前から受ける印象で直感に反してるけどルールとしては一貫してる

内包表記で代入式を使うと変数が外に漏れるのはルールにも反してて意味が分からない
2020/12/28(月) 16:00:19.42ID:1wnarVmc
まあそもそもリスト内包で副作用があるような処理書く奴はどうかしてるけどな。
そういう場合はアホみたいな書き方しないでfor使えや。
2020/12/28(月) 16:59:30.53ID:PwYxLSK+
>>926
また嘘つきさん乙
副作用の有無なんて関係ないぞ
pythonてエクストリーム擁護するやつほど無知だよな
2020/12/28(月) 18:04:10.84ID:1wnarVmc
代入が副作用ないと思ってんだな。。そりゃ話にならん。
2020/12/28(月) 18:59:19.95ID:k1Eqi9cA
さすがにそれは・・・

Cの主作用/副作用の定義だと代入も副作用があるとみなすけど
その定義だと内包表記はイテレータを使うからすべて副作用があることになる

ローカル変数に値を代入する関数を副作用のある関数と呼んだところでPythonにおいては何の意味もないよ
2020/12/28(月) 19:50:52.24ID:1npJXF9+
スコープ抜けたら消えてるやつは副作用じゃないです。
2020/12/28(月) 22:01:24.43ID:xPcvMZiv
代入式は代入だから副作用w
副作用だからfor文使えww
エクストリームすぎるやろ
932デフォルトの名無しさん
垢版 |
2020/12/28(月) 22:49:30.45ID:oo8nUBuZ
Tesseract以外のOCRライブラリで使えるの有りますか?
英語だけで十分なんですが
933デフォルトの名無しさん
垢版 |
2020/12/29(火) 06:48:07.79ID:hnMWQG4C
アイアン!まーいく!パイソン!
なーんつっちゃって
2020/12/29(火) 18:05:59.36ID:0CsKIrrJ
文字列囲むときって
'てす'と"てす"
どっちがいいの?
2020/12/29(火) 18:20:40.29ID:mZvn1dXJ
どっちでもいいが、英語配列のキーボードでは'の方がタイプしやすいため'の方が多用されていることが多い
936デフォルトの名無しさん
垢版 |
2020/12/29(火) 18:36:22.79ID:ojfT27J3
どっちでもいい
プログラミング配信とか見てるとわかるけど、日本人以外でもダブル(")使ってる人も少なくない
自分の中で統一できていればいい
使いにくい方をあえて使おうとしてまで使うメリットも理由もない

例えば、辞書のキーに文字列使う場合はシングル使って、メッセージの様な文にはダブル使うみたいな人もいる
2020/12/29(火) 18:40:20.15ID:ojfT27J3
docstringはダブル使ってね
2020/12/29(火) 18:57:59.95ID:5lNXv1ot
引用する文字列にダブルクォートが含まれることが多いので、
Pythonでの文字列のくくりには意識してシングルを使ってる

shellみたいに、展開の有無の違いはあったっけ?
2020/12/29(火) 19:01:46.57ID:HcXyWfHn
blackのフォーマットのデフォルトがダブルなんだからダブル使え
2020/12/29(火) 19:30:57.15ID:NgMoxJfm
質問です
ちょっとマニアックなんですが…

アンパック代入により_(アンダースコア)を使って値を捨てた後、
_の値を消去しておいた方がいいでしょうか?

data = [1, 2, 3]
a, _, b = data
# del _
2020/12/29(火) 19:59:15.43ID:UK0GT2+C
>>940
_にぶっこんだブツがでかい(重い)なら、念のためけせばー
940の内容では、イラネではー
2020/12/29(火) 20:10:55.84ID:jjGz13qC
>>938
rubyはそうだけどpythonにその違いはない
代わりに変数展開したければf-stringにする必要あり
943デフォルトの名無しさん
垢版 |
2020/12/29(火) 23:37:53.10ID:TVQOurYq
>>940
どうせスコープ抜けたら解放される。気にしなくて良し
適切なコーディングが出来ていてクソデカ関数を書いたりしていなければ、だが
944940
垢版 |
2020/12/30(水) 00:49:37.22ID:XkI9Mvab
>>941
>>943
分かりました
あまり気にしないようにします
ありがとうございました
2020/12/30(水) 03:09:55.58ID:zOyP/TIc
そもそもdel直後や関数抜けた直後に削除される保証なんてないのでは?
2020/12/31(木) 09:03:14.64ID:3v1yApEE
ImageGrab.grabでゲーム画面のスクリーンショットを撮ろうとしてもwindowsの壁紙しか映りません。ゲームのメニュー画面は撮れるのですが、対戦画面に切り替わると撮れなくなります。
2021/01/02(土) 03:03:06.16ID:pyorPsQx
input()関数での入力受付をマウスのクリックで代わりにできたりしませんか?

例えば、input()では"y"の入力でTrue、"n"の入力でFalseとして処理を分岐させている場合、
マウスを使うイメージでは、左クリック(あるいはyesボタンようなもの)が押されたときにTrue、反対に右クリック(あるいはnoボタンのようなもの)が押されたときにはFalseとなるようにして処理を分岐できるようにしたいです

キーボードでの入力→エンターの手間が地味に面倒で(押し間違いも出てくる)クリック一発で済ませられるようになれば・・・と考えてのことなのですが、簡単な実装の仕方はありますでしょうか?
948デフォルトの名無しさん
垢版 |
2021/01/02(土) 09:16:28.29ID:oBLo886r
誰かiPhone用の爆サイリーダー作ってください。
2021/01/02(土) 10:13:31.52ID:wcwqpSor
>>947
AutoHotKeyとかBetterTouchToolとか使ってマクロを実行しろ
原理的にコンソールアプリで制御する範疇ではないし、すべきではない
950デフォルトの名無しさん
垢版 |
2021/01/02(土) 12:09:14.26ID:Sivwhl/T
>>947
pygame使う
2021/01/02(土) 16:15:26.26ID:aqs6ioY6
>>947
やるべきかどうかは別にしてpynput使えばできるよ
https://pynput.readthedocs.io/en/latest/mouse.html#monitoring-the-mouse

エンターが手間ならエンター無しのキーボード入力だけで
処理が進むように作ったほうが間違いがなくていい気がする
python getchでググるとよろし
(pynputでもできるしcursesのようなTUIでも可)
2021/01/03(日) 17:07:25.20
強制的な名前付き引数と可変長辞書引数って同居できなかったっけ??
def hoge(a,**d):
これだとhoge(a=1)でもhoge(1)でも通っちゃうんだが
953デフォルトの名無しさん
垢版 |
2021/01/03(日) 18:15:44.07ID:GNuYDGUQ
def hoge(a, /, **d) ?
2021/01/03(日) 20:12:26.61
>>953
できた d!
2021/01/04(月) 02:13:45.64ID:Kyh5jQEK
C++からPythonへ画像を送りたい または
C++からPythonを呼び出したい(opencvの画像を添えて)
何か楽な方法ありますか?
ちなみに動作環境はUbuntuです
2021/01/04(月) 02:33:20.59ID:KAZJSY+9
system関数呼べば?
2021/01/04(月) 13:08:03.00ID:NzpguK0K
楽な方法ならsystem()に一票
bindして呼び出せるけどトラブった時の対処はスキルがメチャクチャいる
2021/01/04(月) 14:53:38.76ID:RRkyDjZk
Base64 かな?
2021/01/04(月) 19:54:00.21ID:8c2bemG3
python2で書かれたprint文をpython3に合わせて全てprint( )に直したいのですが、どのような正規表現を使えば良いでしょうか。全て
print '〜〜〜'
の形式で書かれています。
2021/01/04(月) 19:56:30.06ID:bgBArne3
>>959
むしろ「正規表現使わない置換」したほうがいいんじゃないかな かな
2021/01/04(月) 20:01:34.57ID:8c2bemG3
>>960
他にどのようなよい方法があるのでしょうか
962デフォルトの名無しさん
垢版 |
2021/01/04(月) 20:02:11.42ID:hngT4Gif
print '(.*?)'$
print(\1)
2021/01/04(月) 20:05:37.98ID:dUeB3b+2
2to3使うんじゃないの
使ったことないけど
https://docs.python.org/ja/3/library/2to3.html
2021/01/04(月) 20:08:54.33ID:po0WxCfG
複文がないなら s/\bprint\b(.*)$/print(\1)/ でいいんじゃないかなあ
2021/01/04(月) 20:12:17.65ID:KAZJSY+9
エディタ使って一つ一つ確認しつつ置換した方がいいと思うがな。
10000行程度なら俺ならそうする
2021/01/04(月) 20:38:52.21ID:Nz2iXOdN
2to3使って元のファイルと差分を確認
が一番楽だと思う
そもそもPython2からPython3だとprint以外にも変更が必要だし
2021/01/04(月) 21:24:49.11ID:Mk3YZcaQ
>>963
とりあえずprint()だけ変換しておけば、
from __future__ import print_function でPython2.7でも使えるから
段階を踏むという意味ではいいんじゃない?
968デフォルトの名無しさん
垢版 |
2021/01/05(火) 16:27:09.20ID:WDUeqgtT
>>959は変更点がprintだけだと思ってるような気がする
2021/01/05(火) 19:49:51.47ID:vWLugMBZ
format() やfストリングで、例えば普段は小数点以下第2位までの数値表示で、整数部桁が大きくなる場合は小数点以下は第1位にしたりして、数値全体の最大桁数は固定にすることってできますか?
2021/01/05(火) 21:26:54.87ID:8pOcMMb2
>>969
f"{123.456:.5g}" =>'123.46'
f"{1234.56:.5g}" =>’1234.6'

https://docs.python.org/3/library/string.html#format-specification-mini-language
2021/01/05(火) 22:04:38.15ID:vWLugMBZ
>>970
ありがとうございます。
すみません、説明不足でした。

例えばですが以下のように、原則は小数点以下は4桁として、整数部が4桁を超える場合にのみ、小数点以下の桁数を切り詰めて欲しいのです。
(整数部が大きくなるケースを例外扱いのようにし、小数点以下は4桁以上増やさない)

{:8.4f}
__0.1234
_12.3456
123.4567
1234.567
12345.67

フォーマット文字列生成してから、[0:8]で先頭8桁を切り出すしかないですか?
2021/01/05(火) 22:56:30.16ID:8pOcMMb2
>>971
foo = [0.123456, 12.34567, 123.45678, 1234.56789, 12345.67890, 12345678.90]
[f"{round(x, 4):.7g}" for x in foo]
#=> [‘0.1235', '12.3457', '123.4568', '1234.568', '12345.68', '1.234568e+07']
2021/01/06(水) 14:44:12.17ID:EPQdiTFW
anacondaって有償になったって聞いたんだけど、今まで使ってたやつってどうなるの?
ずっと普通に使えていたから気付かなかった

講習で使ってるだけならセーフか?
つか、そんな事一度も教えてもらわなかったぞ
2021/01/06(水) 14:48:50.11ID:+VwhUw/e
>>973
anaconda 有償
でググればいいのに
2021/01/06(水) 16:58:18.74ID:ENhPhOS8
去年の頭くらいの話だろうに何で今更聞いてんだ
該当してたらもう遅いだろw
2021/01/06(水) 17:35:38.04ID:EPQdiTFW
>>974
ググってもよくわからんから来たんだよ
つか、落としたの1年前でサイトなんて見てないんだから知らないよ...
2021/01/06(水) 18:47:52.50ID:6Jl+4cGL
公式の最新情報くらい調べてからひとにきけよ
2021/01/07(木) 07:00:37.94ID:4fMQSce9
>>976
シンプルな回答
気にするな

正確な回答
人員200人以上の組織で使ってるならコマーシャルライセンス版を買いリポジトリの使用料を払えという話だ
お前の頭ごときでそんな組織に勤めてAnacondaを使ってるわけがないだろ?
だから気にするな
2021/01/07(木) 14:55:40.47ID:cztV9si0
こういうスレは必ず「情弱乙www」とか言うやつが現れるよね。そして何も教えないまま暴言だけを残して去っていく
2021/01/07(木) 16:52:34.15ID:3TLTtAUE
>>979
情弱乙www
2021/01/07(木) 17:08:04.26ID:pdkBwEAt
スレタイ見ろよ馬鹿
2021/01/07(木) 19:23:23.70ID:0FtDyJbU
みんなこわい
2021/01/07(木) 20:11:00.50ID:lA1VVWUe
うるせーハゲ
2021/01/09(土) 05:22:56.31ID:IpHIsox4
つぎすれあげ

くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/
2021/01/09(土) 08:46:32.15ID:DLsCQOwy
バイナリデータをいじくるのに手間がかかってしょうがない
やはりテキストデータ専用言語だなPythonは
バイナリデータ操作に長けた言語を紹介してくれないか
業務で必要なんだ
2021/01/09(土) 08:53:50.37ID:pIgeuh0b
>>985
C
2021/01/09(土) 10:19:38.02ID:DLsCQOwy
>>986
Cに挫折してPythonに来たのでそれはちょっと勘弁
ううむ世の中思い通りいかんものだのう
2021/01/09(土) 10:33:52.57ID:gRjfgS3h
またやったらええやん。
2021/01/09(土) 10:38:29.76ID:fHVxD+CU
スクリプト言語でバイナリ操作というとperlでpack/unpack、pythonでstructモジュールあたりじゃないか?
それも手間だというなら他の言語でも似たようなもんじゃないかと思うが。
2021/01/09(土) 11:33:01.84ID:SIlabjr/
扱うデータがリトルエンディアンならCは楽だけど、そうでないならCでも同じくらいの相応の手間はかかる
2021/01/09(土) 12:41:43.34ID:DLsCQOwy
>>988
ポインタがわからんのよ
あれさえなきゃCはシンプルで良い言語なんだが
2021/01/09(土) 14:06:54.27ID:N02pNv/D
バイナリ操作つってもいろいろあるから何やろうとしてて手間を感じるポイントを書かないと何とも言えんよ

エラーメッセージすら書かずに「エラーになるんですけど、どうすればいいんでしょう?」と同じレベル
2021/01/09(土) 15:19:32.95ID:Lgj8dxsW
ポインタがわからないのにバイナリ操作したいってのは一体どういう了見だ
2021/01/09(土) 15:43:28.50ID:dA4F+6va
Javaでいいじゃん
2021/01/09(土) 15:43:30.94ID:D6Ll5jvx
分かるまでやれ
下手な説明だけ読んで理解しようとするから分からないままで進まないんだ
疑問に思ったら逐一書いて試せ
2021/01/09(土) 17:59:21.61ID:pIgeuh0b
安全にバイナリを操作しようとしたら色々きをつけなきゃいけないけど、適当に実験するだけだったらCが一番楽だと思うけどなあ。
ポインタを気軽に操作できるからこその楽さだよね
もちろんpackとかunpackとか使ったら同じだけど、一手間ある感じ。
2021/01/09(土) 21:19:19.27ID:kPw1IBO3
>>990
Cならエンディアンの変換なんて楽勝だろ
htons htonl ntohs ntohlとかのライブラリもあるし
2021/01/09(土) 21:35:39.87ID:fHVxD+CU
2/4/8バイトをひっくり返すだけの関数ならべつにCじゃなくても楽勝だろうし
Cでも結局64bit版は自作しなきゃならんしで大して違いはないと思うが。
2021/01/10(日) 04:23:22.15ID:RrNYWvxE
みんなバイバイナリ
2021/01/10(日) 04:58:15.36ID:9lOpXAqu
バイキンマンとコロ助が合体したかのような言い回し
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 84日 18時間 52分 37秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況