暇つぶし2chat TECH
- 暇つぶし2ch112:デフォルトの名無しさん
22/01/29 00:12:59.76 5xe9daD4.net
>>103
>>> ['+送料0円' if f == '+送料' else f for f in fee]
['+送料715円', '+送料1650円', '+送料0円', '+送料750円', '+送料0円']

113:デフォルトの名無しさん
22/01/29 13:40:24.15 YRcqrgZl.net
多分壊れてて、画像としては開けないjpgファイルがある(ビューワでも各種編集ソフトでもだめ)
im = pil.open(path)
.formatとか.sizeは読める
show()
imagearray = np.array(im)
はできない
エラーはpermission denied
ファイルは編集不可属性ではない
復元というか画像として読めるファイルを作成したいんだけど、なにをしてみたらいい?

114:デフォルトの名無しさん
22/01/29 13:55:47.07 s/Lqmbn4.net
どう壊れてるかによるからな
バイナリエディタで見てEOIがあるかとか、イメージデータが0000で埋まってないかをチェックして、データありそうならSOIからひとつず読み取ってみてどこが壊れてるか探す
ヘッダーが逝ってるだけならわんちゃんありえるけど、サイズ見えるのじゃイメージデータ逝ってる可能性大だろうな

115:デフォルトの名無しさん
22/01/29 16:36:36.82 YRcqrgZl.net
>>110
むむ、そのへんの単語ググりながらやってみようと思ったんだけど
もうバイナリエディタで読めないっすね
えーまじか。そんなことあるのか
ちなみにwindows的にはサムネイルの作成はできてる模様

116:デフォルトの名無しさん
22/01/29 17:23:49.29 nzagQ2IL.net
>>111
> もうバイナリエディタで読めないっすね
???
ディスクエラーになるとかか?
> ちなみにwindows的にはサムネイルの作成はできてる模様
サムネはキャッシュされてるから以前は読めたんじゃね?

117:デフォルトの名無しさん
22/01/29 17:34:30.94 1f3+2daQ.net
とにかくそのjpgが入ってるドライブの他のファイルをどこかにバックアップするのが先

118:デフォルトの名無しさん
22/01/29 17:49:41.23 YRcqrgZl.net
>>112
stirlingで読み込みエラーです
1行も表示されず
これサイズ見えてるから壊れててもデータはあると思ってたけど
もう根本的に中身飛んでる気がするなあ。zip圧縮に失敗したときみたいな
ゴミ箱に入れたら、もう動かせなくなったし
pilでバイナリ読んで変換してどうにか的な話をしたかったんだけど
関係なくなってきたので諦めます。スレ汚し失礼しました

119:デフォルトの名無しさん
22/01/29 22:08:45.86 S/AYuT16.net
Ruby on Rails では、画像アップロードのチェックに、
ImageMagick, libvips などを使う
容量チェックだけではダメ。
1px * 1,000px とか、極端なサイズもダメ
他にも、ウイルス埋め込みとか、様々な攻撃を排除しないといけない

120:デフォルトの名無しさん
22/01/29 22:43:34.15 vSaHMnG7.net
>>115
死ねゴミ

121:デフォルトの名無しさん
22/01/30 03:46:00.30 XZx8eYmT.net
PILなんかの便利ラッパーじゃなくて、libjpeg直接触らないとどうしようもないでしょ。PILはJPEGの読み込み自体はlibjpegに丸投げして終わりなんだから。

122:デフォルトの名無しさん
22/01/30 11:09:15.57 N55kLChf.net
ディレクトリエントリ以外壊れてる可能性のが高いだろ普通に

123:デフォルトの名無しさん
22/01/30 13:07:19.08 DCMe3nw9.net
おっぱい画像じゃなかったらすれ違いだぞ

124:デフォルトの名無しさん
22/01/30 23:10:06.45 Ps75IfQG.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
くそチョンw
くそチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
在日は強姦を繰り返す犯罪者!
皆殺しにすべし!

125:デフォルトの名無しさん
22/02/01 22:05:36.75 hOl6ciiB.net
Tkinterで複数のウィンドウを非表示状態で生成し、
後に表示状態にするということをしたいのですがうまくいきません
threadingを使ってスレッド化することでmainloopを複数走らせることができると思っていたのですが、
最初の1つ目のウィンドウで止まってしまいます
何か解決法はありませんでしょうか
URLリンク(pastebin.com)

126:デフォルトの名無しさん
22/02/01 22:51:56.51 P6zC/C5s.net
>>121
走らせてないからわからんけどshowはスレッドをインスタンス化するときにコールしたらだめな気がするぞ
返り値を渡すんじゃなくて関数自体を渡すんだ

127:デフォルトの名無しさん
22/02/01 22:54:40.84 P6zC/C5s.net
27行目
thread = threading.Thread( target=show, args=(root,) )
でどうだ

128:デフォルトの名無しさん
22/02/02 00:33:40.49 mBcvYcjV.net
URLリンク(stackoverflow.com)
これがホントならプロセス分けるしかないね

129:121
22/02/02 06:41:57.54 6CCAEreu.net
ありがとうございます
rootがいくつもあっても、mainloop()はどれか一つでも走らせればそれで良いのですね!
最後を
for root in window_list:
  root.deiconify()
window_list[0].mainloop()

 とすることで生成した分すべて表示できました

130:デフォルトの名無しさん
22/02/02 10:11:06.05 RL/7fH2d.net
一般的なGUIで、UIにさわれるのは1個のスレッドだけだね。
そこでメインループを回して、他のスレッドは処理を渡したりするだけで自らUIを操作
しないようにする。

131:デフォルトの名無しさん
22/02/02 21:39:50.40 EL6vvzM+.net
Pythonの勉強を始めて1ヶ月程度のプログラミング自体初心者です
for文でfor_in rangeというのを見かけたのですが、この場合の_って何を表すんでしょうか?
関数名とは違うのでしょうか?

132:デフォルトの名無しさん
22/02/02 21:46:34.25 dtxLg5iw.net
URLリンク(blog.pyq.jp)
アンダーバー(アンダースコア) python 変数名 意味

133:デフォルトの名無しさん
22/02/02 21:48:19.29 U+ueKPSe.net
変数だけど使わない変数を慣習的にアンダーバーを使っている
繰り返したい処理があるときはfor i in range(10)とか使うと思うけどそのforブロック内でiを使わないときはiじゃなくてfor _ in range(10)って感じ

134:デフォルトの名無しさん
22/02/02 21:52:54.86 PDm/NhWY.net
URLリンク(docs.python.org)
公式の日本語は
> Elsewhere, _ is a regular identifier.
ここの訳が変だな

135:デフォルトの名無しさん
22/02/02 22:12:17.07 EL6vvzM+.net
レスありがとうございます
関数名じゃなくて変数名でしたね、失礼しました
丁寧に説明してもらっておきながら申し訳ないのですが、使わないとか定義しないとかいまいちピンと来ませんでした…
もうちょっと自分で色々書いてみてからまた来ます

136:デフォルトの名無しさん
22/02/02 22:16:55.84 U+ueKPSe.net
使うパターン
for i in range(10):
print(i)
使わないパターン
for _ in range(10):
counter += 1
すげー適当な例だけどわかるかな?

137:デフォルトの名無しさん
22/02/02 22:29:06.02 dtxLg5iw.net
a, b, _, _, e = get_data()
5つ返ってくるけど要るのはa,b,eだけ みたいな

138:デフォルトの名無しさん
22/02/02 23:51:53.90 ig8XBRXZ.net
>>130
おかしいもなにも、_に関しては訳されてなくない?
どこのこと

139:デフォルトの名無しさん
22/02/03 13:14:00.01 euzyX/2k.net
djangoで「モデルAのオブジェクト」を作ってこのオブジェクトにforeignkey貼ってる「モデルBのオブジェクト」のforeignkeyの所の変数にAのオブジェクトを渡してから「モデルBのオブジェクト」を作ってAをsave()したとする
この後Bのオブジェクトをsave()したらちゃんとA_idが保存されるの?
ややこしいけどなんと説明すればいいのやら
因みにtransaction.atomicは必要だよな?

140:デフォルトの名無しさん
22/02/03 14:00:58.08 euzyX/2k.net
>>135
これ今試したけど出来るっぽいな
難しいわ
なんで参照渡しでもないのに出来るのかさえ分からん

141:デフォルトの名無しさん
22/02/03 15:25:43.23 lrjvvrdU.net
Aをsave()した時点でBのA_idに反映されてそうだけど

142:初心者の質問です。
22/02/05 03:42:35.77 /8OR3rgW.net
Pythonというのを使うと、他のアプリ(windows) 例えば、市販のビジネス
ソフトに連動させて入力やら出力やらを自動化できたりするのですか?
他のアプリは、MS Excel などに限定されるのですか?
それとも、電機屋で売っているような例えば、年賀状ソフトとか
ビジネス会計ソフトとか、カレンダースケジュールソフトとか
なんでも、入力を自動化したり単純化してPythonから指令して
動かすことができるのでしょうか?

143:デフォルトの名無しさん
22/02/05 04:28:39.44 6miGEtTC.net
無理です

144:デフォルトの名無しさん
22/02/05 08:06:12.28 XLfwOUFr.net
>>138
APIが用意されてないとそのレベルでの操作は無理。
Google calendarなんかはGASでweb apiを自作すればいけるが、市販のソフトはそこまで親切ではない。
マウス操作やキー操作を自動化することは可能。

145:デフォルトの名無しさん
22/02/05 08:59:49.70 6Mb184NV.net
作り込めばできるけど作業コストがかかる
それをやってくれる会社も存在するくらい
MacならまともなソフトはAppleEvent実装してるから比較的楽

146:デフォルトの名無しさん
22/02/05 09:01:16.95 /8OR3rgW.net
>>139
>>140
おはようございます。
お二方返信ありがとうございます。
残念ながら無理なんですね。
(API アプリ プログラム インターフェース)
A銀行勘定システムーAPI-B銀行勘定システム
のような感じでAPIを開発しないといけないんですね。
これってやっぱり大変でしょうね。

147:デフォルトの名無しさん
22/02/05 09:03:23.27 /8OR3rgW.net
>>141
やっぱり、金がかかって
ビジネスになってるんですね。
事情がわかりました。
(原理がわかってないのが悲しいですが・・・)
本当にありがとうございました。
皆さん良い週末をお過ごしください。

148:デフォルトの名無しさん
22/02/05 09:16:13.61 sxrVj7bO.net
>>142
中央銀行の意味知っている?
銀行間で直接取引はしない

149:デフォルトの名無しさん
22/02/05 09:20:50.77 nhwXwcp2.net
API を分かってない気がする。
API を作る = AとB銀行それぞれにアプリ連携用インターフェースを追加する
API を使う = A銀行に用意されているAPIとB銀行で用意されているAPIを使って両銀行間を接続するプログラムを作る
使う方であれば python が使える可能性はある。
複数の異銀行システムのAPIを1社で実装する仕事なんてないと思うがなー。

150:デフォルトの名無しさん
22/02/05 10:06:24.03 UC+QWPwn.net
全部できるよ。ただあなたの能力とヤル気に依存する
銀行の口座確認(送金や振り込み操作以外)ならたいていはワンタイムパスワード不要なとこ多いから
普通にpythonでブラウザ操作するだけだし(ワンタイムパスワード使うのもハード必要になるけどがんばればできる)
市販ソフトの操作はそのソフトのウインドウ叩いて情報読み取ったり、最悪画面画像の認識で読み取ればいい
入力はマウスやキーをpythonから操作するだけ
「python ブラウザ操作」「python getwindowtext」「python キー操作 送信」などぐぐれば

151:デフォルトの名無しさん
22/02/05 10:43:12.54 x0YbOETD.net
やってくれって言われたら
後ろ向いて舌出してうえ~ってリアクションしちゃうな

152:デフォルトの名無しさん
22/02/05 11:13:45.51 piACNvDy.net
URLリンク(pastebin.com)
pynputでの左クリック検知と、tkinterのlabelでの左クリック検知を両立させることは可能ですか?
pynputが左クリックイベントを全て奪ってしまい、labelが反応しません
ランチャーを作ってまして、やりたいことは、
① デスクトップを左クリックしたらウィンドウを表示する、
② ウィンドウのラベルを左クリックしたらウィンドウを閉じる、
③ ウィンドウが表示されている状態でウィンドウ以外の場所を左クリックしてもウィンドウを閉じる
という動作です
①と③をpynputで、②をtkinterのlabelでと思ったのですが、うまくいきませんでした

153:デフォルトの名無しさん
22/02/05 12:09:38.48 LVRrrJUT.net
質問している人とは別の人物ですが、
画面の変化するのを待って
画面が安定してから
操作を始めるというのは可能ですか?

154:デフォルトの名無しさん
22/02/05 12:12:06.54 XLfwOUFr.net
>>149
安定が何を指してるかはわからんけど、画像処理周りの話ならフレーム差分とってしきい値処理すればいいんじゃないか?
PILのImageGrabでスクショは読み取れる

155:デフォルトの名無しさん
22/02/05 12:16:27.17 LVRrrJUT.net
>>150
ブラウザとか読み込むときに「読み込み中」とか出たり
リダイレクトを始めたりするじゃないですか、
それらの動作が一通り終わって安定するまで
待ち合わせることは可能なんでしょうか?

156:デフォルトの名無しさん
22/02/05 12:36:57.02 UC+QWPwn.net
ブラウザは読み込み終わったってイベントが来るよ。それを待ってURLとで判定すればいい

157:デフォルトの名無しさん
22/02/05 12:48:54.51 XLfwOUFr.net
>>151
seleniumの話か。
152の言うとおりイベント待ちすればいい。

158:148
22/02/05 12:54:59.73 piACNvDy.net
URLリンク(pastebin.com)
>>148ですがpynputのon_moveでマウス移動を検知して、
ウィンドウ上にポインタあるときはon_clickで何もしないようにして動くようになりました
ただマウス動かすたびにウインドウ情報の取得と座標の比較を行うので高コストです…
他に良い実装はないでしょうか?

159:デフォルトの名無しさん
22/02/05 12:59:34.70 /8OR3rgW.net
>>144-147
みなさま
すみませんです。
何れにしましても
勉強になりました。
>「python ブラウザ操作」「python getwindowtext」
>「python キー操作 送信」
で勉強してみます。
合併金融機関で旧銀勘定システムの
統合とかがむずかしくてというような
ことを風の便りにききましたので
妙ちくりんな例示になりました。

160:デフォルトの名無しさん
22/02/05 13:17:57.22 UC+QWPwn.net
>>154
クリックするときだけ座標のウインドウ見たら?

161:148
22/02/05 13:18:56.20 piACNvDy.net
>>156
たしかにそうでした…
書き直してみます

162:148
22/02/05 13:38:51.69 piACNvDy.net
URLリンク(pastebin.com)
最終的にウィンドウハンドルを識別に使うことで複数ウィンドウにも対応できました
ありがとうございました

163:デフォルトの名無しさん
22/02/05 13:47:41.85 UC+QWPwn.net
ランチャーの上にほかのウインドウがあったら期待通り動かなさそうだな
windowfrompointかな

164:148
22/02/05 14:20:31.51 piACNvDy.net
>>159
ありがとうございます、確かに重なってる部分をクリックすると、
上に他のウインドウがあるのにランチャー上にいるという判定になっていました
教えていただいた関数を使って作り直してみます

165:148
22/02/05 15:31:23.48 piACNvDy.net
GetWindowPoint関数が返すのがラベルのウインドウハンドルで詰まりましたが、
GetParentで親ウィンドウのウィンドウハンドルを取得することでうまくいきました

166:148
22/02/06 18:24:09.07 3q8vI9na.net
皆さんWindowsの環境は何を使っていますか?
先輩がAnacondaを使っていたので自分もこれで始めたのですが、
pyファイルをダブルクリックしても起動できなくて困っています

167:デフォルトの名無しさん
22/02/06 18:46:40.90 As9Eeh+2.net
anacondaはダブルクリックして使うような用途向けじゃないから・・・
それでもやりたいならユーザーフォルダのenvの中にあるpythonを関連付けして、パスも通しておいたらいけるんじゃないのか?

168:デフォルトの名無しさん
22/02/06 19:14:00.88 4Gtoye46.net
エクスプローラ上でshift+右クリックするとコンソールを開くオプション出てくるからそこから実行するのも手だね

169:デフォルトの名無しさん
22/02/06 20:11:49.90 UpadUQRd.net
pyはIDEに関連付け変えた方が利便性高そう
コンソール不要なアプリはpywにするし

170:デフォルトの名無しさん
22/02/07 02:26:12.83 8Of01QOa.net
前は(必要に迫られない限り絶対に使いたくない)Anacondaだったけど一年半くらい前に公式のPythonに出戻った
それまではpylauncher+Anacondaだったね

171:デフォルトの名無しさん
22/02/07 04:15:45.66 /WFZHSQq.net
>>165
input()使ってコンソール表示をキープする使い方もあるのでそのままがいい

172:デフォルトの名無しさん
22/02/07 08:07:41.99 X3clQbRB.net
forループを指定の時刻になったら抜け出したいんだが何か方法ありますか?
例えば21時になったらループを抜けたいです

173:デフォルトの名無しさん
22/02/07 08:25:36.92 nOkVXb94.net
now=datetime.datetime.now().hourで現在時刻を取得してif now>21:みたいな感じでいけるのかな?

174:デフォルトの名無しさん
22/02/07 11:33:42.97 v1HyCHbN.net
>>168
whileループじゃなくてforループ?

175:デフォルトの名無しさん
22/02/07 12:11:38.49 Afq51Jp9.net
signal.alarmで割り込んでグローバルに参照できる情報を更新
forではそこを確認するだけ
あるいはEventMachineみたいなスケジューラに乗っかる

176:デフォルトの名無しさん
22/02/07 20:36:04.90 uf+aDjpD.net
文字列のリスト渡す引数があるんですが、1つだけならリストじゃなくて文字列1つだけでも渡したいんです
文字列だけで渡すとforで1文字ずつのループになってしまいます。
リストで渡したみたいに同じようにforで1回回したいんですが何か方法ありますか

177:デフォルトの名無しさん
22/02/07 20:37:56.01 WNsmATfv.net
文字列が来たらリストに入れてあげればいいのでは

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

179:デフォルトの名無しさん
22/02/07 20:48:11.70 Afq51Jp9.net
URLリンク(docs.python.org)
でオーバーロード書けるけど好きじゃない

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

181:148
22/02/07 22:05:00.21 QDp/4Uhu.net
>>163
そうなのですね、やっぱり純正?Pythonがいいんでしょうか…
>>164
Win11だからか出てきませんでした

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

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

184:デフォルトの名無しさん
22/02/08 05:30:13.15 nYjjFW0t.net
tkinter photoimage 表示されない で検索しよう
秒で解決するから
photo = tk.photoimage(画像)
widget = tk.widget(master, image=photo)

185:デフォルトの名無しさん
22/02/08 06:33:41.40 x7KPLs8u.net
>>180
ありがとうございます
インスタンス変数周りについて理解しました
URLリンク(pastebin.com)
説明が複雑になってしまうと思い後出しになってしまったのですが、
ソースを短く手直ししてアップロードしました
今回はItemクラスにiconインスタンス変数を持たせて、ここにPhotoImageの戻り値を入れています
そしてItem.iconから、ラベルを作成しています
本当はラベル作る関数にItemクラスのリストを渡して作らせているのですが、
この書き方でも再現されました
よろしくおねがいします

186:デフォルトの名無しさん
22/02/08 07:11:21.68 x7KPLs8u.net
>>181
itemをLauncherのself.item_listに入れたら表示されるようになりました
Item.iconはインスタンス変数だったけど、itemが一時的な変数で開放されちゃってたのかな…
ただ関数を再帰呼び出ししている元のソースではこの手法でもだめでした
難しい

187:デフォルトの名無しさん
22/02/08 07:53:09.80 gLJTNggL.net
いやだからワンクッション置けっつの
まず生成しろ
p = photoimage(i)
それを使え
w(image=p)
もっと単純なテストケースで試せ
上手くいく場合と、いかない場合の境界線を探せ

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

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

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

191:デフォルトの名無しさん
22/02/08 23:31:00.76 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:デフォルトの名無しさん
22/02/08 23:58:54.11 x7KPLs8u.net
>>184
ありがとうございます
とりあえず動くようになったのですが、多分色々な要因があって原因が特定できませんでした…
また明日以降原因を探ってみようと思います

193:デフォルトの名無しさん
22/02/09 00:58:23.86 9lBFb0U2.net
Windowsでパスのセパレータが混在する原因を調べていたら、tkinterが原因だった
filedialogとTkinterDnD2で発生するようだ
こんな感じで対応してみた
files = filedialog.askopenfilenames(filetypes=fTyp, initialdir = iDir)
files = [str(pathlib.Path(p)) for p in files]
なにかまずい点や、もっとスマートな書き方ありますか?

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

195:デフォルトの名無しさん
22/02/09 11:31:16.02 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:デフォルトの名無しさん
22/02/09 11:35:44.94 gJYxYm5I.net
それソースからインストールじゃないか?
pip install cshogi
だけでいいと思う。試しにやったらほぼ素の環境で何のエラーもなく入ったぞ

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

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

199:デフォルトの名無しさん
22/02/09 14:18:07.67 BADAjEq6.net
>>190
初期化の直後でさえ禁止するのは流石に脳死では

200:デフォルトの名無しさん
22/02/09 14:47:52.14 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:デフォルトの名無しさん
22/02/09 16:26:09.83 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:デフォルトの名無しさん
22/02/09 19:10:26.80 OJhEklXT.net
ctypes難しいな
memcopyが何故か超低速で困る

203:デフォルトの名無しさん
22/02/10 02:02:13.50 EK9g6ENE.net
pipに色がついててびっくりした

204:デフォルトの名無しさん
22/02/10 09:15:03.24 puUJkgbn.net
プログレスバーがオサレになったね

205:デフォルトの名無しさん
22/02/10 09:27:43.38 Tgo9r7yk.net
richがデフォルトになったってリリースノートに書いてある

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

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

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

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

210:デフォルトの名無しさん
22/02/11 03:00:35.80 79Vi/Nfi.net
SetWindowsHookExのCallWndProcフック(例外的にDLL要らない)はどうだったっけ?と思ったけど、このフックではメッセージを変更できませんって書いてあるから駄目そうだ
URLリンク(docs.microsoft.com)

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

212:デフォルトの名無しさん
22/02/11 21:06:34.36 9UXBOAM+.net
>>207
これでやりたいこと実現できない?
URLリンク(symfoware.blog.fc)
2.com/blog-entry-2299.html

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

かなり強引ですが、moveの絶対位置レイアウトで、ラベル2つをペアにする方法で実装してみました
URLリンク(pastebin.com)
pyqt、無理やりなら色々なことできそうですね

214:デフォルトの名無しさん
22/02/12 04:41:58.05 OxHugf3n.net
URLリンク(codepad.org)
クラス変数の初期化で「name 'NUM' is not defined」ってエラーが出るんだけど、何が原因なんだろうか?
Python 3.10.2 64bit なんだけど、構文間違ってないよね?

215:Hルトの名無しさん
22/02/12 05:01:01.55 OxHugf3n.net
URLリンク(codepad.org)
codepadだと問題なく動作するから環境なのかな
windows10+vscode+python3.10.2 64bit でだけ起きる固有の現象…?

216:デフォルトの名無しさん
22/02/12 07:42:00.42 qCFMK4fY.net
import sys
print(sys.version)
codepadはテンプレから外そっか

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

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

219:デフォルトの名無しさん
22/02/12 10:11:14.01 fCVp/cR1.net
>>211
ideoneだと同じエラーが出るな
URLリンク(ideone.com)
多分書き方的にはこうなるはず
URLリンク(ideone.com)
公式ドキュメントの所にほぼ同じサンプルで失敗する事例があるけど
そのコードと同じ
URLリンク(docs.python.org)


220:3.10/reference/executionmodel.html



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

222:デフォルトの名無しさん
22/02/12 12:23:50.95 DQy4vyYE.net
こうしちゃうww
class test:
global NUM
NUM=64
POW=[pow(NUM,a) for a in range(0,5)]

223:デフォルトの名無しさん
22/02/12 13:02:31.30 OxHugf3n.net
>>217
それクラス内変数じゃなくなっちゃってる…
一応できたけどこういう方法しかないのかな
インスタンスを生成するまで初期化されないのが気持ち悪いけど仕方ないか
URLリンク(ideone.com)

224:デフォルトの名無しさん
22/02/12 13:32:52.88 qcs4WmEG.net
何でインスタンス変数じゃダメなの

225:デフォルトの名無しさん
22/02/12 13:53:20.84 DQy4vyYE.net
a = test()
a.output()
b = test()
b.output()
こうしたときにインスタンス変数だとpowをaつくるときとbつくるときの二回実行しちゃう
powぐらいだったらいいけど、重い処理だったら・・・
ってことじゃないかな
class内にstatic変数おけたらいいんだけどないのかな

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

227:デフォルトの名無しさん
22/02/12 14:30:51.17 KYIWQrD2.net
>>218
内包表記やジェネレータ式がクラス直下ではクラス変数を参照できないというだけなので
list(map(pow, itertools.repeat(NUM)…とかfor文+appendとか…で良いんじゃない?
2なら関係無く動くけど、nonlocal文とか出来た割にこんな罠があるとは

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

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

230:デフォルトの名無しさん
22/02/12 15:52:47.87 OxHugf3n.net
>>223
継承クラスを作ったときに初期化を忘れそう

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

232:デフォルトの名無しさん
22/02/12 19:21:22.02 qCFMK4fY.net
型ヒント書いてこ

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

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

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

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

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

238:デフォルトの名無しさん
22/02/12 20:28:51.81 XcSi1DQ3.net
aa = print
のように代入するのはあり得るけど
print
だけってありえるの?
pythonだと実行時のエラーすら出ない
ほかの言語だとこういうのあり得ないからIDEに警告表示出るよな

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

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

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

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

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

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

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

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

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

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

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

250:デフォルトの名無しさん
22/02/13 13:12:28.71 ckMeWHs6.net
>>242
それは a=print と同じ使いかたでしょ

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

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

args = text="テキスト", img="img.png", color="#FFFFFF"
makeItem(args)
みたいな感じです

253:デフォルトの名無しさん
22/02/13 17:34:48.08 yB05jN77.net
>>247
自己解決しました
args = {"text": "テキスト", "img": "img.png", "color": "#FFFFFF"}
makeItem(**args)

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

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

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

257:デフォルトの名無しさん
22/02/13 18:49:18.90 MWit14K9.net
>>251
ありがとうございます。
ではx座標とy座標を呼び出すにはどうしたら良いでしょうか?

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

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

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

261:デフォルトの名無しさん
22/02/13 19:57:37.82 yB05jN77.net
>>249
勉強中なので細かいこと大歓迎です、ありがとう

262:デフォルトの名無しさん
22/02/13 20:51:30.91 JnTPIF3C.net
>>252
欲しいの座標でなく次元では?

263:デフォルトの名無しさん
22/02/13 20:54:22.96 JnTPIF3C.net
すみません >>257 は読み間違いなので無視してください

264:デフォルトの名無しさん
22/02/13 21:09:57.57 yB05jN77.net
メンバー変数「__name」を持つ「Human」クラスがあったとして、
これを継承した「HyperHuman」クラスは、
継承元の「__name」を参照できないんですか?
クラスの外から参照しないメンバ変数を__付きにしまくったら継承先で参照できなくなってしまった

265:デフォルトの名無しさん
22/02/13 21:18:20.00 MWit14K9.net
>>253
すみません、
うまく行きませんでした

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

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

267:デフォルトの名無しさん
22/02/13 21:54:36.39 yB05jN77.net
>>254
import xxx only zzz
みたいにしてほしかったよね

268:デフォルトの名無しさん
22/02/13 22:11:57.52 jfCaeP/j.net
>>262
xxx.zzz以外のxxx.*参照できない状態を保持するのめんどそう
import xxx
zzz = xxx.zzz
と書けるしfrom import自体いらんなら分かる

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

270:デフォルトの名無しさん
22/02/13 22:25:44.83 nVrhNNmO.net
s/山椒/参照
参照の育て方調べてたからミスった

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

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

273:デフォルトの名無しさん
22/02/14 01:00:25.73 a1vo03Tu.net
super関数使う方法ってなかったっけ

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

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

276:デフォルトの名無しさん
22/02/14 09:12:46.38 EEHmhlKD.net
空文字判定要る?

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

278:デフォルトの名無しさん
22/02/14 10:03:53.41 SdWG8Yth.net
pが文字列なら同等とあるけど
URLリンク(github.com)
URLリンク(github.com)
テストコードの範囲内で使うのが無難

279:デフォルトの名無しさん
22/02/14 10:43:07.13 TVm+ejPZ.net
富士通「年収3500万円」の衝撃 ソニー、NECも戦々恐々の「グローバル採用競争」
「富士通年収3500万!」日本のIT企業の年収も、高額化してきました
ゼロから起業するよりも事業承継(小さな会社の買収)が圧倒的に有利である3つの理由
「エース人材だって起業OK」、NECは挑戦者が集う場をつくる
NECなど「出向起業」 大企業人材、起業しやすく
IHIが副業解禁、人事制度で他の重工大手を先行する狙い
カルビー/国内社員3900人を対象に副業解禁

280:デフォルトの名無しさん
22/02/14 11:25:14.57 QXoUwWbT.net
>>272
ひでー。そんな地雷関数使いたくないな

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

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

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

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

285:デフォルトの名無しさん
22/02/14 13:05:45.54 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:デフォルトの名無しさん
22/02/14 13:25:01.55 T1NsaTsY.net
おう落ち目の言語の話は聞いてねえぞ

287:デフォルトの名無しさん
22/02/14 13:44:26.39 cFSy1VCv.net
>>280
それ同じじゃないぞ

288:デフォルトの名無しさん
22/02/14 14:14:19.21 7Dm4+XiT.net
>>280
1嫁😡

289:デフォルトの名無しさん
22/02/14 15:21:21.44 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:デフォルトの名無しさん
22/02/14 15:23:55.60 OJkUcli+.net
まちがいました。
最後から2行目は
H=[a(2,3), a(5,7)]です。(5,7)でエラー出ますけど...

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

292:デフォルトの名無しさん
22/02/16 07:19:17.06 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:デフォルトの名無しさん
22/02/16 08:10:26.60 U1LhfB3E.net
たまに以下のようなミスをしてしまうのですが、これを防ぐor容易に発見する
にはどうしたらいいでしょうか。
foo=default_value
if a_condition:
  boo=new_value # 本当はfooを更新したかったがbooとミスタイプした
# -> あれ、fooの値が変更されてない、みたいな

294:デフォルトの名無しさん
22/02/16 08:14:04.17 jBoRoSxS.net
考えて名前つける

295:デフォルトの名無しさん
22/02/16 08:23:08.93 Hej5n2W4.net
>>288
関数化 or if-else

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

297:デフォルトの名無しさん
22/02/16 09:05:32.17 W7tQrrGw.net
>>288
VS code

298:デフォルトの名無しさん
22/02/16 09:52:08.68 aoiSu09N.net
pylanceさいつよ # type: ignore

299:デフォルトの名無しさん
22/02/16 11:39:04.96 YEGQLb4J.net
pylanceってパイランスって言うんですか? 昔「だっちゅーの」っていう女の子二人組が...
素朴な疑問ですが、補完機能があるようなものを使うとして、上記の場合にbooが
間違いであることはどうやって分かるんでしょうか。もし同じスコープ内にbooという
変数が既にあった場合、booとタイプするのを間違いとは断定できないのでは...
もしbooがなかったら、「プログラムに影響を及ぼさない変数をいじってんじゃねーよ」
というツッコミは可能だと思いますが。

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

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

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

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

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

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

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

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

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

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

310:デフォルトの名無しさん
22/02/16 17:11:35.95 MKfHEQkf.net
>>302
エラーがうまく拾えなくて困っています。

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

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

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

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

315:デフォルトの名無しさん
22/02/16 18:55:08.31 WMJtWX4E.net
stdoutとstderrをファイル出力にしないといけないんじゃないの

316:デフォルトの名無しさん
22/02/16 19:28:07.20 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:デフォルトの名無しさん
22/02/16 19:43:49.72 y2cKuBOG.net
>>311
URLリンク(docs.python.org)

318:デフォルトの名無しさん
22/02/16 19:44:45.60 y2cKuBOG.net
URLリンク(docs.python.org)
すまん最新版だと日本語訳あった

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

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

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

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

323:デフォルトの名無しさん
22/02/17 08:28:12.79 MYDromrM.net
ただのバグだね

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

325:デフォルトの名無しさん
22/02/17 10:01:06.02 X0cMMW0O.net
print(repr(変数))

326:デフォルトの名無しさん
22/02/17 10:23:08.88 Xo3IV4af.net
とりあえずこれでも嫁
URLリンク(mitani.cs.tsukuba.ac.jp)

327:デフォルトの名無しさん
22/02/17 10:29:14.55 SQ5bCrsi.net
stripしたいのにnonetype errorになるのがバグじゃなかったらなんなんだよw
ただのバグだじゃん

328:デフォルトの名無しさん
22/02/17 14:37:46.34 1NrfTGml.net
>>321
ウィルス?

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

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

331:デフォルトの名無しさん
22/02/19 09:02:00.81 44TdCCHX.net
画像の境界線をimagechops.difference().getbbox()で検出するとき
境界線付近にjpg圧縮由来のぼんやりノイズがあって、少し大きめのbbox取得しちゃうとき
どうやってノイズ突破するのがよいでしょうか?
画像黒、背景白、ノイズはだいたい10%グレー前後です
目を凝らさないと見えないんだけど、differenceの感度が高すぎて拾っちゃう感じ

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

333:デフォルトの名無しさん
22/02/19 11:2


334:5:23.85 ID:hDmnOZdm.net



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

336:デフォルトの名無しさん
22/02/21 07:06:50.82 tPTlXWXv.net
python2から3で、/ (割り算)って常に浮動小数点になりました? ね?
4/2=2; 5/2=2 (python2), 4/2=2.0; 5/2=2.5 (python3)
古いスクリプトをメンテしていたら、結果がおかしかったので... これはどうしたら。
// だと整数(部分)になるようですが、ぱっと見変数の中身が整数なのか浮動小数点
なのか明らかでない部分もあり。

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

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

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

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

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

342:デフォルトの名無しさん
22/02/21 19:48:55.17 i5JttRhR.net
>>333
AIでエリア認識(yoloなど)と数字読み取り(どんなでも)でやればいい
画像=フラッドスキャナ読み取りで歪み傾き限定的だったらAI使わなくてもピクセル読んでく力業でなんとかなる
ただフォーマットが本当に不定(どんな店のかわからない)だったら力業じゃむり
自分で作るなら手動入力前提で入力支援機能に徹する方が現実的だよ

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

344:デフォルトの名無しさん
22/02/21 21:46:18.49 tPTlXWXv.net
>>331
むしろ浮動小数点の答えを期待してるっぽいところもあるので単純ではなかったり
>>332
やるにしても既存のコードが結構ありまして
>>334
とりあえず前者は常に整数ですが後者は中身によりますよね。
数値表示が2から2.0になったりしても、問題ですね。
結論: めんどくさい... って感じですかね

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

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

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

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

349:デフォルトの名無しさん
22/02/23 09:47:30.08 ecVw6j+6.net
enumerateで取得した番号がずっと1だ
なにがどうなってる

350:デフォルトの名無しさん
22/02/23 10:28:20.65 ecVw6j+6.net
forの中にforがあって両方iだった

351:デフォルトの名無しさん
22/02/23 19:24:47.19 RI+NKERl.net
iniファイルを読み込むときに、
[GENERAL]
ABZ=tanaka
ABG=satou
AUQ=hououin
~~~~
みたいな羅列の長い内容を読み込むときに、ABZとかAUQとかコード内で指定せずに勝手に読み込んでその名前で変数化することは可能ですか?
読み込むだけで大変な長いコードになってしまった

352:デフォルトの名無しさん
22/02/23 19:50:37.90 A+TpIAUX.net
辞書使う方が良い

353:デフォルトの名無しさん
22/02/23 19:55:47.48 RI+NKERl.net
>>345
cfg = configprrser.Configperser()
cfg.read(path)
return dict(cfg.items("GENERAL"))
って辞書にする書き方ができました

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

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

355:デフォルトの名無しさん
22/02/25 20:57:59.34 xQz6a/12.net
なかなか不思議なことやってんな

356:348
22/02/25 21:18:24.60 dMzxkvQR.net
どうしたら良いでしょうか

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

357:デフォルトの名無しさん
22/02/25 21:24:04.00 21E+Zf1q.net
>>348
aを定義すれば回避できるよ

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

NameError: name 'a' is not defined

359:デフォルトの名無しさん
22/02/25 21:51:43.98 jsx2tRyk.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw

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

361:デフォルトの名無しさん
22/02/25 22:18:07.65 uvlAEAIe.net
>>> a=[]
>>> a[T]
IndexError: list index out of range
初心者スレたのしいね

362:デフォルトの名無しさん
22/02/26 00:37:43.56 BMq+AkmN.net
このレベルでnumpyとか手を出さなくていい

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


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



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

366:デフォルトの名無しさん
22/02/26 17:59:06.52 wx7c3FZV.net
>>357
俺も初心者だけどイベントハンドラーとか?

367:デフォルトの名無しさん
22/02/26 17:59:13.72 wx7c3FZV.net
違うかw

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

369:デフォルトの名無しさん
22/02/26 18:36:02.89 xS/SyeLk.net
pythonをざっとやってdjangoかなあ

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

371:デフォルトの名無しさん
22/02/26 21:50:25.88 bHtz5ue8.net
GUIだけならdelphiとかどうだ?

372:デフォルトの名無しさん
22/02/26 22:04:11.64 wj1ibNBr.net
20年前ならまだしも今delphiは・・・

373:デフォルトの名無しさん
22/02/27 10:34:45.08 nn6oofM8.net
>>357
わしも初心者ですが...
ボタンとかプルダウンメニューとかマウスを使う前提の環境 = gui
ボタンとかの部品 = ウィジェット
それらを使うためのサブルーチン群 = guiツールキット
ボタンが押されたとかの出来事 = イベント
ボタンとか配置するソフト = guiデザイナ
pytyonはguiツールキットが多すぎるぐらい恵まれてます。
わしはpyqt5使っております。ほかはtkinter、WxPython、pygtk、Kivy が有名。
でも意外と楽ちんなデザイナが少ない気がします。
pyqtのqtデザイナ、tkinterのPAGEが使いやすいかと思います。

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

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

376:デフォルトの名無しさん
22/02/27 21:23:29.75 w26qCfYC.net
>>368
ホントそれ

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

378:348
22/02/28 12:02:04.82 nBtp+f0s.net
皆さまありがとうございます、皆様のおかげで問題は解決しました

379:デフォルトの名無しさん
22/02/28 15:17:54.00 nBtp+f0s.net
URLリンク(atcoder.jp)
この問題で、

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:デフォルトの名無しさん
22/02/28 15:32:20.23 UX0HcLa3.net
B=[] ←要素数ゼロで初期化
B[i]= ←i番目の要素に代入。だから要素数の範囲(レンジ)からアウトしてる

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

382:デフォルトの名無しさん
22/02/28 17:08:39.69 BVEEYcFL.net
>>374
コードがおかしい上に、C++って書いてあるけど。
URLリンク(atcoder.jp)

383:デフォルトの名無しさん
22/02/28 17:23:45.04 BjQFST3O.net
>>374
数字が1個ずつ渡されると勘違いしてる前提だとしても
Bをリストする意味ないしi = 0 や i += 1するのも意味がないよ
入力は1行で10個の数字が渡されるから
直接splitして各要素を数値にしてlistとして変数に代入すればいい

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

385:デフォルトの名無しさん
22/02/28 18:24:43.32 7jUXLESA.net
>>376
ありがとうございます

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

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

388:デフォルトの名無しさん
22/03/01 07:48:40.95 OUtPpYxS.net
すまんが日本語で話してくれんか

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

390:デフォルトの名無しさん
22/03/01 08:33:59.79 aeRvHbuv.net
デスクトップアプリはあまり作り易くないな
tkinter使えばいいけど

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

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

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

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

395:デフォルトの名無しさん
22/03/01 10:47:23.71 xsw3hO9n.net
めちゃくちゃ浅い話やないかーい!

396:デフォルトの名無しさん
22/03/01 11:11:01.13 cMGuQY9h.net
アプリっていうのはGUIアプリのことかな?
CUIだって立派なアプリよ

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

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

399:デフォルトの名無しさん
22/03/01 13:00:42.80 tGBWMiyL.net
必死すぎww

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

401:デフォルトの名無しさん
22/03/01 15:57:55.97 mo+aGJJz.net
俺たち??
一緒にしないでくれるかな

402:デフォルトの名無しさん
22/03/01 18:08:42.06 bPAr9M5f.net
Python + kivy でアプリ作ったが、
BuildozerでうまくAPKが作れません。
Ubuntuで作成していますが、解説サイトが少なすぎて、
どのように直せばいいのか分かりません。
アプリからCSVファイルを読み込むのに、Windowsなら csv.readerでできますが、
Android上では、上手くできない。
こういう違いを解説しているサイトありませんか??

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

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

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

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

407:デフォルトの名無しさん
22/03/02 19:05:15.86 JpI2oqvB.net
numpyみたいに左辺値にも数値を取れるようなスカラー倍の実装ってどうやればいいんでしょうか?
↓みたいなものを実現したいです
vec = Vec3d(1, 2, 3)
vec = 3 * vec
vec * 3は普通にVec3d.__mul__()を書けばいとわかりますが…

408:デフォルトの名無しさん
22/03/02 19:13:16.50 GIXfNvH2.net
__rmul__
URLリンク(docs.python.org)

409:デフォルトの名無しさん
22/03/02 19:31:01.69 JpI2oqvB.net
ありがとうございます助かりました

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

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

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

413:デフォルトの名無しさん
22/03/03 11:37:39.24 MIHsZ6Ov.net
'2022-03-01'という文字列と今日の日付を比較したいのですが、うまくいきません。
文字列は datetime.datetaime.strptime(ooo,'%Y%m%d') で変換できました。
比較対象は、 datetime.date.today() かdatetime.datetime.now()
にしてもだめでした。
よろしくおねがいします。

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

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

416:デフォルトの名無しさん
22/03/03 13:02:19.17 B47DPcJE.net
そこはテストコード書こうよ

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

418:デフォルトの名無しさん
22/03/03 17:06:11.44 QPV1pV4A.net
>>407
>>408
ありがとうございました。無事に解決しました。

419:デフォルトの名無しさん
22/03/03 17:20:07.18 KpuntXeF.net
>>410
それはテストの書き方が悪いよ

420:デフォルトの名無しさん
22/03/03 19:15:45.74 bgg8zGG6.net
>>410
お前テストコード書いたことないだろw

421:デフォルトの名無しさん
22/03/03 19:26:32.29 uKQKiz/u.net
テストを神聖視しすぎ。本体とテストの実装者が同じだったら同じ過ちを犯すものだよ
最近見かけた日付関連だとファイル内の文字列"yyyy/mm/dd"と現在日を文字列比較してて
しかも現在日から文字列作るのをロケール任せにしてたから、海外だと"mm/dd/yyyy"になってバグるというのがあった
こんなのロケール知らずに普通にテスト組んでたら検出されない

422:デフォルトの名無しさん
22/03/03 19:45:04.76 o+Rr4hsu.net
恥の上塗り

423:デフォルトの名無しさん
22/03/03 19:53:53.66 09CehFjH.net
tryすれば済む話のような

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

425:デフォルトの名無しさん
22/03/03 22:14:30.67 drOOnciu.net
>>414
違うロケールでテスト流せばすぐ検出されるよね?
そのケースは個別のテストケース内で確認すべき項目というより別ロケールでのテストを計画しなかった人やチームに落ち度がある
日時を扱う場合にロケールやタイムゾーンは要求仕様の一部だから事前にテスト計画に入れるのが普通

426:デフォルトの名無しさん
22/03/03 22:31:16.34 GbOH5gri.net
>>414
テストの考え方間違ってるだろ
「テストしたから不具合はない」ではなく
「少なくともテストした項目については、挙動の確認/担保が出来ている」だぞ
(ユニットテストはバグを検知するのでなく、動作担保のために作る)
その例で言えば明らかにテストケース漏れだし
むしろそういう懸念があるならレビューの時に真っ先にチェックするだろ
テストコードを整備せずに、実装側を無意味に歪める方がおかしいだろ

427:デフォルトの名無しさん
22/03/04 08:01:41.44 BHHJY9k/.net
テストしたからバグは少なくなってるはず
程度だろ

428:デフォルトの名無しさん
22/03/04 09:16:31.36 Gnf2P8af.net
def test()
 print(1234)
#=enddef test
こんなエンドコメント入れてるんだが、ないかな?
長くなるとわかりにくいんだもん

429:デフォルトの名無しさん
22/03/04 10:06:50.30 8OZVHpIn.net
ありだよ

430:デフォルトの名無しさん
22/03/04 10:19:45.82 7BMKLnGc.net
そんなの見たら無言で削除するぞ

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

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

433:デフォルトの名無しさん
22/03/04 11:30:20.88 2+JR4Ldk.net
長くしなければいいじゃわん

434:デフォルトの名無しさん
22/03/04 11:49:48.53 dxtR1KDL.net
>>421
ねーわ、と思ったが
2000行程度のファイルで試してみたら確かに視認性が上がった
カラーリング次第なところはあるがテストコードに限らず有りだわ

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

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

437:デフォルトの名無しさん
22/03/04 19:29:27.15 k14r3fvN.net
while True:
try:
kakaku = btc_ask
time.sleep(30)
すんません教えて下さい、
30秒おきにループして、
BTCの価格を取得するプログラムなのですが、
この取得した価格を、
30秒前の前回取得した価格と比べるには、
どうしたらいいでしょうか。
30秒前のkakaku < 現在のkakaku
このようなことがしたいです、
ループの中でkakakuを保持して、
次回のループの時の価格と比べたりできますか?

438:デフォルトの名無しさん
22/03/04 19:55:32.25 7RF2xiEj.net
5x7(横x縦)の2次元リストのなかにデータが格納されています。
①その中に重複しているデータは何個あるか
②その重複しているデータを抽出する
が、したいです。
誰かお分かりになる方、教えて下さい。

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

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

441:デフォルトの名無しさん
22/03/04 22:40:01.34 rKYLL8CC.net
ary = [
[ 1, "a", 2 ],
[ 2, "a", "b", 2, 3 ]
]
この場合、出力はこれで良いの?
"a" => 2
2 => 3
"a"が2個、2が3個

442:デフォルトの名無しさん
22/03/04 23:06:04.21 pOcMuLi2.net
collectionsのcounterで終わりでは?

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

444:デフォルトの名無しさん
22/03/05 18:47:19.30 IA7poZPw.net
anacondaとVSCODEで開発しています
昨日あたりから急にconda install したcv2とかpyautoguiとかをimportするとモジュールが見当たらないとエラーがでるように
なってしまいました。
ですけど、conda info -eで見るとちゃんと環境は切り替わっているのですが、
pprint.pprint(sys.path)でimport先を確認するとなぜかcondaのbaseを見ています
import先を切り替えるにはどうすればいいのでしょうか。
なんかUSBHDDを接続してドライブを増やしたときにpython実行した辺りから使えなくなった気がします

445:デフォルトの名無しさん
22/03/05 23:09:14.83 aOITLV1E.net
エラーメッセージで検索すれば?
anaconda の使い方や、import パスの仕組みなどを調べるとか

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

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

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

449:デフォルトの名無しさん
22/03/06 21:38:43.85 SX3V4D25.net
Selenium を使う場合、手動でブラウザを使うのと、全く同じようにシミュレーションすべき
どこかが異なると、それを判別してブロックされる

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

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

452:デフォルトの名無しさん
22/03/07 07:17:49.90 TZQuxR5Y.net
ルビキチ

453:デフォルトの名無しさん
22/03/08 09:39:26.69 ZX9Pe2Of.net
ルビキチ
rb
mylist=mystr.split(",")
mysize=mylist.size()
mystr=mylist.join(",")
py
mylist=mystr.split(",")
mysize=len(mylist)
mystr=",".join(mylist)

454:デフォルトの名無しさん
22/03/08 10:02:18.65 yCGAKR37.net
おねいちゃのマイリス

455:デフォルトの名無しさん
22/03/08 18:04:03.25 /uluuvq4.net
ある数列の連続性をカウントしてまとめたいのですが
forで回してこうやりました
URLリンク(ideone.com)
↑の例では
#数列データ
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:デフォルトの名無しさん
22/03/08 18:14:37.92 pY0AUvqt.net
>>448
元のseriesと、shiftメソッド使って一個行方向にずらしたseriesを引き算して、
1なら連続、とかやる方法はあるけど、あんまりエレガントにならないし、
遅いしメモリも食うしいいことなさそうな感じだなあ。

457:デフォルトの名無しさん
22/03/08 18:16:01.08 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:デフォルトの名無しさん
22/03/08 18:56:13.93 /uluuvq4.net
>>449
なるほど
>>450
今の値が1連続目だとすると
常に、1連続以上になる確率が高くなりそうな気がしますが違うでしょうか

459:デフォルトの名無しさん
22/03/08 19:33:19.86 P7fXjWPX.net
URLリンク(ideone.com)
途切れた時点でのi-mが連続回数
何がやりたいのかいまいちわかんないけど


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch