[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/23 11:57 / Filesize : 297 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



1 名前:デフォルトの名無しさん mailto:sage [2021/12/27(月) 01:38:10.93 ID:GepmXCuJ.net]
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直

178 名前:デフォルトの名無しさん [2022/02/07(月) 20:45:24.77 ID:WJa2Jvem.net]
if isinstance(x,str): x=[x]

179 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 20:48:11.70 ID:Afq51Jp9.net]
https://docs.python.org/ja/3/library/functools.html#functools.singledispatch
でオーバーロード書けるけど好きじゃない

180 名前:148 mailto:sage [2022/02/07(月) 22:02:57.91 ID:QDp/4Uhu.net]
メモリの確保と解放を自分ですることって可能ですか?
tkinterのラベルに画像を表示したいのですが、
tkinter.PhotoImage()の戻り値が勝手に開放されてしまい表示されません

181 名前:148 mailto:sage [2022/02/07(月) 22:05:00.21 ID:QDp/4Uhu.net]
>>163
そうなのですね、やっぱり純正?Pythonがいいんでしょうか…

>>164
Win11だからか出てきませんでした

182 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 22:22:44.80 ID:dQ2UCnOY.net]
>>177
win11なら幸運だ
windows terminalがプリインストールされているのでは?
なければストアから落とすとpowershellを直接開ける。
設定次第でwslもいけるぞ

183 名前:148 mailto:sage [2022/02/07(月) 23:12:32.22 ID:QDp/4Uhu.net]
>>178
windows terminal、入ってました
ただ使い方がよく分からなかったので、時間のあるときに調べてみます
ありがとうございます

184 名前:デフォルトの名無しさん [2022/02/08(火) 05:30:13.15 ID:nYjjFW0t.net]
tkinter photoimage 表示されない で検索しよう
秒で解決するから

photo = tk.photoimage(画像)
widget = tk.widget(master, image=photo)

185 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 06:33:41.40 ID:x7KPLs8u.net]
>>180
ありがとうございます
インスタンス変数周りについて理解しました

https://pastebin.com/XUdUcPEz

説明が複雑になってしまうと思い後出しになってしまったのですが、
ソースを短く手直ししてアップロードしました

今回はItemクラスにiconインスタンス変数を持たせて、ここにPhotoImageの戻り値を入れています
そしてItem.iconから、ラベルを作成しています

本当はラベル作る関数にItemクラスのリストを渡して作らせているのですが、
この書き方でも再現されました

よろしくおねがいします

186 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 07:11:21.68 ID:x7KPLs8u.net]
>>181
itemをLauncherのself.item_listに入れたら表示されるようになりました
Item.iconはインスタンス変数だったけど、itemが一時的な変数で開放されちゃってたのかな…

ただ関数を再帰呼び出ししている元のソースではこの手法でもだめでした
難しい



187 名前:デフォルトの名無しさん [2022/02/08(火) 07:53:09.80 ID:gLJTNggL.net]
いやだからワンクッション置けっつの
まず生成しろ
p = photoimage(i)
それを使え
w(image=p)

もっと単純なテストケースで試せ
上手くいく場合と、いかない場合の境界線を探せ

188 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 12:03:45.73 ID:Wt+Lt5co.net]
>>182
グローバルなリストなりなんなりにItemクラス全部ぶち込んでいけばいいだけ

189 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 21:50:34.21 ID:9OOJa9HQ.net]
クロージャとデコレータの違いが良くわかりません
どなたか猿でも分かるように説明お願いします

190 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 22:13:40.37 ID:8MdYtPVO.net]
>>185
なぜその2つが同じ(ようなもの)だと思ったのか理由を少し書いてくれない?

191 名前:デフォルトの名無しさん [2022/02/08(火) 23:31:00.76 ID:nzlDnO0s.net]
デコレータはクロージャで処理を追加する際の糖衣の認識

def logger(func):
__def inner(*args,**kwargs):
____print(‘start’)
____func(*args,**kwargs)
____print(‘end’)
__return inner

@logger
def add(x,y):
__print(x+y)

デコレータは↓を簡単に表記する

add=logger(add)

192 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 23:58:54.11 ID:x7KPLs8u.net]
>>184
ありがとうございます
とりあえず動くようになったのですが、多分色々な要因があって原因が特定できませんでした…
また明日以降原因を探ってみようと思います

193 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 00:58:23.86 ID:9lBFb0U2.net]
Windowsでパスのセパレータが混在する原因を調べていたら、tkinterが原因だった
filedialogとTkinterDnD2で発生するようだ

こんな感じで対応してみた
files = filedialog.askopenfilenames(filetypes=fTyp, initialdir = iDir)
files = [str(pathlib.Path(p)) for p in files]

なにかまずい点や、もっとスマートな書き方ありますか?

194 名前:デフォルトの名無しさん [2022/02/09(水) 08:57:49.87 ID:yefmpe+I.net]
スマートな書き方以前に、再代入するな。

195 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 11:31:16.02 ID:4FhfLNQw.net]
pipでcshogiというパッケージを入れようとしたら

cshogi/_cshogi.cpp:635:10: fatal error: 'init.hpp' file not found

というエラーになったのですが、何したらよいでしょう。
依存関係で怒られたCythonやnumpyは入れました。
Python3.9.6でmacOS12.2です。
ググってみると、boost/python/init.hppというのが見つかりましたが、C++のboostライブラリをいれなさいということでしょうかね、、、

196 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 11:35:44.94 ID:gJYxYm5I.net]
それソースからインストールじゃないか?
pip install cshogi
だけでいいと思う。試しにやったらほぼ素の環境で何のエラーもなく入ったぞ



197 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 11:44:04.48 ID:4FhfLNQw.net]
>>192
配布元のインストール方法を読んでもそんな気がしたし、多分そうだと思います。
が、私もpip install cshogiとしただけなんですよね。
venv環境下だからって、それも関係ないですよねえ。
あるいはM1マシンだから?と思ったけどintelマシンでも同じ、、、今晩から連休中にかけて、これを使って色々試そうとしてるので気になって仕事にならないです。

198 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 13:09:33.88 ID:4FhfLNQw.net]
>>193
Windowsとlinuxはバイナリ配布してるようなので、なんとかビルドするしかないみたいです
わざわざ試してみて頂いてありがとうございました。

199 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:18:07.67 ID:BADAjEq6.net]
>>190
初期化の直後でさえ禁止するのは流石に脳死では

200 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:47:52.14 ID:iY5PkkMN.net]
>>189
Windows のRuby で、フォルダをDrag & Drop した

Ruby では、File.expand_path で、
Windows のパス区切り \ を、/ に変換できる

\ を表示するために、\\ となっている

p ARGV[ 0 ]
#=> "C:\\Users\\Owner\\Documents\\あ"

puts ARGV[ 0 ]
#=> C:\Users\Owner\Documents\あ

p File.expand_path( ARGV[ 0 ] )
#=> "C:/Users/Owner/Documents/あ"

201 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 16:26:09.83 ID:4FhfLNQw.net]
>>194
もう出てこなくていいと言われそうだけど進展。
Boostライブラリをインストールして以下のようにしたら進展しました。こんなテクがあるとは。

env LDFLAGS="-L /usr/local/Cellar/boost/1.76.0/lib/" CFLAGS="-I /usr/local/Cellar/boost/1.76.0/include/boost/python/" pip install cshogi

今度はこのパッケージのposition.hppがないって言われたけど、またちまちま調べます。pipの仕組みを勉強しないといかんですね。

202 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 19:10:26.80 ID:OJhEklXT.net]
ctypes難しいな
memcopyが何故か超低速で困る

203 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 02:02:13.50 ID:EK9g6ENE.net]
pipに色がついててびっくりした

204 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 09:15:03.24 ID:puUJkgbn.net]
プログレスバーがオサレになったね

205 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 09:27:43.38 ID:Tgo9r7yk.net]
richがデフォルトになったってリリースノートに書いてある

206 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 20:11:51.82 ID:DDROH4gR.net]
ゲーム画面などが非アクティブでも、動作させることをPythonでやりたいです。
動作としては、ssupi+teseのようなものですが、
その仕組みも知りたいのですが、教えてください!



207 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 20:47:07.10 ID:Bfsj9FyQ.net]
https://pypi.org/project/icoextract/
EXEファイルからICOファイルを抽出したくてこれをインストールしたのですが、これって自分のコードでimportして使うライブラリじゃなくて単体のスクリプトですか?

208 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 21:34:58.76 ID:Bfsj9FyQ.net]
>>203
ダウンロードしたの開いたらオブジェクト記述されてて使えました

209 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 02:51:16.69 ID:79Vi/Nfi.net]
>>202
挙動からしてリモートプロセスにDLLをロードしてWin32APIかWinProcをフックしてると思う
PythonではDLLを出力できないので多分無理

210 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 03:00:35.80 ID:79Vi/Nfi.net]
SetWindowsHookExのCallWndProcフック(例外的にDLL要らない)はどうだったっけ?と思ったけど、このフックではメッセージを変更できませんって書いてあるから駄目そうだ
https://docs.microsoft.com/ja-jp/windows/win32/winmsg/about-hooks#wh_callwndproc-and-wh_callwndprocret

211 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 18:55:58.63 ID:Lg8I1vzk.net]
PyQtってtkinterのようにラベルに画像とテキストを一緒に表示することって可能ですか?
探してもそれらしきもの見つからなくて

212 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 21:06:34.36 ID:9UXBOAM+.net]
>>207
これでやりたいこと実現できない?

https://symfoware.blog.fc
2.com/blog-entry-2299.html

213 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 21:48:34.11 ID:Lg8I1vzk.net]
>>208
ありがとうございます
[画像]タイトル
[画像]タイトル
のようなリストを作りたくて、ページ拝見させていただきましたが少しイメージと違うかもしれません


かなり強引ですが、moveの絶対位置レイアウトで、ラベル2つをペアにする方法で実装してみました
https://pastebin.com/xSdLz5x7

pyqt、無理やりなら色々なことできそうですね

214 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 04:41:58.05 ID:OxHugf3n.net]
ttp://codepad.org/ZCf9omJq

クラス変数の初期化で「name 'NUM' is not defined」ってエラーが出るんだけど、何が原因なんだろうか?
Python 3.10.2 64bit なんだけど、構文間違ってないよね?

215 名前:Hルトの名無しさん mailto:sage [2022/02/12(土) 05:01:01.55 ID:OxHugf3n.net]
codepad.org/PRA31FBR

codepadだと問題なく動作するから環境なのかな
windows10+vscode+python3.10.2 64bit でだけ起きる固有の現象…?

216 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 07:42:00.42 ID:qCFMK4fY.net]
import sys
print(sys.version)

codepadはテンプレから外そっか



217 名前:デフォルトの名無しさん [2022/02/12(土) 09:07:50.55 ID:DNWolfIy.net]
>>209
PyQT知らんけど、一般的なGUIアプリ開発なら、
まずは、"[画像]タイトル"のクラスを作って部品化することを考えるもんじゃないの?

218 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 09:46:01.09 ID:5WRcTUV/.net]
>>213
ありがとうございます、その方向で作ってみます
PyQtはクラス継承で色々いじれるようなので楽しみです

219 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 10:11:14.01 ID:fCVp/cR1.net]
>>211
ideoneだと同じエラーが出るな
https://ideone.com/3rfxza

多分書き方的にはこうなるはず
https://ideone.com/bOR5p3

公式ドキュメントの所にほぼ同じサンプルで失敗する事例があるけど
そのコードと同じ
https://docs.python.org/

220 名前:3.10/reference/executionmodel.html []
[ここ壊れてます]

221 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 12:09:54.30 ID:OxHugf3n.net]
>>215
なるほどありがとう
この書き方がダメなのはわかったけど
クラス名.クラス変数 って書いても通らないし
__init__ でセットするとインスタンス生成のたびに実行されちゃうし困ったな

クラスごとに1回しか実行されないコンストラクタってないんだろうか

222 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 12:23:50.95 ID:DQy4vyYE.net]
こうしちゃうww

class test:
global NUM
NUM=64
POW=[pow(NUM,a) for a in range(0,5)]

223 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 13:02:31.30 ID:OxHugf3n.net]
>>217
それクラス内変数じゃなくなっちゃってる…

一応できたけどこういう方法しかないのかな
インスタンスを生成するまで初期化されないのが気持ち悪いけど仕方ないか
https://ideone.com/kCp5Yq

224 名前:デフォルトの名無しさん [2022/02/12(土) 13:32:52.88 ID:qcs4WmEG.net]
何でインスタンス変数じゃダメなの

225 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 13:53:20.84 ID:DQy4vyYE.net]
a = test()
a.output()

b = test()
b.output()

こうしたときにインスタンス変数だとpowをaつくるときとbつくるときの二回実行しちゃう
powぐらいだったらいいけど、重い処理だったら・・・
ってことじゃないかな
class内にstatic変数おけたらいいんだけどないのかな

226 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 14:11:19.51 ID:qCFMK4fY.net]
クラス定義しているモジュールの変数にすれば間に合う気もするけど
classmethod/staticmethodにするかメタプログラミングするかしか



227 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 14:30:51.17 ID:KYIWQrD2.net]
>>218
内包表記やジェネレータ式がクラス直下ではクラス変数を参照できないというだけなので
list(map(pow, itertools.repeat(NUM)…とかfor文+appendとか…で良いんじゃない?

2なら関係無く動くけど、nonlocal文とか出来た割にこんな罠があるとは

228 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 14:56:50.33 ID:5pn6K0Tu.net]
test.POW=[pow(test.NUM,a) for a in range(0,5)]
ってのをクラス定義の下にインデントなしで書けばいいんじゃないの
なんか問題ある?

229 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 15:50:52.05 ID:OxHugf3n.net]
>>219
動的に何万と作っては捨て続けるので
いちいちインスタンスごとに持ちたくないんだ

230 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 15:52:47.87 ID:OxHugf3n.net]
>>223
継承クラスを作ったときに初期化を忘れそう

231 名前:デフォルトの名無しさん [2022/02/12(土) 19:13:13.57 ID:dzEAJuso.net]
vscodeでflake8を使っていますが、メソッドの後ろに()を書かなくても警告してくれません
これを警告してもらう方法ってありませんか?

232 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 19:21:22.02 ID:qCFMK4fY.net]
型ヒント書いてこ

233 名前:デフォルトの名無しさん [2022/02/12(土) 19:38:11.77 ID:dzEAJuso.net]
メソッドだけでなく関数でも、例えば
print
と書いただけで()をつけないまま改行しても警告してくれません

234 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:04:13.67 ID:Sz70mZLP.net]
関数オブジェクトが置いてあるのはおかしなことではない
コールバック関数に関数食わせるたびにケイコクサレタラ溜まったもんじゃない

235 名前:デフォルトの名無しさん [2022/02/12(土) 20:06:20.66 ID:XbUiA07Q.net]
myprint = print
myprint('woooo!!!!!!')

236 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:06:57.27 ID:Sz70mZLP.net]
関数オブジェクト食うのは高階関数か。
とにかくコールしなくても使い道はある。



237 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:19:30.83 ID:995Y4clk.net]
flake8、すごいね
お前のコード汚すぎる!ってたくさん言われた
自分の環境ではprint(とかなってたら警告されます

238 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:28:51.81 ID:XcSi1DQ3.net]
aa = print
のように代入するのはあり得るけど
print
だけってありえるの?
pythonだと実行時のエラーすら出ない

ほかの言語だとこういうのあり得ないからIDEに警告表示出るよな

239 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:43:06.60 ID:Sz70mZLP.net]
文字列を直置きしてdocstringにしちゃうような言語だしなぁ
pydroidだとstatement seems to have no effectの警告が出る

240 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 21:19:26.94 ID:Tm8PqFX/.net]
202です。
>>205さん
そうですか…。出来ないのは残念ですが、教えていただきありがとうございます。

241 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 21:33:52.67 ID:40whDPBS.net]
>>226
ちゃんとファイルを保存してる?
Pylance何かと違って、保存前には動作しないよ

242 名前:デフォルトの名無しさん [2022/02/12(土) 21:56:57.57 ID:dzEAJuso.net]
>>236
はい、保存してます
警告もでないし実行してもエラーも出ずスルーされるだけです
pythonはこういうもんなんでしょうか?

243 名前:デフォルトの名無しさん [2022/02/12(土) 22:07:27.93 ID:kBzBXJs5.net]
RustとHaskellは、コンパイルを通った時点でバグが無いことを保証されると主張してますね。
Pythonに限らず、その他の言語は、まあそういうもんでしょう。

244 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 22:32:52.77 ID:40whDPBS.net]
>>237
代わりにpylintを使えばエラーを出せるよ
ただ、ちょっと細かすぎて例外設定で除外しないと煩わしいことになるけど

245 名前:デフォルトの名無しさん [2022/02/12(土) 23:41:28.59 ID:za8M83yS.net]
>>233
関数オブジェクト理解してる?

246 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 00:14:22.17 ID:ckMeWHs6.net]
>>240
そういう返しが来るってことは print ってだけの使いかたもあるってことなのか



247 名前:デフォルトの名無しさん [2022/02/13(日) 04:55:00.94 ID:sMX7fMbN.net]
上でも言われてっけどtkinterのeventとか
x.bind('<1>', print)
みたいな例はいくらでもある

248 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 07:06:20.17 ID:18RMiGPm.net]
233はなんの副作用もないステートメントの話をしてるだろ
それ副作用あるじゃん

249 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 09:46:47.61 ID:X4ZyWjWq.net]
こんな文字列を直置きしてdocstringにしちゃうような言語をやってると、引数に渡されてスタックに積まれる関数オブジェクトと特に作用のない関数オブジェクトの違いが理解できなくなるぞw

250 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 13:12:28.71 ID:ckMeWHs6.net]
>>242
それは a=print と同じ使いかたでしょ

251 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 13:27:15.78 ID:yoBtg/nD.net]
>>233
> ほかの言語だとこういうのあり得ないからIDEに警告表示出るよな
C言語でも同じだよ、文法的には問題ない
ただ意味がないから大抵の処理系で>>234が書いてるような警告は出るけどエラーではない

252 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:21:12.09 ID:yB05jN77.net]
関数へのながーい引数を変数に入れて渡すことってできませんか?


args = text="テキスト", img="img.png", color="#FFFFFF"
makeItem(args)

みたいな感じです

253 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:34:48.08 ID:yB05jN77.net]
>>247
自己解決しました

args = {"text": "テキスト", "img": "img.png", "color": "#FFFFFF"}
makeItem(**args)

254 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:42:58.98 ID:PEAS4D91.net]
>>248
すごい細かいけど、辞書を渡す際はkwargsを仮引数にするのが暗黙のルールだったりする

255 名前:デフォルトの名無しさん [2022/02/13(日) 18:20:42.99 ID:MWit14K9.net]
PythonでリストH=[a[2][3], a[5][7]]
を与えた後
H[0]を呼び出すとa[2][3]が返ってきますが、このx座標、y座標である2と3を返す関数はどう作られますか?

256 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:30:07.26 ID:jfCaeP/j.net]
b = a[2][3]
c = a[5][7]
H = [b, c]
という評価を一行で書いてるだけなので
Hの時点だともうその情報はない



257 名前:デフォルトの名無しさん [2022/02/13(日) 18:49:18.90 ID:MWit14K9.net]
>>251

ありがとうございます。
ではx座標とy座標を呼び出すにはどうしたら良いでしょうか?

258 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:55:51.07 ID:qU7qP4LH.net]
よくわからないんだけどH[0]を呼び出すとa[2][3]が返ってくるなら
tmp = H[0]
x = tmp[0]
y = tmp[1]
になるんじゃないの?

259 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 19:05:34.35 ID:4NLUjdRo.net]
Pythonのサンプルコードでは
from hoge import piyo
import hoge
のような記述をよく見ます
これは行儀が悪いように見えますが、Pythonでは問題のないことなのでしょうか

260 名前:デフォルトの名無しさん [2022/02/13(日) 19:14:02.30 ID:ZyRs1D7f.net]
>>250
座標もセットにしてリスト化する
H=[(a[2][3],(2,3)),(a[5][7],(5,7))]

261 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 19:57:37.82 ID:yB05jN77.net]
>>249
勉強中なので細かいこと大歓迎です、ありがとう

262 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 20:51:30.91 ID:JnTPIF3C.net]
>>252
欲しいの座標でなく次元では?

263 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 20:54:22.96 ID:JnTPIF3C.net]
すみません >>257 は読み間違いなので無視してください

264 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:09:57.57 ID:yB05jN77.net]
メンバー変数「__name」を持つ「Human」クラスがあったとして、
これを継承した「HyperHuman」クラスは、
継承元の「__name」を参照できないんですか?

クラスの外から参照しないメンバ変数を__付きにしまくったら継承先で参照できなくなってしまった

265 名前:デフォルトの名無しさん [2022/02/13(日) 21:18:20.00 ID:MWit14K9.net]
>>253
すみません、
うまく行きませんでした


>>255
ありがとうございました、思考によって問題を回避出来ますね。私に欠けていたのは問題に食らいつく精神力でした。

266 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:23:23.11 ID:+cgrIz8j.net]
>>254
俺もこれ気持ち悪いわ
誰かスッキリさせてくれんか



267 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:54:36.39 ID:yB05jN77.net]
>>254
import xxx only zzz
みたいにしてほしかったよね

268 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 22:11:57.52 ID:jfCaeP/j.net]
>>262
xxx.zzz以外のxxx.*参照できない状態を保持するのめんどそう

import xxx
zzz = xxx.zzz
と書けるしfrom import自体いらんなら分かる

269 名前:デフォルトの名無しさん [2022/02/13(日) 22:23:48.09 ID:nVrhNNmO.net]
>>259
そのままの名前ではできない
継承先から別の名前で山椒できる
self._Human__name

https://ideone.com/9xMJkE

270 名前:デフォルトの名無しさん [2022/02/13(日) 22:25:44.83 ID:nVrhNNmO.net]
s/山椒/参照

参照の育て方調べてたからミスった

271 名前:デフォルトの名無しさん [2022/02/13(日) 23:42:00.06 ID:n9deEbJE.net]
>>264
できるけど
わざわざ__してるのを呼び出しちゃうのかーいって気はするなw

272 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 00:04:11.74 ID:BHqD30LB.net]
>>264,265
そのタイポの仕方がちょっと笑える
「参照の育て方」はツボったよw

273 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 01:00:25.73 ID:a1vo03Tu.net]
super関数使う方法ってなかったっけ

274 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 06:51:44.54 ID:E8yArpIy.net]
>>264
ありがとうございます
変数名自体が変わってアクセス防いでるのかあ
同じ継承先からは参照したいので、_一個にしておきます

275 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 07:03:17.01 ID:t59hyUv0.net]
if os.path.exists(p):
をpathlibで書き換える場合、
if p != "" and Path(p).exists():
で完全に同じになりますか?
空文字以外に注意しなければいけないものありますか?

276 名前:デフォルトの名無しさん [2022/02/14(月) 09:12:46.38 ID:EEHmhlKD.net]
空文字判定要る?



277 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 09:19:17.38 ID:t59hyUv0.net]
>>271
空文字判定しないと、空文字のとき Path(p).exists()がTrueになる
空文字はpathlibで "." として扱われるみたい

278 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 10:03:53.41 ID:SdWG8Yth.net]
pが文字列なら同等とあるけど
https://github.com/python/cpython/blob/main/Lib/test/test_os.py
https://github.com/python/cpython/blob/main/Lib/test/test_pathlib.py
テストコードの範囲内で使うのが無難

279 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 10:43:07.13 ID:TVm+ejPZ.net]
富士通「年収3500万円」の衝撃 ソニー、NECも戦々恐々の「グローバル採用競争」

「富士通年収3500万!」日本のIT企業の年収も、高額化してきました

ゼロから起業するよりも事業承継(小さな会社の買収)が圧倒的に有利である3つの理由

「エース人材だって起業OK」、NECは挑戦者が集う場をつくる

NECなど「出向起業」 大企業人材、起業しやすく

IHIが副業解禁、人事制度で他の重工大手を先行する狙い

カルビー/国内社員3900人を対象に副業解禁

280 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 11:25:14.57 ID:QXoUwWbT.net]
>>272
ひでー。そんな地雷関数使いたくないな

281 名前:デフォルトの名無しさん [2022/02/14(月) 11:35:18.27 ID:LyAfGJhX.net]
どのシステムでも何も渡さなければ現在のディレクトリとして処理するだろ

282 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:03:25.17 ID:QXoUwWbT.net]
c#のsystem.io.file.exists()やdirectory.exists()、winapiのfindfirstfile()(ディレクトリの存在確認もできる)
どれも空文字は失敗するよ

283 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:46:17.43 ID:yQZmxBH4.net]
スクレイピングする際にlxmlでhtml内に任意のcssセレクタが含まれてればtrue、含まれていないときはfalseを返すことってできますか?

284 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:59:49.50 ID:SdWG8Yth.net]
>>277
パスはpathlibへの引数でexists()の引数じゃないんよ

285 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:05:45.54 ID:HOsCpiZ6.net]
Ruby では結論としては、空文字列と、. で同じ結果になる

require "pathname"

p path = Pathname.new( "" ) #=> #<Pathname:>
p path.to_path #=> ""

p path_ab = path.join( "a/b" ) #=> #<Pathname:a/b>
p path_ab.to_path #=> "a/b"

# --------

p path_2 = Pathname.new( "." ) #=> #<Pathname:.>
p path_2.to_path #=> "."

p path_2_ab = path_2.join( "a/b" ) #=> #<Pathname:a/b>
p path_2_ab.to_path #=> "a/b"

286 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:25:01.55 ID:T1NsaTsY.net]
おう落ち目の言語の話は聞いてねえぞ



287 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:44:26.39 ID:cFSy1VCv.net]
>>280
それ同じじゃないぞ

288 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 14:14:19.21 ID:7Dm4+XiT.net]
>>280
1嫁😡

289 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 15:21:21.44 ID:OJkUcli+.net]
>>250
私も初心者なのでアドバイスなどおこがましいのですが...
class作るのが簡単かと...
class a(object):
  value=[[0,1,2,3,4,5],[0,2,4,6,8,10],[0,3,9,12,15]]
  def __init__(self,x,y):
    self.x=x
    self.y=y
  def ans(self,x,y):
    return(a.value[x][y])
  def xy_ans(self):
    return((self.x,self.y))

H=[a[2][3], a[5][7]]
hoge=H[0].xy_ans()

290 名前:デフォルトの名無しさん [2022/02/14(月) 15:23:55.60 ID:OJkUcli+.net]
まちがいました。
最後から2行目は
H=[a(2,3), a(5,7)]です。(5,7)でエラー出ますけど...

291 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 17:38:13.29 ID:t59hyUv0.net]
>>273
情報ありがとうございます。
テストコード長い・・・
空文字以外は気にしなくていいと思い込むことにしよう

292 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 07:19:17.06 ID:MKfHEQkf.net]
GUI(tkinter)からyt_dlpで動画ダウンロードするものを作っていたのですが
Visual Studio Codeから実行した場合正常に処理できました
直接実行するとエラーになりました(拡張子pyw)
拡張子をpyに変えると直接実行しても正常に処理できました

一般的に拡張子pywで正常に処理できるかを実行せずに判断する方法ありますか?
あるいは、拡張子pywでも正常に処理する方法ありますか?

今回のPGMはsubprocess.runを使わずに
with YoutubeDL(ydl_opts) as ydl:
____result = ydl.extract_info(youtube_url, download=True)
のような形式で呼び出しています

293 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:10:26.60 ID:U1LhfB3E.net]
たまに以下のようなミスをしてしまうのですが、これを防ぐor容易に発見する
にはどうしたらいいでしょうか。

foo=default_value
if a_condition:
  boo=new_value # 本当はfooを更新したかったがbooとミスタイプした

# -> あれ、fooの値が変更されてない、みたいな

294 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:14:04.17 ID:jBoRoSxS.net]
考えて名前つける

295 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:23:08.93 ID:Hej5n2W4.net]
>>288
関数化 or if-else

296 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:45:57.03 ID:dhf8je8S.net]
>>288
if a_condition:
  old_foo=foo
  boo=new_value
  if old_foo == foo:
    raise ValueError("error!")



297 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 09:05:32.17 ID:W7tQrrGw.net]
>>288
VS code

298 名前:デフォルトの名無しさん [2022/02/16(水) 09:52:08.68 ID:aoiSu09N.net]
pylanceさいつよ # type: ignore

299 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 11:39:04.96 ID:YEGQLb4J.net]
pylanceってパイランスって言うんですか? 昔「だっちゅーの」っていう女の子二人組が...

素朴な疑問ですが、補完機能があるようなものを使うとして、上記の場合にbooが
間違いであることはどうやって分かるんでしょうか。もし同じスコープ内にbooという
変数が既にあった場合、booとタイプするのを間違いとは断定できないのでは...
もしbooがなかったら、「プログラムに影響を及ぼさない変数をいじってんじゃねーよ」
というツッコミは可能だと思いますが。

300 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 11:54:00.21 ID:1mMAv7cD.net]
そりゃ重箱の隅を突き始めたらすり抜けるケースなんていくらでもあるよ
もともとコードとして合法なんだもん

301 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:23:29.89 ID:jBoRoSxS.net]
>>291 だってold_booとか書いたら一緒だからね
もうコンパイラ言語を使えば

302 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:26:03.04 ID:DXO0iyBK.net]
type hints書かないの?(書き捨てのぞく)

303 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:29:48.85 ID:tzGoh0bw.net]
エディタが人間のやりたいことを理解できる時代になったら検出できるんじゃない?

304 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:30:41.98 ID:tzGoh0bw.net]
怪しい部分にはassert文挟むとか、291みたいにエラー吐かせるのが基本じゃないか

305 名前:デフォルトの名無しさん [2022/02/16(水) 13:11:53.73 ID:1hjdKt99.net]
根本的に、1文字ミスって別の変数にアクセスできちゃう書き方というか、その命名規則や設計思想は良くないね
動けば何でもいーじゃんとか言って後々にツケが回るやつだ

306 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 14:37:06.42 ID:m8Y8zgQ2.net]
>>287
print()とかのコンソールを前提とした戻りを
拡張子pyのときに限定しないと行き場がなくてエラーが出るんじゃない?



307 名前:デフォルトの名無しさん [2022/02/16(水) 14:51:55.36 ID:w27+Spzi.net]
エラーメッセージくらい貼ろうぜ

308 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 14:56:01.74 ID:m8Y8zgQ2.net]
no_consoleモードだと、エラーメッセージがそのままでは拾えないような

309 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 17:10:08.13 ID:MKfHEQkf.net]
>>301
別のプログラムで、pywからImageMagickt等10種以上をsubprocess.runで呼び出して、
no_consoleモード実行してるんですがエラーになったことないです。
pythonのprint()もエラーでたことないです。

310 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 17:11:35.95 ID:MKfHEQkf.net]
>>302
エラーがうまく拾えなくて困っています。

311 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:22:07.26 ID:m8Y8zgQ2.net]
>>304
内部的にurllibを使ってると、with as 構文ではうまく動かなかったこともあるので、
ydl = YoutubeDL(ydl_opts)
result = ydl.extract_info(youtube_url, download=True)
ydl.close()
あたりではどうかな?

312 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:37:50.26 ID:MKfHEQkf.net]
>>306
やってみました
結果は変わらず。
ydl.close()はエラーになったのでコメントアウトしました

313 名前:デフォルトの名無しさん [2022/02/16(水) 18:38:50.39 ID:5G/Gik2e.net]
>>305
そうなのか
ちゃんと読まずにすまん

314 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:51:18.67 ID:m8Y8zgQ2.net]
>>307
try-exceptでエラーをtkinterのメッセージボックスに表示してみたけど、
no_consoleモードの場合だけNoneTypeエラーが出るねぇ

315 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:55:08.31 ID:WMJtWX4E.net]
stdoutとstderrをファイル出力にしないといけないんじゃないの

316 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 19:28:07.20 ID:MKfHEQkf.net]
>>310
with (redirect_stdout(open(os.devnull, 'w')), redirect_stderr(open(os.devnull, 'w')), YoutubeDL(ydl_opts) as ydl):
____result = ydl.extract_info(youtube_url, download=True)

でno_consoleモードで正常に処理できました。ありがとうございます。

どなたか、no_consoleモードかどうかの判定の仕方教えてもらえませんか?
拡張子での判定は、Visual Studio Codeから実行した場合に支障がでるので



317 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 19:43:49.72 ID:y2cKuBOG.net]
>>311
https://docs.python.org/ja/3.5/library/sys.html?highlight=stdout#sys.__stdout__

318 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 19:44:45.60 ID:y2cKuBOG.net]
https://docs.python.org/ja/3.10/library/sys.html?highlight=stdout#sys.__stdout__
すまん最新版だと日本語訳あった

319 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 20:30:23.86 ID:v91aidV3.net]
インタープリター名で判定
mode = 'no_console' if 'pythonw' in os.path.basename(sys.executable) else 'console'

320 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 20:54:59.81 ID:MKfHEQkf.net]
皆様ご助言ありがとうございました。
no_consoleモードの判定は、sys.__stdout__ にしました。
sys.executableではexe化したときに判定できないことがあるらしい

321 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 21:25:03.60 ID:MKfHEQkf.net]
>>315
訂正
sys.executableではexe化したときに判定できるのか知らない

322 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 03:14:44.34 ID:1NrfTGml.net]
メソッドに渡した文字列をstripしようとしたらnonetype errorが起きた
そこで関数内でその文字列変数をprintしたらちゃんと出力された
何が理由のエラーなのかさっぱり分からん
ただのバグか?

323 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 08:28:12.79 ID:MYDromrM.net]
ただのバグだね

324 名前:デフォルトの名無しさん [2022/02/17(木) 09:41:57.71 ID:3vu7PZHI.net]
なんでもばぐにすんな、気合いが足りんだけだろ

325 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 10:01:06.02 ID:X0cMMW0O.net]
print(repr(変数))

326 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 10:23:08.88 ID:Xo3IV4af.net]
とりあえずこれでも嫁
https://mitani.cs.tsukuba.ac.jp/book_support/python/python_slides.pdf



327 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 10:29:14.55 ID:SQ5bCrsi.net]
stripしたいのにnonetype errorになるのがバグじゃなかったらなんなんだよw
ただのバグだじゃん

328 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 14:37:46.34 ID:1NrfTGml.net]
>>321
ウィルス?

329 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 14:48:19.01 ID:X0cMMW0O.net]
筑波大ドメインやぞw
開けなくてもニュースになったあの教材ってわかる

330 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 15:16:35.70 ID:dQiouJUG.net]
元の値(文字列)をきちんと拾えるようにすればいいだけじゃないのか?

331 名前:デフォルトの名無しさん [2022/02/19(土) 09:02:00.81 ID:44TdCCHX.net]
画像の境界線をimagechops.difference().getbbox()で検出するとき
境界線付近にjpg圧縮由来のぼんやりノイズがあって、少し大きめのbbox取得しちゃうとき
どうやってノイズ突破するのがよいでしょうか?

画像黒、背景白、ノイズはだいたい10%グレー前後です
目を凝らさないと見えないんだけど、differenceの感度が高すぎて拾っちゃう感じ

332 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 11:06:37.60 ID:R5yjbcGL.net]
>>326
言語などの話題ならわかるけど
個々のアルゴリズムはpython由来のものじゃないからNGだと自分は思う

333 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 11:2 ]
[ここ壊れてます]

334 名前:5:23.85 ID:hDmnOZdm.net mailto: シャープとか二値化とかそんな前処理してからbboxすれば? []
[ここ壊れてます]

335 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 12:13:56.94 ID:Bncv98Zm.net]
モスキートノイズってやつ?
バイラテラルフィルタをopencvで50回くらい連打すればいけそう

336 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 07:06:50.82 ID:tPTlXWXv.net]
python2から3で、/ (割り算)って常に浮動小数点になりました? ね?
4/2=2; 5/2=2 (python2), 4/2=2.0; 5/2=2.5 (python3)

古いスクリプトをメンテしていたら、結果がおかしかったので... これはどうしたら。
// だと整数(部分)になるようですが、ぱっと見変数の中身が整数なのか浮動小数点
なのか明らかでない部分もあり。



337 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 08:32:24.50 ID:1BCnZvzG.net]
常にintでかこめw
a = int(5/2)

338 名前:デフォルトの名無しさん [2022/02/21(月) 08:47:28.69 ID:c97x3Gxx.net]
> ぱっと見変数の中身が整数なのか浮動小数点
なのか明らかでない部分もあり。
type hint付けたら?

339 名前:デフォルトの名無しさん [2022/02/21(月) 19:21:20.87 ID:T/Qg+a/K.net]
複数店舗のレシートの画像データから消費税率ごとの金額をpythonで抽出する具体的な方法をどなたかご存じでしたらお教え頂けないでしょうか?
レシートへの記載方法は機械での印字、位置や内税、外税、合計金額などのフォーマットは不定となります
よろしくお願いします

340 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 19:22:42.41 ID:rSxedOK0.net]
int(a/b)とa//bは挙動が違うから注意がいるよね
とはいっても挙動変わる桁までそんな使わないけど

341 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 19:30:48.33 ID:9+weaIl8.net]
>>333
適当な業者に見積もりだしたらわかるけど難易度高いよ
そのために有料のプログラム部品やクラウドサービスが各社からでてる
日々更新せんとあかんし↑を提供する側じゃないかぎり割りに合わない

342 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 19:48:55.17 ID:i5JttRhR.net]
>>333
AIでエリア認識(yoloなど)と数字読み取り(どんなでも)でやればいい
画像=フラッドスキャナ読み取りで歪み傾き限定的だったらAI使わなくてもピクセル読んでく力業でなんとかなる
ただフォーマットが本当に不定(どんな店のかわからない)だったら力業じゃむり

自分で作るなら手動入力前提で入力支援機能に徹する方が現実的だよ

343 名前:デフォルトの名無しさん [2022/02/21(月) 21:12:01.60 ID:ytqVjd2E.net]
揺れるならAI使うしかなかんべ
まず1000枚くらいを人力でデータ化し
静止画とあわせて学習させる
あとはカメラ転送python受け、内部計算pandasかdbに登録ね

344 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 21:46:18.49 ID:tPTlXWXv.net]
>>331
むしろ浮動小数点の答えを期待してるっぽいところもあるので単純ではなかったり

>>332
やるにしても既存のコードが結構ありまして

>>334
とりあえず前者は常に整数ですが後者は中身によりますよね。
数値表示が2から2.0になったりしても、問題ですね。

結論: めんどくさい... って感じですかね

345 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 21:54:14.38 ID:n//MgrTx.net]
>>338
違うよ、前者も後者も常に整数だけど前者は整数になる前にfloatを挟むので桁数が大きいと計算精度が保証されなくなる
a = 123456789012345678
b = 10
print(int(a/b))
print(a//b)
これ試してみるといいよ

346 名前:デフォルトの名無しさん [2022/02/21(月) 22:29:55.05 ID:ytqVjd2E.net]
//が場合によるってどこで聞いたんだよ…
そんな知識の精度でintとかfloatとか気にしてる場合じゃないぞ



347 名前:デフォルトの名無しさん [2022/02/22(火) 06:29:15.92 ID:i2wW6eRB.net]
>>335,336,337
やはりaiが必要など難易度高そうですね
ありがとうございました

348 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 07:30:32.17 ID:Y8t1jQH1.net]
回転しない前提なら投影で位置を推測するんですけどね

349 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 09:47:30.08 ID:ecVw6j+6.net]
enumerateで取得した番号がずっと1だ
なにがどうなってる

350 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 10:28:20.65 ID:ecVw6j+6.net]
forの中にforがあって両方iだった

351 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 19:24:47.19 ID:RI+NKERl.net]
iniファイルを読み込むときに、

[GENERAL]
ABZ=tanaka
ABG=satou
AUQ=hououin
〜〜〜〜

みたいな羅列の長い内容を読み込むときに、ABZとかAUQとかコード内で指定せずに勝手に読み込んでその名前で変数化することは可能ですか?
読み込むだけで大変な長いコードになってしまった

352 名前:デフォルトの名無しさん [2022/02/23(水) 19:50:37.90 ID:A+TpIAUX.net]
辞書使う方が良い

353 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 19:55:47.48 ID:RI+NKERl.net]
>>345
cfg = configprrser.Configperser()
cfg.read(path)
return dict(cfg.items("GENERAL"))

って辞書にする書き方ができました

354 名前:デフォルトの名無しさん [2022/02/25(金) 20:56:48.33 ID:GIHvsxbC.net]
K=9
T=0
import numpy as np
a[T]=np.zeros((K,K))



print(a[T])

aが定義されてませんと言われましたがどうやって回避すれば良いでしょうか?

355 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 20:57:59.34 ID:xQz6a/12.net]
なかなか不思議なことやってんな

356 名前:348 [2022/02/25(金) 21:18:24.60 ID:dMzxkvQR.net]
どうしたら良いでしょうか


aを定義しろと言われてもaはゼロ行列だと思うのですが



357 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 21:24:04.00 ID:21E+Zf1q.net]
>>348
aを定義すれば回避できるよ

358 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 21:34:05.55 ID:uvlAEAIe.net]
a[T]=np.zeros((K,K))
てことは
a[T]
np.zeros((K,K))
とりあえず両方評価できないと始まらないので個別に評価してみる。(Kは明白なので省略)
>>> a[T]

NameError: name 'a' is not defined

359 名前:デフォルトの名無しさん [2022/02/25(金) 21:51:43.98 ID:jsx2tRyk.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw

360 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 22:03:11.98 ID:Dt5oOUOb.net]
>>350
なぜaを定義してないのにゼロ行列だと思ったん?
a=[]
a[T]=•••
ならいけるやろ

361 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 22:18:07.65 ID:uvlAEAIe.net]
>>> a=[]
>>> a[T]
IndexError: list index out of range

初心者スレたのしいね

362 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 00:37:43.56 ID:BMq+AkmN.net]
このレベルでnumpyとか手を出さなくていい

363 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:10:40.38 ID:0W3q9eVZ.net]
プログラム的な事マジでド初心者の俺に教えてくれ
AとBのボタンを作って押下した時の挙動を書く時とかのこのボタン?フォーム?の事ってなんて言うの

364 名前:
VBAならUserFormとかで適当に作ったりしてたから似たような感じで簡単なソフト作れるんじゃないかと思ったが、調べても良く分からなんだ
[]
[ここ壊れてます]

365 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:23:42.20 ID:bVNtHGMl.net]
「python gui 方法」みたいにぐぐれば色々ヒットするよ
pythonにこだわりないならc#とかほかの言語の方がウインドウ作ってとかはやりやすいと思う

366 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:59:06.52 ID:wx7c3FZV.net]
>>357
俺も初心者だけどイベントハンドラーとか?



367 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:59:13.72 ID:wx7c3FZV.net]
違うかw

368 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 18:14:31.40 ID:69L5Q9UW.net]
guiって言うのか
やれそうな気してきた、ありがとう
そんなに難しい事をするつもりはない(出来る気もしない)から言語に拘りはないけど、どうせ触るなら時代に乗ってそう?で分かりやすそうなのが良いかなぁと

369 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 18:36:02.89 ID:xS/SyeLk.net]
pythonをざっとやってdjangoかなあ

370 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 21:08:07.66 ID:pRyvkJpa.net]
GUIって意外と難しいぞ
非同期処理なんとなくわかる程度まで行かないと厳しい
ボタン置くだけならJavascriptが一番楽
ブラウザとテキストエディタがあればいい。

371 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 21:50:25.88 ID:bHtz5ue8.net]
GUIだけならdelphiとかどうだ?

372 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 22:04:11.64 ID:wj1ibNBr.net]
20年前ならまだしも今delphiは・・・

373 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 10:34:45.08 ID:nn6oofM8.net]
>>357
わしも初心者ですが...
ボタンとかプルダウンメニューとかマウスを使う前提の環境 = gui
ボタンとかの部品 = ウィジェット
それらを使うためのサブルーチン群 = guiツールキット
ボタンが押されたとかの出来事 = イベント
ボタンとか配置するソフト = guiデザイナ

pytyonはguiツールキットが多すぎるぐらい恵まれてます。
わしはpyqt5使っております。ほかはtkinter、WxPython、pygtk、Kivy が有名。
でも意外と楽ちんなデザイナが少ない気がします。
pyqtのqtデザイナ、tkinterのPAGEが使いやすいかと思います。

374 名前:デフォルトの名無しさん [2022/02/27(日) 19:13:19.38 ID:EPp3U+v4.net]
guiキット恵まれてんのにexe配布が絶望的…
頼むからpyinstallerちゃんダイエットしてくれや

375 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 19:29:40.89 ID:6fl1teDT.net]
最初からexe配布が視野に入ってるなら
処理的にどうしてもpython必須ってんじゃない限り
別の言語使った方がいい

376 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:23:29.75 ID:w26qCfYC.net]
>>368
ホントそれ



377 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 09:01:21.60 ID:10TVIxo2.net]
>>368
今のところそんな予定は全くないんだけど、
例えば何の言語だと便利なのがあるの?

378 名前:348 [2022/02/28(月) 12:02:04.82 ID:nBtp+f0s.net]
皆さまありがとうございます、皆様のおかげで問題は解決しました

379 名前:デフォルトの名無しさん [2022/02/28(月) 15:17:54.00 ID:nBtp+f0s.net]
https://atcoder.jp/contests/abc241/tasks/abc241_a

この問題で、


i=0
A=[]
B=[]
for i in range(10):
#### list assignment out of range が次の行で出る
B[i]=input('A[i]を代入してください')
A[i].append(int(B[i]))
if A[i]<= 9:
i +=1
else :
B[i]=input('もう一度A[i]を代入してください')

print(A[A[A[0]]])


何がout of range なのでしょうか?

380 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 15:32:20.23 ID:UX0HcLa3.net]
B=[] ←要素数ゼロで初期化
B[i]= ←i番目の要素に代入。だから要素数の範囲(レンジ)からアウトしてる

381 名前:デフォルトの名無しさん [2022/02/28(月) 16:29:27.67 ID:nBtp+f0s.net]
>>373
ありがとうございます、
つまり最初に有限この要素のリスト
B=[0,0,0,0,0,0,0,0,0,0]を作っておいて後からそれらの値に代入すれば問題は解決されるのでしょうか?それが一番いいやり方でしょうか?

382 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 17:08:39.69 ID:BVEEYcFL.net]
>>374
コードがおかしい上に、C++って書いてあるけど。
https://atcoder.jp/posts/37

383 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 17:23:45.04 ID:BjQFST3O.net]
>>374
数字が1個ずつ渡されると勘違いしてる前提だとしても
Bをリストする意味ないしi = 0 や i += 1するのも意味がないよ

入力は1行で10個の数字が渡されるから
直接splitして各要素を数値にしてlistとして変数に代入すればいい

384 名前:デフォルトの名無しさん [2022/02/28(月) 18:22:56.81 ID:uUgrFe+p.net]
自己解決しました
ありがとうございます

385 名前:デフォルトの名無しさん [2022/02/28(月) 18:24:43.32 ID:7jUXLESA.net]
>>376
ありがとうございます

386 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 19:33:18.82 ID:QtV0mrZw.net]
このタイプの入力はいつも内包表記でやってるな
a = [int(i) for i in input().split()]



387 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 07:16:31.85 ID:8HE09WEK.net]
パイソン学べばアプリ作れると思ってはじめてみたけど
パイソンは言語のひとつであってそれだけではアプリを作れないんだね

388 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 07:48:40.95 ID:OUtPpYxS.net]
すまんが日本語で話してくれんか

389 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 08:15:47.03 ID:rKWo9dcG.net]
Pythonのライブラリも学べば、限界はあるが色んなアプリが作れるど

390 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 08:33:59.79 ID:aeRvHbuv.net]
デスクトップアプリはあまり作り易くないな
tkinter使えばいいけど

391 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 09:47:11.96 ID:nY7C5f4n.net]
>>380
そうだよ
Pythonに限らず言語学んだだけではアプリは作れないよ

392 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:14:51.79 ID:aeRvHbuv.net]
むしろサーバー設置してそこでブラウザ経由で動くアプリ作るのが一番いい

393 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:16:01.62 ID:FpudFrD4.net]
>>384
> Pythonに限らず言語学んだだけではアプリは作れないよ
これは正しいけど
> パイソンは言語のひとつであってそれだけではアプリを作れないんだね
とは違う話だろ

394 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:36:06.98 ID:FuAp7249.net]
奥が深い話だな
というか考えるレベルによって変わる
バカなこと言えば、phthonマスターしてても端末やOS電源なんかが必要だから、pythonだけじゃアプリを作れない
多少まともなこと言えば、C++マスターしててもWin32APIなど知らないとWindowsGUIアプリ作れないみたいに、アプリ作るには言語以外の知識も必要になる

395 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:47:23.71 ID:xsw3hO9n.net]
めちゃくちゃ浅い話やないかーい!

396 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:11:01.13 ID:cMGuQY9h.net]
アプリっていうのはGUIアプリのことかな?
CUIだって立派なアプリよ



397 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 12:19:45.24 ID:ZphrWLt8.net]
アプリってのはアプリケーションソフトのことやで
日本語に訳すとは自分で調べてみてね

398 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 12:44:44.67 ID:FuAp7249.net]
今の時代はアプリはスマホアプリのことを指して、PCアプリをアプリと呼ばない人もいるからな
pythonでスマホアプリを作るのに言語だけじゃというのかもしれない

399 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 13:00:42.80 ID:tGBWMiyL.net]
必死すぎww

400 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 15:34:17.13 ID:d7YWy2NT.net]
アプリってのは俺たちの言うところのプログラムってやつだな

401 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 15:57:55.97 ID:mo+aGJJz.net]
俺たち??
一緒にしないでくれるかな

402 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 18:08:42.06 ID:bPAr9M5f.net]
Python + kivy でアプリ作ったが、
BuildozerでうまくAPKが作れません。
Ubuntuで作成していますが、解説サイトが少なすぎて、
どのように直せばいいのか分かりません。

アプリからCSVファイルを読み込むのに、Windowsなら csv.readerでできますが、
Android上では、上手くできない。
こういう違いを解説しているサイトありませんか??

403 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 18:50:50.61 ID:Mp5ZQhC2.net]
100%勘でいうけどcsvの読み取り処理じゃなくて権限の問題じゃない?

404 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 19:57:52.20 ID:bPAr9M5f.net]
>>396
あ…、なるほど。それも確かにありますね…。
権限付与とか、Ubuntuでは関係ないので、
apk作成してから実際に確かめるしかないんですかね…。

405 名前:デフォルトの名無しさん [2022/03/01(火) 20:37:15.87 ID:rZFH8Ry6.net]
そんな漠然とした質問されましても・・・。

406 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 21:57:53.58 ID:Uxf89f5s.net]
やってみるしかないじゃなくて普通にAndroidの権限付与調べればいいじゃん



407 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:05:15.86 ID:JpI2oqvB.net]
numpyみたいに左辺値にも数値を取れるようなスカラー倍の実装ってどうやればいいんでしょうか?
↓みたいなものを実現したいです

vec = Vec3d(1, 2, 3)
vec = 3 * vec

vec * 3は普通にVec3d.__mul__()を書けばいとわかりますが…

408 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:13:16.50 ID:GIXfNvH2.net]
__rmul__
https://docs.python.org/ja/3/reference/datamodel.html#object.__rmul__

409 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:31:01.69 ID:JpI2oqvB.net]
ありがとうございます助かりました

410 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 23:37:34.10 ID:JgRDiBWO.net]
>>401
後学のために知っておきたいんだが、rmulが素直な性質を持っていない場合(たとえば、s * vecでsが3の倍数のときだけベクトルの要素にすべてsinが適用される)、
3 * 4 * vecの評価順ってどうなるの?
12 * vecになるか、3 *(4 * vec)になるかで結果が変わってくるよね?

411 名前:デフォルトの名無しさん [2022/03/02(水) 23:51:59.12 ID:JCVrS93n.net]
優先順位が同じだから左から処理されて12*vecになる。

412 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 00:14:52.94 ID:opDE9Pw0.net]
>>404
サンキュー!
八元数なんかだと結合法則成り立たないから実装には要注意だね
んなもん使わないけどw

413 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 11:37:39.24 ID:MIHsZ6Ov.net]
'2022-03-01'という文字列と今日の日付を比較したいのですが、うまくいきません。
文字列は datetime.datetaime.strptime(ooo,'%Y%m%d') で変換できました。
比較対象は、 datetime.date.today() かdatetime.datetime.now()

にしてもだめでした。
よろしくおねがいします。

414 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 12:32:25.24 ID:iy0ngH3c.net]
>>406
from datetime import date
date.fromisoformat("2022-03-03") == date.today()

415 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 12:56:08.30 ID:uKQKiz/u.net]
datetimeだかdateだか、ちょっとした書きミスがバグにつながるから
こういうのはyear、month、dayを抜き出して、3回比較するのが確実

416 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 13:02:19.17 ID:B47DPcJE.net]
そこはテストコード書こうよ



417 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 14:29:17.12 ID:uKQKiz/u.net]
テストコードも同じ過ち起こして、テスト通るのにバグるってなるんだよ・・・

418 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 17:06:11.44 ID:QPV1pV4A.net]
>>407
>>408
ありがとうございました。無事に解決しました。

419 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 17:20:07.18 ID:KpuntXeF.net]
>>410
それはテストの書き方が悪いよ

420 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:15:45.74 ID:bgg8zGG6.net]
>>410
お前テストコード書いたことないだろw

421 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:26:32.29 ID:uKQKiz/u.net]
テストを神聖視しすぎ。本体とテストの実装者が同じだったら同じ過ちを犯すものだよ

最近見かけた日付関連だとファイル内の文字列"yyyy/mm/dd"と現在日を文字列比較してて
しかも現在日から文字列作るのをロケール任せにしてたから、海外だと"mm/dd/yyyy"になってバグるというのがあった
こんなのロケール知らずに普通にテスト組んでたら検出されない

422 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:45:04.76 ID:o+Rr4hsu.net]
恥の上塗り

423 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:53:53.66 ID:09CehFjH.net]
tryすれば済む話のような

424 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 21:10:29.99 ID:bgg8zGG6.net]
>>414
> テストの実装者
まじでテストコード知らんのやな
ロジック書いてそうw

425 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 22:14:30.67 ID:drOOnciu.net]
>>414
違うロケールでテスト流せばすぐ検出されるよね?

そのケースは個別のテストケース内で確認すべき項目というより別ロケールでのテストを計画しなかった人やチームに落ち度がある
日時を扱う場合にロケールやタイムゾーンは要求仕様の一部だから事前にテスト計画に入れるのが普通

426 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 22:31:16.34 ID:GbOH5gri.net]
>>414
テストの考え方間違ってるだろ
「テストしたから不具合はない」ではなく
「少なくともテストした項目については、挙動の確認/担保が出来ている」だぞ
(ユニットテストはバグを検知するのでなく、動作担保のために作る)

その例で言えば明らかにテストケース漏れだし
むしろそういう懸念があるならレビューの時に真っ先にチェックするだろ
テストコードを整備せずに、実装側を無意味に歪める方がおかしいだろ



427 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 08:01:41.44 ID:BHHJY9k/.net]
テストしたからバグは少なくなってるはず
程度だろ

428 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 09:16:31.36 ID:Gnf2P8af.net]
def test()
 print(1234)
#=enddef test

こんなエンドコメント入れてるんだが、ないかな?
長くなるとわかりにくいんだもん

429 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:06:50.30 ID:8OZVHpIn.net]
ありだよ

430 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:19:45.82 ID:7BMKLnGc.net]
そんなの見たら無言で削除するぞ

431 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:22:54.28 ID:tJDnSpmC.net]
>>421
ちゃんとしたエディタなりIDEなり使ってたら
関数単位で折りたためる機能あるから
わざわた付けなくても……

432 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:56:36.50 ID:8OZVHpIn.net]
そりゃIDEで折りたためたり、コンボボックスにその関数名出てたりするけど
そういう機能があるのと見やすさはまた違うからな
言語は違うけど、windowsのソースコードでもその手の終了示すためのコメントは使われてる

433 名前:デフォルトの名無しさん [2022/03/04(金) 11:30:20.88 ID:2+JR4Ldk.net]
長くしなければいいじゃわん

434 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 11:49:48.53 ID:dxtR1KDL.net]
>>421
ねーわ、と思ったが
2000行程度のファイルで試してみたら確かに視認性が上がった

カラーリング次第なところはあるがテストコードに限らず有りだわ

435 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 13:29:46.03 ID:61BdsMwc.net]
俺もあったら削除するぞ派かな。
折り畳みの邪魔にしかならんし。

436 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 14:14:06.89 ID:MfsJLXwz.net]
endがあるRubyでも似たようなコメント書いてたな
このendはifだっけ?whileだっけ?で見に行くのが面倒になって付け始め
条件なんだっけ?で条件もendコメントに書き始めたら
見栄えが汚くなったなww



437 名前:デフォルトの名無しさん [2022/03/04(金) 19:29:27.15 ID:k14r3fvN.net]
while True:
try:

kakaku = btc_ask

time.sleep(30)

すんません教えて下さい、
30秒おきにループして、
BTCの価格を取得するプログラムなのですが、
この取得した価格を、
30秒前の前回取得した価格と比べるには、
どうしたらいいでしょうか。

30秒前のkakaku < 現在のkakaku

このようなことがしたいです、
ループの中でkakakuを保持して、
次回のループの時の価格と比べたりできますか?

438 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 19:55:32.25 ID:7RF2xiEj.net]
5x7(横x縦)の2次元リストのなかにデータが格納されています。

@その中に重複しているデータは何個あるか

Aその重複しているデータを抽出する

が、したいです。
誰かお分かりになる方、教えて下さい。

439 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 21:58:38.89 ID:Vr/hXoC/.net]
重複しているデータが1種のみ3箇所にあったときの回答がしりたい

440 名前:デフォルトの名無しさん [2022/03/04(金) 22:21:09.17 ID:nnG5KH7G.net]
>>430
ループの外にprev_kakakuとcurrent_kakakuを用意しておいて
ループ内でif kakaku :=

441 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:40:01.34 ID:rKYLL8CC.net]
ary = [
[ 1, "a", 2 ],
[ 2, "a", "b", 2, 3 ]
]

この場合、出力はこれで良いの?

"a" => 2
2 => 3

"a"が2個、2が3個

442 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 23:06:04.21 ID:pOcMuLi2.net]
collectionsのcounterで終わりでは?

443 名前:デフォルトの名無しさん [2022/03/05(土) 00:22:47.69 ID:74G/Knts.net]
>>433
なんとかできました、
ありがとうございます!

444 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 18:47:19.30 ID:IA7poZPw.net]
anacondaとVSCODEで開発しています
昨日あたりから急にconda install したcv2とかpyautoguiとかをimportするとモジュールが見当たらないとエラーがでるように
なってしまいました。
ですけど、conda info -eで見るとちゃんと環境は切り替わっているのですが、
pprint.pprint(sys.path)でimport先を確認するとなぜかcondaのbaseを見ています
import先を切り替えるにはどうすればいいのでしょうか。

なんかUSBHDDを接続してドライブを増やしたときにpython実行した辺りから使えなくなった気がします

445 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 23:09:14.83 ID:aOITLV1E.net]
エラーメッセージで検索すれば?

anaconda の使い方や、import パスの仕組みなどを調べるとか

446 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 15:40:23.36 ID:5YdwNKnV.net]
スクレイピングがCloudflareでブロックされてアクセスできなくなってもうた
Selenium(headlessオフ)でアクセスしてもダメ! でもChromeからのアクセスは大丈夫だから
SeleniumとChromeってやっぱ違うんだね、今のところお手上げ><
フリー版?のcloudscraperでもダメっす、何か対策ありますか?



447 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 15:52:11.57 ID:GH3f7UsN.net]
どのサイトをクロールしようとしてるのか分からないと
徹底的にブラウザの気持ちになってリクエストを再現しろくらいの一般論的なことしか言えんよ

448 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 19:29:03.82 ID:LhKo5a0F.net]
>>421
有りか無しかで言ったら有りだけど、それ、pythonのデザインポリシーを冒涜してるだろ(笑)

449 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 21:38:43.85 ID:SX3V4D25.net]
Selenium を使う場合、手動でブラウザを使うのと、全く同じようにシミュレーションすべき

どこかが異なると、それを判別してブロックされる

450 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 21:44:19.84 ID:WkkDxprJ.net]
そんな複雑なチェックしてることなんてまずないだろ
どうせUAがデフォルトのままとかその手がじゃないか

451 名前:デフォルトの名無しさん [2022/03/06(日) 23:17:19.54 ID:TwfM3eez.net]
>>443
そいつrubyキチガイやで
触んな

452 名前:デフォルトの名無しさん mailto:sage [2022/03/07(月) 07:17:49.90 ID:TZQuxR5Y.net]
ルビキチ

453 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 09:39:26.69 ID:ZX9Pe2Of.net]
ルビキチ

rb
mylist=mystr.split(",")
mysize=mylist.size()
mystr=mylist.join(",")

py
mylist=mystr.split(",")
mysize=len(mylist)
mystr=",".join(mylist)

454 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 10:02:18.65 ID:yCGAKR37.net]
おねいちゃのマイリス

455 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:04:03.25 ID:/uluuvq4.net]
ある数列の連続性をカウントしてまとめたいのですが
forで回してこうやりました
https://ideone.com/lcnVcl

↑の例では
#数列データ
df = pd.DataFrame([1,2,1,1,1,2,3,1,2,1,2,3,1,2,1,2,1,2,3,4,5,1,1,2])
#連続性
#[(1,2),(1),(1),(1,2,3),(1,2),(1,2,3),(1,2),(1,2),(1,2,3,4,5),(1),(1,2)]
#つまり
# (1),(1),(1), (1,2),(1,2),(1,2),(1,2),(1,2), (1,2,3),(1,2,3), (1,2,3,4,5)

数列のデータはpandasのデータフレームで受け取るので
どうせならpandasをもっとうまく使えたらなぁと思ったのですが何かいい案はないでしょうか。

やりたいことはカウントというよりも、
今現在の連続記録nに対して、これ以上は連続しにくいぞ、とか、まだまだ連続する、程度を知れたらいいなと思っています
(数列は正の整数で連続し、連続が切れると1から始まります)

上でやったforのやつでも結果の関数を解くだけなので出来なくはないですが
何か野暮ったいかなと思いました

456 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:14:37.92 ID:pY0AUvqt.net]
>>448
元のseriesと、shiftメソッド使って一個行方向にずらしたseriesを引き算して、
1なら連続、とかやる方法はあるけど、あんまりエレガントにならないし、
遅いしメモリも食うしいいことなさそうな感じだなあ。



457 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:16:01.08 ID:cb69q7TI.net]
元配列[1,2,1,1,1,2,3,1,2,1,2,3,1,2,1,2,1,2,3,4,5,1,1,2])に含まれる1の数、2の数、3の数・・・をカウントするだけでいい
今の値が3だとしたら、次に4が来るか途切れそうかは、カウントした4の数から考えることができる↑だと4は一個だからほぼほぼ途切れるだろうということになる

458 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:56:13.93 ID:/uluuvq4.net]
>>449
なるほど

>>450
今の値が1連続目だとすると
常に、1連続以上になる確率が高くなりそうな気がしますが違うでしょうか

459 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 19:33:19.86 ID:P7fXjWPX.net]
https://ideone.com/rlGHHX
途切れた時点でのi-mが連続回数
何がやりたいのかいまいちわかんないけど

460 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 21:11:58.59 ID:/uluuvq4.net]
>>452
ありがとうございます
この数列は、カウンターが出力される機器のログを記録したようなものです
ボタンを押すごとに1,2,3・・と数字がカウントされますが途中でリセットされます
リセットのタイミングは機器によって異なります

極論、
{ 1:1, 2: 10000, 7: 2 }
のログデータを示した機器は(1,2)が10000回出ているので
もし現在2回連続中なら、次ボタンを押しても1にリセットされる期待大だろうと思います

問題は、1,2,1,1,1,2みたいなseriesのデータでしか受け取れないというところで
どうせなら受け取ったdataframeの操作だけでできないのだろうかとあれこれやってみましたが行き詰まり質問しました

上の極論例で言えば
圧倒的に1,2,1,2,1,2…のパターンが多いと思うので、良い感じにグループ化して
期待が大きい順にソートできないのかな、みたいな

ゴリ押しコードではできそうになりました
ありがとうございました。

461 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 23:14:01.22 ID:NoeFnt/B.net]
1が出てきたところで分割するだけならmore_itertoolsのsplit_beforeが簡単
Counter(len(x) for x in split_before(array, lambda x: x == 1))

ある要素の次に連続した数字が出てくる確率を求めたいなら
yield前に計算が必要なのでsplit_beforeはそのまま使えない
https://ideone.com/TMXIXG
(Counterの要素数が多くなるようならメモ化とかで最適化)

462 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 01:42:21.21 ID:5uyncfY/.net]
>>454
ありがとうございます
この賭けをするかどうか、がパッと見ですごくわかりやすいですね
>メモ化
やってみたいと思います!
ありがとうございました

463 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 13:55:40.04 ID:uPg2QLX1.net]
画像認識用に Pillow package 追加した後に pyinstaller でexe化したら、吐き出されるファイルのサイズが全て大きくなりました。
--exclude pillow で除外するしかないのでしょうか?
よろしくお願いします

464 名前:デフォルトの名無しさん [2022/03/09(水) 17:38:50.03 ID:Ey9V1kD3.net]
>>456
pyinataller 肥大 検索

465 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 23:53:04.35 ID:+dlDtb5P.net]
パイエグゼ

466 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 11:17:29.77 ID:XgQ7nsDt.net]
>>457
ありがとうございます。
仮想環境を構築してexe化するのがベターなのでしょうか?
不要なライブラリを一つずつ除外してアーカイブするってのは現実的じゃないですよね? プロの皆さんはどうやってますか?



467 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 11:37:47.77 ID:XgQ7nsDt.net]
>>458
ありがとうございます。
py2exe でしょうか? pyinstaller に比べるとかなり軽量化されますね。onefileになりませんが、解決できそうです。

468 名前:デフォルトの名無しさん [2022/03/10(木) 12:19:42.66 ID:F03aXzW3.net]
>>459
プロジェクトごとに最小限の環境切って出力までいく
他に手はない
だからガバガバAnacondaとかが嫌われているんだね
組み込みに、必要なライブラリを必要なときに入れていく。最後にpyinstallerを入れてexe
これが最小

469 名前:デフォルトの名無しさん [2022/03/10(木) 12:23:23.50 ID:F03aXzW3.net]
py2exeやcxFreezeはディスコン

470 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 12:44:48.00 ID:2dGzdKSz.net]
exe化自体がPythonには向かないから肥大化は諦めろとしか
まともな使い方したいならpip対応してインストーラーを配布

471 名前:デフォルトの名無しさん [2022/03/10(木) 14:01:53.94 ID:fg/vrfqm.net]
まあenv+最小環境でも20MBスタートくらいだしな

472 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 14:22:13.82 ID:7DfxLAmP.net]
なんだそんなもんか
.NET Coreのシングルバイナリ(60MB)に比べたら小さいね

473 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 14:24:28.69 ID:7DfxLAmP.net]
>>463
やるにしても超初心者の手を出すことじゃねえなあ
超初心者ほど必要になってしまうジレンマもあるのかも知れんが

474 名前:デフォルトの名無しさん [2022/03/10(木) 16:22:34.24 ID:fg/vrfqm.net]
>>465
anaconda+tensorflow+kerasあたりのお手軽AI環境構築で700MBくらいだった気がする

475 名前:デフォルトの名無しさん [2022/03/11(金) 09:47:30.49 ID:jL2x9Ttt.net]
def select(idx: int, name: str):
ret = None
__if idx: ret.add
__if name: ret.add
return ret

こういう省略可能な引数に対する型ヒントはどう書きます?
select(idx: int|None =None,
みたいにしなきゃダメ?

476 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 10:22:58.59 ID:mIOifofz.net]
https://docs.python.org/ja/3/library/typing.html#typing.Optional



477 名前:デフォルトの名無しさん [2022/03/11(金) 11:13:57.75 ID:Ozj2kjqC.net]
>>468
Optional
パイプで区切る書き方は3.10以降しかできない

478 名前:デフォルトの名無しさん [2022/03/11(金) 11:47:52.31 ID:jL2x9Ttt.net]
すまん、書き方が悪かった
None必須なのかなと思って。引数に何も入れなかったらNoneじゃなくて未定義なのでは?

あとこれが通るのも違和感ある
初期化はお

479 名前:汲ネので?

class Foo():
def __init__(self):
__self.var : list[int] = [] # コイツ


def insert(self, value: int):
__self.var.append(value)
[]
[ここ壊れてます]

480 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 12:38:29.51 ID:mIOifofz.net]
[]は0個のintからなるListで正当

481 名前:デフォルトの名無しさん [2022/03/11(金) 12:59:50.35 ID:jL2x9Ttt.net]
>>472
そうなのか…
了解した

482 名前:デフォルトの名無しさん [2022/03/13(日) 22:05:27.78 ID:Eg2cTOah.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw

483 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 21:22:46.39 ID:uGLxHLAf.net]
PysimleGUIで使いたい機能が動かない事があるんですが、
もしかしてJupyterNotebookってPysimleGUIと相性が悪いとかってありますか?

484 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 21:52:58.31 ID:EzbuthJ5.net]
GUIは対話環境で作るものではないかな

485 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 22:12:49.68 ID:fNg5XgpX.net]
「ボタンを作りますか?」
「何個作りますか?」
みたいな?

486 名前:デフォルトの名無しさん [2022/03/15(火) 22:19:24.09 ID:onaoSqbL.net]
逆にそれはjupyterがすごい
vsc使おう



487 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 22:43:02.98 ID:IXWkoe6F.net]
SmalltalkやZopeみたいな実行環境自体がGUIでIDEってやつかとおもったら
PySimpleGUIはJupyterの外なのか
そこまでうれしくはないな

488 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 00:21:06.85 ID:oBLq1y/2.net]
>>477
具体的には例えばこのページ(ttps://knt60345blog.com/pysimpleguigui_popup2/)にある
「popup_get_file」を使ってファイル読み込みダイアログが簡単に出るみたいに書いてあるんですが
実際にはダイアログボックスが表示こそされるもののそれ以降はエラーだらけだったりって感じです。

>>478
VSCって奴がメジャー?だったりするんですかね
教本に載ってた通りに環境をセットアップした状態だったんですが
やっぱそういう相性とかあるんですね・・・

489 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 01:22:04.38 ID:PxZpXkqG.net]
PySimpleGUI は、ネイティブアプリか?

一方、Ruby on Rails, Electron(Node.js + Chromium), Electron製のVSCode などは、
HTML, CSS, JavaScript を使ったウェブアプリ

Jupyter Notebook もウェブアプリかも?

そもそも、Windows 用のネイティブアプリがまともに動くのか、という疑問がある。
文字コードがUTF-8 じゃないし

C# だけはWindows用言語だけど、それ以外の言語はすべてLinux用だから、
Windows用にコンパイルして、テストしているかどうか疑問

490 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 16:29:22.67 ID:KaTnXwme.net]
手動でモジュールをインストール(コピー)するにはどうしたらいいのでしょう?

環境コピー元でpip install numpyするとlib/site-package/numpyができる
環境コピー先のlib/site-package/の中にそのnumpyフォルダを単純にコピーしてやればいいかと思ったのですが
これだと'No module named numpy'になってしまいます

コピー先でもpip installしてやればいいのですが、nuget ironpythonで作った環境なのでそれができず(方法がわからず)
単純にコピーしてやればいいやというのが発端で起きた疑問です

491 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 17:17:48.57 ID:TuzuQZwE.net]
>>482
ユーザじゃないからわからんけど
ironpython PYTHONPATH
でググってみて

492 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 17:35:55.37 ID:KaTnXwme.net]
searchPaths.Add(@"\Lib\site-packages");
engine.SetSearchPaths(searchPaths);
でパスを追加すると、'Non-ASCII character '\xef' が出て
numpyのpyファイルにエンコード指定を追加すると、今度はunexpected 'from'というようなエラーが出てしまうけれど
エラーが出るということは正常にコピーできてるのかな。とりあえず動かなそうなので諦めます

493 名前:デフォルトの名無しさん [2022/03/17(木) 11:48:34.57 ID:BdzeKlQx.net]
Windows+Python3.5です、少し古いかもしれないですがご勘弁下さい
インストールしてすぐです

requestsを使いたくて適当な記事からいくつかサンプルコードを打ち込んだのですが、ImportError: No module named requestsというエラーを吐かれて
まずコマンドプロンプトでpip install requestsを実行すべきなのがわかりました
しかしpip install requestsで新しく生成されたディレクトリは〜\Lib\site-packages\requestsで
pip install requests実行前に、Python自体をインストールした状態ではLib\site-packages\pip\_vendor\にもrequestsディレクトリがあり
しかしこの\_vendor\requestsフォルダはコマンドプロンプトでもPythonの対話モードでも認識されておらず、存在していないような扱いでした

このLib\site-packages\pip\_vendor\内のrequestsが、どのような経路で利用されるものなのか教えていただけないでしょうか?
あまり余分にファイルを増やしたくないので、_vendor\requestsの方を利用できる手段があるならばそうしたいのです

494 名前:デフォルトの名無しさん [2022/03/17(木) 17:42:15.85 ID:o4f7Z1L+.net]
>>485
ちなみに、サポート期限切れのバージョンを使わなきゃいけない理由はなに?

495 名前:デフォルトの名無しさん [2022/03/17(木) 17:46:15.17 ID:o4f7Z1L+.net]
>>485
"Requests officially supports Python 2.7 & 3.6+."
https://pypi.org/project/requests/

Requestsでも3.6以上じゃないとサポートしていない

496 名前:デフォルトの名無しさん [2022/03/17(木) 17:50:03.61 ID:o4f7Z1L+.net]
>>485
pip install requestsは何もエラーや警告もでずに正常終了した?
pip install requests実行してから、適当な記事からいくつかサンプルコードを打ち込んだときは、ImportError: No module named requestsはでなかったの?
Windowsのバージョンはなに?



497 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 19:01:16.89 ID:Jm9Rrpw3.net]
pip\_vendor\はあくまでもpip自体が使用するモジュール
他のパッケージでも_venderディレクトリに限らず依存モジュールを持ってる場合もあるが
特定バージョンに依存してたり改変されてる可能性もあるのでもったいないからと言って外部から使おうとしちゃだめよ

498 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 09:41:06.94 ID:hUwp9ZtX.net]
├label 判定処理の開始
│├┬処理1の演算(複数行)
││└演算の結果で「判定処理の終了」に飛ぶ
││
│├┬処理2の演算(複数行)
││└演算の結果で「判定処理の終了」に飛ぶ
││
│└┬処理3の演算(複数行)
│ └演算の結果で「判定処理の終了」に飛ぶ

├label 判定処理の終了

こういうことやりたいんだけど、gotoを使わないでやる方法てある?
gotoは推奨しないていってるよね。
フラグとか使って、前の判定がNGだったかを見る方法しかないのか?
自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、

499 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 10:09:20.13 ID:wuzcJXmn.net]
>>490
>自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、
単純に処理1の終了時に結果に応じてreturnおけば、それで簡単に抜けられるぞ
ガード節とか早期returnで調べると分かりやすいかも

500 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 10:59:49.92 ID:hUwp9ZtX.net]
>>491
returnて関数以外に使えるの?

501 名前:デフォルトの名無しさん [2022/03/18(金) 11:41:42.28 ID:EttWLc7+.net]
端折りすぎて何がしたいかわからん
単純に
if func1()
elif func2()
else func3()
の構図じゃねそれ

502 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 11:54:17.65 ID:S88dx27z.net]
1→2→3→終了処理
1→2→終了処理
1→終了処理
この組み合わせになるってことだろ

ifで簡単にやるなら
ret = func1
if(ret) ret=func2
if(ret) ret=func3
finally()

503 名前:デフォルトの名無しさん [2022/03/18(金) 19:08:01.39 ID:RDOlUVi1.net]
Flaskでつくったアプリをデプロイ先で"git clone", "pip install -e ."して入れていて、アップデートがあった場合はgit pullだけしています
こういう使い方ってpipで管理できない以外で何か問題ってありますか?
確かでなくても何となく気になる程度の事でも書いてもらえるだけでも有難いです

504 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 19:21:48.00 ID:/+NJrK2n.net]
デプロイ時に公式リポジトリが落ちてる可能性あるからアリ
いまどきはコンテナ生成時にpip使うからそういうリスクないけども

505 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 20:29:14.39 ID:GX/cM61n.net]
pypiのパッケージって存在が保証されるんじゃなかったっけ

506 名前:495 [2022/03/18(金) 20:31:32.06 ID:RDOlUVi1.net]
すいません、言葉足らずでした
自分で作ったアプリでリポジトリも自前のリポジトリです



507 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 00:10:30.98 ID:k2W7TKOh.net]
>>495
多言語のバージョンマネージャーのanyenv で使もう、rbenv のインストーラ
https://github.com/rbenv/rbenv-installer/blob/main/bin/rbenv-installer

これを簡単に説明すると、
Mac のHomebrew の場合と、Linux の場合で、処理を切り替えている

23行目 : rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
で、-v : 「コマンド」を実行せず、実行対象となるコマンドやファイル名、
関数・エイリアスの定義を表示する

25行目 : if [ -n "$rbenv" ]; then
で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero)

つまり、初回はgit init して、2回目以降は、git pull する

if [ -n "$rbenv" ]; then
git pull --tags origin master

else
git init
git remote add -f -t master origin https://github.com/rbenv/rbenv.git
git checkout -b master origin/master
fi

508 名前:499 mailto:sage [2022/03/19(土) 00:18:51.04 ID:k2W7TKOh.net]
>>499
の続き

69行目からも同じ

69行目 : if [ -n "$ruby_build" ]; then
で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero)

つまり、初回はgit clone して、2回目以降は、git pull する

if [ -n "$ruby_build" ]; then
git pull origin master

else
git clone https://github.com/rbenv/ruby-build.git "${rbenv_root}/plugins/ruby-build"
fi

509 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:05:43.22 ID:/3rRpnUt.net]
こんにちは。
文字列を空行で分割したいのですが 良い方法が見つからず悩んでいます。
たとえば、文字列を2つに分割したいです。
良い方法があればヒントをいただけると助かります。

---------はじまり
aaa
bbb
<==== ここで分割したい
ccc
ddd
---------おわり

510 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:06:40.03 ID:/3rRpnUt.net]
サンプルの文字列がおかしくなったので再度書き込みます。
bbb と ccc の間の空行で分割したいです。

aaa
bbb

ccc
ddd

511 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:29:46.04 ID:GJHZpfLi.net]
gap_vector とかの話?タダの宿題?

512 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:40:05.16 ID:93YS43Ns.net]
pythonって簡単にできる命令が多いからそれ探しがちだけどそういうの考えなきゃいくらでもできるだろ
単純に配列に一行ずつ読み込んで、要素の中身をチェックして空ならそこまでの要素を切り出してくとか
全部をひとつの文字列として変数に入れて、split(\n\n)みたいな感じで分割すればいい

513 名前:デフォルトの名無しさん [2022/03/19(土) 12:41:10.12 ID:umrdatZo.net]
プログラムの初心者です。
書籍を見ながら勉強しているのですが、
指示通りに入力しても正常に反応しなくて、どこが間違っているのかわかりません。
どなたか教えていただけませんか?

514 名前:デフォルトの名無しさん [2022/03/19(土) 12:51:46.78 ID:umrdatZo.net]
>>505
import tkinter
root=tkinter.Tk()
root.title("初めてラベル")
root.geometry("800x600")
label=tkinter.Label(root,text="ラベルの文字列",font=("System",24))
label.place(x=200,y=100)
root.mainloop()
こう入力しましたがウィンドウが表示されませんでした。

515 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 12:59:31.84 ID:d0jgyl+4.net]
ファイルの文字コードがSJISになってるんじゃないかな
UTF-8で保存し直してみたら

516 名前:デフォルトの名無しさん [2022/03/19(土) 13:06:08.80 ID:CtZdn1W5.net]
>>506
vscode上ではそれで動く



517 名前:デフォルトの名無しさん [2022/03/19(土) 13:12:31.23 ID:umrdatZo.net]
>>506
です。
こちらで解決しました!
お騒がせしてすみません。

518 名前:デフォルトの名無しさん [2022/03/19(土) 19:10:36.78 ID:ozskatPz.net]
if x : return
elif y : return
else:
処理

みたいな、ガード連打するときなんか改行なしで行きたい気がするんだけど
やっぱ許されぬ罪なのですか神父様

519 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:21:11.13 ID:guM/7r5m.net]
elif/elseにする必要なくない?

520 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:04:09.95 ID:XBFSEYPW.net]
Kotlinとか書いてると実にそう思うが、そんな将来は来ない

521 名前:デフォルトの名無しさん [2022/03/19(土) 20:47:24.25 ID:26UREXqN.net]
if x or y:
__return
else:
処理

じゃだめなん?

522 名前:デフォルトの名無しさん [2022/03/19(土) 21:45:40.71 ID:pKV2CHvJ.net]
>>513
主題はそこじゃなくて
アーリーリターンが続くような構造では改行レスのreturnと書きたいが、許されるかどうか
ということでは

523 名前:デフォルトの名無しさん [2022/03/19(土) 21:51:17.02 ID:GkqZBVMg.net]
大学の研究室のコードとかはめちゃクソ改行レス
あいつら道具は動けばいいんでしょ精神だからぬ

524 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:15:07.02 ID:guM/7r5m.net]
でもカッコやendいるわけじゃなし
1行returnくらいあってもむしろ見通しいいし

525 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:25:51.88 ID:ahrdIXj0.net]
インデント強制するような糞言語だからなぁ

526 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:33:43.71 ID:1HyJgrvG.net]
if x or y : return


orでつなげるなら一応一行でも行けるぽいけど



527 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:50:57.25 ID:1HyJgrvG.net]
ガード節早期リターンをいれるなら
if elif elseでつなげるよりもifの連打でとことんリターンさせた方が条件の独立性も保たれるしわかりやすい
てかelifやelse 意味ないし

if a: return
if b: return
if c: return

528 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:53:44.87 ID:1HyJgrvG.net]
でも基本的にフロー制御せずに済むようにするのが一番

529 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 00:04:23.22 ID:rHLSIq5o.net]
jupyterlabのvpythonの拡張機能を入れようとしたら
3.3.2~3.4.0と5.3.2~5.4.0を同時に求められたんですがどうしたらいいですか
https://i.imgur.com/tBr5qLg.png

530 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 07:50:41.23 ID:aLyHOWc6.net]
>>501
Ruby では、空行は改行が2つ続くので、そこで分割すると、

input_text = <<'TEXT'






TEXT

p ary = input_text.split( "\n\n", 2 ) # 最大で2分割
#=> [ "あ\nい", "う\n\nえ\n" ]

531 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 14:47:11.41 ID:ijxTKnpM.net]
---a.py-----
import b
x="abc"

b.kansu()

---b.py-----
def kansu()
global x
print(x)

a.pyを実行させて、その中で呼び出された関数kensuの中でa.pyで定義された変数xを参照したいんですけどできます。
xが定義されてないて言われるんだけど。

532 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 14:48:37.57 ID:PCBgHcJM.net]
import b
b.kansu(x)
---
def kansu(x):print(x)

533 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:01:05.51 ID:ijxTKnpM.net]
>>524
そうやりたいけど、
b.kansu()をb.kansu(x)に変更するのが大変だから、質問してる。

534 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:11:44.38 ID:BhdZW57e.net]
質問です

大量にあるpng画像の中にある特定の画像が含まれる画像だけ抽出することはできますか?

例:オンラインゲームの撃破ログ時に特定の画像が画面内に現れるとする(ヘッドショットアイコンなど)
その画像は不変であるが、画面内のどこにあるかは不特定。

特定の画像のimgを先に作成しておき、その画像が含まれる画像のpngデータを抽出したい。

535 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:14:23.73 ID:PCBgHcJM.net]
pyscreeze.locate

536 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:23:33.53 ID:48q5H/E5.net]
>>523
できるけどおすすめしない
import b
b.x = “abc"
b.kansu()
bにxのアクセサ(プロパティ)つくるのがましかな



537 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 16:35:08.52 ID:ijxTKnpM.net]
>>528
出来ました。
ぜんぜんおすすめのような気がする。
ありがとうございました。

538 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 18:38:00.86 ID:qHCIAUP+.net]
変数じゃなく定数だったりすると、
本来は、別のconfig.pyあたりに書いて同じことをするんだっけ?
import config as g
g.x = 'abc'
みたいに

539 名前:デフォルトの名無しさん [2022/03/22(火) 20:38:23.71 ID:Rdq5z+Lu.net]
>>526
OpenCVのテンプレートマッチング

540 名前:デフォルトの名無しさん [2022/03/23(水) 15:54:16.61 ID:cM5bvOqV.net]
bbox = [0, 0, 100, 100]

l, t, r, b = bbox
l = 20
print(bbox) -> [20, 0, 100, 100]

こういうことがしたいんですが、どうすればいいですか
どういう単語で検索したらいいのかすらわかりません

541 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 16:22:45.21 ID:9UuCXyQL.net]
bbox[0]指定だと困る理由は?

542 名前:デフォルトの名無しさん [2022/03/23(水) 17:07:45.87 ID:cgrsbd9g.net]
>532 辞書使って無理やり。

bbox = { 'l': 20, 't':0, 'r':100, 'b':100 }
bbox['l'] = 20
bbox_values = list( bbox.values() )
print( bbox_values )

543 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 17:18:26.23 ID:PTuUM17Q.net]
あえてやるならこんなのとか
単語で検索するとしたらオブジェクト

bbox=([0],[0],[100],[100])

l,t,r,b=bbox

l[0]=20

print(bbox)

->([20], [0], [100], [100])

544 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 17:27:30.54 ID:Uj8u7VlE.net]
配列順に意味があるなら
L,T,R,B = 0,1,2,3
bbox[L] = 20
とか
意味ないならクラスか辞書で保持すべき

545 名前:デフォルトの名無しさん [2022/03/23(水) 18:03:21.12 ID:cM5bvOqV.net]
あーなるほど、そういう感じなんですね
わかりました。ありがとうございます

なんか要素へリンクしてて
l = bbox[0]
print(l) # 0
l = 20
print(bbox[0]) # 20
みたいな感じになると思ってました

bboxクラス作ります

546 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 19:08:25.09 ID:OkzK5R+n.net]
>>537
話ずれるけど、要素を外で書き換えるよりも箱の拡大縮小みたいなメソッドを作る方が一般的な気がします



547 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 13:39:47.22 ID:uOX7ULt1.net]
openpyxlでxlsxファイルを作る時にひとつのシートに複数のグラフを描こうとしたらThe same chart cannot be used in more than one worksheetってエラメ吐いたんだけど何でだろう
エラメでぐぐってもイマイチよくわからなかった

548 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 14:33:26.73 ID:9HZfMhVl.net]
chart2=chart1
とかやったりするとそうなるかも

複数チャート作る時に前のチャートを使いまわしたりしてない?

549 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 15:27:53.71 ID:uOX7ULt1.net]
使い回しはしてましたね…
グラフ描く回数の分同じ記述を何度もするのが嫌だったから関数にして複数回呼び出せばいいかと思ってた
グラフ描画部分の関数に引数として描画シートとか参照するセルの範囲を渡してやってたんだけどそれじゃ駄目だったか

550 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 06:26:35.95 ID:m+SAsqZm.net]
ダメってわけじゃないけど気を付けないといけないポイントがある
チャートとかのいわゆるオブジェクトのコピーはdeepcopy使う

551 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 11:27:01.85 ID:qLHTxQhk.net]
配布するpyスクリプトで標準外パッケージを使いたいけどユーザの環境を汚したくないというときはvenvのような仮想環境か
pyinstallerでまとめるくらいしか手は無いのかな。
どちらもpython.exe自体をコピーして大げさなんで、jsのwebpackみたいなパッケージのバンドルができたらよかったんだけど。

552 名前:デフォルトの名無しさん [2022/03/27(日) 17:22:26.41 ID:nYvTQ02C.net]
質問なんです
GIMPのpython使っています
# -*- coding: utf-8 -*-
import glob,os,re
file = glob.glob(‘C:\Users\name\Desktop\*.jpg’)
で取り出したファイル名を使ってファイルを開こうとすると
ファイル名が日本語の場合文字化けしてファイルが開けませんでした。
文字化けを直すにはどうしたら良いのでしょうか?
print(file)した時に文字化け表示される文字は
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'
こんな感じです
よろしくおねがいします

553 名前:デフォルトの名無しさん [2022/03/27(日) 17:44:38.62 ID:p/i0WnQH.net]
>>544
>ファイルが開けませんでした。
この時どんなエラーがでましたか?

554 名前:544 [2022/03/27(日) 18:47:55.50 ID:nYvTQ02C.net]
>>545
RuntimeError: 'C:\Users\name\Desktop\�A���G�N�`���b�g�Ή�.JPG' を開いて読み込むことができません。
Invalid argument

これと詳細な情報のところに
Traceback (most recent call last):
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 740, in response
dialog.res = run_script(params)
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 361, in run_script
return apply(function, params)
File "C:\Users\name\AppData\Roaming\GIMP\2.10\plug-ins\add_aaaaaaaa.py", line 11, in aaaaaaa

555 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 18:48:39.52 ID:px6SVueC.net]
>>544
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'.decode("mbcs")

556 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 19:01:26.37 ID:ayYjDlX4.net]
>>544
バイナリでglobしてバイナリでopenしてみれば?
cp932がutf8の文字列として解釈されてるのが原因だと思う
glob(b'*.jpg')



557 名前:544 [2022/03/27(日) 19:04:53.96 ID:nYvTQ02C.net]
>>547
ありがとうございます!
無事ファイルが開けてプラグインが完成しました!!

558 名前:544 [2022/03/27(日) 20:00:09.87 ID:nYvTQ02C.net]
もう一つ質問で悪いのですが
これもGIMPです
数字を文字列にして文章とつなげているのですが
その半角数字を全角数字にしようとしましたが
エラーが出ます
どうしたらいいのでしょうか?
コードを書くと書き込めなかったので
スクリーンショットを貼ります
https://imgur.com/a/F2J1Ksw

エラーはこちらです
https://imgur.com/a/xv8Hcrt

559 名前:デフォルトの名無しさん [2022/03/27(日) 20:31:27.21 ID:p/i0WnQH.net]
>>550
https://ideone.com/
再現ができないのでここにコードを書いて、そのリンクを貼ってください
コードを書いて、Runボタンを押すとリンクが生成されます

こんな感じで
https://ideone.com/UGO5O1

560 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 20:34:15.47 ID:px6SVueC.net]
>>550
gimp2にバンドルされてるpythonは2.7なのでそのコードは使えないね

561 名前:デフォルトの名無しさん [2022/03/27(日) 20:35:54.32 ID:p/i0WnQH.net]
Python2か

562 名前:544 [2022/03/27(日) 21:00:21.01 ID:nYvTQ02C.net]
>>551
こうですか?
https://ideone.com/cKytn2

>>552
python2の場合はどうすればいいですか?

563 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 22:12:37.46 ID:GW1PkVkn.net]
python2ってなんだよと思ったら、gimpって開発の勢いがないソフトだったんだな

2007年10月24日 - GIMP 2.4.0
2008年10月1日 - GIMP 2.6.0
2012年5月3日 - GIMP 2.8.0
2018年4月27日 - GIMP 2.10.0
今は2.10.30

Python 3.0は2008年12月3日

564 名前:デフォルトの名無しさん [2022/03/27(日) 22:21:41.23 ID:p/i0WnQH.net]
>>554
https://ideone.com/xemuRV
これでどうですか

565 名前:544 [2022/03/27(日) 22:34:09.27 ID:nYvTQ02C.net]
たびたびすいません、GIMPのモノです。
glob.globが治っていたのが勘違いで
今度はアドレスに日本語が入ってると何も検索してくれなくなりました
どうしたらいいですか?
>>> glob.glob(b"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg")
[]
>>> glob.glob("C:\\Users\\name\\Desktop\\新しい\\*.jpg".decode("mbcs"))
[]
>>556
ありがとうございます!
無事小文字から大文字になりました

566 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 08:06:48.20 ID:bggr0gZp.net]
書き間違いだろ

「新しいフォルダー」と「新しい」のどちらかが、存在しないのでは?



567 名前:デフォルトの名無しさん [2022/03/28(月) 11:24:31.81 ID:xKLASzt7.net]
久しぶりにPython2触ってたら痒くなってきた

568 名前:デフォルトの名無しさん [2022/03/28(月) 17:43:20.16 ID:FxPljt62.net]
>>558
すいません地中で名前を変えたので
紛らわしくなりました
年のためもう一度試してみたのですが
やはりフォルダー内を検索してくれませんでした

569 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 17:54:40.03 ID:rI7b9so+.net]
解決案じゃなくて恐縮だけど
DOSの頃からAPI上のパス区切りはスラッシュで通るのに
入門書やサイトにバックスラッシュで記載あるのなんとかならんかな

570 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 18:42:28.40 ID:zYEeILU0.net]
ソースコードをutf8で書いたらいけない、ソースがutf8でなくshiftjisになってる、のどっちかじゃないか

571 名前:544 [2022/03/28(月) 18:59:10.76 ID:FxPljt62.net]
自己解決です
folder_path=folder_path.decode("utf-8")
にしてみたら日本語でも行けました!
お騒がせしてすいませんでした。
>>561
GIMPのコンソールだとglob.glob()の中はバックスラッシュじゃないと反応しなかったです

572 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:04:00.69 ID:rI7b9so+.net]
>>563
そうなんだ
わざわざ試してもらってありがとう
Python2のglob実装みてみる

573 名前:デフォルトの名無しさん [2022/03/28(月) 19:27:15.27 ID:FxPljt62.net]
>>564のおかげで
バックスラッシュに気づけたので
解決出来ました
ありがとうございます

>>562
気づかずすいません
ありがとうございます!
そういう事みたいでした

574 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:41:51.56 ID:awWxWPo2.net]
u"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg"
のように最初からユニコード文字列にするのが正攻法かな
でもgimpのpythonコンソールに直に書く時は
u"C:\\Users\\name\\Desktop\\\u65b0\u3057\u3044\u30d5\u30a9\u30eb\u30c0\u30fc\\*.jpg"
のようにunicodeエスケープしないといけないのが難点

俺環のgimp2.10.30はスラッシュでも問題ないな

575 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 03:06:27.47 ID:NFxs7VO2.net]
【悲報】俺が2時間かけて作ったプログラムがこれ [125096601]
https://greta.5ch.net/test/read.cgi/poverty/1649069479/

576 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:14:08.59 ID:EwNP7gad.net]
uwscのBETWEENSTRに該当する
指定文字列から、AとBの検索語の間で文字列をカットする関数はありますか?



577 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:57:12.47 ID:qZGMajZg.net]
>>568
https://docs.python.org/ja/3/library/re.html#regular-expression-syntax
正規表現の (?<=...) と (?=…) をつかって re.search() あたり?

578 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 18:23:32.74 ID:h0FbB6w5.net]
まんま実装してるライブラリも探せばあるんだろうけど、普通は正規表現だろうね
python 正規表現 タグの間を取得」とかでぐぐれば

579 名前:デフォルトの名無しさん [2022/04/05(火) 18:27:10.86 ID:/cMxK+XJ.net]
zipファイル解凍しなくてもファイル数の確認ができるのだが
rarファイルではできないの?

580 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 18:59:43.10 ID:EwNP7gad.net]
>>569
ありがとうございます
labでいろいろ試してみます

581 名前:デフォルトの名無しさん [2022/04/06(水) 00:25:28.29 ID:vOjBJMWB.net]
テスト

582 名前:デフォルトの名無しさん [2022/04/06(水) 18:52:36.40 ID:V6m5p1Ce.net]
https://www.python.jp/train/loop/index.html
を参考にwhile文でクレジットカードのアカウント管理プログラムを作ってみようと思ったんだけど

例えばパイソンクレジットのパスワードはpythonだとして

text = ""

while text != "パスワード":

text = input("パイソンクレジット:")

print("python")

これで実行は出来たのですが2つ分からないことがあって

・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方
・while文は「パスワード」だけど、これだけじゃなくて「パス」や「pass」でも答えが表示できるようにしたい

この2つがどうしてもできません

583 名前:デフォルトの名無しさん [2022/04/06(水) 18:59:11.46 ID:PpwVEMc8.net]
>>574

> ・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方
IDや暗証番号もinputで取る
whileの条件を増やす


> ・while文は「パスワード」だけど、これだけじゃなくて「パ

584 名前:X」や「pass」でも答えが表示できるようにしたい
while text not in ('パスワード', 'パス','pass'):
[]
[ここ壊れてます]

585 名前:デフォルトの名無しさん [2022/04/06(水) 19:21:28.09 ID:V6m5p1Ce.net]
>>575
後者やってみたけど

パスワードpassじゃないと入力できなくなっちゃった
書き方がおかしいのか?

586 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 19:48:17.76 ID:aY4pnG+o.net]
クォーテーションが全角になってるぞ



587 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 06:43:14.77 ID:wVatZXx3.net]
文字コード=sjis、改行コード=CRLFのテキストファイルを
それぞれutf8、LFのファイルに変換したい
どうすればいいですか

588 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 12:11:07.10 ID:NfDoLo6c.net]
>>578
with open('shift_jis.txt', mode='r', encoding='shift-jis') as f:
  lines = f.read()
with open('utf8.txt', mode='w', newline='¥n') as f:
  f.write(lines)

589 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 13:41:11.89 ID:bGha8t6H.net]
Windows相手なら encoding='cp932' が無難やね

590 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 15:29:47.16 ID:iHIe6oz3.net]
Shift-JIS_2004が来やがる事しばしば
かと思ったらWindows-1254とかと誤判断

591 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 17:06:38.29 ID:pSQTwr1V.net]
cchardet.detect(文字列)['encoding']
で取得した結果をopenのときに投げればいいんじゃないの
意外と使えるよ

592 名前:デフォルトの名無しさん [2022/04/08(金) 17:51:57.12 ID:7I4TuE41.net]
anser = input("パスワードは?:")

while anser!="パスワード"or"pass"or"パス":

print("OK")

これでどうしてもエラーが出てしまう

593 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 17:59:24.81 ID:Nr5XXVVB.net]
answer...

594 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:01:49.89 ID:+3oW9fkF.net]
そうですか。次はちゃんと質問しような

595 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:07:50.56 ID:bGha8t6H.net]
>>> "パスワード" or "pass" or "パス"
'パスワード'
想定してるような集合扱いにはならないのと、先に`answer != "パスワード”`が評価されるから
>>> True or "pass" or "パス"
True
>>> False or "pass" or "パス"
'pass'
のどっちかになる。

596 名前:デフォルトの名無しさん [2022/04/08(金) 18:20:28.20 ID:7I4TuE41.net]
>>586
ちょっと違うみたいで

anser = input("パスワードは?:")
while anser!="パスワード"or"pass"or"パス":
print("OK")

で↑に行を開けると起動するんだけど
今度は無限ループになる上に、while文の"パスワード"or"pass"or"パス"が効かなくなる
(enterキーとか適当な文字入力でも

OK
OK



597 名前:デフォルトの名無しさん [2022/04/08(金) 18:20:44.05 ID:7I4TuE41.net]
って無限ループしちゃう

598 名前:デフォルトの名無しさん [2022/04/08(金) 18:25:12.75 ID:o9HNgSR+.net]
質問です。
pyenvの設定をネットで調べると次の2つが見つかりました。
どっちが正しいのでしょうか?

(1)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
# ↑ binになっている
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
source ~/.bash_profile
(2)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bash_profile
# ↑ shimsになっている
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
source ~/.bash_profile

599 名前:デフォルトの名無しさん [2022/04/08(金) 18:30:46.90 ID:7I4TuE41.net]
実行環境忘れてた

ptyon3.10
IDLE

600 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:53:45.66 ID:D6M1QgM/.net]
エラーメッセージちゃんと読んでるか?

601 名前:デフォルトの名無しさん [2022/04/08(金) 18:59:35.32 ID:7I4TuE41.net]
>>591
expected an indented block after while statement on line 2

602 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:00:25.07 ID:LwBnqH/T.net]
>>589
漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
日本人が作った、多言語バージョンマネージャーのanyenv を使っている。
nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)など、20言語ぐらいある。
同様のツールに、asdf もある

漏れは、~/.bash_aliases に、下のように書いている。
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

これは、~/.bashrc の終わりの方で、
もし、~/.bash_aliasesが存在するなら、それを読み込むように書いてあるから
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

bash で、下を入力すると、
which ruby
~/.anyenv/envs/rbenv/shims/ruby

which node
~/.anyenv/envs/nodenv/shims/node

WSL2, Ubuntu 18.04 サーバー(CUI のみ)では、~/.bash_profile は存在しない

603 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:02:02.75 ID:bGha8t6H.net]
>>589
https://github.com/pyenv/pyenv#installation
まず公式読んで

>>592
while True:
  answer = input('パスワードは?:')
  if answer in ['パスワード', 'pass', 'パス']:
    break
print('OK')

先にチュートリアルで構文を学ぼ
https://docs.python.org/ja/3/tutorial/

604 名前:デフォルトの名無しさん [2022/04/08(金) 19:02:33.34 ID:KIOBCG5Y.net]
>>590
そのコード何がしたいかわからん
inputパスがあってたら中身表示するとしたら

while True:
__ans = input('パスは?')
__if ans.lower() in ['パス', 'パスワード', 'pass', 'password']:
____中身表示系書く

とかだぞ
あと評価式でorするときは1から書き直す
if a == 1 or a ==2 or ,,,

とりあえず君は初心者本1冊完走してから作りたいもの作ろう

605 名前:593 mailto:sage [2022/04/08(金) 19:10:07.84 ID:LwBnqH/T.net]
~/.pyenv/bin/ か、~/.pyenv/shims/ に、

python, python2, python3 の内のどれかは知らないけど、
あるかどうか見てみれば?

606 名前:593 mailto:sage [2022/04/08(金) 19:14:42.64 ID:LwBnqH/T.net]
普通は、多言語バージョンマネージャーのanyenv かasdf を使う。
pyenv だけ使う事はまれ

nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)なども使うから

それか、Docker。
Windows, WSL2 なら、Docker Desktop



607 名前:デフォルトの名無しさん [2022/04/08(金) 19:15:41.95 ID:7I4TuE41.net]
>>594-595
https://www.python.jp/train/loop/index.html
一応このサイト見て勉強してるのですが
どうにもうまくいきません……
あとお二人方のコードで試したら、また別なエラーが出ました

作りたかったのは

Q パスワードは?
A パスワード、パス、pass
でAを入力するとOKと表示されるコードでした

608 名前:デフォルトの名無しさん [2022/04/08(金) 19:43:33.96 ID:cn/Cvl0A.net]
>>583
自分は、pythonは記憶とんだ。
だから、門外漢だけど、
「"パスワード"or"pass"or"パス"」じゃないなら、ループ。
って、おかしくない?

「"パスワード"or"pass"or"パス"」ならループ。
じゃないの?
ループを脱出したら「OKを表示」じゃないの?

609 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:50:24.15 ID:xCRwEkJt.net]
>>598

password_list = ['パスワード', 'パス', 'pass']
input_key = input('Enter Your password: ' )

if len(input_key) > 0:
for i in password_list:
if input_key == i:
print('おk')
if input_key != i:
pass

610 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:55:23.52 ID:cn/Cvl0A.net]
自分の発想のアルゴリズムだと、
アルゴリズム変えなければ、たぶんコメントなしだね・・・・・。

611 名前:589 [2022/04/08(金) 20:16:11.04 ID:o9HNgSR+.net]
>>594
レスありがとうございます。

612 名前:デフォルトの名無しさん [2022/04/08(金) 20:24:09.51 ID:KIOBCG5Y.net]
>>598
本当に作りたいのがそれだけなら
passlist = ['a', 'b' , 'c']
if input('password ? ') in passlist:
__print('ok')
なんよ

とりあえず落ち着け。作りたいもの置いといて、基礎を学ぶのだ
今のままじゃ多分全部聞いて、全部身にならない

613 名前:デフォルトの名無しさん [2022/04/08(金) 20:47:17.17 ID:7I4TuE41.net]
>>603
上に上げたサイトだとローカル巻数とグローバル巻数の部分まで来たんですが
ここがどうしても意味不明です

614 名前:デフォルトの名無しさん [2022/04/08(金) 20:57:37.08 ID:L/LJ1T8Z.net]
>>604
お前にはプログラミングは無理だ

615 名前:デフォルトの名無しさん [2022/04/08(金) 21:39:05.15 ID:7I4TuE41.net]
まずIDLEだとインデントが上手くいかない
最後のprintだけスペース戻したらエラーになる

616 名前:デフォルトの名無しさん [2022/04/08(金) 22:21:47.04 ID:YkLgLgBr.net]
>>606
VSCode入れて、それでそのチュートリアルやってみたら



617 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 22:57:08.82 ID:Qvok9sII.net]
質問です
>>594>>603のようにlistでin演算子を使ったところ

同僚に「あー……listでin演算子使っちゃうタイプね(ニチャア)setやdictならわかるんだけどね……(ニチャア)参考までにこういうブログ読んでね【listでin演算子は遅いことを示したURL】(ニチャア)」

ということがありました
苛ついたので月曜日までにPythonを改良して(Python4を自作する)listのin演算子を早くしたいです。よろしくお願いします

618 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 23:35:22.01 ID:xCRwEkJt.net]
>>606
google colabでやったら?

619 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 23:41:09.25 ID:xCRwEkJt.net]
>>603
ほおおおおお
シンプルで勉強になる

620 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 02:15:52.81 ID:Da31VTkt.net]
ローカル巻数とグローバル巻数がわかりません

621 名前:デフォルトの名無しさん [2022/04/09(土) 05:08:42.56 ID:fKWuF8Ed.net]
IDLEは単純に使いづらいぞ、付属品だけど使ってる人皆無
VSCodeかPyCharmの無料版に切り替えた方が良いぞ
実際に開発する時も使うのはこのどっちかだし

Pythonのインデントは基本半角スペース4つだから全角はもちろん、TAB文字でもNG
だから最低でも半角スペースとかTAB文字が視覚的に表示されるエディタ使わないと話にならないし
何よりもデバッガ使って問題がある箇所を探す、っていう工程を覚えないと身にならん

622 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:17:34.20 ID:STE4KUoA.net]
>>611
赤巻紙、青巻紙、黄巻紙

623 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:29:39.23 ID:eHvkij8x.net]
ラズパイでPyQt5使ってます。
IDEはeric6ですが、他にありますか?

624 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:39:02.83 ID:STE4KUoA.net]
>>614
つ google colab

625 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 06:21:03.55 ID:O1Wp6+GJ.net]
>>579
ありがとうございます
openにこんなにいろいろ指定できるなんて感動
newline=に指定するのは出力したい真の改行文字ってことですね

ついでに改行文字について調べてみたら、
Windows版Pythonでprintやwriteに使う改行文字\nってLFのことで、
ホントはCRLFを出力したければ\r\nと書くべきなんだけど
newlineを指定しなければOSに合わせて\n→\r\nに変換して
出力してくれてるってわかってためになりました

ただこれはいいことばかりではなくて、str.replaceで改行文字を
指定して変換をかけるような時は、しっかり\r\nと書かないといけない
ので落とし穴でもあり、改行は恐いなと思いました

626 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 08:13:20.11 ID:r2/dOOYj.net]
>>615
ColabでGUI?っておもったけどローカルのJupyterに接続するんかな
手軽にリモート開発できていいかも



627 名前:デフォルトの名無しさん [2022/04/09(土) 08:50:33.02 ID:eI7Hi2BA.net]
質問です。
MacOS10.12.6 [bash]のpython3.8.3で、
下記のエラーメッセージが出ます。
どういう原因が考えられますか?
どうすれば良いのでしょうか?

ImportError: dlopen(/Users/xxx/yyy/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so, 2): Symbol not found: ____chkstk_darwin

628 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:15:21.81 ID:0h6RcYap.net]
>>612
Python3.10になってIDLEメッチャ良くなったぞ
左にプロンプト専用のスペースができて表示が格段に良くなった
あとはjupyterみたいなセルを導入して欲しいかな

VSCodeとかPyCharmは聞いたことあるけど、明らかにIDLEの方が使われてるよ
だって付属品なんだもん、そもそもエディターはVimしかありえないじゃん?
Vim+IDLEが最強だって!

IDLEはbatファイルから起動させるようにしてるわ
毎回importするパッケージや変数定義をbatファイルに記述しておいて
batファイルでIDLE起動ドーン! これ超便利!
作業別にbatファイルを用意しておいてドーン! これ超便利!

629 名前:デフォルトの名無しさん [2022/04/09(土) 09:23:42.23 ID:fKWuF8Ed.net]
>>619
https://news.mynavi.jp/techplus/article/20200508-1031849/
残念ながらPyCharmとVScodeだけでシェア60割近く握ってるんだ……

batファイル起動とかも、今なら別にGitでクローンして持って来れば良いから
そんな面倒な事せんでも・・…

630 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:38:45.07 ID:0h6RcYap.net]
>>620
https://www.itmedia.co.jp/news/articles/2105/27/news089.html
残念ながらシェア60割近く握っているのはサクラエディタと秀丸なんだ・・

batファイル簡単じゃん、Gitクローンとか知らんし

631 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:53:46.27 ID:a9m8EYfT.net]
それ絶対一人で何回も投票した人いるよね?

632 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:56:19.00 ID:erlZKZM8.net]
>>621
それIDEも使わないようなエンジニアだしw
https://image.itmedia.co.jp/news/articles/2105/27/dy_nn_02_w290.jpg
あと>>620もそうだが60割って…

633 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:06:40.99 ID:fKWuF8Ed.net]
60%って書こうとしてたら60割って書いてたわ……
こんなアホみたいなミスするとは……

634 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:19:09.57 ID:7zWpZRsf.net]
PyCharmとかvimがそんなシェアあるって嘘だろって数値だから
ネタで割使ってるのかと思ったら素でやってたのか・・・

635 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:24:51.12 ID:0h6RcYap.net]
>>624
batも勘違いしてるでしょ?
IDLE起動するとき毎回同じimport文やらを記述するのが面倒だから
そういうのをbatファイルに記述しておいて、IDLEを引数渡しで起動させるってことだよ?
Gitクローン関係無いよね?

636 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:52:35.78 ID:fKWuF8Ed.net]
>>626
すまん、何か色々勘違いしてたみたいだわ
普通にコードのテンプレートみたいなものをbatで生成してるのかと思ったわ



637 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:29:12.77 ID:0h6RcYap.net]
>>627
なるほど、そういう勘違いね
IDLEでガッツリコードを書くわけじゃなくて、コードはVimで書く
IDLEは実行とかテストとかだね、VSCodeとかPyCharmとかも結局裏でIDLEで実行してるわけで
たぶんやってることは同じだと思う、知らんけど

638 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:37:03.51 ID:ehpYMGIZ.net]
>VSCodeとかPyCharmとかも結局裏でIDLEで実行してるわけで

IDLEってTkInter使ったただのエディタじゃね?VSCodeが裏で使うってどういう場面で?

639 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:54:52.85 ID:0h6RcYap.net]
https://docs.python.org/ja/3/library/idle.html
えー、IDLEは対話的インタプリタでありまして・・VSCodeはインタプリタの設定があるようで、
であるからして、えーインタプリタを裏で実行しているということでありまして
えー、、、つまり最後に「知らんけど」って書いてあるのが全てであります

640 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:47:04.00 ID:yJynhyxC.net]
IDLEは、コメントアウトのショートカットキーで"'# "に出来ない時点でアウトなんだよ

641 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:49:50.16 ID:LiKgioEf.net]
>>630
それよりPythonそのものがインタプリタ言語でしょって話だろ
一行ずつ変換してCPUで実行してるで原理は変わらない

642 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:51:34.84 ID:LiKgioEf.net]
開発環境の標準化と管理しやすさから
Docker使うのが楽ちんこかゆい

643 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:56:08.24 ID:XJ3vBTOo.net]
どういうことなの

644 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 13:15:20.25 ID:fH1CYxKR.net]
>>616
>ただこれはいいことばかりではなくて、str.replaceで改行文字を
>指定して変換をかけるような時は、しっかり\r\nと書かないといけない

テキストモードでnewlineを指定しなければ読ま込み時に\nに変換されてるのでstr.replaceは\nで大丈夫

645 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 14:56:49.55 ID:lodglsEl.net]
htmlのタグつきソースじゃなく、webの文字だけを直接取得する方法ってないの

646 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:08:35.72 ID:LiKgioEf.net]
正規表現でいけるんじゃね



647 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:42:19.36 ID:STE4KUoA.net]
つ 「クローリングハックあらゆるWebサイトをクロールするための実践テクニック」

648 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:50:48.63 ID:0h6RcYap.net]
>>636
直接取得する方法は、webページ上でCtrl+A -> 右クリック -> コピー で直接取得できます!

ちなみにhtmlタグつきソースからwebの文字を抽出する正規表現はこんな感じだと思います
import re
re.findall(r'>([^<>]+?)</(?!script)', htmlタグつきソース)

649 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 16:17:02.76 ID:lodglsEl.net]
検索結果から結果の文字列だけ取りたいんだけど
BeautifulSoupじゃなくてもとれるの?
re.findall で, > と < の間の入力文字を取るってこと
やはり一時sourceから整形しないといけないんだね

650 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 16:52:16.54 ID:mo38de66.net]
#TVer改悪 ですか?

651 名前:デフォルトの名無しさん [2022/04/09(土) 19:04:45.34 ID:q9kiD+/u.net]
while 10:
if 10<100:
input("数字")
print("NO")
elif 10>0:
input("数字:")
print("no")


print("END")

数字:10を入力するとENDになって
11~100を入力するとNOと表示されて
10~0を入力するとnoと表示されて戻るプログラム作りたいんだけど
何を入れてもNOとしか表示されない

652 名前:デフォルトの名無しさん [2022/04/09(土) 19:49:24.04 ID:i94l3mqO.net]
超初心者以前の知能が足りない人用スレが必要なんじゃないかな

653 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 19:59:15.82 ID:yZu8Oa/R.net]
gensim使ってword2vecのモデル作ろうとしてんだけど、単語の長さが1文字になっている
例えば富士山って単語があって、その前後にきっちりスペース入っててちゃんと区切られてても、「富」と「士」と「山」として学習されてる

モデル作るときのオプションになんかあるんかなと思って公式のマニュアルみたけど、それっぽいのないしどなたか助け船ください

654 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 21:52:07.66 ID:0h6RcYap.net]
>>642
while True:
  n = int(input("数字:"))
  if n == 10:
    print("END")
    break
  elif 11 <= n <= 100:
    print("NO")
  elif 0 <= n <= 10:
    print("no")

>>644
gensimとか全然知らんけども、調べたら
VECTORS_SIZE = 50 #次元数は20〜50必要と書いてる
あとは文章を単語に分けるget_words周りをチェックしてみたらいいんじゃないでしょうか
https://developers.goalist.co.jp/entry/vector_jisho

655 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 23:11:12.72 ID:yZu8Oa/R.net]
>>645
レスありがとう
そのベクトルサイズっていうのは単語の意味を決めるベクトルの次元数を示してて、単語そのものの長さじゃないんだ

めっちゃアバウトに言うと
抱き枕=抱き締める、枕 …ベクトルサイズ2
抱き枕=抱き締める、枕、気持ちいい …ベクトルサイズ3

ほんで次元数が増えれば増えるほど意味の精度が良くなる感じ

単語にわけるのは問題ない、中身みてもうまく行ってるんで
よくわからん…

656 名前:デフォルトの名無しさん [2022/04/10(日) 00:09:48.46 ID:QKdC6ZNW.net]
>>645
ありがとうございます



657 名前:デフォルトの名無しさん mailto:sage [2022/04/10(日) 00:28:15.42 ID:ECLG0OKI.net]
>>644
自己解決

658 名前:デフォルトの名無しさん mailto:sage [2022/04/10(日) 10:28:10.14 ID:AUZk5nGZ.net]
>>648
ぜひ回答も書いてスレの肥やしにしてください

659 名前:593 mailto:sage [2022/04/10(日) 21:01:22.34 ID:ZtzjE5Lq.net]
>>589
の処理を要約すると、
~/.bash_profile に、下の1 か2を書いているだけ

(1)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

(2)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init --path)"

漏れが、>>593
に書いた、anyenv 用の下の2行と同じ意味。
環境変数PATH を設定してから、仮想環境を実行する

export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

bash で、下を入力すると、
which anyenv
~/.anyenv/bin/anyenv

次へ続く

660 名前:593 mailto:sage [2022/04/10(日) 21:02:11.54 ID:ZtzjE5Lq.net]
前からの続き

ただし、漏れの環境は、WSL2, Ubuntu 18.04。
君のOS や、シェルが何か分からないが、

シェルで下を入力すると、
which pyenv
~/.pyenv/bin/pyenv # 1の場合
~/.pyenv/shims/pyenv # 2の場合

1, 2で、どちらかが表示されるのでは?

まあ、多言語バージョンマネージャーのanyenvか、asdf を勧める

>>596
>~/.pyenv/bin/ か、~/.pyenv/shims/ に、
>python, python2, python3 の内のどれかは知らないけど、あるかどうか見てみれば?

これは、たぶん間違い。
~/.pyenv/bin/pyenv か、~/.pyenv/shims/pyenv がある

結局、~/.pyenv/bin/ か、~/.pyenv/shims/ は、各人の好みなんだろう

661 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 07:06:19.05 ID:+2lQ4ezC.net]
Python venv 仮想環境のフォルダー名 --clearとやったら全部吹っ飛んだんだがどうしたらいいの?

m1 macでやっててユーザー名変えたら何故かvenvがactivateされててもpythonコマンドが2系だったんでどっかのクソサイト真似たら想定してない結果になった

これ復元できるかね?

662 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 10:12:49 ID:sVlSXLDD.net]
同じく仮想環境でのエラーについて…
modulenotfounderrorの原因って何があるかね(モジュールはrequests)
winのvscode上で、仮想環境内にインストールは当然してるし、スペルミスもない、vscodeとPython両方ともパスも通ってる

あと何がある?追加インストールしたモジュール全部このエラーになるんだ
m1macではエラーはでなかったから尚更意味わかりません

663 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 10:22:02 ID:8HOMPEv6.net]
箇条書きで整理してから肉付けしてみて
自己解決すんじゃないかな

664 名前:デフォルトの名無しさん [2022/04/11(月) 11:30:00 ID:uYcMdD2t.net]
>>652
そら仮想環境は--clearしたら全部消えるし、ユーザ名変えたらパス変わるし使えなくなるでしょ
何らかのバックアップとってないと復元は無理だと思う

665 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 11:54:19.97 ID:EWxq5I4o.net]
サイトが糞だったのか自分が糞だったのか詳しく

666 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 12:14:48 ID:rXD/3mKA.net]
>>653
何もミスしてないってのが間違いなんじゃねーの
とりあえずsys.pathをprintすれ



667 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 12:36:17.27 ID:uIRj5XJN.net]
>>653
Ruby ではモジュールは、モジュール探索パス内から探される

例えば、モジュール探索パスに、フォルダa, b, c が存在する場合、
その先頭から、つまりabcの順番で、モジュールが存在するかどうかを探していく

同名のモジュールが、aとc内にある場合は、
a内のモジュールが使われて、c内のモジュールは使われない

なので、この順番が重要

668 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 13:33:13.98 ID:zI2UWl89.net]
Dockerでやれよ

669 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 20:50:27.40 ID:+2lQ4ezC.net]
>>656
https://dev.classmethod.jp/articles/change-venv-python-version/

こいつの記事を見てインストールし直すといいとか書いてあったからpip installでできる何かかなと思ってreqxirements.txt作ったけどやったあとにそういえばPythonってファイルのことモジュールって言うよなと思いだして見てみたら全部消えてた

こいつの説明もおかしいしclearなんて何をクリアーするのか分からない名前にする方もおかしいしモジュールなんて紛らわしい名前にする方もおかしいし全部がおかしい

しかも一番最後に唐突にpyenvなんて単語が飛び出してきてるあたりvenvとpyenvごっちゃになってるんたろうな

670 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 21:15:25.54 ID:8HOMPEv6.net]
記事読んだけどpyenvとvenvを混同してるの>>660だけやん
何するにもまず公式サイトの説明かコマンドのヘルプみない方が悪いよ
classmethodだから変なこと書いてる可能性は低いが公式ではないからね

671 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 21:18:23.24 ID:+2lQ4ezC.net]
>>661
うん本当に公式サイトの説明かコマンドのヘルプ以外何も信用できないと痛感した

今後はその2つ以外何も見ないようにするよ

それはそうとデータ復元させられればいいんだけどね
やる気ないわどうしよう

672 名前:593 mailto:sage [2022/04/11(月) 21:40:41.55 ID:uIRj5XJN.net]
普通は複数言語を使うから、venv , pyenv を単独では使わない。
Ruby と同じで、GUI が無く、HTML, CSS, JavaScript を使うから、Node.js も必要

多言語のバージョンを個別に管理できない

だから、漏れは日本人が作った、多言語バージョンマネージャーのanyenv を使っている。
nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)など、20言語ぐらいある。
同様のツールに、asdf もある

それか、Windows 10, WSL2, Linux, VSCode なら、公式のDocker Desktop

673 名前:593 mailto:sage [2022/04/11(月) 21:51:13.38 ID:uIRj5XJN.net]
基本的に、単独のバージョンマネージャー、
venv , pyenv, rbenv の記事を書いている香具師は、情弱

そういう香具師は、Node.js を入れる段になると、nvm, n とか言い出すw
各言語で、様々なバージョンマネージャーを使うな。ややこしい

最初から、20言語入っている、anyenv, asdf を使えば良いだけ。
全言語同時に更新できるし

それか、Windows 10, WSL2, Linux, VSCode なら、公式のDocker Desktop

この3つ

674 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:50:16.65 ID:zI2UWl89.net]
だからDocker以外認めないんだって
さらに環境構築はスレチなので
初心者はgoogle colabでやりなはれ

675 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:53:31.78 ID:zI2UWl89.net]
さもなければ拗ねる

676 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:57:32.81 ID:vk1u9tuU.net]
漏れと香具師とか生きとったんかワレ



677 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 04:43:55.44 ID:iDZ3USXF.net]
「普通は複数言語を扱うから」とかいうのは正しいかもしれないが、だからといってごちゃ混ぜ環境構築ツールを使うのはベストどころか悪手だから信用しちゃいけないよ

どう考えてもその言語専用に開発されたツールを使った方が、言語のバージョンアップに素早く対応できるし、
情報も多いし細かい所まで調整できる

ラッパーツールを使うってことは自らラッパーツールによる制限をあらかじめ課しているようなものなので、
ラッパーツールで十分と判断できるようになるまで理解が進むまでは使わない方がいいと思うわ

poetryですら弱点(pipの --find-links が使えない)があるからなあ。

678 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 08:14:42.30 ID:5/F0IJac.net]
発達障害の相手をするな

679 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 08:45:44.48 ID:J6etQu1f.net]
ちんちんシュッ!シュッ!シュッ!

680 名前:593 mailto:sage [2022/04/12(火) 13:21:00.67 ID:gsOGD0UL.net]
多言語バージョンマネージャーのanyenv, asdf を使わない香具師は、大変

例えば、Python は公式のvenv, Ruby はrbenv,
Node.js はnvm。でも、最近は、n もあるのでどうしましょう?
とか聞かれたら、そういう香具師を相手にできない

そいつは様々なバージョンマネージャーを調べる、時間が膨大

681 名前:デフォルトの名無しさん [202 ]
[ここ壊れてます]

682 名前:2/04/12(火) 16:48:37.17 ID:nozFiGE2.net mailto: すいません教えてください
pyautoguiの.pyファイルを.pywにしたら
キー入力されなくなってしまいました
pyautogui.ress("aaaa")してもアクティブウィンドウに入力されません
どうしてでしょうか?
.pyのときはうまくいったのにできません
[]
[ここ壊れてます]

683 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 16:53:27.00 ID:gsOGD0UL.net]
確かに、python/pythonw, ruby/rubyw の違いって何だろ

684 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 16:54:12.66 ID:JpfqGpfI.net]
どんなコード?

685 名前:デフォルトの名無しさん [2022/04/12(火) 17:01:08 ID:nozFiGE2.net]
すいません
pyautogui.press('a')でした
pyautogui.press('a')にしてもpywにすると入力されないです

686 名前:672 [2022/04/12(火) 17:05:24 ID:nozFiGE2.net]
>>674
これでみれますか?
https://ideone.com/MBXcaG



687 名前:デフォルトの名無しさん [2022/04/12(火) 17:47:07.40 ID:dyOgG/yk.net]
要素が100あるリストを作るにはどうすればいいですか?
[0] * 100 ってのもカッコ悪い。
整数型で要素数100、初期化は不要。
int d[100]; 的なやつ。

688 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:00:54.92 ID:3I6I23IO.net]
慣れの問題じゃね?
list(range(100))
とかでもかけるけど…

689 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:06:36.43 ID:dyOgG/yk.net]
ありがとう。
[0, 1, 2, .. 99] ってリストを作るのか。

array も numpy 入れないと使えないのが面倒だね。

690 名前:672 [2022/04/12(火) 18:13:09.62 ID:nozFiGE2.net]
>>676の12行目のprintに#をつけると.pyでも
キー入力されなくな

691 名前:閧ワした
代わりにtime.sleep(0.5)いれたらキー入力されるようになりました

これは一体何が起きれるんでしょう???
指定したウィンドウがアクティブになるまで待つループに行かずに
プログラムが終わっちゃってるんでしょうか???
[]
[ここ壊れてます]

692 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:39:56.40 ID:ESzOQLHU.net]
stdoutがないからだよ

693 名前:672 [2022/04/12(火) 19:08:23.01 ID:nozFiGE2.net]
>>681
stdoutを
検索したんですがちょっと難しくて分からないんです
stdoutをどこにどうつけたらいいんですか?

694 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 19:26:07 ID:wqnh+ciA.net]
import pyautogui
import time
time.sleep(5)
print("test")
pyautogui.press('a')
で正常に動く

pyautogui.pressの前に終了してんじゃね

stdoutは今回関係ないと思うけど

695 名前:672 [2022/04/12(火) 20:13:48.89 ID:nozFiGE2.net]
>>683
ありがとうございます
なぜかSleep入れないと終了してしまうみたいです

696 名前:デフォルトの名無しさん [2022/04/12(火) 20:50:57.47 ID:b2N2qKAz.net]
card={"ID":"python123","PASS":"python","an":"1234"}
card_input=input("クレジットカード:")

while True:
if card_input in card:
print(card[card_input])
break
else:
print("違います")

これで何故か違いますがループしてしまいます



697 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:02:02.35 ID:/Ra8N6EM.net]
とくさんか?

698 名前:デフォルトの名無しさん [2022/04/12(火) 21:15:26.84 ID:nozFiGE2.net]
pythonを3.10にアップデートしたのですが
コマンドプロンプトでpython -Vするとpython 2.7.14となってしまいます

cdでpython3.10のある場所まで移動してから
python -Vするとちゃんと3.10.4と出ます

古いバージョンのpythonはアンインストールして
pathも確認したんですがきちんと入ってるし
どうしたら3.10になるんでしょうか?
でも.pyのファイル自体はpython3.10のpython.exeに関連付けさせて
ダブルクリックでpython3で動くようにはなっているみたいだし
これはいったい・・・?


699 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:43:39.95 ID:wqnh+ciA.net]
>>687
コマンドプロンプトでwhere pythonを実行

microsoftのパスが含まれていたら
設定 アプリ アプリ実行エイリアス
アプリインストーラー(python.exe,python3.exe) → オフ

microsoftのパスが含まれていなかったらわからん

700 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:47:47.87 ID:iDZ3USXF.net]
>>677
カッコ悪いとかいう前に、それがPythonだからなあ。[*range(100)]とかもあるがlist(range(100))よりちょっと短いってだけだな

701 名前:デフォルトの名無しさん [2022/04/12(火) 22:07:40.99 ID:nozFiGE2.net]
>>688
ありがとうございます
where pythonしたら
inkscapeの中にあるpythonが出てきたので
inkscapeをインストールし直したら
cmdのpythonも3.10になりました!!

702 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 22:42:33.34 ID:xAlxnI5L.net]
inkscapeはpythonのパスを乗っ取るのか
gimpはそんなことしないのにな

703 名前:デフォルトの名無しさん [2022/04/13(水) 10:15:08.39 ID:mrQ0lXuv.net]
>>677
ary = [None] * 100

704 名前:デフォルトの名無しさん [2022/04/13(水) 11:46:56.33 ID:e4z5vS6p.net]
誰か>>685の質問に答えて

705 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 11:53:51.12 ID:e6OSlB4j.net]
なんだその態度は!

706 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 11:57:12.77 ID:DDWJQX1p.net]
そもそも685は質問じゃねーじゃん



707 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 12:25:16.84 ID:U9T9z/+B.net]
>>685
in dictってkeyそのものの存在チェックにしかならんぞ
だからID、PASS、anって入力した場合は
ifの中に入れるけど、python123とかって入力した場合にはelseに入る

質問するなら、想定してる挙動と実際の挙動
(何を入力した時にどういう判定をして、どう出力されるか)辺りまで軽く書いておかないとエスパー要素必要になるぞ

708 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 12:30:16.93 ID:Ndo4Py5H.net]
エスパー要素いらないだろ
ソース見れば何を聞きたいかはわかる

709 名前:デフォルトの名無しさん [2022/04/13(水) 12:49:39 ID:ucZJU7o2.net]
>>693
お前は基礎的な知識が足りなさ過ぎて、いちいち質問してたらキリがないから
一度チュートリアル的なことやってこいって言われただろ

710 名前:デフォルトの名無しさん [2022/04/13(水) 13:21:38.69 ID:e4z5vS6p.net]
>>698
申し訳ございません
説明書みて一通り試してみたけど、まだ修業が足りなかったみたいです

711 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 13:34:58.58 ID:OtnGUpOi.net]
>>699
card={"ID":"python123","PASS":"python","an":"1234"}
card_input='ID'

counter = 0
while True:
counter += 1
if counter == 10:
break
if card_input in card:
print(card[card_input])
break
else:
print("違います")

結果はPython123
keyじゃなくてvalueがあるのか知りたいなら

card={"ID":"python123","PASS":"python","an":"1234"}
card_input='python'

counter = 0
while True:
counter += 1
if counter == 10:
break
if card_input in card.values():
print(f'{card_input}はある')
break
else:
print("違います")

712 名前:デフォルトの名無しさん [2022/04/13(水) 13:58:50.36 ID:e4z5vS6p.net]
>>700
ありがとうございます

713 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 15:01:31 ID:axude+fp.net]
>>700
これ両方とも何がしたいのかわからん
特に2つめとかありえんやろ

714 名前:デフォルトの名無しさん [2022/04/13(水) 15:20:53.26 ID:e4z5vS6p.net]
クレジットカードのID、パスワード、暗証番号を文字入力で分かるプログラムを組みたかった

715 名前:デフォルトの名無しさん [2022/04/13(水) 16:03:29.19 ID:MldHjaMW.net]
>>703
お前はもう消えろ

716 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:14:56.54 ID:oiiWsGZU.net]
パスワードとか暗号化したうえでログインできるスクリプトってかけるの



717 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:17:24.75 ID:LexWIY5u.net]
>>571
rarのヘッダのフォーマット調べたら、
ファイル数そのまんまは記録されてないみたいね
書庫内のファイルのサイズはファイル毎の先頭に書いてあるので、
ファイル末尾までシークしながら数えるしかないみたい

rarは書庫の分割に対応している圧縮形式だけど
たとえば3つに分割して2番目だけ削除すると、
本家のWinrarでも1番目と3番目に入ってるファイルしかわからなくなる

718 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:20:57.30 ID:okI3ZS6T.net]
>>703
クレジットカード1枚だけの情報を管理するプログラム?

“ID”と入力すればその1枚のカード番号が表示される
“パスワード”と入力すればパスワードが表示される
ということ?

719 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:26:04.91 ID:Ndo4Py5H.net]
解凍しなくても数が分かるかって質問に対してはyes。rarも解凍しなくてもわかる

720 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:38:15.19 ID:QsWWVW1A.net]
>>705
OSが提供するPassword Vaultを利用するのが一般的
実行時に何かしらCredentialを渡す形になる

721 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 19:59:56.38 ID:2NeVpU9O.net]
whileループの中にinputがないのにループ回す理由あるの?

722 名前:デフォルトの名無しさん [2022/04/13(水) 20:15:30.03 ID:4yCExL0b.net]
カードガイジが作りたいのはこういうカタチだろ?
whileは待ち受けたい意図でしょ
データベースとアクセサとかGUIとかの話はたぶんできなかろ

実践力を身につけるPythonの教科書 っていうプログラム自体がはじめての人向けの
すげー甘い本があるから,作りたいものを忘れて,手を動かしながら読み切れ
殺すぞクソバカゴミ野郎

banks = ['mizho', 'ufj']
ids = ['a0123', 'z9876']
passs = [1234, 9876]
seqs = [123, 987]

while True:
____req = input('銀行名は? : ')

____if req == 'end': exit()

____try:
________idx = banks.index(req)
____except ValueError:
________print('\n死ね\n')
____else:
________print('\n銀行名', banks[idx])
________print('ID', ids[idx])
________print('PASS', passs[idx])
________print('SEQ', seqs[idx])
________print()

723 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:47:54.73 ID:Rs+TlID+.net]
passs

724 名前:デフォルトの名無しさん [2022/04/13(水) 20:49:17.78 ID:Z6ROrQAS.net]
for p in product:
print(p)

とありますが、この文のpって文字はどんな小文字英語でもいいんでしょうか?
またはこの文字じゃないといけないなど、何かしら理由があるのでしょうか?
ご教授お願いします。

725 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:53:05.46 ID:wi1nO/gW.net]
わかりやすければなんでもいいよ
1文字でなくても

726 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:59:01.94 ID:Rs+TlID+.net]
>>713
https://docs.python.org/ja/3/reference/lexical_analysis.html#identifiers
そこまでに登場してない識別子でキーワード以外



727 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:12:32.22 ID:Z6ROrQAS.net]
ありがとうございます!

728 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:15:44.96 ID:Z6ROrQAS.net]
>>714
一文字じゃなくてもいいんですね
新発見です!

729 名前:デフォルトの名無しさん [2022/04/13(水) 21:24:17.20 ID:MldHjaMW.net]
>>717
いい加減消えろや

730 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:24:39.98 ID:iz/3T8fY.net]
>>711
これは酷い
同じレベルじゃん

731 名前:デフォルトの名無しさん [2022/04/13(水) 21:34:31.03 ID:2yWJivzV.net]
>>719
そり同じレベルで回答しなきゃ質問者が理解できないだろ…
俺ならtryも避けて答えるかもしれん

732 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 01:24:51.42 ID:uO0SXD9A.net]
ガイジはプラレールとかで遊んでろよ…

733 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 01:42:48 ID:ZzIGlvaI.net]
いつからこんな悪辣になった?

734 名前:デフォルトの名無しさん [2022/04/14(木) 02:10:25.44 ID:lxOIQ3st.net]
悪貨が良貨を駆逐する
馬鹿がスレをダメにする

735 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 13:12:06.99 ID:BtLi5peK.net]
もともとこんなもんだろ
新年度(と学校の休み期間)は特にそれが顕になるだけ

736 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 15:03:37.58 ID:JhmvXnUD.net]
別にくだすれだから別にええぞ
何度も似たような質問してきたら流石に返答者も荒れるが



737 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 18:28:52.38 ID:lv3Dkk0V.net]
ファイルの先頭行に列を挿入したいのですが、列名が無い場合の追加方法がぐぐっても出て来ません( ノД`)

738 名前:デフォルトの名無しさん [2022/04/14(木) 18:32:29.06 ID:GwONt0bS.net]
>>726
そうなんだ

739 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 19:03:58.80 ID:zm2h//wN.net]
>>726
ファイルに行と列があるのはわかるけど、どういう風に行や列を表記するかは千差万別なので
ファイル形式(OpenXMLやCSV、TSVなど)かどのアプリで扱うファイルなのか分からないと答えようがない

740 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 20:52:20.51 ID:kWetsGXW.net]
>>726
そりゃ出てこないだろうな

741 名前:726 mailto:sage [2022/04/14(木) 23:18:32.03 ID:lv3Dkk0V.net]
解んなかったので、Dosのファイル結合で処理しました
失礼しました

742 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 00:49:03.96 ID:gAv1cu4K.net]
ファイル結合で先頭行に列を追加!?
すごいDOS力

743 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 01:08:53.44 ID:9XxTBRIR.net]
まず先頭行に列を追加ってどういうことよ?

744 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 10:48:59.76 ID:JgjbCGpn.net]
先頭行に列追加ってまんまじゃん・・・

プログラムでやるならtmp開いて先頭に追加したいの書き込んで、その後に元ファイルの内容読み込むと同時にtmpへ書き込む
で、全部終わったら元ファイル消して、tmpを元ファイル名にリネームして終わり
エラー処理きちんとしないとトラブル色々起きる

745 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 11:21:19.02 ID:1FLstH2r.net]
行には行しか追加できんだろ。
まあ列のヘッダを追加したいってことなんだろうけどね。

746 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 11:42:10.16 ID:NjgRgzMt.net]
配列で[1:100]だと[100]が含まれないのに慣れん。
それなら [1:100) にしろよ。



747 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 17:51:56 ID:PiHpabQE.net]
要素数が100なのにend-startが99だったりしたらそれはそれでややこしかったりするので一長一短かと

748 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 18:52:43.93 ID:NJzLAbi3.net]
空の区間を表現するのに特別な表現をいれたくないしね

> それなら [1:100) にしろよ。
半分同意
Haskell他にある多重ドットを拝借してほしかったけど
どっちがどっちだっけとなりそうだし悩ましい

749 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:03:00.69 ID:Pt8Ngg3U.net]
こういうことでしょ?つまり普通はAが欲しければ[0:1]と書く

じゃなんで[1:100]で100が含まれない?
o.5ch.net/1y4kc.png

750 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:24:36.19 ID:PiHpabQE.net]
>>738
インデックスの1のところが100だとしたら、数値の100はBの位置なんだが…

751 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:32:41.96 ID:atHGer73.net]
またこの話かよ
L[a:b] + L[b:c] == L[a:c]
が成り立つように決められたからだって言ったたろ
あれ、こっちのスレじゃなかったか?

752 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:07:28.54 ID:CLXxITWO.net]
>>740
正直、Pythonの基本仕様で一番難解だと思う
数年Python使っているけどいまだに覚えられなくて
>>738のような図をいちいち書いてコーディングする

753 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:50:41.47 ID:T4CYxiXU.net]
[1:100}で100が含まれないのは非直感的な面はあるのは確かだけど慣れるしかない
[1:100]はfor (i = 1; i<100; i++)みたいなイメージで捉えてる

754 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 22:00:09.34 ID:qspZjXdd.net]
アドレス0からアドレス0x10まで何バイトですかったら16バイトだし
添え字=要素ではなくオフセットと捉えられるなら、そう突飛とは思えぬけど
1ベースなら考えなくもないが、満年齢然り0ベースは<=より断然<だし面倒がない

755 名前:デフォルトの名無しさん [2022/04/15(金) 22:47:15.90 ID:HX7dwYSm.net]
>>743
えっ?

756 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 03:27:04 ID:M2x4IyLd.net]
ああ分かったぞ

100が含まれないじゃなくて含まれるじゃん
ただ[0:100]じゃなくて[1:100]と書いてるから100じゃなくて1が含まれないんだよ
じゃ別に普通だな

それよりrange(0, 100)で0から99までって事のほうがアカンやろ

a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]
for i in a[1:100]:
print(i)



757 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 04:37:12.16 ID:GwpFWYo1.net]
すいません、教えて下さい
こういうのをaiとかでやらせたいのですが
何からとっかかればいいんでしょうか?

カラー漫画の吹き出しの中の文字を
周囲と同じ色で塗りつぶして消したいです

おそらく100%うまくいくと思えないので
塗りつぶしのみの画像をaiに作らせて
フォトショップみたいな画像ソフトでレイヤーとして
上に被せて
関係無い部分が塗りつぶされてたら
手で直すって感じを想定してます

問題は学習用のデータがなく
自力で修正した数ページ分の漫画で
コツコツ教え込むしかない事です
よろしくお願いします

758 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 09:26:44.86 ID:ewKy6 ]
[ここ壊れてます]

759 名前:0XC.net mailto: >>746
文字部分だけをマスクした教師データを用意してセグメンテーションするのがいい
塗りつぶすのは別のアルゴリズムを使うほうがいいかなぁ
[]
[ここ壊れてます]

760 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 14:13:32.08 ID:u7Gm+96S.net]
OCR使えばいいだけでは?
誤字とか関係ないんだし

761 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 15:31:25.88 ID:fPn+eEc/.net]
吹き出しの中に絵が書いてあったらどうするの?

吹き出しの検出は物体検出の分野だと思うのですが
PASCAL VOCで見かけた事は無いのでMS COCOを
漁るか自分で集めるかかな

762 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 16:37:07.55 ID:NFUA2B25.net]
>>746
ちょっとググったらそう言うのは結構やられてるのな
残念ながらフリーのやつは見つけられなかったけど
https://image.itmedia.co.jp/ebook/articles/1107/05/tnfigff2.jpg
https://www.itmedia.co.jp/ebook/spv/1107/05/news067.html

>>749
> 吹き出しの中に絵が書いてあったらどうするの?
そんなレアケースなんて当面考えなくても良くね?

763 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 18:22:27.77 ID:fPn+eEc/.net]
>>750
このリンク先の技術はディープラーニングの洗礼を受ける前のだから、今の技術で再構築すればもっと優れたものが
出来る可能性は高いな

本来あった(であろう)物を補完するのはGANとかになるかと。(ディープフェイクとかの分野や)

なお、GANでアワビを補完して逮捕された事案が最近あったなw

764 名前:746 mailto:sage [2022/04/16(土) 23:16:15.06 ID:GwpFWYo1.net]
もう自分が作ろうと思ってるものが出来てたんですね…
驚きです

765 名前:デフォルトの名無しさん [2022/04/17(日) 01:28:36 ID:WoAMfKL/.net]
こんなことも知らないのは初心者というより知的障害者に近い

766 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 04:46:41.05 ID:2lvfHA8s.net]
>>753
それあなたですよね



767 名前:デフォルトの名無しさん [2022/04/17(日) 11:52:58.54 ID:06xFq++l.net]
xlist, ylist = [], []
getxy(src) ->(x, y) # 出力値は入力値による

大量にgetxyを回してxlist, ylistに結果を記録していくとき
どういう方法が速い(?) / 高効率(?)ですか

xy = getxy()
xlist.append(xy[0])
ylist.append(xy[1])
しかわかりません…

768 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 12:08:40 ID:E+w90SEK.net]
Python onlyかつライブラリなしであればそれでいいよ
回数が分かってるなら[None]*100とかで先に確保しておくと、途中でリストメモリの再確保が入らないから厳密には多少速いだろうけど、まあ誤差でしょ

getxyが画像のピクセルを触ってるなら、何かしらの方法で一括取得できるはずだからリファレンスをよく読め

他にはnumpy使うとかnamba使うとかcython使えば速くなるかもしれない
こいつらは速くなる条件があるから条件に適合するコードを書くことが必要だ
これは少し慣れがいる

あとはそこだけcとかc++とかgoとかrust使ってロジックを書いてctypesで呼べば速い
これはさほど条件に左右されず速くなる
初心者にはおすすめしないけど

769 名前:デフォルトの名無しさん [2022/04/17(日) 12:22:40.47 ID:06xFq++l.net]
>>756
了解です
xyは画像座標なんだけど

getxy(im):
if bbox := myfilter(im).getbbox():
_ return bbox[0] * n , bbox[2] * m
else:
_ return 0, im.width

みたいな感じなのでいじれないかなー
cは書けないので切腹します

770 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 15:19:43.31 ID:AHx/k7U9.net]
要素数が多いほど[None] * nのプリアロケートで得られる速度差は微々たるものになって
インデックス周りなんかのその他の呼び出しで相殺される
それよりPythonでの命令数を減らすほうが速度は上がる

771 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 19:46:30.65 ID:hToGhZqz.net]
pandasで日付を軸にCSVファイルを結合したいのですが、書式をyyyy-mm-ddで統一しているはずなのに、成功するのと失敗するのがあります
失敗 2009-01-05
成功 2009-01-06
失敗の方は同一の日付と見なされないので行が重複します

Pythonには人が見えないものが見えてるのでしょうか?

772 名前:デフォルトの名無しさん [2022/04/17(日) 20:12:58 ID:xdoWfkC3.net]
私にはあなたのやりたい事が見えないです

773 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 20:52:14 ID:BJkxuXtr.net]
質問の仕方で知性も人間性もわかるよね

774 名前:デフォルトの名無しさん [2022/04/17(日) 21:10:58.88 ID:TsyjUgRL.net]
>>759
そりゃ見えてるだろ
それとも君は直接その眼でメモリー内容が見える人なの?

775 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 21:11:17.06 ID:lzcM8q3n.net]
質問に対する反応でもね

776 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 07:30:00 ID:q3rIpq5e.net]
Win10にAnacondaをインストールしたのですが、AnacondaからSpyderを起動すると落ちてしまい、二度と起動しません。
スタートメニューのショートカットも消えてしまいます。
どうしたらいいでしょうか?



777 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 08:24:53.65 ID:KQnHhLBW.net]
>>759
半角・全角だいじょうぶ?

778 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 12:09:38 ID:aIiYfvVh.net]
VSCodeでPythonしています
frm = tkinter.Tk()
でフォームを作り、これをクリックしたときに座標を取得したいのですが、
frm.bind('<Button-1>',frm_click)
としても、frm_clickを呼び出してくれません
どこがおかしいでしょうか?

779 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 14:35:05.52 ID:B0PpCiU+.net]
pythonからhtmlファイルを指定してブラウザで開く、閉じるができません。
subprocess.popen開くことはできるのですが、開いたらファイルを閉じる(タブを消す)ためにはどうすればよいでしょうか。

780 名前:デフォルトの名無しさん [2022/04/20(水) 21:54:23.66 ID:NTuuFKH0.net]
変数がfor できるかどうか判別する方法ありますか?

781 名前:768 [2022/04/20(水) 21:57:53.61 ID:NTuuFKH0.net]
文字列に対してforしたら、一文字ずつ取得でき想定してない動作になりました
エラーか、ループせずを想定したのですが
リストなど通常、ループできるのが適当なやつを判定するにはどうすればいいですか?

782 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 22:16:03.52 ID:WoVRayDr.net]
>>769
forで文字列が一文字ずつ取得できるのは正当なPythonの仕様なので
文字列をforの対象にしたくないという考え方が間違っています

783 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 22:22:57.69 ID:PgCzoxTm.net]
>>769
if isinstance(obj, (Iterable, Sequence)) and not isinstance(obj, (str, bytes)):

784 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:04:40.03 ID:wSEx/joO.net]
>>769
まず基本的な型になれるといいよ
ミュータブル
イミュータブル
シーケンス

785 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:06:36.28 ID:PionEwfV.net]
a = soup.find_all
としたときにaをa0とかa1のように
あらかじめfor i in range(2):で生成される数値を入れたいのですが。
前もってb=a+str(i)=a0として
b= soup.
とできますか?

786 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:30:24.72 ID:2isIGBT3.net]
aやa0/a1は字面こそ似てるけどPythonからすると全く関連のない識別子で統一的に扱えなくなる
listとして単一の変数で扱うのが筋
a = [] # list
a.append(soup.find_all(…))

急がば回れでまず公式チュートリアルをやるべき



787 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:41:19.59 ID:PionEwfV.net]
ご教授有難うございます

788 名前:デフォルトの名無しさん [2022/04/20(水) 23:42:38.34 ID:LGsJlZ4G.net]
subprocess.Popenで動かしたものの出力を拾いたいのですが文字化けしてしまいます
どうすれば文字化けが治りますか?

windows 10
python2.7で3.10の.pyを動かしています

2.7のほう(GIMP python コンソール)
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\oyo.py'), stdout = subprocess.PIPE, shell=True)
line = p.stdout.readline()
line
3.10のoyo.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

print("あいう")

結果
あいうが'\x82\xa0\x82\xa2\x82\xa4\r\n'になってでてきますorz

789 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:49:59.94 ID:5YAs/nU7.net]
もうPython2覚えてないや
line.decode('cp932')
かな?

790 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:53:10.20 ID:CqlWpUmw.net]
>>773
何のためにそんなことしたいの?

前にも似たようなこと書いてた人がいたけど
変数名を連番で生成してそれらに代入したくなる状況が想像できないので理由を説明してくれると助かる

791 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:59:08.90 ID:2isIGBT3.net]
>>778
> 前もってb=a+str(i)=a0として
こうメタプロ的に解決しようとかんがえたんだろ
なんでわからん

792 名前:776 [2022/04/21(木) 00:06:54.28 ID:EXXirMvu.net]
>>777
文字が増えるだけで普通の文字になってくれないです
line.decode('cp932')
u'\u3042\u3044\u3046\r\n'

793 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:31:19 ID:68zG9eph.net]
>>780
ちゃんと「あいう」とUnicode文字列で保持できてる
そのGIMP環境で日本語がprintできる前提で
>>> '日本語'.decode('cp932')
がエラーなしなら
>>> print u'\u3042\u3044\u3046\r\n'.encode('cp932')
でとおるはず
環境によりcp932はutf8他かもしれんが

794 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:38:42.33 ID:Qeso+L0D.net]
>>776
最後2行
line = p.stdout.readline().decode('cp932')
print line

で表示できるはず

795 名前:776 [2022/04/21(木) 00:53:13.48 ID:EXXirMvu.net]
>>781
>>782
GIMPコンソール上では
line.decode('cp932')で
u'\u3042\u3044\u3046\r\n'
とでてたんですが
メッセージボックスだしたら
gimp.message(line.decode('cp932'))
日本語表示されました。
よくわからないですがそういう文字の扱い?みたいです
おさわがせしました
ありがとうございます

796 名前:776 [2022/04/21(木) 01:54:42.76 ID:EXXirMvu.net]
もう一つ質問なんですが
stdoutで他の.pyで動かした出力が受け取れたんですが
他の.pyに入力を与えてその結果出力を受け取るにはどうしたらいいんでしょうか?
検索しても
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\oyo.py'), stdin=subprocess.PIPE,stdout = subprocess.PIPE, shell=True)
みたいに
stdin=subprocess.PIPE
を追加するみたいなんですが、入力する変数はどこに書けばいいのか
入力を受け取る側の.pyではどうやって受け取るのか分からなかったです



797 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 02:05:23.23 ID:Qeso+L0D.net]
>>784
.communicate(input=変数)

798 名前:746 mailto:sage [2022/04/21(木) 06:31:01.36 ID:EXXirMvu.net]
>>785
ありがとうございます
入力を受け取る側の.pyではどうすればいいんですか?

799 名前:デフォルトの名無しさん [2022/04/21(木) 09:46:00 ID:v468I8x9.net]
ターミナルから以下を入力すると問題なく実行できるのに、
ファイルcalendar.pyに保存して実行すると
TypeError: 'module' object is not callableになるのは何故でしょう?

import calendar
print(calendar.calendar(2022))

800 名前:デフォルトの名無しさん [2022/04/21(木) 09:48:00 ID:v468I8x9.net]
すみません自己解決しました。
calendar.pyの名前が被ってるからのようですね。

801 名前:746 mailto:sage [2022/04/21(木) 17:49:56.13 ID:EXXirMvu.net]
自己解決です
受け取る側にinput()で出来ました

802 名前:デフォルトの名無しさん [2022/04/21(木) 19:03:12.96 ID:FRtLfLsM.net]
import tkinter
でTtkが読まれないのは仕様だそうですが、いまいちしっくりこないんですが単なるインポートでコレが読み込まれるとか(Ttkのように)読み込まれないとかはどこで知ればいいのでしょうか?

803 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:17:14.76 ID:gmJJNdw9.net]
>>790
from tkinter
だとtkinter以外インポートしないから
from tkinter import *
のときってこと?
それなら tkinter.__all__ でわかる

804 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:20:14.88 ID:gmJJNdw9.net]
https://docs.python.org/ja/3/library/tkinter.ttk.html
Ttkって拡張があるんだね
これは個々の事情なので知ってないとわからないけど
ここに書いてるし説明くらい読もうよしかいえん

805 名前:デフォルトの名無しさん [2022/04/21(木) 20:19:47 ID:YKw8btnC.net]
import tkinter as tk
import tkinter.ttk as ttk
imporr tkinter.messagebox as tkmb
import tkinter.filedialog as tkfd
俺が普段使うセット

from tkinter import *
from tkinter import ttk
は推奨しない
一部のウィジェットはtk版のが使いやすかったりするから
オーバーライドされてほしくないのだ

806 名前:776 [2022/04/22(金) 01:33:52.51 ID:llHCzfDa.net]
>>776です
input()で入力を受け取ったpython3.10の方が文字化けしてしまって
自分なりにはいろいろencode,decode試したんですが
うまくいかなかなかったです
文字化けを直すにはどうしたらいいですか?
GIMPコンソール上の入力(python2.7)
import subprocess
input_text = 'あいう'
line=""
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True)
line=p.communicate(input=input_text)[0]
print line

python3.10の.py
#!/usr/bin/env python
# coding: utf-8
from tkinter import messagebox
text = input()
messagebox.showinfo("moji",text)
↑このメッセージボックスの中身が
画数の多い漢字と記号に化けてしまいました
コピペできなかったので画像付けます
https://dotup.org/uploda/dotup.org2781923.jpg.html



807 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 02:34:21.05 ID:I15ojW8g.net]
>>794
line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932')

808 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 12:16:08.09 ID:j0HvfQsZ.net]
>>778
テーブルを美汁でとるとき一行づつdictしてconcatinationするときに使えないかと思い

809 名前:デフォルトの名無しさん [2022/04/22(金) 13:23:31.05 ID:sHpgXsI/.net]
アナコンダかをインストールして混ぜるな危険のpipとコンダをやってしまい壊れた
pip一本化で問題ないですか?

810 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 13:38:07.44 ID:EkSdB4ug.net]
一本化で問題ない

811 名前:デフォルトの名無しさん [2022/04/22(金) 14:13:32.13 ID:sHpgXsI/.net]
サンクス

812 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:37:59.91 ID:53M5rCU+.net]
クラスを書いているとき中身が肥大化して
__init__関数の引数が膨大な数になって
インスタンスを作るのが大変な状態になってしまったとき
リストでよく使うひな型をいくつか書いておいてそれを渡すという解決法を考えたのですが
妥当なやり方でしょうか?また他に良いやり方があればお教え願います

813 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:45:24.17 ID:CAe1t8bi.net]
>>800
デザインパターンでググる

814 名前:デフォルトの名無しさん [2022/04/22(金) 16:00:19.34 ID:3+eT3Tts.net]
>>800
>クラスを書いているとき中身が肥大化して
>__init__関数の引数が膨大な数になって
インスタンスを作るのが大変な状態になってしまったとき

どんな状態?

815 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:08:00.83 ID:EkSdB4ug.net]
プロセス起動するためのクラス作りたいな。で最初は実行ファイルのexeパス指定だけのシンプルなclassだったけど
arg追加しよう、ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・
引数が膨大になってくってことだろ

816 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:15:58.67 ID:p48HHJp5.net]
>>79



817 名前:6
なるほどわからん
>>774の言うようにコレクションをコレクションのまま扱う感覚を身につけたほうがいいのかもしれない
htmlテーブルをdictionaryにしたいならthの構成に合わせてlistやdictにする(もしくはpandasのread_html)

https://www.w3schools.com/html/html_tables.aspのtable#customersなら
header = [ th.text for th in table.select('tr:first-child > th')]
result = [ {header[i]: td.text for i, td in enumerate(tr.select('td'))} for tr in table.select('tr')[1:] ]
print(result[2]['Country’])
# Austria
[]
[ここ壊れてます]

818 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 17:12:11 ID:DFy/+sOR.net]
何でもやらせるほどsubprocessの極薄ラッパーになっていって
最終的にいらねえじゃんってなる

819 名前:デフォルトの名無しさん [2022/04/22(金) 18:54:56.60 ID:vYYyAoJX.net]
1スレを読んでみようと思ったのですが一つ一つリンクをクリックして戻った結果途中で"rawを読み込めませんでした"と言われこのスレに戻されてしまいました。どなたかこのスレの1を読む方法教えて頂けませんか

820 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:13:49.15 ID:CAe1t8bi.net]
>>806
2ch → 5ch

821 名前:デフォルトの名無しさん [2022/04/22(金) 19:48:10.24 ID:vYYyAoJX.net]
>>807
ありがとうございます!
5ちゃんねるの"くだすれpython"の現行版から過去のスレのリンクを辿ってみました
part34辺りで5chから2chのログに切り替わっているせいかリンクを読み込もうとしなくてロード出来ませんでした
スマホからだと読むことは出来ないと言うことでしょうか

822 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:17:22.51 ID:a0+aRfgz.net]
便所の落書き読む時間があるなら書籍の一冊でも読んだほうが有意義だぞ

823 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:24:41.56 ID:h+Fap4CC.net]
>>803
> ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・
そう言うのはプロパティとかでいいだろ

> 引数が膨大になってくってことだろ
毎回全部指定するつもりなのかよw

824 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:59:16.35 ID:cNb4vicF.net]
毎回全部指定したい(指定強制したい)ってことはあるからな

825 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 21:03:59.41 ID:7tkDjHFj.net]
>>811
ラッパー経由になるだけだから指定強制なんて意味ないでしょ

826 名前:デフォルトの名無しさん [2022/04/22(金) 21:20:42.63 ID:72MHsUfr.net]
>>800はまだ>>800しか書いてなくて、後は>>803の憶測について議論してるんだよね?



827 名前:746 mailto:sage [2022/04/22(金) 21:33:54.80 ID:llHCzfDa.net]
>>795
ありがとうございます!
出来ました!!
エンコードとデコード両方しないと行けないのですね
助かります!!

828 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 18:41:33.50 ID:yaJafia3.net]
テキストファイルの先頭からあるワードを検索し
1回目に見つかったワードを特定のワードに置換
2回目に見つかったワードをまた別のワードに置換

という処理を実装したいです
自分の知識だと、テキストを一行ずつ読み込んでは
正規表現でワードをサーチしカウンタを加算し
カウンタ値に応じてreplaceするっていうコードしか浮かばないですが
何か他に効率的・定番的な書き方があれば教えてください

829 名前:776 [2022/04/23(土) 21:11:23.83 ID:S27JpXaa.net]
度々すみません。
>>794で教えてもらった以下の行を入れたのですが
line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932')
中国語(繁体語)をinputに入れたところ以下のエラーがでてしまいます
UnicodeEncodeError: 'cp932' codec can't encode character u'\u91d9' in position 0: illegal multibyte sequence
検索してみたところcp932に含まれない文字があった場合にでるみたいです
u'\u91d9'はこの字でした(釙)
https://0g0.org/unicode/91D9/
中国語(繁体語)をinputに送っていたので
以下を参考にエンコードをcp932ではなくてcp950にしてみたのですが文字化けしてしまします
docs.daemon.ac/python/Python-Docs-2.5/lib/standard-encodings.html
他にbig5やbig5hkscsも試してみましたが文字化けします
この文字化けはどうしたらちゃんと表示されますか?
こういった多言語を扱う場合どうしたら良いのでしょうか?
u'\u91d9'(釙)以外にもu'\ufe50'(﹐)などにも引っかかってしまします

830 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 21:38:30.92 ID:LTun4BN3.net]
>>815
そんな一般性もないような使い捨てのコードは効率よりわかりやすさが大事
文章そのままにコーディングしたらええがな

831 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:06:21.75 ID:A38Z8Utb.net]
>>815
1行ずつ読み込みだとキーワードの途中改行に対応できない気がするけどいいの?

832 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:33:39.38 ID:7+1nJnMo.net]
途中改行するキーワードなんて生まれてこのかた見たことない

833 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:48:08 ID:dSfqqc1i.net]
>>816
Windows の文字コードは、独特で誰も知らない。
たぶん、何百種類もあるでしょ

日本なら、CP932 だけに対応するけど、
全世界の何百種類とかに対応できない

そもそも、外人はCP932すら知らないし

CP何々とか、UTF-16 とか、Linux 用の全言語で処理できない。
Linuxは全言語、UTF-8 のみに統一されている

これ以外の特定の端末用言語、例えば、Windows PC 用言語などは、特殊

だから基本、システムで使ってはいけない。
システムはLinuxのみで、Windows PCは単なるクライアントとしてしか使えない

Ruby on Rails では辞書に定義することで、多言語化しているけど、
これはUTF-8だからできる

この文字はCP932、これはCP950 とか一々、何百種類に対応できない

834 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:49:34 ID:Ac8uMNgs.net]
置換だと検索文字として\n含むのはよくあるし
キーワードに改行なくてもワードラップがきちんとされてないテキストなんかだと改行コードに邪魔されてヒットしないこともよくある
そういうとこはやりたいことの条件しだいだからなんともだな

835 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:04:11.07 ID:ll5AWkFj.net]
>>815
re.subの引数に呼ばれるたびにカウントアップした文字列を返すreplacerを渡してやればいい

836 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:15:47 ID:pT174lS4.net]
>>820
もうlocale知らん奴がいるんだなぁ



837 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:29:24.04 ID:OEg3OW8V.net]
>>816
これでどうだろう

import subprocess, os
my_env = os.environ.copy()
my_env["PYTHONIOENCODING"] = "cp65001"
input_text = 'あいう釙'
line=""
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True, env=my_env)
line=p.communicate(input=input_text)[0]
print line

後出し条件追加は控えてくれると助かる

838 名前:デフォルトの名無しさん [2022/04/24(日) 00:03:00.76 ID:XmcVNZmY.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw

839 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:16:33.35 ID:JO+3K+yc.net]
>>824
my_env["PYTHONIOENCODING"] = "utf-8"
のほうがわかりやすいかな

840 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:25:04.32 ID:lQs7d+0h.net]
外部コマンド前提だから古典Unix的に
間にiconvを挟むのが適当

841 名前:776 mailto:sage [2022/04/24(日) 12:08:29.52 ID:kM/BqeMC.net]
>>824
ありがとうございます
こんな方法があるんですね
驚きました
まさか外国語も色々エンコードあるなんて思いもよらず
後出しになってすいませんでした

>>827
どこにiconvというのを入れればよいのですか?

842 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 12:48:07.19 ID:PxrfmSzI.net]
>>828
https://man.cx/iconv(1)/ja
こういう外部コマンドがある。(ないなら導入する)

python310.exe UTF-8出力するscript.py | iconv -f utf8 -t cp932

でcp932で出力するコマンドと同等になる。前に置くと入力も変換できる。
わかるとおもうがパスやエンコーディングは適当に読み替えて

843 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 13:28:31 ID:JO+3K+yc.net]
多言語処理するなら、824の方法でいいよ
iconvなんか使ったらエラー処理面倒くさくなる
他には、バッチファイルでchcp 65001する方法や、utf-8のファイルで受け渡す方法もある

844 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:10:53.30 ID:QXI/jpLW.net]
いいわけないだろw
utf8決め打ちだけでいいなら苦労しない

845 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:36:36.75 ID:JO+3K+yc.net]
>>831
なら、794の処理を動く形でコード書いてよ
見て判断するよ

846 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:25:05.85 ID:ir2De51z.net]
Python関連から少し外れてしまうのですが、元々汎用系の技術者だったのですが、縁があってデータ分析の仕事に関わることになりました。
現在python3を手続き型の書き方でコード書いているのですが、オブジェクト思考に切り替えた方が良いタイミングやポイントありますか?
今のところ一人でpandasやpysparkを処理していて100行にも満たないくらいの小規模開発しています。
オブジェクト思考に憧れはあるのですが、まだ書いたことはありません。



847 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:35:36.96 ID:5b8jykvI.net]
( ^ω^)汎用って何が汎用なんですかお?

848 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:38:14.23 ID:ir2De51z.net]
>>834
具体的にはコボラーメインでした

849 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:41:18.84 ID:GNyXlK50.net]
>>833
切り替える必要はありません
オブジェクト指向は大規模開発を大人数で共有しながら進めるために
編み出された作法です
そんなプロジェクトにPythonは使われません

850 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:42:40.76 ID:ufUUo1o1.net]
今どきオブジェクト指向は…

851 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:55:21.47 ID:ir2De51z.net]
>>836
そうなのですね
可読性とか設計的にオブジェクト思考の方が優れているイメージがあり、汎用系出身のプログラマーとしては劣等感を感じています
>>837
最近の流行り=メインストリームは何でしょう?

852 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:59:31.83 ID:NGFGt/bW.net]
>>836
> オブジェクト指向は大規模開発を大人数で共有しながら進めるため
そんなことないだろw
継承とか具体的に使い始めるとたぶん
目からうろこだろ感動もんだろ鳥肌もんだろ汎用系からだと

853 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:40:25.60 ID:Sf8HNHhp.net]
疎結合進んでひとりでも大規模開発できるようになるし
小規模でもアタマ楽になるし学習コスト顧みても利点の方が多い

854 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:51:51.09 ID:ir2De51z.net]
>>840
仕事中は時間の誓約もあるので手続型でコード書いちゃって、プライベートでは作りたいものなくてオブジェクト指向の本読んでも分かったような分からないような感じで実践できていません
皆さんはオブジェクト指向はどうやってマスターしましたか?
デザインパターンの本を写経するのが一番なんですかね。。。

855 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:19:27.73 ID:bO9itIdJ.net]
>>838
よほどクラス設計をきちんとやっておかないと可読性はむしろ落ちます
自分で書いたクラスでも三日経てばわからなくなります
結局のところ手続型で上から下に一直線にゴリゴリ書く方が速いし手直しも楽です
ただしオブジェクト指向は作法ですから、チームが作法として採用している場合は致し方ありません
が、先に述べたようにPythonでチーム開発などすることはまずありませんからご安心を

856 名前:デフォルトの名無しさん [2022/04/30(土) 00:49:48.45 ID:46aR4GCy.net]
データ分析を書き下しでやるなんて聞いたことない
どんな小規模よそれ



857 名前:デフォルトの名無しさん [2022/04/30(土) 01:24:52.50 ID:03xdZc7H.net]
データ分析で100行に満たないとなると、オブジェクト指向じゃないと思うけどなあ.
レコード同士の制約がRDBMSで取り扱えない範囲の制約だったらオブジェクト指向にした方がいいけど、
大体RDBMS的アプローチで十分じゃない?
分析手法が固まった段階で業務にいれこむとなるとちゃんとオブジェクト指向にした方がいいと思うけど、分析の段階だとPOCでしょ

858 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:13:55.43 ID:TTQ8Rhtz.net]
典型的なオブジェクト指向は、Ruby on Rails

でも、最近の言語、Go, Rust, Elixir などは、オブジェクト指向ではない。
オブジェクト指向の弊害の方が目立ってきたため

Elixirは関数型

859 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:19:59.25 ID:38aggrlO.net]
頭の中で完結してるけど説明が下手なのか
書くうちに発散して纏まってないけどそのまま殴り書いたか
ようわからん文章やな

860 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:22:55.20 ID:Zvv3yApT.net]
ぶっちゃけSQLとパワークエリで事足りると思うんですが、会社がPythonメインでやるという方針なのでPython使ってます。pandasもpysparkもデータ分析用というより大量データの結合やデータ変換に使うことが多いです。

環境的には不要で自己満になるかもなのですが、今後のスキルアップのためにオブジェクト指向取り入れて開発したいなぁという願望があります。

861 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:25:25.49 ID:MSWmTJKz.net]
おまえら素人ばかりだな
オブジェクト指向で作るのは理由があるからだ
理由は自分で考えろ

862 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:46.14 ID:Zvv3yApT.net]
>>845
Elixeir初めて聞きました。新しい言語や関数型言語も出てきているのですね。。。

863 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:52.93 ID:MSWmTJKz.net]
pythonメインでやる方針にも理由がある
理由は自分で考えろ

864 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:27:36.14 ID:MSWmTJKz.net]
とにかくやれ
やらない理由はいくらでもあるから
とにかくやる気があるうちにやるんだ

865 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:34:17 ID:MSWmTJKz.net]
やってみて
わからなかったらいつでも質問しておいで

866 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:37:35 ID:Zvv3yApT.net]
ありがとうございます
とりあえず挑戦してみます



867 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 05:55:28.21 ID:OR8SZm5l.net]
>>835
COBOLに慣れてるならGnuCOBOLでも入れて色々遊んでみたらいいんじゃね?
COBOL2002からはオブジェクト指向をサポートしてる

868 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 06:14:48.85 ID:Zvv3yApT.net]
>>854
COBOLでもオブジェクト指向サポートしてるバージョンあるんですね!
時代の進歩に全然追い付けてないです

869 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:21:56.93 ID:nLS5ACA1.net]
妙だな…Pythonでチーム開発とか普通にあるけど

870 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:29:49.76 ID:mj6Qj3Uj.net]
>>856
日本だと少ないとはいえ、チーム開発も少しずつ増えてきてるよな
というか規模の大きな開発が増えてきたから
型ヒント周りの機能が強化されてきてるんだし

871 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:48:06.80 ID:UlwKMlAZ.net]
YouTubeやDropboxがPythonで書かれてるけど、1人で開発されたなんて考えてんのかね、>>842

https://tech-camp.in/note/technology/45702/
DropboxのRian Hunter氏は「PyCon APAC 2013」で、Dropboxは全てPythonで開発していると述べています。コード量はサーバとクライアントのコードを全て合わせて93万7707行。

872 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:55:29.45 ID:0pJ/3NeQ.net]
一般的にpythonがーじゃなくて、そいつが職場で開発してるって条件下では大規模開発はありえないって話だろ

873 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 09:46:12.98 ID:2kJdiTOr.net]
>>842の気持ちはわかる
たぶんバッチ処理主体でPythonを使ってる現場なんだろうけど、バッチ処理しか書けない奴って本当に一直線のコードしか書けないのよ
最近は業務系のそういう連中がPythonに進出してきていて、なかなか酷い状況だよ

874 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 12:04:18.69 ID:asMkUOFh.net]
一般常識として身につけておいたほうかがいいとは思うがpandasなんかを使ったデータ分析用途の場合はオブジェクト指向は極力避けて関数とデータを意識的に分けたほうが可読性もメンテナンス性も高いよ

SeriesやDataframeのようにデータとメソッドが不可分な独自の抽象データ構造をライブラリとして提供する場合にはオブジェクト指向を使ったほうがいい

875 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 14:35:51 ID:wjVEP1qN.net]
Pythonはオブジェクト指向を学ぶのには向いてないよな

876 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:03:49.44 ID:Uatckw9k.net]
>>860
その通りです
私はバッチ処理専門で開発していますが
関数すら極力書かないようにしています
関数を作ると処理の流れが行ったり来たりして読みづらいからです
Cで言うとmain関数の中に全ての処理があるように書きます



877 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:17:02.34 ID:XZrd/bpX.net]
>>863
関数の役割分担や命名をちゃんとしてないからでは?
関数はそれ自身で責任を追って実装・検証するもの
使う側は関数内部まで気にしなくても済むようにならないと意味ない
なんで便宜上行ったり来たりは発生しない
外部ライブラリやビルトインの関数の実装までふつう追わないでしょ

878 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:40:05.60 ID:wcqGltd4.net]
>関数すら極力書かないようにしています
さすがにそれはアカン
考えを改めた方がいい

879 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:45:43.84 ID:WuQ7ClRo.net]
個別の関数をmain関数と同居させる場合、
関数の配置の順序とかあるの?
JSで関数を最後にまとめたりしているものがあったけど、
Pythonじゃ見かけないような

880 名前:デフォルトの名無しさん [2022/04/30(土) 16:56:56.93 ID:IElPr3np.net]
>>863
コボラーですね分かります。
合言葉はIDENTIFICATION DIVISION。

881 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:15:45.06 ID:XOEt5cKu.net]
>>866
JSはスコープごとにスクリプトを2回読むイメージで実行されるので
関数や変数の宣言は巻き上げられて先頭で宣言されてるのと同じになる

Pythonにはそういう機能はないので1ファイルならmainの実行は最後にするのが普通

def main():
 hoge()

def hoge():
 print(‘hoge’)

main()

882 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:16:15.33 ID:Uatckw9k.net]
>>866
他の言語は知りませんが、Pythonは関数を呼ぶ処理より前に
関数定義がないといけないんですよ
だから関数のあるスクリプトファイルを開くと、まず関数の羅列が
ズラズラと目に入るわけでして、文書を上から下に読んでいくという
人間の自然な動作に合わないのです

883 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:39:11.77 ID:PWl3mLPj.net]
コボラーってやっぱアタオカだな

884 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:04:44.96 ID:64v4nlhT.net]
>>869
def main(): sukinakansuu()

def sukinakansuu(): pass

if __name__ == '__main__': main()

みたいに書くよ

885 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:07:46.92 ID:OR8SZm5l.net]
>>866
Python の def 文は「実行文」だから定義される関数を呼び出す前に実行しないといけないのでJSみたいにするとエラーになる
ちなみに実行文だから
if xxx:
def foo:
print('foo1')
else:
def foo:
print('foo2')
みたいにして実行時に関数の定義を変えることもできる

886 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:49:26 ID:oMuBjy8I.net]
実行文??



887 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 19:22:27.31 ID:XZrd/bpX.net]
https://docs.python.org/ja/3/reference/compound_stmts.html#function-definitions
式じゃないし識別子でもない単にそこで実行される文

888 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 21:51:14.91 ID:yu/EzU82.net]
>>872
それ「実行文だから」とか全然理由になってない
インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる

実行文ではないC言語でも定義より先に呼び出したらエラーになる

889 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:12:01.94 ID:o6QgUZIK.net]
>>872
┏━━━━━━━━━━━━┓
┃The image you are       .┃
┃requesting does not exist   .┃
┃or is no longer available.   .┃
┃                        ┃
┃imgur.com             ┃
┗━━━━━━━━━━━━┛

890 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:22:35.44 ID:64v4nlhT.net]
seleniumでaタグをclickしてswitch_to.windows(driver.window_handles[1])しても<html><head></head><body></body></html>っていうページにアクセスするようになる
なんで無内容に?どうすればいいんだろう
そもそもGUI上はクリックしてないんだけどなんだこれ

891 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:23:14.79 ID:OR8SZm5l.net]
>>875
> インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる
やれるね、だから何?

> 実行文ではないC言語でも定義より先に呼び出したらエラーになる
コンパイル言語で定義より先に呼び出し?
実行順序とソース上の順序を混同してるだろw

892 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:59:55.25 ID:64v4nlhT.net]
>>877
解決
クリックしたあと2秒sleepさせたら出来た
読み込みに時間が掛かるんだな

893 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 23:11:39.76 ID:484odO/R.net]
>>878
だから何じゃねーよww
ダメだこいつw

894 名前:デフォルトの名無しさん [2022/05/01(日) 02:13:14.49 ID:b95w4aAB.net]
>>875
C言語の場合、宣言すれば定義は後回しでOK。

895 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 05:53:28 ID:Rd1MW222.net]
>>880
ダメなのはお前の頭だろw
他の言語なんて関係ないし

896 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 08:06:33.67 ID:JzdAzqq0.net]
https://i.imgur.com/3qXlqVA.jpg



897 名前:デフォルトの名無しさん [2022/05/01(日) 09:40:22.97 ID:0ggTu6P0.net]
実行文って、コンパイル型言語で宣言文と区別する意味の用語だから、Pythonでは、完全にナンセンス
「実行文だから」は何の意味も持たない
実行文でない文は、逆にあるのか?

898 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 10:00:01.37 ID:aj8iUgGb.net]
コンパイル言語?
JSにも宣言文はあるんだが

899 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 10:06:43.73 ID:KjQtFKQ9.net]
インタプリタだって全部の行を一行ずつ実行しながら解釈しているとは限らないんだから区別はあっておかしくない。

900 名前:デフォルトの名無しさん [2022/05/01(日) 10:39:20 ID:c1q3P+1N.net]
宣言っていまいち意味わからんのだけど。
defは今の名前空間に新たにオブジェクト(function/callable)を作成するって捉える方がしっくりする。
だから、名前()で呼び出しするためには、その前に作成が終わってなきゃダメよね、ってなる。
って考えると、Pythonは上から下に順番に実行しかしていない、ってわかる。

901 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:07:07.83 ID:IDzy7BiL.net]
関数定義をまとめた関数をスクリプト末尾に書いて
それをスクリプト先頭で呼ぶようにすれば…と思ったけどダメですね
ズラズラ並んだ関数定義を見たくない場合、定義部分を別スクリプトにして
それをimportすればいいのかな?

902 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:28:22.49 ID:UqOJOPuh.net]
868のやり方じゃ駄目なんけ?main()の呼び出しを最後に書く以外は関数の並び順は自由だし、関数名がmainなら最初に実行されるだろうことは暗に容易に伝わる。
自分も呼び出すほうを上、呼び出されるほうを下に書くほうが読みやすいと感じるから常にそうしてるよ

903 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:54:47.68 ID:IDzy7BiL.net]
>>889
自分はメイン処理をトップレベルに書く派なので
残念ながらこの手法は使えません

しかし知識として知りたくはあります
>>868ってmain()より下にあるhoge()をmain()から呼べるってことですよね
それは何故でしょうか

904 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:26:54.53 ID:Dd8WxxXv.net]
>>890
> 868ってmain()より下にあるhoge()をmain()から呼べるってことですよね
> それは何故でしょうか
main()が(定義される時じゃなくて)実行される時はdef hoge()も実行済みだから

905 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:29:09.32 ID:UqOJOPuh.net]
そのこだわりはよくわからんな…
デメリットしか思いつかん

906 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:46:49.10 ID:JzdAzqq0.net]
相互参照している場合とかどうするんでしょうね?



907 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:52:31.00 ID:Yd4A+jrH.net]
>>885
>>872で「実行文だから実行時に関数定義をかえることができる」と書いてるのは嘘だったってことかな?

908 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:24:18.52 ID:Rd1MW222.net]
>>893
実行までに各々定義すればいいだけだからなんの問題もないだろ

909 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:25:01.76 ID:Rd1MW222.net]
>>894
Pythonの話とJSの話の区別もつかない無能乙

910 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:46:20.12 ID:qrKdrkjM.net]
どうでもいい話になってきてるような
スレタイにふさわしいと言えばそうだが

911 名前:デフォルトの名無しさん [2022/05/01(日) 14:07:59 ID:b95w4aAB.net]
スレタイ通り下らない話で盛り上がってて実に素晴らしい。

912 名前:デフォルトの名無しさん [2022/05/01(日) 14:08:54 ID:QvrU5Mi0.net]
エントリポイントのエの字も出ない

913 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:18:30 ID:Gwm1B3AE.net]
>>891
実行というからおかしくなる
関数のシグニチャを評価するタイミングと
関数のボディを評価するタイミングの違い

前者が他言語でいう宣言文の役割
Cのプロトタイプ宣言とかと同じ
Pythonでも宣言として捉えたほうが分かりやすいよ

914 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:20:32.48 ID:IDzy7BiL.net]
>>891
うーんよくわかりません
なぜ上にある関数から下にある関数を呼べるのか
私の脳はここまでです

>>892
メリットが二つあります
・スクリプトの先頭から実行が始まるので流れを追いやすい
・メイン処理の字下げが一段少なく済む

915 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:40:33.88 ID:vJsN8meg.net]
>>901
> 先頭から実行が始まる
先頭に書いてあるのがmain関数なら上から読み下せるのは同じじゃね?

916 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:53:14.40 ID:KjQtFKQ9.net]
うちはスクリプトの末尾にこの2行、ってのが定番たわ。

if __name__ == '__main__':
main()



917 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:06:46.08 ID:JzdAzqq0.net]
>>895

https://i.imgur.com/1yUgMXq.jpg

918 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:10:06.70 ID:Rd1MW222.net]
>>900
だからそんな思考回路だと
if xxx:
def foo:
print('foo1')
else:
def foo:
print('foo2')
みたいなコード見たらなんで宣言2個あってもいいんだよ?ってなるだろ

919 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:11:46.01 ID:IDzy7BiL.net]
>>902
main関数が処理の始まりかどうかは結局下を見ないと確定しないので…
ならばトップレベルにメイン処理を書く方が安心確実と思う次第です []
[ここ壊れてます]

921 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:15:47.63 ID:4M5GqABF.net]
def main(): hoge()
def hoge(): print(‘hoge’)
main()

Pythonの評価順は基本的に上から下に一行ずつ
1行目ではdef main():までの関数シグニチャのみ評価してボディは評価されない(それがdefの役目)
2行目も同じようにdef hoge():までの関数シグニチャのみ評価
3行目の関数呼び出し時にmain関数のボディが評価される
そのタイミングではhoge関数はシグニチャが評価され関数として宣言済みなのでhogeを呼び出せる

922 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:20:45.71 ID:Rd1MW222.net]
>>901
Pythonインタープリターの気持ちになって考えればわかると思うよ
1: def main():
2:  hoge()

3: def hoge():
4:  print(‘hoge’)

5: main()
1を実行する時は2の内容をmainで登録する(この時点では2自体は実行されない)
3も同様に4の内容をhogeで登録する
5のmainの呼び出しで2が実行されて4が呼ばれるので実行順は1→3→5→2→4のようになる

923 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:22:24.87 ID:Rd1MW222.net]
>>906
そう思うのは自由だけどPythonでは無理だから諦めるか他の言語にするしかない

924 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:22:30.22 ID:F/hLZDCn.net]
>>905
宣言が2個あったところで何が問題なの?
2個あったらエラーにするルールのある言語もあるけどPythonにそんなルールない

925 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:30:33.22 ID:vJsN8meg.net]
>>906
確かにそのとおりだけど、あんまり他人を疑いすぎると禿げちゃうよ

926 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:36:27.81 ID:M2LDeL9g.net]
これからはクラス定義もクラスメソッドも関数もごちゃごちゃにして途中でjson入れたり意味なく連想配列作ったりいきなりタプルにしたり判読し辛いコード書くことに決めた
初心者が初心者になる前に躓いて読めなくなるようにしていこう



927 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:37:45.97 ID:M2LDeL9g.net]
オーバーライドしまくってやる

928 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:38:22.08 ID:M2LDeL9g.net]
意味なく戻り値にクラスメソッド使ってやる

929 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:51:18.35 ID:Rd1MW222.net]
>>910
エラーにしない言語って何?

930 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:55:09.23 ID:zrtkQxP2.net]
javascriptは同じ名前の関数が並んでてもエラーにならないな。後ろが使われる

931 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:00:48.30 ID:DfY2Iokg.net]
グローバル変数・定数の定義とか、
場合分けしてモジュール等をインポートするときとか、
これらをサブ関数の中か、その前にグローバルで書くべきかいつも悩むわ

モジュール等のインポート
グローバル変数・定数の定義
 場合分けによるモジュール等のインポート(環境依存)
サブ関数の定義
 場合分けによるモジュール等のインポート(環境非依存)
メイン関数の定義
メイン関数の実行(>>903

これ、問題ある?

932 名前:917 mailto:sage [2022/05/01(日) 16:03:56.84 ID:DfY2Iokg.net]
グローバル変数・定数の定義なんかも
サブ関数としてまとめて定義して、メイン関数で呼び出してグローバル宣言したほうがいいのかな?

933 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:08:44 ID:Rd1MW222.net]
>>916
まあjavascriptはvarで同じ変数使ってもエラーにならないような言語だしね
さすがに最近はletで重複させるとエラーになるみたいだけど

934 名前:デフォルトの名無しさん [2022/05/01(日) 16:30:44 ID:6txgexSj.net]
機能別にモジュール作って、関数詰め込んで使ってるんだが、合ってる?

935 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 18:30:38 ID:tQAUcym9.net]
一連の流れ見てもよくわからんのだけど、質問は何なの?

936 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 18:43:16 ID:CmrphzhC.net]
自分の思い通りにソース書きたいけど仕様上書けない、どうしたらいいのって愚痴



937 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 19:08:52 ID:tQAUcym9.net]
もう質問じゃないよね。だったら区切ってもいいでしょ

938 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 19:09:28 ID:Jd2/Razo.net]
わからないです

939 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 21:52:03.79 ID:haToe2zO.net]
>>917
普通にモジュール分割していいなら
メイン関数は定義せず__main__.pyのトップレベルに書く
定数は定数用のモジュールを用意してimport

940 名前:デフォルトの名無しさん [2022/05/01(日) 22:17:08.56 ID:b95w4aAB.net]
「オレは気に入らない」って人は生きるの辛そう。
柔軟性が無いと常に何かと戦うことになる。

941 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 23:58:05.46 ID:Hq8ES+K0.net]
こだわりなくてもいいとこなら別にそれでいいんじゃね
こだわらなきゃいけない事なんていくらでもあるだろう

942 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 00:19:51 ID:zZIONtog.net]
ノットフォーミー全盛期だよな、現代

943 名前:デフォルトの名無しさん [2022/05/02(月) 13:04:57.99 ID:ZthOcqCz.net]
とにかく在日は悪いことしかしない
在日は皆殺しにすべき!

944 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 21:11:16.99 ID:FWJ3qdnv.net]
俺も最初の頃はこだわり持って色々なこと試してたけど結局シンプルイズベストだと気づいてさっさと書くようにしたら効率上がったなぁ

まぁある程度新しいことにも挑戦するべきだけどさ
でもセイウチ演算子の使い所がよく分からないよね

945 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:15:08.74 ID:mgZ8H7hi.net]
> でもセイウチ演算子の使い所がよく分からないよね
C言語やってたら余裕
with open("sample.txt") as f:
while text := f.readline():
print(text)

946 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:20:24.93 ID:ZdlL7fiJ.net]
それfor文より何がいいの?
というかファイルのデータなくなったらエラーでないの?
while文の終了条件がわからない



947 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:51:18.93 ID:mgZ8H7hi.net]
for 文で書いてみてよ

948 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 07:44:11.89 ID:GYbp8Bpg.net]
セイウチ演算子の使い所は、PEPのExapmlesを見れば分かるのでは

https://peps.python.org/pep-0572/#examples

949 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 10:25:34 ID:lrUYCsXU.net]
>>933
for line in f: print(line)
ファイルオブジェクトはiterableで行読み込みする
てかふつうこう書かん?

>>932
https://docs.python.org/ja/3/library/stdtypes.html#truth
ファイル終端で空文字列(=偽)が返って終了

950 名前:デフォルトの名無しさん [2022/05/03(火) 16:37:55.33 ID:zAUrPbJb.net]
0.1*3==0.3がFalseになるのに、0.1*2==0.2がTrueになるのはなぜですか?

951 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 16:54:49.32 ID:zAUrPbJb.net]
解決しました。忘れてください

952 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 18:09:38.71 ID:5IHsdKXO.net]
>>937
ちなみに何故です?

953 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:47:01.45 ID:6X7U05Nz.net]
計算誤差でしょ

954 名前:デフォルトの名無しさん [2022/05/03(火) 20:19:38.25 ID:zAUrPbJb.net]
>>938
二進数だから
>>939
そうなんだけど、0.2はその誤差が何で出ないのかなってわかんなくて聞いたけど、書いてすぐわかっちゃった

955 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 20:45:03.55 ID:tKI6TxwO.net]
知りたい~

956 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 22:27:11.85 ID:lyrCvvNg.net]
案外やなヤツw



957 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 05:25:28 ID:8abXDPny.net]
ちんちんシュッ!シュッ!シュッ!

958 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 10:24:51.52 ID:vEkkTSCd.net]
(2^((2^(35-1))-1))*(2-(2^-4060))
の計算がしたいんだが、できないのでとりあえず
2^17179869183 の計算がしたいが、

多倍長電卓LMで一瞬で解答が得られる
2^2147483647 でさえも、

ttps://paiza.io/projects/RM8L_oSwcs5_ghDFro5Sew
でも
ttp://codepad.org/ZhAiGY69
でも
ttps://ideone.com/TeJEDo
でもタイムアウトして困っています。

959 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 12:32:07.83 ID:Yq75WaGa.net]
日本語でOK

960 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 12:38:36.07 ID:MYAXyIRK.net]
6億桁ぐらいか?
そんなのprintしろって言われても困っちゃうよ

961 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 16:24:10.63 ID:gVprMCyl.net]
>>944
そんだけデカい桁扱いたいなら
Decimal使いつつ、デフォルトの指数設定も弄らないとオーバフロー起こすぞ
https://docs.python.org/ja/3/library/decimal.html

コード例としてはこんな感じ
https://ideone.com/exndwC
(桁数6億ぐらいだから多分合ってると思う)

962 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:06:58.83 ID:vEkkTSCd.net]
>>947
どうもありがとう。
大変参考になります。

963 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:20:45.83 ID:h3TBoBMl.net]
decimal 使わずとも print しなけりゃ時間内に終わるよね?

964 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:22:51.83 ID:h3TBoBMl.net]
https://ideone.com/xXhkPf

965 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:37:43.73 ID:vEkkTSCd.net]
有効桁数100桁で2^17179869183の計算ができました。
https://ideone.com/dqhOTo

どうもありがとう。

966 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 18:05:45.24 ID:vEkkTSCd.net]
>>949-950
カレットが使えないんじゃないかな?
計算結果が違っている。
ttps://ideone.com/SNjYuo

**で置き換えてみたがランタイムエラーになる。
ttps://ideone.com/F2N5yS
ttps://ideone.com/WUSd0H



967 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:04:52.15 ID:h3TBoBMl.net]
元の式をコピペして動いたと思っちゃった。
確かに ** にしないと計算結果違っちゃうね。
python の int は多倍長計算してくれると思ってたけど
上限あったのね。勉強になったです。

968 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:44:57.60 ID:SUkJat8/.net]
>>940
これ教えてください

969 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:54:23.21 ID:Rtfrs1Kx.net]
>>954
二進数 誤差
でググりもしてないならこの分野向いてない

970 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:58:06.37 ID:SUkJat8/.net]
>>955
なんで0.2も0.3も二進数で表現できないのに0.2は誤差がでないんですか?

971 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:20:06.74 ID:Rtfrs1Kx.net]
>>956
答えとしてはたまたまでPythonの浮動小数点の実装方針

>>> [(x, 1e-1 / 10 ** x) for x in range(10)]
これでイメージつくかも

972 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:33:08.66 ID:/WvxkOMY.net]
仮数部が等しいから当然

973 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:51:52.77 ID:tw5Ro1fM.net]
0.2 に誤差がでないのではなく、
誤差付き 0.1 を2倍した結果が、誤差付き 0.2 と等しくなる、
というだけ

0.1, 0.2 を二進数にすると、それぞれ以下の無限小数になる

0.00011001100..
0.0011001100..

これらを正規化すると、以下のようになる

1.1001100.. x 2^-4
1.1001100.. x 2^-3

つまり、仮数部が同じで指数部が 1 だけ異なる

float の仮数部の桁数は小数点以下 52 桁なので、
53 桁目で丸められて誤差が入るが、
元の仮数部が同じなので、丸められた結果の仮数部も同じ

974 名前:デフォルトの名無しさん [2022/05/05(木) 22:29:18.63 ID:VIM8YOLC.net]
優しみがゴイスー

975 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 01:20:26.74 ID:wPj9y4p8.net]
2進数の11 は、3 だけど、
110なら6、1100なら12

指数部の指定で、桁がずれるだけで、仮数部は同じ。
仮数部は2桁で、11とする

10進数の11 は、11だけど、
110なら110、1100なら1100

これも指数部の指定で、桁がずれるだけで、仮数部は同じ。
仮数部は2桁で、11とする

976 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 13:14:50.97 ID:2qmSGQfh.net]
プロジェクトのパッケージ構成で質問
https://packaging.python.org/en/latest/tutorials/packaging-projects/#packaging-python-projects
上記内の例で__init__.py、example.pyが存在するのはsrc直下ではなくて、その中にあるexample_package内であってますか?



977 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 22:17:49.52 ID:hLdUgsLX.net]
>>947で教えて頂いた
https://ideone.com
のdecimalのemaxって最大9を何個まで指定可能か知ってますか?

とりあえず801個まではテストしてみて動きましたが。

978 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 07:16:57 ID:rAxhmZ4o.net]
decimal.MAX_EMAXに書いてある

979 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 08:22:04 ID:vKAQqA9f.net]
>>964
どうやったらそれを画面出力できるの?

print(decimal.MAX_EMAX)
NameError: global name 'decimal' is not defined
print(MAX_EMAX)
NameError: global name 'MAX_EMAX' is not defined

980 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:10:53.78 ID:lPzTyKes.net]
リファレンスの読み方の勉強からはじめたら?

981 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:12:41.48 ID:8ykKyj07.net]
__
    ̄ ̄ ̄二二ニ=-
'''''""" ̄ ̄
           -=ニニニニ=-


                          /⌒ヽ   _,,-''"
                        _ ,(^ω^ ) ,-''";  ;,
                         / ,_O_,,-''"'; ', :' ;; ;,'
                     (.゙ー'''", ;,; ' ; ;;  ':  ,'
                   _,,-','", ;: ' ; :, ': ,:    :'  ┼ヽ  -|r‐、. レ |
                _,,-','", ;: ' ; :, ': ,:    :'     d⌒) ./| _ノ  __ノ

982 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:23:18.61 ID:abjrWq6f.net]
あのさぁ、俺はお前らを「道具」として見てンだわw
俺が聞いたらお前らは素直に答える。これだけでいいのw

decimal.MAX_EMAXの出力方法教えろやおらぁwwwwwwwwwwwwwww

983 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:26:59.55 ID:gMjR/OFO.net]
https://docs.python.org/ja/3/library/decimal.html#constants

984 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:29:39.59 ID:3lpfIXfe.net]
NameError: global name 'decimal' is not defined
これを解決すればいいんじゃない?

985 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:30:11.41 ID:rWXY/EV0.net]
>>965
まずdecimal.MAX_EMAXの値はリファレンスに乗ってる
https://docs.python.org/ja/3/library/decimal.html
の定数って所

で、コードで確認する例もおいておく
https://ideone.com/gt9i0u

986 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:34:38.39 ID:vKAQqA9f.net]
>>969
書いた通りリンク先に書いてある(18個)以上の9の数を設定できちゃうんだけど、
9の数が999999999999999999個ってことなの?
でも1601個設定して10^10^1600を計算したらエラーになったぞ。



987 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:09:59.71 ID:vKAQqA9f.net]
ごめんなさい。1600個いけました。9の個数が足りてませんでした。
9の数が999999999999999999個まで行けそうですね。

すみません。

988 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:20:28.56 ID:vKAQqA9f.net]
ctx.Emax = 10 ** 100000 # 指数上限を増やす

とかできるね。

989 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:33:25.17 ID:vKAQqA9f.net]
処理時間と表示桁数の関係であまり大きいとエラーになるけれども

10^10^2000
https://ideone.com/hjMW7h

このくらいまではいけますね。

990 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:50:23.38 ID:vKAQqA9f.net]
10^10^100000
https://ideone.com/PIILdo

ctx.Emax = 10 ** 10 ** 5
これを
ctx.Emax = 10 ** 10 ** 6
にすると5秒ではタイムオーバーする。

なので上記が限界かな?

10^10^100001(エラー)
https://ideone.com/Og9zW4

991 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 22:59:02.46 ID:afn9JDvJ.net]
>>847
どんな感じ?

992 名前:デフォルトの名無しさん [2022/05/13(金) 02:25:52.93 ID:LdGyp25/.net]
class sub(tk.Toplevel):
__WIN: tk.Toplevel|None = None

__def __init__(self, root):
____if win:= self.__class__.WIN:
_______win.focus_set()
_______return
____super().__init__(root, name='sub')
____self.protocol('WM_DELETE_WINDOW', self.onExit)

__def __onExit(self):
____self.__class__.WIN = None
____self.destroy()

rootにサブ画面呼び出しボタンがある. 以下のような感じ
btn['command'] = onShow
def onShow(self):
__sub(self.root)

サブ画面はシングルトンにしたい.あればハイライトする,なければ画面生成
で上記の感じで書いて,問題なく動いてはいるんだけど
tkinterのtoplevelのシングルトン表現ってこれでいいんだっけ? __new__に仕込むんだったかな
ボタン押すたびに無駄なインスタンス生じてる気がするんだけど,GCあるし問題ない?

993 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 01:37:06.47 ID:n1VwRTHA.net]
Pycharmについての質問なんですが
コードを書いてる途中に出てくる
self:Canvas,からはじまる吹き出しを消したいのですが
どこかの設定なのかプラグインなのかわからなくて困っています
よろしくお願いします

994 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:46:26.19 ID:BQcMDz1x.net]
pandasでgroupbyにGrouperつかってas_index=Falseにすると
Grouperで使用した日付がどこかいっちゃうんですけど仕様なんですか?
df.groupby(pd.Grouper(key="Date", freq="MS"), as_index=False)[["hoge"]].sum()
as_Index=Falseからreset_indexで代わりはいけるのですがなんとも…

995 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:48:07.41 ID:BQcMDz1x.net]
>>980
最後の行間違ってました
as_Index=Trueからreset_index

996 名前:デフォルトの名無しさん [2022/05/20(金) 10:26:37.96 ID:gFWhc+m8.net]
>>978
厳密にやりたいなら、metaclass使う方法なんだけど、
すごくデカイものじゃなかったら、起動時に1回切りで作ってしまうのもありだし、
lazyにしたければ、呼び出し時にインスタンスがNoneかどうか判定する処理を挟むだけ。
どっちも簡易的なシングルトンになる。
そもそも、GCさせないのがシングルトンの目的でしょ?
一般論として、シングルトンはデメリットも大きいことは理解しておく必要がある。
たとえば、画面とデータの同期を常に意識しないといけないとか、その関係でリークの原因になりやすいとか。
そういうのが面倒であれば、シングルトンをやめて画面を再作成する方がいい。



997 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 18:02:35.80 ID:/hGmbW/Z.net]
FlaskでWebアプリケーション作ってHerokuに上げる練習しているのですが
Herokuにデプロイした時、requirements.txtの内容のパッケージをインストールしてるみたいですけど
autopep8とかもインストールしてるのにさっき気がつきました
こういう、開発するときは使うけど本番では使わないパッケージってのはどう管理するものなのでしょう?
パッケージはpipでインストールして、pip freeze > requirements.txt しました
気にしなくてもいいんでしょうか

998 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:12:30.17 ID:KFSuZxfk.net]
>>983
pip標準だけだとdev dependencyを指定する方法はないと思うよ
HerokuはPipenvのPipfile.lockにも対応してるので
Pipfile使って[dev-packages]で指定すれば?

999 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:21:22.65 ID:/hGmbW/Z.net]
>>984
ありがとうございます
やっぱりフォーマッタとかがHerokuにインストールされちゃうのはちょっと嫌なので
Pipenv調べてみます

スレ立て挑戦してみます

1000 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:28:24.41 ID:/hGmbW/Z.net]
立てました。

【まず1嫁】くだすれPython(超初心者用) その57
mevius.5ch.net/test/read.cgi/tech/1653225908/

1001 名前:デフォルトの名無しさん [2022/05/24(火) 16:41:49.28 ID:IF15Gljx.net]
ファイル読み込みでawkで言う'/hoge/,/fuga/{ print }'みたいに特定の文字列を含む行から特定の文字列を含む行のみを表示するにはどうすれば良いですか?
hogeがマッチしたら出力フラグ立てて、fugaがマッチしたらフラグ消すとかみたいなの以外でお願いします

1002 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 17:09:56.59 ID:78F716Pq.net]
>>987
正規表現使うか行単位のイテレータを使うか

1003 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 10:54:30 ID:LbC2GlL6.net]
インターネット接続が制限されたWindows上でPythonを利用したくなり、
NumPyやpandas等、必要だったパッケージが同梱されていたこともあり、
WinPythonを利用しています

同じようなことを、同様な環境のLinux(Alma Linux 8)で利用したいと思っており、
Anacondaを利用してみましたが、Windowsと同じように使いたく思ってます

Linux向けのPythonディストリビューションで、pip系で運用できるものは
何かありますでしょうか

1004 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 11:20:04.09 ID:4ToCs4sv.net]
>>989
公式からソースとってきてビルドするだけでpipは使える
Linuxが古すぎると必須ライブラリも自前でビルドする必要はあるだろうけど

1005 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 11:36:49.09 ID:LbC2GlL6.net]
>>990
なるほど
自前ビルドならpipも使えますね

自前ビルドして、使うパッケージをpipで導入する、という作業をするものとして、
WinPythonのように、既に各種のパッケージが導入された、
Linux向けのPython環境というものがあれば紹介いただけますでしょうか

1006 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 06:33:05 ID:Re2gLZE7.net]
イテレータとイテラブルの項読んでると頭おかしくなるわ

要は「反復可能なオブジェクト」と「反復不可能なオブジェクト」があって
反復可能に設定されてるオブジェクトはnext()とかが使えて

「反復不可能なオブジェクト」はnext()とかは使えないけど
for ... in ,,, にこのオブジェクトをいれると
内部ではiter()の中にぶちこまれてるから反復動作をするようになる

つまり「反復不可能なオブジェクト」でもiter()に入れれば良いんだが
実は「反復不可能なオブジェクト」にはiter()を使えないものもある
iter()が使えるものをイテラブル、と分類している

[オブジェクト]
 ├[イテレータ] next()などOK
 │  └[イテラブル] iter() OK
 │
 └[not イテレータ]next()などNG
    ├[イテラブル] iter() OK → next()などOK
    └[not イテラブル] iter() NG

ということ?



1007 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 07:59:09.30 ID:6BOKaYJy.net]
イテレータは自身を返すiter()を実装しなければならないので、
イテレータはすべてイテラブルでもある

for ... in ,,, は、iter()の結果に対してnext()を複数回呼び出すので、
イテレータでもイテラブルでも動作する

[オブジェクト]
 ├[イテラブル] iter() OK
 │  ├[イテレータ] next() OK
 │  └[not イテレータ] next() NG
 │
 └[not イテラブル] iter()もnext()もNG

1008 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 11:22:58.61 ID:3ilbGXWX.net]
ミュータブルかイミュータブルかイテラブルかシーケンスかそれぞれの型にどの役割を当てられるかの感覚もつといいよ

1009 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 12:31:24.08 ID:Re2gLZE7.net]
>>993-994
ありがとう
ちょっとよく解んなくなってたわ
何度も学べば慣れるかな

1010 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 13:02:02.70 ID:G7XbJ25h.net]
>>995
その辺り分類を掘り下げんでも良いのではなかろか
イテラブルはiter()が使える反復可能オブジェクト
イテレータはそれで返される物くらいのニュアンス

ではイテレータ(型)とは何かって、next()など統一的な方法で
文字列でもリストでも辞書でもファイルでも各要素を反復するため
抽象化されたインターフェイス、主に対象への参照と現在位置を保持する

1011 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 14:19:59.15 ID:ercqZUlb.net]
公式リファレンスは正確性は高いが分かりやすさはお世辞にも高いとは言えないので
公式で分かりにくいと感じたらもう少し分かりやすく書いてる自分に合った補完サイトも読んだ方がいい

1012 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 17:37:58 ID:3ilbGXWX.net]
>>995
必ず慣れる
でもその前に情報を整理する方が大切かもしれない

1013 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 08:30:29.68 ID:BQs+AO7P.net]
python iterable sequentialとかで画像検索すれば分かりやすいベン図みたいなのが出てくるよ

1014 名前:デフォルトの名無しさん [2022/06/05(日) 08:48:37.88 ID:Sg+yaBaV.net]
56埋まるまえに57に書いちゃったよお

1015 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 160日 7時間 10分 28秒

1016 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<297KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef