22/09/07 11:35:39.53 qXGMoApv.net
>>1
スレ立てありがとうございます
批判する人も多いが安心のPython
でも昨今はforより内包が絶対とか堅苦しくなってきた?
3:デフォルトの名無しさん
22/09/07 12:59:31.35 ohzPpuvh.net
素朴な疑問なんですが、requestsが非同期IOに対応しないのは何か理由があるのですか?
aiohttp使えばいいんでしょうが、requests使い慣れてるからそれで使えると良いなと思ったのですが。
4:デフォルトの名無しさん
[ここ壊れてます] .net
なんでワッチョイ入れなかったの
5:デフォルトの名無しさん
[ここ壊れてます] .net
>>2
>forより内包が絶対
だれがそんなこと言ってるの?
6:デフォルトの名無しさん
22/09/08 10:22:42.20 ydRaiFc9.net
>>3
使う側からすると機能追加で済みそうだけど
同期前提でつくっている実装を非同期対応すると構造全体の見直しになる
品質考えるとインターフェース一新した別物つくるのが賢明
たぶんね
7:デフォルトの名無しさん
[ここ壊れてます] .net
>>4
なんでワッチョイ付けたがるの?
8:デフォルトの名無しさん
22/09/08 12:10:05.28 vEn3UGCv.net
ストーキングしたいから
9:デフォルトの名無しさん
22/09/08 14:15:18.08 2tFquaAS.net
くだれすが減るから
10:デフォルトの名無しさん
22/09/08 21:43:30.41 DPB4NAdg.net
ワッチョイあってもゴミレスばっかやん
スレリンク(tech板)
スレリンク(tech板)
11:デフォルトの名無しさん
22/09/09 10:35:14.40 W3oPAfkb.net
質問者自身何が何だか分からない質問です
URLリンク(github.com)
これを普段 holehe test@gmail.com で使用しているのですが
下記の意味が分かりません
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
・どこで何をしたらこうなるのかも分からないのですがpythonと書いてあったのでここに来ました
・1枚目の処理を実行すると2枚目の内容が出力されるのですか?
このツールは普段の使い方だとアカウントの有無しか分かりません
しかし画像のようにもっと細かく分かるなら是非やってみたいと思い質問させて頂きました
低レベルで申し訳ありませんが何卒宜しくお願い致します
12:デフォルトの名無しさん
22/09/09 13:13:33.89 CwUslwUl.net
あってるけど、ぱっと見いろいろオプションが用意されてるみたいだからまずはそれを試したら?
holehe --help
13:デフォルトの名無しさん
22/09/09 13:49:32.03 jKVuPW1r.net
>>12
ありがとうございます。早速ヘルプの内容を確認してみましたが
これらのオプションを使っても検索結果が拡充される事はなく、情報の色を変えるか変えないかであったり
調査にあたって危険な方法を試さず、より安全に探索するような指示であったり
あくまで基本的な探索オプションでしかありませんでした。
やはり画像のような "emailrecovery"や"phoneNumber"などもう一歩踏み込んだ情報を得たいので
Python Example・Module Outputの機能についてご教示頂けませんでしょうか。
これは難しいから初心者には無理、といった事でも構いませんのでよろしくお願い致します
14:デフォルトの名無しさん
22/09/09 14:36:55.61 JuiP0Vqf.net
pandasで下記Aの様に列などを指定すれば文字列を含む場所を抽出できますが、
Bの様にdf全体に対して抽出することは可能でしょうか?
A: df[1].str.contains('\d')
B: df.str.contains('\d')
15:デフォルトの名無しさん
[ここ壊れてます] .net
>>13
コードをコピってファイル(拡張子py)に保存して
python3 保存したファイル名
csvオプションでも全部吐き出しそうな雰囲気だったけども
16:デフォルトの名無しさん
22/09/09 22:19:16.88 jKVuPW1r.net
>>15
ありがとうございます、できました!対象のメールアドレスのせいもあってか
知りたかった情報は得られませんでしたが理屈が分かったので後は調べて頑張ってみようと思います
ついでにもう一つ宜しいでしょうか。当方Windowsなのですが
皆さんpython3 hogeで動かしてるのに自分のPCではpy hogeまたはpython fugaでないと動きません
これはこういうもんで、動いてるならあまり深く気にしなくてもよいでしょうか?
17:デフォルトの名無しさん
[ここ壊れてます] .net
>>16
デプロイする事を考えたら環境構築を考えるのは必須事項
そうではなくて自分の環境だけでいいなら気にしなくていいんじゃない
18:デフォルトの名無しさん
[ここ壊れてます] .net
今は取り急ぎ自分の環境だけで大丈夫なので気にしない事にします
ご親切にありがとうございました!
19:デフォルトの名無しさん
[ここ壊れてます] .net
1おつ
20:デフォルトの名無しさん
22/09/11 22:56:38.59 yZn9NbdN.net
>>16
> ついでに
それはLinuxとWindowsの違いだからそれで正しい
21:デフォルトの名無しさん
22/09/11 23:59:08.85 nsw4aG5q.net
>>20
なるほど、ありがとうございます。ずっと気になっていたのでスッキリしました!
22:デフォルトの名無しさん
22/09/12 01:06:46.85 68UfXJln.net
おしえて下さい!
pandasで下のデータ「file_csv」を呼び出し
import pandas as pd
data = pd. file_csv(file_path)
id, age, day, cmp, gender
0 1 , 25, 3, abc, 1
1 2 , 34, 5, def, 0
2 3 , 22, 10, abc, 0
3 4 , 38, 7, def, 1
4 5 , 67, 0, def, 1
genderのカラム名を「flag」に変更し、
(age >= 30) & (age < 60)に該当する
カラム「day」「cmp」を
ヘッダーあり、インデックスなしで
csvファイル出力したい場合
どんな組み合わせになるのでしょうか…
1つずつは何となく出せたのですが、
if、locをあれこれ組み合わせて試行錯誤のしつつ躓いてます。
Dataflame型について、まだ十分に理解しきれてないです。
以下は試してみた分です
rename(columns = "gender": "flag")
(data["age"] >= 30) & (data"age"] < 60)
to_csv("ファイル名", index = False)
どうか宜しくお願いします。
23:デフォルトの名無しさん
22/09/12 09:58:32.42 CU+mTlE/.net
>>22
data.rename(columns={"gender":"flag"}).query("30<=age<60")[["day","cmp"]].to_csv("data.csv",index=False)
24:デフォルトの名無しさん
22/09/12 15:39:47.22 ZYIHBGky.net
>>10
9割が KENYA ωωω
25:デフォルトの名無しさん
22/09/12 16:00:18.94 ZYIHBGky.net
>>14
df[:].apply(lambda x: x.str.contains('\d'))
26:デフォルトの名無しさん
22/09/12 16:01:06.53 ZYIHBGky.net
>>14
df.apply(lambda x: x.str.contains('\d'))
でもいけた
27:デフォルトの名無しさん
22/09/12 16:14:18.06 1qRrRTaZ.net
抽出なのにapplyなの?
28:デフォルトの名無しさん
22/09/12 17:24:19.42 N+Kuf5DB.net
>>26
できました!
ありがとうございます。助かりました。>df.apply(lambda x: x.str.contains('¥d'))
29:デフォルトの名無しさん
22/09/12 19:25:13.11 hB83BsQt.net
>>27
str.contains自体はstrに変換できるSeriesの各要素にcontainsを適用して同じ要素数のboolのSeriesにするだけで、
抽出自体はしないぞ
30:デフォルトの名無しさん
22/09/13 21:44:52.80 XIdQ2ouV.net
開発してるアプリ毎に仮想環境を作ってるのですが、どのアプリがどの仮想環境を使うのかがいまいち覚えられず
悩んでます
VS.codeとかを使える場合はそれらに任せているのですが、単品で動かす場合はやはり困ることもあります
スクリプトを実行する際に、自動的に仮想環境を選ばせる方法はありますか?
いっそのこと仮想環境のディレクトリ内にスクリプト類も配置すれば分かりやすいかなとも思ってますが、あまりよくないのでしょうかね…
31:デフォルトの名無しさん
22/09/13 21:53:14.84 1AIE6kXZ.net
> 仮想環境のディレクトリ内にスクリプト類も配置
それ以外にどうやってるのいま?
32:デフォルトの名無しさん
22/09/13 23:47:45.02 0WYEp+x7.net
>>30
>どのアプリがどの仮想環境を使うのかがいまいち覚えられず
プロジェクト内に作成した仮想環境を使うだけだし、覚える必要ないでしょ
URLリンク(packaging.python.org)
この例だとsrcとかtestsと同じ階層に仮想環境作ってそれを有効にするだけ
flaskのチュートリアルでの例
URLリンク(flask.palletsprojects.com)
自分はvenvだとモジュール名と同じでなんか嫌だから、作るときはenvっていう名前にしてるけど
33:デフォルトの名無しさん
22/09/14 01:04:18.28 ZVnaQXxy.net
>>23
確認遅くなりました
ありがとうございます!
query使うのですね
試してみます!
34:デフォルトの名無しさん
22/09/15 01:36:19.90 ETpDUkd1.net
引数をもつデコレータがある場合、関数を呼び出すごとにデコレータの引数を変える(与える)にはどうしたらよいでしょうか?
たとえば以下のような、retryモジュールのデコレータは、試行回数などを引数に与えますが、状況に応じてその回数を変えたりしたいです
@retry(tries=5, delay=1)
def function(**kwargs):
____:
簡単なやり方があると良いのですが・・
35:デフォルトの名無しさん
22/09/15 02:24:06.95 98Edt8bg.net
def function(tries=5, delay=1, **kwargs):
__@retry(tries, delay)
__def inner(**kwargs):
____pass:
__return inner(**kwargs)
36:デフォルトの名無しさん
22/09/15 12:20:37.83 Mk+PxLE/.net
func=retry(tries=5,
37:delay=1)(function)
38:デフォルトの名無しさん
22/09/15 17:51:12.51 ETpDUkd1.net
>>35 >>36
ありがとうございます。
なるほど、デコレータをさらに関数で囲えばよいということですね。
勉強になります。
39:デフォルトの名無しさん
22/09/16 09:42:35.71 IG7NLL2G.net
meboっていうチャットボット用のAPIを操作したいのですが
単純なAPIが使えなくて挫折してます。
meboHP: URLリンク(mebo.work)
meboAPIのAI構築について:URLリンク(zenn.dev)
環境
google colab(Python 3.7.14)
コード
URLリンク(pastebin.com)
現在の出力
rpc error: code = InvalidArgument desc = Document name "projects/mabo-f1cc7/databases/(default)/documents/bots/" has invalid trailing "/".
サーバーからのステータス
<Response [500]>
40:デフォルトの名無しさん
22/09/17 12:18:53.40 kn9qAbXr.net
>>38
解決しました。>>38のレスは無視してください。
41:デフォルトの名無しさん
22/09/18 16:40:03.27 oIU/CVXy.net
自分で定義したクラスから作ったインスタンスを要素に持つリストから、
そのクラスの持つ属性だけを用いて目的のインスタンスを検索する方法ってありますか?
知っている方がいたら教えて頂きたいです
よろしくお願いします
42:デフォルトの名無しさん
22/09/18 17:09:27.37 umotcjvR.net
1つずつ検査で良いなら
for c in cars:
if c.name == "z":
print("found")
break
43:40
22/09/18 18:57:15.84 oIU/CVXy.net
>>41
分かりました
ありがとうございました
44:40
22/09/18 19:15:24.64 oIU/CVXy.net
すいません、もう1つ初歩的なことをお聞きしたいのですが、
ネストが深くなって、型ヒントを付けると79文字に収まらないので
仕方なくカットしたのですが、79文字を超えても型ヒントを付けるべきでしょうか?
45:デフォルトの名無しさん
22/09/18 20:08:25.35 m9ZYpqjQ.net
>>43
ネストを浅くするという選択肢は無しですか?
46:デフォルトの名無しさん
22/09/18 21:31:28.79 /3elu/X8.net
そもそもその79文字縛りはどこから出てきたんだ?
47:40
22/09/18 22:00:10.71 oIU/CVXy.net
レスありがとうございます
>>44
これ以上はきついです
全体をdefで囲って、その中にclassを定義して、その中にインスタンスメソッドを
定義する必要があるからです(現状ネスト6重)
>>45
慣習みたいなものだと捉えています(インデントは空白4文字、のような)
79文字を超えるとpycodestyleでも引っ掛かります
48:デフォルトの名無しさん
22/09/18 22:15:09.13 e9eIyLRS.net
内部関数はつかうけど内部クラスは使わんな
49:デフォルトの名無しさん
22/09/18 22:31:15.96 m9ZYpqjQ.net
>>45
PEP8
>>46
>全体をdefで囲って、その中にclassを定義して、その中にインスタンスメソッドを
>定義する必要があるからです(現状ネスト6重)
なんで?
50:デフォルトの名無しさん
22/09/18 22:44:35.75 m9ZYpqjQ.net
型ヒントを書くこととPEP8を守ることを強いられてる状況でどちらを無視していいですかって聞かれても答えなんてないよ
51:デフォルトの名無しさん
[ここ壊れてます] .net
PEP8の79文字制限の理由ってデバイス上の文字数制限から複数のファイルを並べて開くことに変わってるんだね
今初めて知ったわ
52:デフォルトの名無しさん
22/09/18 23:12:03.52 m9ZYpqjQ.net
デバイスが理由の制限なら、PEP8の79文字別に守らなくてもいいと思ってたのに
53:40
22/09/18 23:21:48.72 oIU/CVXy.net
レスありがとうございます
>>47
そうなんですね
if __name__ == '__main__': の使い方について調べてみようと思います
>>48
クラス内にインスタンスメソッドを定義するのは分かって貰えると思います
あとは以前友人に、グローバル変数はなるべく使わない方がいいと指摘されたので、
全体をdefで囲みました
>>49
そうですか、困りました…
型ヒントは努力目標だと思っているので、今回は切りました
変数名から型はすぐに予想が付くはずなので
54:デフォルトの名無しさん
22/09/19 17:54:53.89 E0KKnE23.net
URLリンク(github.com)
PEP 8 modernisation
ここで色々変わっとるね
55:デフォルトの名無しさん
22/09/20 08:50:13.39 2fXkGtCj.net
率直に申し上げると設計が間違ってる
56:デフォルトの名無しさん
22/09/20 17:23:28.05 2jStgl9j.net
aiohttpのsession.get()ってなんで、async with で書くのでしょうか?
単に response = await session.get()
でもよいような気がするのですが、何か必要な後処理があるのですか?
57:デフォルトの名無しさん
22/09/21 06:21:14.49 Zz0+MRiM.net
if( !(10 <= n && n <= 20) ){}
pythonで↑の条件作るにはどう記述すればいいですか?
if not 10 <= n and n <= 20 だと違う条件になるよね?
58:デフォルトの名無しさん
22/09/21 06:57:53.80 1qKIyrZW.net
ド・モルガンの法則を使う時がついに来た!
59:デフォルトの名無しさん
22/09/21 07:09:14.26 757dNGj4.net
>>56
素直に
if not (10 <= n and n <= 20)
だとダメなの?
Python だと
if not (10 <= n <= 20)
でもいける
括弧を使うことはまかりならんとご先祖様に言われてるなら>>57の言うようにド・モルガン使って
if n < 10 or 20 < n
でいいかと
60:デフォルトの名無しさん
22/09/21 08:50:12.50 Zz0+MRiM.net
>>58
普通に()でくくれるんですね
pythonのifやforは()使わないのでそっちに意識引っ張られてました
ありがとうございます。
61:デフォルトの名無しさん
22/09/21 09:51:53.99 OzlWXNmH.net
>>56
10<=n and n<=20は
10 <= n <= 20 でもおk
62:デフォルトの名無しさん
22/09/21 18:14:53.47 E8IgYMeH.net
>>58
if 20 < n < 10: まで進化すると嬉しいな
63:デフォルトの名無しさん
22/09/23 13:36:08.56 esyqbAqH.net
URLリンク(www.youtube.com)
64:デフォルトの名無しさん
22/09/24 15:30:33.33 lPRg1Z9G.net
seleniumでのスクレイピングの処理を書いたpythonファイル1.py、2.py、3.py、4.pyを5.pyに下記の記載をして、
exec(open("1.py").read())
exec(open("2.py").read())
exec(open("3.py").read())
exec(open("4.py").read())
の形で順に処理を行っているのですが、この処理をマルチプロセスを使用して並列処理ってですか?
1.py〜4.pyはそれぞれ別のサイトからクローリングする内容で並列処理をしても過アクセスにならない状態です。
65:デフォルトの名無しさん
22/09/24 16:27:08.25 H5y6eeKG.net
なんの環境か知らんけどっですか
python 1.py &
python 2.py &
…
66:デフォルトの名無しさん
[ここ壊れてます] .net
微妙にくせがあるけどmultiprocessing使うとか
URLリンク(ideone.com)
67:デフォルトの名無しさん
22/09/24 21:07:38.32 xde+IjsE.net
独立プログラムならxargs -Pのが簡単だし柔軟
68:デフォルトの名無しさん
22/09/24 21:22:53.50 eArEwjby.net
os.startfile()
69:デフォルトの名無しさん
22/09/24 21:48:49.63 lPRg1Z9G.net
>>63
やってみたい内容はseleniumをマルチプロセス?で並行処理したいです。
1.pyはamazonをスクレイピングする内容で、2.pyはビックカメラを、3.pyはヨドバシを、4.pyは楽天をスクレイピングする内容になってます。
5.pyを起動すると1.pyから4.py順に処理するかたちとなってます。
現状
1.py処理開始
↓1時間で処理完了
2.py処理開始
↓1時間で処理完了
3.py処理開始
↓1時間で処理完了
4.py処理開始
↓1時間で処理完了
合計4時間で処理終了
やりたいこと
1.py~4.pyを同時に処理開始
↓1時間で処理完了
合計1時間で処理終了
70:デフォルトの名無しさん
22/09/24 22:46:02.65 8t4kL4/n.net
なんの環境か知らんけどって書かれているように
まずなんの環境か書いたほうがええよ
71:デフォルトの名無しさん
22/09/25 01:04:37.22 owlv0jBA.net
シェルスクリプトとかDOSバッチファイルとかPowershellとかで、Pythonの外で並列に立ち上げる感じやね
72:デフォルトの名無しさん
22/09/29 19:42:10.32 M7Fv3BQn.net
過疎ってんな
73:デフォルトの名無しさん
22/09/29 19:58:43.90 2clVMJp5.net
Pythonでもsubprocess.Popenでできるみたいよ
URLリンク(qiita.com)
74:デフォルトの名無しさん
22/09/29 21:33:42.74 pwfwLFeH.net
vscodeでjupyterの拡張機能いれて使ってたんだけど
from bs4 import BeautifulSoup
これを書くと
ModuleNotFoundError: No module named 'bs4'
となってエラーになる
普通に.pyファイル内で書いて実行するのはエラー起きないから、jupyterのなんやかんやがおかしいんだろうけどよくわからない
75:デフォルトの名無しさん
22/09/29 21:40:33.62 pwfwLFeH.net
すまん解決した
jupyterの拡張機能入れると2つの環境ができるっぽい
jupyter上で普通にコードを打つみたいにpip listを実行すればjupyterでの外部ライブラリのインストール状況がわかるんだな
そっち見たらBeautifulSoup4が欠けてた
76:デフォルトの名無しさん
22/09/30 15:18:46.35 SCTplp27.net
公式Python+PyCharm(ともに最新)を使っていて、PyCharmでF8キーでステップ実行をしてると、
ディスプレイがスリープモードになって、ディスプレイをOFF/ONしないと画面が復活しない現象が出てる。
ディスプレイはFHDと4Kのマルチで4K側がOFFになってしまう。
pythonのスクリプトはseleniumでChromeを動かすもので、Windowsのシステムをいじるものではないし、
イベントビューアーには何も出ない。
これってどこの悪いんだろう?
ビデオカード?ディスプレイ?PyCharm?
ディスプレイはHPの激安4Kの「HP V28 4K」
77:デフォルトの名無しさん
22/10/02 18:33:42.92 oEzc74vy.net
Windows上のPythonはどこから実行環境のタイムゾーン情報を取得していますか?
(環境: Windows10 Python 3.8)
素の状態でdatetimeでnative/aware、変換での時刻を取得表示すると以下のようになります
now_native = datetime.now()
-> 2022-10-02 18:14:56.061740 (=実際の日本時間)
now_aware_utc = datetime.now(timezone.utc)
-> 2022-10-02 09:14:56.061740+00:00
now_aware_local = now_aware_utc.astimezone()
-> 2022-10-02 18:14:56.061740+09:00
-----
しかし、下記TZ環境変数を追加すると、上記の値はそれぞれ以下のようになってしまいます
(全部UTCになり、astimezoneでもJSTに戻らない)
os.environ['TZ'] = 'Asia/Tokyo'
-> 2022-10-02 09:15:08.251324
-> 2022-10-02 09:15:08.251324+00:00
-> 2022-10-02 09:15:08.251324+00:00
(python上ではなく、OS側でTZを指定すると、なぜか夏時間分さらにずれます)
TZ無しだと正しく判別できている点と、TZありだとおかしくなる原因が知りたいです。
78:デフォルトの名無しさん
22/10/02 19:03:33.06 6gm07/Z2.net
ドキュメントによるとその形式はUNIX系だけなんじゃね?
"GMT+9"とかしてみれば
79:デフォルトの名無しさん
22/10/02 19:11:31.40 QRKSlI6k.net
pytzが必要なんじゃない?
URLリンク(qiita.com)
80:デフォルトの名無しさん
22/10/02 19:33:13.30 oEzc74vy.net
ありがとうございます。
環境変数が TZ=GMT-9 や TZ=JST-9 にしてみたところ正しく動きました(+9だとずれました)
なぜAsia/Tokyoの設定を書いたかと言いますと、
Google Firestoreにnativeなdatetime値をフィールドにセットすると、自動的にfirestoreのtimestamp型で保存されますが、
Asia/Tokyoでないと時刻がずれて保存されてしまいした。
ただ、よく確認したらTZ=Asia/Tokyoでも夏時間の+1時間ずれて保存されてしまっているようだったので、
素直にawareなdatetimeか、unixtime値で統一しようかと思います。
できれば、ローカル内ではタイムゾーン意識無し(datetimeもnative)で時刻を扱いたかったのですが。
81:デフォルトの名無しさん
22/10/03 11:21:26.86 BGisZcin.net
自分の使ってる環境やOS以外のOSの存在を想定しないタイプの質問者は多い
82:デフォルトの名無しさん
22/10/03 11:24:07.67 BGisZcin.net
>>75
PC(やノートPC)本体のF8機能は疑わないの?
83:デフォルトの名無しさん
22/10/03 11:27:44.02 BGisZcin.net
>>79
自分はログインするすべてのユーザーで起動時に TZ=JST-9 で動く様にしてる
まかせっきりにするより安定するから
>>78
pytz 便利だよね
84:デフォルトの名無しさん
[ここ壊れてます] .net
(2^((2^(111-1))-1))*(2-(2^-2147483536))
が
URLリンク(ideone.com)
3.724173892452932703847578592653741500670543217015032981203746860583934456368392810496137951064109136E+390759275202710585594223439217007
になったんですが、誰か検算していただけないでしょうか?
なにしろ
(2^((2^(115-1))-1))*(2-(2^-4294967180))
で
URLリンク(ideone.com)
1.369238871792785393062417227660788996255177387212550321383285600970027973012269329384152209543458491E+6252148403243369369507575027472121
誤差を発見したので。
85:デフォルトの名無しさん
22/10/05 20:11:20.53 uckusxLZ.net
octaveでも使えば
もしくはラズパイでmathematica
86:デフォルトの名無しさん
22/10/05 20:16:15.69 0zm+Esby.net
ちなみに
(2^((2^(23-1))-1))*(2-(2^-488))
の時点でウルフラム大先生には誤差が出る。
URLリンク(ja.wolframalpha.com)
10^(10^6.101269676953259)
正確には
10^(10^6.101269676953261)
87:デフォルトの名無しさん
22/10/05 20:57:07.65 0zm+Esby.net
これも確認お願いしたい。
log10(log10((2^((2^(115-1))-1))*(2-(2^-4294967180))))
URLリンク(ideone.com)
33.79602927803953145109997858464656262695562002580878769896892674125907270351639335872189806561303658
ウルフラム大先生は
(2^((2^(115-1))-1))*(2-(2^-4294967180))
URLリンク(ja.wolframalpha.com)
10^(10^33.79602927803952)
と答えるが・・・。
88:デフォルトの名無しさん
22/10/07 12:37:25.78 d4ub3t4L.net
IEEE 754
GMP
MPIR
89:デフォルトの名無しさん
22/10/08 17:57:13.27 qEj00saR.net
>>83
mpmathをVSCodeにインストールして計算した結果、問題なかった。
しかしVSCodeでmpmathを使う場合、いちいちコンソールでpythonと入力し、
1行ずつ実行している。
普通にpythonのソースを実行するみたいにできないのでしょうか?
90:デフォルトの名無しさん
22/10/08 18:15:23.92 UY8pCVsr.net
>>88
コマンドパレットで
python
っていれてみ
あと使う言語の機能拡張の説明くらいは読んどこ
ぜんぶvscodeの話やけどな
91:デフォルトの名無しさん
22/10/08 18:27:23.49 qEj00saR.net
>>89
ありがとう。「選択範囲を実行」で実行できるみたいだけどまだ不便だな。
92:デフォルトの名無しさん
22/10/09 17:22:36.55 4KZMQjJb.net
psycopg2とpandasについて質問です。
質問1
下記のコードにて5日前から今日までのデータを取得したいのですが、
エラーが出てしまいます。何か方法を教えてください。
↓エラー
指定した名称と引数の型に合う演算子がありません。
明示的な型キャストが必要かもしれません。
conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
kakuninbi = datetime.date.today()-datetime.timedelta(days=5)
df = pd.read_sql(sql=f'SELECT "date" FROM situmon.situmondb2 WHERE "date">{kakuninbi};', con=conn)
dateに入っているデータは前日とかにdatetime.date.today()で取得した日付を入れてます。
テーブル作成時のコードは下記です。
c.execute(f'''
CREATE TABLE IF NOT EXISTS amazon."amazon_item_info"(
"date" date,
"JAN" text
)
''')
質問2
conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
df = pd.read_sql(sql='SELECT "JAN" FROM situmon.situmondb2 WHERE NOT "JAN">none;', con=conn)
列"none"は存在しません
"JAN"には文字列で13桁の数字か"none"が文字列で入ってます。
何か取得できる方法があれば教えてください。
93:デフォルトの名無しさん
[ここ壊れてます] .net
(一部誤りがあったので修正です)
psycopg2とpandasについて質問です。
質問1
下記のコードにて5日前から今日までのデータを取得したいのですが、
エラーが出てしまいます。何か方法を教えてください。
↓エラー
指定した名称と引数の型に合う演算子がありません。
明示的な型キャストが必要かもしれません。
conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
kakuninbi = datetime.date.today()-datetime.timedelta(days=5)
df = pd.read_sql(sql=f'SELECT "date" FROM situmon.situmondb2 WHERE "date">{kakuninbi};', con=conn)
dateに入っているデータは前日とかにdatetime.date.today()で取得した日付を入れてます。
テーブル作成時のコードは下記です。
c.execute('''
CREATE TABLE IF NOT EXISTS situmon.situmondb2(
"date" date,
"JAN" text
)
''')
質問2
conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
df = pd.read_sql(sql='SELECT "JAN" FROM situmon.situmondb2 WHERE NOT "JAN">none;', con=conn)
列"none"は存在しません
"JAN"には文字列で13桁の数字か"none"が文字列で入ってます。
何か取得できる方法があれば教えてください。
94:デフォルトの名無しさん
[ここ壊れてます] .net
>>92
2つともクウォートの問題っぽいね
SQLをf-stringで組み立てるのはやめてプレースホルダーを使おう
pd.read_sql(sql='SELECT "date" FROM situmondb2 WHERE "date" > %s;', con=conn, params=(kakuninbi,))
pd.read_sql(sql='SELECT "JAN" FROM situmondb2 WHERE NOT "JAN" > %s;', con=conn, params=("none",))
95:デフォルトの名無しさん
[ここ壊れてます] .net
>>88
VSCode の拡張機能・Code Runner で出来ないの?
右クリックメニューから、ファイル全体または選択したコード片を実行できる
96:デフォルトの名無しさん
[ここ壊れてます] .net
>>91
エラーの内容も出てるのに、これでもわからないような人はプログラミングはやめた方がいいよ
97:デフォルトの名無しさん
22/10/10 07:14:12.18 ST1YeHmA.net
>>93
ありがとうございます
いけました!
98:デフォルトの名無しさん
22/10/10 09:35:34.12 3yLYwmxt.net
>>93と>>95の対応レベルの違いに鼻水噴いた
エラーメッセージって表面的なことしか指摘してくれないから
それ見て根本原因を見つけるのにはそれなりの経験とスキルが要るのよね
99:デフォルトの名無しさん
22/10/10 12:51:10.90 gz0/2IVP.net
なぜ、SELECT "JAN", WHERE NOT "JAN" と、列名を"~"で囲むの?
囲む必要あるの?
'~'は、文字列リテラルだけど、
"~"は、かなりややこしい
>WHERE NOT "JAN">none
これは、WHERE NOT JAN > 'none' でしょ。
つまり、WHERE JAN < 'none' じゃないの?
'none' ではないのは、
WHERE JAN != 'none'
WHERE JAN <> 'none'
本当は、'none' よりも、NULL を使えば良かった
プロは、Ruby on Rails みたいなO/R マッパー・Place Holder を使う。
文字列を連結して使うと、SQL インジェクションされるので超危険
100:デフォルトの名無しさん
22/10/10 14:04:34.11 sJsMwDUU.net
>>98
> なぜ、SELECT "JAN", WHERE NOT "JAN" と、列名を"~"で囲むの?
列名(に限らず表名やビュー名等の識別子)は " " で囲むと空白とかを含む列名を指定できる、あと英字でも大文字小文字を区別するようになる
一昔前は漢字等でも囲む必要があったものもある
101:デフォルトの名無しさん
22/10/10 16:55:38.18 Xq5E773z.net
>>98
囲むのはdateが予約語でJANが大文字だから
JANをダブルクォーテーションで囲まないとpostgresは全部小文字に変換する
102:デフォルトの名無しさん
22/10/10 18:54:20.90 EzlpT+F/.net
このスレにも終わったRubyを持ち出すキチガイがいるのか
103:デフォルトの名無しさん
22/10/11 08:21:30.06 1t/lVmf9.net
URLリンク(www.youtube.com)
この動画の49:00~辺りで、while loopの最後に return -1 と記述している箇所があります。
return -1 にはどういう意味があるのでしょうか?
動画内で解説がなく、コメント欄に寄せられている質問にも回答が無い状態です。
お教えいただけると幸いです。
104:デフォルトの名無しさん
22/10/11 09:25:47.83 yOX375hU.net
>>102
動画見なきゃいけないのか・・・
URLは40分で、問題の箇所は49分とな・・・
しかも動画自体は3時間オーバーか・・・
ソースコードは転記してくれたらいいなぁ
URLリンク(ideone.com)
二分探索での結果、見つからなかったを表すために-1を返してるんじゃないかな
英語聞き取れないので違うかもだけど
あとどうでもいいけど、endの意味が途中から変わっててバグってる
105:デフォルトの名無しさん
22/10/11 09:35:13.11 1t/lVmf9.net
>>103
回答ありがとうございます。また、お手数かけてすみません。
whileループと return -1 は経験者なら分かる使い方なのかと思ってコードを省略してしまいました。
以後気をつけます。
106:デフォルトの名無しさん
22/10/11 14:24:32.17 17+/w9Hg.net
作者は、正常終了を0 で、異常終了を-1 にしたのかも
よく見かける定義
107:デフォルトの名無しさん
22/10/11 15:07:01.27 +IdMirEn.net
>>105
なに言ってるんだよw
見つかったらlistの添え字
見つからなかったら-1
せっかく>>103が書き写してくれてるんだからコード見ろよ
108:デフォルトの名無しさん
22/10/12 23:04:39.44 UENmAu+H.net
任意の数の要素を持つリストをある数で初期化して生成したいんだけど
例えば、[-1, -1, -1, -1,-1]みたいなのを生成しようと思ったら
リスト内包表記で[-1 for i in range(5)]とやるのが一番シンプルかな?
109:デフォルトの名無しさん
2022/10/
110:12(水) 23:11:27.62 ID:RrsSoprO.net
111:デフォルトの名無しさん
22/10/12 23:29:22.91 UENmAu+H.net
>>108
あ、その手があったかマジTHX
てか、リストの演算とか基本だよな。なんでそれ見逃してたんやろ
112:デフォルトの名無しさん
22/10/13 11:23:55.91 mnydj+83.net
多次元リスト作る時に問題があるから内包表記を使ってる内に、一次元配列でも使うようになった
とか
113:デフォルトの名無しさん
22/10/13 14:14:04.52 mnydj+83.net
リスト
114:デフォルトの名無しさん
22/10/16 00:35:10.66 IrphczHF.net
seleniumで取得したhtmlからlxmlでスクレイピングしているのですが上手くいきません。
下記のような箇所があった場合に送料のみをスクレイピングしたいです。
<div class="_4XOXks36lqAR"><div class="Wc9xhLyHJ7_1 _9u8OtToEB0ql"><p class="_2DVqcNMgVZ15"><span class="_1yF7AMZ2DzcC">550</span><span class="_5apwL7hbOTJ8">円</span><span class="_2QEz7MA1vq6o">+送料550円</span></p></div></div>
<div class="_4XOXks36lqAR"><div class="Wc9xhLyHJ7_1 _9u8OtToEB0ql"><p class="_2DVqcNMgVZ15"><span class="_1yF7AMZ2DzcC">650</span><span class="_5apwL7hbOTJ8">円</span></p></div></div>
<div class="_4XOXks36lqAR"><div class="Wc9xhLyHJ7_1 _9u8OtToEB0ql"><p class="_2DVqcNMgVZ15"><span class="_1yF7AMZ2DzcC">740</span><span class="_5apwL7hbOTJ8">円</span><span class="zmh60VOMQOpy">送料無料</span></p></div></div>
souryou = [souryou.text_content() for souryou in html.cssselect('p._2DVqcNMgVZ15 > span:nth-child(3)')]
今得られる結果
['+送料550円', '送料無料']
欲しい結果
['+送料550円', '送料無料', '送料無料']
送料の記載がない箇所には送料無料を代入して取得したいのですが、
何かいい方法ありませんか?
115:デフォルトの名無しさん
22/10/16 08:06:17.10 P3u/guM2.net
内包表記せずにループで中身確認しながらリストにappendで追加で良さそう
今は2番目がスキップされてる状態だよね
116:デフォルトの名無しさん
22/10/16 08:08:28.26 P3u/guM2.net
ああごめん、取得した段階で2個になってるのか
117:デフォルトの名無しさん
22/10/16 08:18:07.27 sGqT+v7u.net
>>112
価格のテキスト全体を取ってそれを加工するとか
kakaku = [p.text_content().strip() for p in html.cssselect('p._2DVqcNMgVZ15')]
# ['550円+送料550円', '650円', '740円送料無料']
souryou = [re.search(r"送料.+", s) for s in kakaku]
souryou = [s.group(0) if s else "送料無料" for s in souryou]
# ['送料550円', '送料無料', '送料無料']
あらかじめ「送料無料」のSPAN要素を追加しておくとか
for p in html.cssselect('p._2DVqcNMgVZ15'):
lxml.etree.SubElement(p, "span").text = "送料無料"
souryou = [souryou.text_content() for souryou in html.cssselect('p._2DVqcNMgVZ15 > span:nth-child(3)')]
# ['+送料550円', '送料無料', '送料無料']
118:デフォルトの名無しさん
22/10/16 12:08:00.45 IrphczHF.net
>>115
これが1番良さそうかも
ちょっとやってみます
119:デフォルトの名無しさん
22/10/19 20:21:20.98 fx6wlbL4.net
asyncio.Task使ってます
Task側でキャンセルされたか判断したいのですが
cancel()を呼んでもcancelled()はTrueにはなりません。
asyncio.sleepを呼んでいるとCancelledErrorが発生するのでこれで判断するってことでんでしょうか
120:デフォルトの名無しさん
22/10/19 21:10:32.26 7AGdww0q.net
>>117
URLリンク(docs.python.org)
そのまんまのこと書いてるやん
121:デフォルトの名無しさん
22/10/20 05:01:50.81 WKKXn2E+.net
>>117
3.6以前のマニュアルだとコードサンプルがない代わりに補足されているけど
> このメソッドが呼び出された直後は cancelled() は True を返しません (タスクがすでにキャンセル済みの場合は除く)。
> ラップされたコルーチンが CancelledError で中止されたとき、タスクは (cancel() が呼ばれなかった場合でも) キャンセル済みとマーク
122:されます。 つまる所cancel()はするというか要求なので、対象のタスクに制御が移らないと反映されない Taskの側でcancelされたか判断するならawaitしてる箇所でCancelledErrorの捕捉だろう 外側でもcancel()後は何かしらawaitする、対象のtaskをawaitした場合はCancelledErrorが発生する 協調的マルチタスクなので何れにしても譲り合いの精神
123:デフォルトの名無しさん
22/10/20 21:49:43.09 USlJAvnt.net
listA = "AAABBBCCC","DDDEEEFFF"
こういうリストからそれぞれを最初の3文字だけ取る場合っていちいち
listA[0][:3]
listA[1][:3]
ってやらないとだめなの? つまりfor文内でやるかんじ?
一括でできる方法あるの?
124:デフォルトの名無しさん
22/10/20 22:30:56.38 pNhy2w5w.net
>>120
> listA = "AAABBBCCC","DDDEEEFFF"
リストじゃなくてタプル
URLリンク(ideone.com)
高階関数とか内包表記使える
125:デフォルトの名無しさん
22/10/21 18:18:40.16 KJJV+zwc.net
>>121
ありがとう
126:デフォルトの名無しさん
22/10/22 15:39:57.98 qZ/iI25s.net
プログラミングが長い為ここには書けませんでした。
7.gigafile.nu/1029-d987ca4deb3deafdb0df9198c08c32e58
上記のワードで書かれてますが
引用はコチラ。
rapids-ai/200-000x-faster-in-the-field-of-weather-analysis-with-cuda-python-numba-6ca03a694294
どうしてもエラーがでてしまいます。
お願いします。偉い人!
127:デフォルトの名無しさん
22/10/25 09:55:18.08 PmE1kXZ/.net
特定のサイトからデータを取得していたのですが、urlに()が入りました。
%28,%29 でエンコードしてもアクセスできません。何か方法はありますでしょうか。
URLリンク(a.com)(d(aaaa))/bbbbb
のようなurlです。
よろしくお願いします。
128:デフォルトの名無しさん
22/10/25 16:07:38.03 7A2ptHo2.net
どうやってアクセスしてるのかわからんけど
URLのエンコードなんて大概透過的に行われるので出来ないのは他の原因
129:デフォルトの名無しさん
22/10/26 09:11:50.60 j7HiGILU.net
CUDA Python (Numba) を使用して気象分析の分野で 200,000 倍高速化する
medium.com/rapids-ai/200-000x-faster-in-the-field-of-weather-analysis-with-cuda-python-numba-6ca03a694294
cudaのやり方がわかりません。
この20万倍の高速化をやりたい!
130:デフォルトの名無しさん
22/10/26 10:06:30.77 wzTCBV7y.net
>>126
めちゃ簡単そうじゃん、今度やってみよ。
具体的にどこがわからないの?
CUDAカーネル書かなきゃいけないんだったら理解できないってのもわかるけど。
131:デフォルトの名無しさん
22/10/26 17:01:49.64 UGwAmNJn.net
>>125
ありがとうございます。
括弧の部分を %28b%28bbbb%29%29 とエンコードしてみたのですが駄目でした。
subprocess.Popen([URLリンク(a.com))
サイトの開き方に問題があるもでしょうか?
132:デフォルトの名無しさん
22/10/27 00:12:49.83 fsnzTjBD.net
自分が書いたコードを、社会人の友人に批評してもらったら、
グローバル変数はあまり使わない方がいい(衝突する可能性があるから)
処理をぐるっとdefで囲んだ方がいい
と指摘されたんですが、クラスなどの定義部分も含めて全て囲った方が
いいでしょうか?
133:デフォルトの名無しさん
22/10/27 00:18:09.17 0CNViBMq.net
いいえ
134:129
22/10/27 00:26:07.04 fsnzTjBD.net
>>130
レスありがとうございます
どんな感じで書くのがよいでしょうか?
135:デフォルトの名無しさん
22/10/27 00:30:17.64 0CNViBMq.net
よく知らんけど関数とクラスの集まりにして
トップレベルではmain()一発にすればいいんじゃない
136:デフォルトの名無しさん
22/10/27 00:50:38.01 HY0JJRbT.net
>>129
一人で趣味で書いてるんでしょ?
なら気にしなくてよい
自分の経験上、一人で書くコードで変数の衝突はあり得ない
自然と衝突しない名前を付けるものよ
137:デフォルトの名無しさん
22/10/27 14:28:54.97 dynbemGf.net
pythonでbluetooth通信を使おうとしたら、pybluezっていうライブラリが必要みたいなんだけど、GPLライセンスなので気軽に使えない...
Web Bluetooth APIってやつをpythonから呼び出す方法とかって無いですか?
138:デフォルトの名無しさん
22/10/27 16:57:06.02 B91uqICs.net
もちろん無い
言語さえPythonならいいんだったらPyScript使ってブラウザで動かせばWeb Bluetooth使えるだろうけど、
ブラウザで動かす時点で当然JavaScriptの知識は必須だから諦めて普通にJavaScript書いたほうが遥かに簡単で手っ取り早いよ
139:デフォルトの名無しさん
22/10/27 17:19:39.60 bJOX0XaJ.net
以下の4点を使わずに、PCとIoT機器で通信する縛りゲーがあったとしたら、どんな通信方法があると思いますか?
・クラウド
・Bluetooth
・Wi-Fiによるローカルネットワーク接続
・有線ケーブル
140:131
22/10/27 17:35:29.25 fsnzTjBD.net
>>132
ありがとうございます
メインの処理を大きな関数にして、その前にクラスや関数を宣言しておくって
表記法は良くないですか?
>>133
ありがとうございます
今は確かに趣味レベルですが、後々仕事にしたいと思ってます
なので今から本来の記述法を知っておきたいなと思いました
141:デフォルトの名無しさん
22/10/27 18:41:13.82 2LX/1yOU.net
そもそも、Pythonに真の意味でのグローバル変数は存在せず、衝突が問題になることはチーム開発でもまずない。
トップレベル(何にも囲まれていないという意味)で宣言された変数はモジュール変数といって、
そのファイル(モジュール)の外からアクセスする際には明示的にインポートするか、モジュール名で修飾する必要がある。
実際の開発ではプログラムを多数のモジュールに分割して作っていくため、衝突は心配しなくてよい。
でトップレベルの変数の問題は衝突よりも状態が共有されてしまうことにあって、その辺はPython云々というよりオブジェクト指向の基本を学んできたほうがいい。
142:デフォルトの名無しさん
22/10/27 20:02:50.71 JZO81t2C.net
グローバル変数用のモジュール作ってg.でインポートすると便利
143:137
22/10/28 00:18:09.86 wfZLZF+J.net
>>138-139
レスありがとうございます
参考にさせて頂きます
144:デフォルトの名無しさん
22/10/28 00:21:30.46 Rl5QKwW8.net
>>136
テレビのリモコンみたいな光通信とか、
任天堂みたいな赤外線リモコンとか
テレビのリモコンを作る記事は多い
145:デフォルトの名無しさん
22/10/28 00:25:04.49 IFcgEfiD.net
マイクもあるな
146:デフォルトの名無しさん
22/10/28 01:33:50.96 /BO79IyH.net
>>136
QRコード表示してカメラで読み取る
147:デフォルトの名無しさん
22/10/28 01:46:37.94 dcIx+1f7.net
>>142
お店のチェックインとか近接通信を音でやってた
なぜか最近みかけない
148:デフォルトの名無しさん
22/10/28 03:25:10.09 6ugV0KGt.net
wifiやbtが発達してなかったころのガジェットは、PCとの通信は赤外線か音だったね。電波法に違反しない程度の微弱電波なんかも無線の設計が出来ればありかもねw
149:デフォルトの名無しさん
22/10/28 22:56:01.79 wfZLZF+J.net
sqlite3モジュール関連のexecuteメソッドで、SQLのUPDATE文を実行したら
警告が出てしまったのですが、これは使わない方がいいでしょうか?
150:デフォルトの名無しさん
22/10/29 11:43:50.85
151: ID:U74uWsGB.net
152:デフォルトの名無しさん
22/10/29 12:38:21.67 c9+8csYL.net
1666882287427 -> "1番目"
1666882316853 -> "に番目"
1666882538457 -> "参番目"
1666882566231 -> "ヨン番目"
1666882574322 -> "V番目"
1666882595860 -> "6番目"
上のような連想配列から
1666882550000以下の物を降順で2つ取得 → "参番目" と "に番目"
このようなプログラム記述の方法を教えて下さい
デクリメントで総当りは負荷が高そうなのでNGです
153:デフォルトの名無しさん
22/10/29 13:01:54.81 CGLSS5oS.net
標準ライブラリにはないですが平衡二分探索木を使ってください
154:デフォルトの名無しさん
22/10/29 13:32:30.54 Tq2/qUBq.net
keysをリストで取り出してnumpyに突っ込んでargsortして降順に2個インデックスを取り出して辞書にリスト[インデックス]でアクセスとか
155:デフォルトの名無しさん
22/10/29 13:46:06.14 J/RjufZS.net
OrderedDict
156:デフォルトの名無しさん
22/10/29 15:43:03.58 +W9Ulup+.net
>>149
bisectモジュールってし標準に入ってなかったっけ?
157:146
22/10/30 00:34:22.27 FRxBqbrT.net
>>147
うーん、分かりました
ありがとうございます
158:デフォルトの名無しさん
22/10/30 02:27:02.99 sWVHDylq.net
>>149
探索木だと降順って指定ができず近似値を持ってきてしまいませんか?
>>150
0 -> 1666882287427 -> "1番目"
1 -> 1666882316853 -> "に番目"
2 -> 1666882538457 -> "参番目"
3 -> 1666882566231 -> "ヨン番目"
4 -> 1666882574322 -> "V番目"
5 -> 1666882595860 -> "6番目"
知らない言葉ばかりだったんですけど要はこういう事ですかね?
これなら総当りでも負荷少なそうなのでやってみます!
159:デフォルトの名無しさん
22/10/30 03:57:27.05 2IVXofav.net
>>153
なんて警告されてるのか書けばもっとアドバイスもらえると思うよ
160:デフォルトの名無しさん
22/10/30 09:29:09.55 XddGgynb.net
暇だから書いてみた
URLリンク(ideone.com)
負荷はどんなものか分からない
argsortじゃなくてsortが簡単だった
161:デフォルトの名無しさん
22/10/30 13:37:40.91 YV/Jz1Xt.net
フィルタして、ソートして、スライスして、、、
って、コレじゃダメなんだろうか
result = sorted(filter(lambda x: x[0] <= 1666882550000, data.items()), key=lambda x: x[0], reverse=True)[:2]
print(result)
# [(1666882538457, '参番目'), (1666882316853, 'に番目')]
162:153
22/10/30 17:15:54.55 FRxBqbrT.net
>>155
レスありがとうございます
それが、さっき実行してみたらなぜか警告は出ず普通に出来てしまったんです
理由はよく分かりません
確か、「非推奨の機能であり、ver3.12で削除される」等と書かれていたような
気はしますが
一応そのコードを貼らせて頂くので、よろしければ読んで頂けると助かります
URLリンク(pastebin.com) (コード内のID・パスワードはサンプルです)
163:デフォルトの名無しさん
22/10/30 19:55:07.82 pkba5bNo.net
>>158
3.12で削除はsqlite3.OptimizedUnicodeだから
どこかに
con.text_factory = sqlite3.OptimizedUnicode
みたいの書いてあったんじゃない?
164:158
22/10/31 00:05:38.33 9DMkpRZo.net
>>159
ありがとうございます
うーん、コードは上に貼ったもので全てですね…
「Python完全入門」という本に載っていたものをそのまま写して実行しました
まあ今警告が出ないなら何かの間違いだったのかな、という気もしますが
165:デフォルトの名無しさん
22/10/31 13:02:00.89 Mv22B4ss.net
辞書型のキーですけど改行(\n)を含む
166:文字列ではキーが見つからないKey Errorになりますが\nをシングルクオートに置き換えると見つかります。 これって仕様書に書いてありますでしょうか?
167:デフォルトの名無しさん
22/10/31 13:13:10.32 8MwzVFI5.net
よーわからんからコードで書いてみて
>>> {"key": 2, "ke\ny": 3}["ke\ny"]
3
168:デフォルトの名無しさん
22/10/31 13:21:59.68 9qd4kdaQ.net
改行コードだけを挿入したつもりがキャリッジリターンも含まれてたんじゃないの
169:デフォルトの名無しさん
22/10/31 17:25:04.40 TphGqH95.net
仕様書に書いてあるかどうかは仕様書に聞け
170:160
22/10/31 22:49:45.99 9DMkpRZo.net
何度もすいません、クロムの検索候補に履歴が残ってたので貼ります
deprecationwarning: the distutils package is deprecated and slated for removal
in python 3.12. use setuptools or check pep 632 for potential alternatives
という内容です
よろしければ、アドバイスをお願いします
171:デフォルトの名無しさん
22/10/31 23:25:28.64 L2HQmiB/.net
>>165
英語読めよ
書いてあるだろ
172:デフォルトの名無しさん
22/11/01 00:03:30.73 ErTKtcvq.net
俺は親切だからGoogle翻訳にかけてやったぞ
非推奨警告: distutils パッケージは推奨されておらず、削除される予定です Python 3.12で。セットアップツールを使用するか、PEP 632で代替案を確認してください
173:165
22/11/01 02:01:44.74 Orud0uMd.net
>>166
すいません、英語よく分からないんです
>>167
本当に親切な方ですね!
ありがとうございます
174:デフォルトの名無しさん
22/11/01 07:02:27.48 XjPjyOv6.net
FlaskでつくったwebアプリをWin10 homeで動かそうとしています
pc起動時に立ち上げたいのですがどういう方法がありますか?
サービス?とか言うのに登録することになるんですか?
175:デフォルトの名無しさん
22/11/01 08:46:44.47 ENm4Z/gv.net
localhostで自分が使うだけだろ?そんなもんスタートアップにショートカット作っときゃ十分
Webサーバーとしてまともに運用するならnginxとか使うことになるけど、その場合普通はLinuxだからWindowsで変に頑張んなくていいよ。時間の無駄。
176:デフォルトの名無しさん
22/11/01 09:11:05.66 CMvcSOEo.net
英語が分からないなら、DeepL で翻訳すれば?
177:デフォルトの名無しさん
22/11/01 10:13:16.96 XjPjyOv6.net
Windowsという足枷
178:デフォルトの名無しさん
22/11/01 11:22:59.34 ZzMsks2m.net
>>168
知恵も回らないだろ
179:デフォルトの名無しさん
22/11/01 16:39:40.42 XjPjyOv6.net
>>170
>localhostで自分が使うだけだろ?
そうです
>そんなもんスタートアップにショートカット作っときゃ十分
そうなんですけど、start, stop, restartがやりやすいといいなって
180:デフォルトの名無しさん
22/11/01 17:33:54.65 VEA6qwMy.net
次回からスレタイは馬鹿専用スレにした方がいいな
181:デフォルトの名無しさん
22/11/01 18:31:43.24 Orud0uMd.net
>>175
ちょっと言葉が過ぎるのでは
182:デフォルトの名無しさん
22/11/01 19:22:50.77 VEA6qwMy.net
>>176
お前が原因だよ
183:デフォルトの名無しさん
22/11/01 22:56:30.05 CMvcSOEo.net
>>174
>start, stop, restartがやりやすいと良いな
これらをそれぞれ、ショートカットに出来ないの?
こういうプログラムを、Ruby, PowerShell, VBS などで書いて、
ショートカットで起動すれば?
184:デフォルトの名無しさん
22/11/01 22:57:29.27 Orud0uMd.net
>>177
あまり荒らしたくないですけど、
馬鹿って言い回しは失礼だと思います
185:デフォルトの名無しさん
22/11/01 23:10:41.20 oDG5TYmp.net
>>179
君にはお似合いの称号だよ
186:デフォルトの名無しさん
22/11/01 23:22:16.04 ENm4Z/gv.net
>>174
伝統と信
187:頼のApacheでいいんじゃない いずれLinuxへ移行する予定があるとか本職になるための勉強をしてるとかならnginxをサイドカーとしてDocker Desktopで常駐させるのもアリだと思うけど、 日常的にDockerを使うのでなければDocker Desktopを常時立ち上げるのはPCがだいぶ重くなるよ
188:デフォルトの名無しさん
22/11/02 00:22:40.88 EpYc8eIm.net
馬鹿に馬鹿と指摘すると怒るよね
189:デフォルトの名無しさん
22/11/02 00:52:05.06 F9m89lvM.net
>>180
これだけの情報で馬鹿って決めつける奴の人間性も大概だと思うぞ
口の利き方に気を付けた方がいいよあんたは
190:デフォルトの名無しさん
22/11/02 00:57:42.57 6/QOeQY0.net
ほら、心当たりがあるから過剰反応する
191:デフォルトの名無しさん
22/11/02 10:51:54.65 I1Z+o8fX.net
関西人にとって馬鹿は人権侵害に匹敵する最大級の侮辱言葉です。
僕は関西人なので、アホと罵ってください
192:デフォルトの名無しさん
22/11/02 14:49:55.66 PQwC7NxY.net
仮想環境を任意の場所に作成できません
envs_dirsには
a(%LocalAppData% )
b
c
と三つの環境ディレクトリリストが登録されておりbのディレクトリに環境を作りたい
condarcもCONDA_ENVS_PATHも試して確かに設定すれば上記リストのトップに
bは来るのだがいざ環境を作ろうとするとどうしてもaディレクトリに作成されてしまいす
193:デフォルトの名無しさん
22/11/02 19:09:37.24 F9m89lvM.net
>>182
馬鹿って言われたら誰だって普通怒るだろ
>>184
煽るなよ
194:デフォルトの名無しさん
22/11/02 19:13:03.95 XT0KXyOw.net
>>187
馬鹿と言われて当然のことを書いてるだろ
そんなこともわからんから馬鹿だっての
195:デフォルトの名無しさん
22/11/02 19:19:31.28 v5vL/CmP.net
>>187
怒るのは馬鹿な人の特徴でしょ
馬鹿でない人は自分の書き込みが馬鹿過ぎたと思うよ
196:デフォルトの名無しさん
22/11/02 21:23:04.17 CsBXjP5R.net
馬鹿って言われてもスルーするだろ
怒ったら馬鹿っぽいし、万が一自分が本当に間違っていたときにかなり恥ずかしい思いをする
逆に100%自分が間違いないと確信しているときは、馬鹿って言ってる奴の方が馬鹿なんだから、わざわざ相手のレベルまで降りて感情的になる必要ない、論理的に追い詰めればいいんだよ
だから、自分からは言わない、相手が言ってきても「馬鹿」の部分はスルーする、言ってることがおかしければ問い詰める、が安牌でしょ
そもそも自分も相手も匿名なんだぞ、人前で恥かかされたらともかくこんな匿名空間でいちいち言葉尻で不快感を覚えてたら精神エネルギーの無駄だろ
197:デフォルトの名無しさん
22/11/02 22:32:05.28 F9m89lvM.net
>>188
お前の中での馬鹿の定義を知らんけど、少なくとも俺は常識的に馬鹿呼ばわりされる
書き込みはしていない
>>189
そうかなあ
>>190
まあそれは一理あると思うけど、じゃあ基本的に悪口はスルー耐性つけとくしかない
ってこと?
198:デフォルトの名無しさん
22/11/02 23:42:41.75 d827SSNz.net
こんだけ長々と御託並べてるのに要約すると「バカって言うやつがバカなんだバーカ!!!」でしかないの草
199:デフォルトの名無しさん
22/11/02 23:49:15.50 6YCrBgPH.net
>sqlite3モジュール関連のexecuteメソッドで、SQLのUPDATE文を実行したら
警告が出てしまったのですが、これは使わない方がいいでしょうか?
この後、
>すいません、英語よく分からないんです
までのやり取りを読むと俺も、この馬鹿、と思ったよ。馬鹿と書かれる理由が存在すると思う。
200:デフォルトの名無しさん
22/11/03 00:07:03.64 q0+PchV3.net
>>186
漏れは、Windows 10, WSL2, Ubuntu 18.04 に、
日本人が作った、多言語バージョンマネージャーのanyenv で、
ruby, node.js を入れているけど、
例えば、rbenv なら、
全てのディレクトリに適用される、グローバルなバージョンを設定する。global
rbenv global 3.0.1
カレントディレクトリ以下のバージョンを設定する。local
rbenv local 2.7.3
同様のツールに、asdf もある
201:デフォルトの名無しさん
22/11/03 04:14:15.80 9oLRzF14.net
>>191
悪口にはスルー耐性つけとくしかない、その通りだよ。
大体論理的に説得できないから悪口でマウント取ろうとしてるんだと思えば相手が小物に見えるでしょ
もちろん単に性格がクソなだけで内容はちゃんとしたこと言ってる人もいると思うけど
ぶっちゃけ性格が可哀想な人は人生損してるだろうと思って生暖かい目でみた方がいいよ
202:デフォルトの名無しさん
22/11/03 11:19:07.00 usv0D7F/.net
>>192
草なんか生えねーよ
>>193
100歩譲ってそうだとしても、荒れる原因になる書き込みはするな、と思う
>>195
うーん、参考にはしたいけど、俺あまり忍耐力ないからな
助言はありがたいけど
203:デフォルトの名無しさん
22/11/03 11:48:40.65 JXCEw1Yo.net
お前のような真正の馬鹿が反応するから荒れるだけだぞ
204:デフォルトの名無しさん
22/11/03 13:25:15.22 9oLRzF14.net
>>196
怒りに対する忍耐力ないと自覚したなら理性で感情をコントロールできるようにした方がいいぞ。格闘家とかじゃなければ。
アンガーマネジメントってやつ。
怒りを感じたらなぜ怒ったのかをどんどん要素分解していくんだ。
あいつが○○したからムカついた、では、なぜ〇〇されるとムカつくのか、それは☆☆だから、ではなぜ☆☆されるとムカつくのか?ってのをどんどん単純な理由に落としていって、
それが自分の命や社会生活に関わることだったり、思想信条宗教に反することだったら仕方ないが、そうでなければどこかを回避して腹が立たないように生きた方が楽だし生産的だもの。
205:デフォルトの名無しさん
22/11/04 04:58:16.90 DQwBYlAy.net
>>198
先ずは落ち着けよw
206:196
22/11/04 18:14:54.41 4eN2z1eq.net
>>197
煽る奴も荒らしと同じだぞ
>>198
努力はしてみる
ありがとう
207:デフォルトの名無しさん
22/11/05 01:00:28.40 mvfmSa9B.net
>>187
怒るってことは薄々自分でも気付いてるんだろな
208:デフォルトの名無しさん
22/11/05 03:22:53.57 CteLlFzn.net
>>182
これが正しいと証明された
209:デフォルトの名無しさん
22/11/09 07:19:33.82 Hj0665FE.net
さすがくだすれ
210:デフォルトの名無しさん
22/11/12 08:46:06.49 CpbGZOKC.net
同じ名前を持つデータを見つけるたびに削除するスクリプトが必要なんですけど
for loopで全データにアクセスし、アクセスしたデータの名前をlistに保存していき
そのlistにある名前と同じ名前をもったデータにアクセスしたらそのデータを削除するというのを考えたんですけど
もっと効率良い方法あったりしますかね
211:デフォルトの名無しさん
22/11/12 08:58:44.70 AXYSbt7W.net
listの探索はコストが高いからsetにする
元データに対して直接検索できるのか不明だからそれ以上はいえん
212:デフォルトの名無しさん
22/11/12 09:50:56.31 iEA3FFpj.net
dictで良さそう
inでキーが存在したら削除とか上書きとか
213:デフォルトの名無しさん
22/11/12 10:19:32.21 FmCXrjme.net
ええー、setに突っ込むだけでしょ
set(names)でok
214:デフォルトの名無しさん
22/11/12 10:49
215::03.57 ID:CpbGZOKC.net
216:デフォルトの名無しさん
22/11/12 11:13:50.56 AtMreGxi.net
名前のセットを作ってリストの最初の見つけるとか?
names = set(a.name for a in before)
after = [next(a for a in before if a.name == n) for n in names]
217:デフォルトの名無しさん
22/11/12 11:17:04.24 AtMreGxi.net
>>209
毎回頭から探すのでリストが長かったり並びに偏りがあると遅くなると思うけど。その場合はソートして検索かけたほうがはやいかもね
218:デフォルトの名無しさん
22/11/12 12:26:42.08 CpbGZOKC.net
>>209
これはnext関数で重複要素を呼び出した時点でbefore内のデータを消してるってことですかね?
next関数で呼び出したデータをlistのafterに格納するのはなんででしょうか
削除したデータをあとから参照するとかでしょうか
219:デフォルトの名無しさん
22/11/12 12:43:55.68 7nGzKu22.net
>>208
イテレーションしながら削除するとバグるから
新しいリストを生成したほうがいいよ
あと単純に名前だけじゃないなら
重複があった場合の名前以外の値の扱いを仕様として明確にしておいたほうがいい
220:デフォルトの名無しさん
22/11/12 13:07:42.34 AtMreGxi.net
>>211
before はまったく書き換えずに新しく重複のないafter を作っています
before の更新をしたいなら /after/before/ と置き換えればよいです
next は a.name がnである最初のa をbefore からとってきます
221:デフォルトの名無しさん
22/11/12 17:41:07.79 9NeEHf0t.net
python には
sort | uniq
みたいに簡単に書けるのはないんだっけ?
222:デフォルトの名無しさん
22/11/12 22:43:08.86 9FLfhnuQ.net
フローチャートについてなんですが、
for文に対応するelse文ってフローチャートではどう表現すればいいでしょうか?
223:デフォルトの名無しさん
22/11/13 00:09:40.80 d78Rel4J.net
>>212
>>213
わかりました
レスしてくれた人ありがとうございました
224:デフォルトの名無しさん
22/11/13 00:19:06.65 5VmZbZRR.net
>>214
sorted_cars = sorted(set(cars))
225:デフォルトの名無しさん
22/11/13 12:59:42.28 jOpA6oHy.net
>>215
表現できない
普通にモノ作る分にはフローチャートなんて全く必要ないから、くだらないことは気にしなくていい
学校の課題などでコードと一緒にフローチャートを提出する必要があるのなら、フローチャートで表現できない機能はそもそも使うべきではない
226:デフォルトの名無しさん
22/11/13 13:16:46.13 TarIirJV.net
>>215
特に無いから条件分岐で適当に書くしかない
227:デフォルトの名無しさん
22/11/13 15:36:13.00 6wwUlOsK.net
forループやwhileループのelse句は
悪名高いbad partsなので使っちゃダメ
early returnで書き換える
228:デフォルトの名無しさん
22/11/13 16:24:09.14 8sV2mqeo.net
あるものは使っても別に良くね?
いろんな書き方ができるのがPythonのいいとこだと思ってる
229:デフォルトの名無しさん
22/11/13 17:41:48.86 zAAshiqt.net
配列Aの要素が0,-1のみの時True返すそれ以外False
同じく配列Aが0,-1,1のみの時True返すそれ以外False
という2つの処理をしたいです 条件から考えて2つが同じ結果になることは起こりえません。
a
230:ll(x==0 or x==-1 for x in list) all(x==0 or x==-1 or x==1 for x in list) だとどっちもTrueになりうるのですがどうしたらいいですか?
231:デフォルトの名無しさん
22/11/13 17:44:28.27 TY5Qmgau.net
昔それでperlが無茶苦茶になってな
配布するか自分だけで使うかとかでスタイル決めた方がベター
232:デフォルトの名無しさん
22/11/13 18:07:52.96 2N/MD+QP.net
配列Aの要素が0のみの時はどうなりますか?
233:デフォルトの名無しさん
22/11/13 18:17:24.58 oUsDdoyL.net
>>222
そんなのAの中身によるでしょ
あとlistは組み込み関数なんですけど
234:デフォルトの名無しさん
22/11/13 18:50:40.88 0j2qr49h.net
>>222
「配列Aの要素が0,-1のみの時」の意味がそのコードのように
「配列Aのすべての要素が0もしくは-1」という意味なら2つの結果が同じになる場合はあるよね
235:デフォルトの名無しさん
22/11/13 18:54:42.72 oUsDdoyL.net
ていうか引数に内包表記渡せるんだね
236:デフォルトの名無しさん
22/11/13 18:55:19.91 aD+9aMvk.net
>>222
> 条件から考えて2つが同じ結果になることは起こりえません。
まずこれがホントに正しいかを考えなよ...
237:デフォルトの名無しさん
22/11/13 19:03:42.41 xqvRsyMl.net
内包表記はリストを返す関数みたいなものだしね
238:デフォルトの名無しさん
22/11/13 20:09:30.94 cgKyROyF.net
「0,-1,1のみ」とは全て揃っている必要があるのかどうか
239:デフォルトの名無しさん
22/11/13 21:59:38.17 tnJyg4LP.net
いらん補足かもしれんが引数にチョクで内包表記書いたときはジェネレーター内包表記として扱われる
240:215
22/11/13 22:13:07.20 cXbnVmvH.net
お礼が遅くなってすいません
回答してくれた方々ありがとうございます
>>218
そうなんですか
じゃあコードの設計図ってどうしてますか?
>>220
なぜbad partsなんですか?
241:デフォルトの名無しさん
22/11/13 23:29:24.88 PJTnrSXJ.net
>>232
作る上で「必要なものを」「適切な抽象度で」記述する
SI業界で大量生産されているような外部設計書だの内部設計書だのというのはそれ自体を成果物として客から金を取っているから作っているのであって、システムを作る上で本当に必要なものはその極一部にすぎない
お前一人で作ってるならたぶん設計書なんか必要無いだろうし、チーム開発でもコード見りゃわかるようなことは書かなくていい
フローチャートについて言えば、一般に、フローチャートはPythonのコードよりも抽象度が低いため、設計書としては全く意味をなさない
そもそも>>215の質問をしている時点で、既にお前はフローチャートの前にPythonコードを先に想定しているんだろう?だったらお前にとって作る上で明らかに不要だろう
242:デフォルトの名無しさん
22/11/13 23:40:50.00 6O/r8caV.net
>>222
数学の集合の基礎を勉強しなおすべきかも
あと、set使って書いた方が少なくともその処理は楽ちん
243:215
22/11/13 23:51:26.26 cXbnVmvH.net
>>233
長文レスありがとうございます
うーん、じゃあフローチャートの存在意義って何なんだろう
確かに俺はいきなりコードを書いてますが、それは独習or趣味レベルだから
それでも許されるのであって、仕事となると基本情報技術者試験で出てくるような
アクティビティ図だとかユースケース図だとかシーケンス図だとかが必要になる
んですよね?
いきなりコードの記述をしたら、行き当たりばったりになってクォリティも低くなり
可読性も下がりバグの入る可能性も高くなるみたいですし…
244:デフォルトの名無しさん
22/11/14 00:14:32.82 0VMo1QiO.net
>>235
フローチャートはわかんなくていいと思う。
コンピュータでプログラムを動かすのにハンドアセンブルして、パンチャーに打ってもらって、実際動かすまで何日もかかったような時代の、50年前からある遺物みたいなもん。
プログラム何も知らない人でもあの図のルールは単純だ
245:からなんとなく教育しやすいからか生き残ってるけど、 基本あんな簡単な図で表現できるコードの範囲が狭すぎる。 状態遷移図とかデータフロー図とか、UMLでもややこしい時に役に立つ図はあると思うけどね。
246:デフォルトの名無しさん
22/11/14 00:43:36.88 pOSVKW/c.net
>>235
フローチャートはもっとハイレベルのフローを図示するためのもの
業務フローだったり料金プランを選ぶフローチャートだったり
247:デフォルトの名無しさん
22/11/14 05:59:45.08 kA23Oboq.net
tkinterで家計簿作ろうとしてるんだけど公式ドキュメントとかのサンプルみると最後のmainloop以外ぜんぶclass App():にいれてるんだけどマネしたほうがいいの?
248:デフォルトの名無しさん
22/11/14 11:59:36.67 EWF0SvAn.net
状態遷移図の方が大事よね
249:デフォルトの名無しさん
22/11/14 12:13:10.18 K3emCbow.net
ウィジェットはクラス化すると使い回すのが楽になるね
タイトル、エディット、ボタンをセットにしたやつとか便利
evalとexecを使って変数と自動同期するフレームワーク作ったわ
250:215
22/11/15 10:09:17.84 Wl6YNYa9.net
すいません、レスが遅くなりました
返答ありがとうございます
>>236
では良いものを作りたいと思ったら、UMLの書き方に習熟した方がいいってことですね
>>237
そうなんですね、分かりました
251:デフォルトの名無しさん
22/11/15 11:46:22.50 Hm3rex5D.net
>>241
UMLも全部実用的ってわけじゃないし、システム関係の図を標準化したってだけだから、
まずは、やりたいことが書いてありそうな今の自分にとってちょっと難しめのコンピュータサイエンス寄りのアルゴリズムの本などで勉強することからでいいと思う
UMLは、自分で考えたものを標準的に綺麗に整理したくなってからで十分。
むしろユースケースが体感としてないのにUMLを勉強したからといって設計ができるようになるわけじゃないからね。
252:241
22/11/16 19:29:05.53 TyYF4bKY.net
>>242
分かりました ありがとうございました
253:デフォルトの名無しさん
22/11/18 07:51:40.00 I4mt1ysS.net
pythonで、搭載されてるGPUの機種名を調べる方法はありますか?
手動の場合は以下の方法で調べられます。
URLリンク(www.google.com)
254:デフォルトの名無しさん
22/11/18 07:57:03.05 r5yXYIm8.net
試してはない
import subprocess
subprocess.run(["wmic", "path", "win32_VideoController", "get", "name"])
255:デフォルトの名無しさん
22/11/18 08:34:53.27 I4mt1ysS.net
>>245
完璧に動きました!ありがとうございます!
256:デフォルトの名無しさん
22/11/19 20:44:10.93 k699mWzz.net
pythonを独学で勉強している非エンジニアの初心者です。環境構築(?)に関してご相談させて下さい。
手元のメインパソコン(windows10 home)でpythonの開発環境を色々触ると、
アップデートやら何やらで動かなくなるものが出てきたりして苦戦しております。
そこで、年内にパソコンを買い換え際にwindows11 proに移行し、hyper-vという仮想環境を使って、
「常時安定稼働させたい環境」「色々試行錯誤する環境」「ひたすら計算させる環境」みたいに切り分けて使うのはどうかと検討しています。
そのような用途でhyper-vを使うのは妥当なのでしょうか?
あるいは、そんなことしないでdockerとかanacondaで何とかするのが普通なのでしょうか?
257:デフォルトの名無しさん
22/11/19 21:00:01.65 BimAJPXj.net
Pythonのバージョンやモジュールの使い分けだ�
258:ッなら pyenv + venv/Poetry でOK 個別のLinuxやWindows環境がほしいなら DockerやHyper-Vになるけどその分ケアすることが増える
259:デフォルトの名無しさん
22/11/19 22:23:50.73 ByHMuknr.net
>>247
>手元のメインパソコン(windows10 home)でpythonの開発環境を色々触ると、
>アップデートやら何やらで動かなくなるものが出てきたりして苦戦しております。
この時点で何かがおかしいので、Win以外の環境にデプロイしたいわけでもないのにhyper-vやdocker使っても苦労が増えるだけだと思います
そのままWindowsで動かしたいものを作るなら、anacondaとか使わずに公式のインストーラとvenvで環境構築する方が絶対楽です
エディタもVScodeとかPyCharmとかありますし
260:デフォルトの名無しさん
22/11/20 00:59:07.41 H/Uc0Eyy.net BE:367260534-2BP(0)
URLリンク(img.5ch.net)
演算子と制御構文まである程度理解したけどそこから先なにかアプリをつくることができる未来が見えない。誰か意見や見解を述べられる人いますか
261:デフォルトの名無しさん
22/11/20 02:03:49.31 Jm0rY269.net
馬鹿にありがち
262:デフォルトの名無しさん
22/11/20 02:42:42.05 7a4yJys5.net
作りたいものを作るべし
263:デフォルトの名無しさん
22/11/20 08:24:43.83 wb2QYozN.net
>>250
料理道具を揃えても、料理が作れるようになるわけではない
プログラミング言語を学んでも、アプリを作れるようになるわけではない
大事なことは動機
料理を作ると子供たちが喜ぶとか、
アプリを作ると仕事がめっちゃ楽になるとか金が入るとか、そういう動機が要る
264:デフォルトの名無しさん
22/11/20 08:47:44.50 h7Bqzkc0.net
>>250
↑のが奴いう動機が原因でなければ、APIを知らんからだろうな
料理でいえば野菜の切り方や火の扱い方を知っていても
フライパンや鍋び使い方を知らなきゃ料理はできないだろ
初心者がGUIを作るとしたら何のモジュールがいいんだ?
TKinterみたいなのより、マルチプラットフォームなKivyのがよかったりするんだろうか?
265:デフォルトの名無しさん
22/11/20 09:04:20.99 8obJ8Imf.net
>>254
HTML一択だよ
デスクトップアプリをPythonで作ることはないから、苦労するだけ時間の無駄
266:デフォルトの名無しさん
22/11/20 09:31:31.05 h7Bqzkc0.net
>>255
なるほど
最近はPyScriptなんてものまであるんだな
267:デフォルトの名無しさん
22/11/20 10:13:59.83 MUgzJmMj.net
wxPython
268:デフォルトの名無しさん
22/11/20 11:10:53.77 ZkE4F4/w.net
知識には内側と外側の2種類のベクトルがある
前者は構造、仕組み、言語などを司る左脳の役割
後者は関連、論理、創造を司る右脳の役割
仕組みを学んだのなら、次は無限に広がる創作の世界を学ばなければいけない
269:デフォルトの名無しさん
22/11/20 12:09:10.50 pFZhXGUH.net
パダワンでも育ててんのか
270:デフォルトの名無しさん
22/11/20 12:29:07.62 7a4yJys5.net
>>254
コマンドラインアプリに設定値をいじる皮を被せたい程度ならtkinterがおすすめ、管理も配布も楽、ただしモッサリ、リサイズはガックガク
wxPythonはバランスいいけどtkinterの手軽さはなくお客さんに見せられるほどカッコ良くもないという微妙な立ち位置、工場とかで使うアプリならありかな
PyQt/PySideは製品レベルの見た目にできるけど環境構築も維持もデプロイも面倒すぎ、GUIを作りやすい言語で皮作って裏でPython呼ぶ方が後々楽
PyGameはカンバス的なものがメインなら意外と業務用でも使える、ただしイベント駆動のウィジェットがないのでDOS時代のような作り方になる
Kivyはよくわからない、何度かやろうとしたけど寿命短そうでやる気が出なかった…
個人的にはGUIをReact/Vueで作って裏でflaskを走らせるみたいなのが多いかな、ただPythonである必要がないときは裏はgoにしてる
271:デフォルトの名無しさん
22/11/20 13:18:15.40 1i3sgzuE.net
>>247
漏れは、Windows 10, WSL2, Ubuntu 18.04, VSCode, Docker Desktop で、Ruby on Rails をやっている。
Linux の端末でもコピペできる、Windows Terminal も良い
VSCodeの拡張機能・Remote Development に、
3つの拡張機能・Remote Container/WSL/SSH が含まれている
Docker Desktop には、Docker, Kubernetes が含まれている
WSL2 のHyper-V で、シームレスにLinux を使える。
これは、Windows 10 Home でも使える
ただし、メモリは最低でも、16GB は欲しい。
32~64GB以上が推奨
漏れは日本人が作った、多言語バージョンマネージャーのanyenv で、
ruby, node.js を入れているけど、同様のツールに、asdf もある。
anyenvでは、nodenv, pyenv, rbenv などを使う
他には、Dockerを使う
ただし、LinuxはRailsなどのプロのウェブ開発者用。
普通の香具師は、Linuxを使えない
272:デフォルトの名無しさん
22/11/20 13:37:48.48 h7Bqzkc0.net
>>260
レスありがとう
ぱっと調べた感じだと
wxPython/PyQt/PySide/Kivyあたりはデザイツールあるみたいだから
ある意味こっちのが初心者向けなのかね
273:デフォルトの名無しさん
22/11/20 13:42:01.13 mq06SBbE.net
kivyはIMEが問題あったと思う
274:デフォルトの名無しさん
22/11/20 13:54:47.36 7a4yJys5.net
>>247
Anacondaや類似のオールインワン環境は、インストール時にcのコンパイルが必要だったりして面倒なパッケージを誰かの自家ビルドを借りてきて手っ取り早く動かすためのものなのよ。pipとcondaを混用するとパッケージ管理もめちゃくちゃになるのでセキュリティや一貫した開発環境がほしいときには入れない方がいい。
初心者向けの書籍でAnacondaを勧めているものがあるけど、とんでもない話だと思う。
275:デフォルトの名無しさん
22/11/20 14:01:22.00 h7Bqzkc0.net
>>263
なるほど
ちょっと調べたらいっぱい出てきたわ
ずいぶん前から日本語入力に問題あるんだな
276:デフォルトの名無しさん
22/11/20 17:26:11.09 IFJkIwpM.net
ここでもRubyキチガイが噓をまき散らしている
277:デフォルトの名無しさん
22/11/20 17:41:30.30 MUgzJmMj.net
そもそも IME が色んな意味で糞ですし
278:デフォルトの名無しさん
22/11/21 15:57:20.26 LzW8OiBh.net
>>254
Python - nimpy - wNim
みたいな組み合わせも有り
279:247
22/11/23 11:21:50.01 I1C153iL.net
>>248-264
ありがとうございます。参考にさせていただきます。
280:デフォルトの名無しさん
22/11/27 00:07:23.30 K1WBuN1O.net
>>225
w
あほなん?
281:デフォルトの名無しさん
22/11/27 14:03:23.93 8iOvnAjw.net
日本の偉人たちは朝鮮人について警鐘を鳴らしてきた
夏目漱石
「朝鮮人に生まれなくて良かった」
伊藤博文
「嘘つき朝鮮人とは関わるな」
吉田松陰
「朝鮮人の意識改革は不可能」
福沢諭吉
「救いようのない民族」
本田宗一郎
「韓国人と関わるな」
ちなみに本田宗一郎はバイク工場を
丸ごと韓国メーカーに取られて
激オコしていた。
282:デフォルトの名無しさん
22/11/27 21:13:27.38 OTgOWMg7.net
外部のプログラムによって毎秒数十回更新されるテキストファイルからテキストの内容を取得する場合、以下の方法で問題ないですか?
以下のコードで外部のプログラムをブロッ�
283:Nしてしまったり、パフォーマンスが悪かったりしたら嫌なので知りたいです。 f = open('myfile.txt', 'r') datalist = f.readlines() for data in datalist: print(data) f.close()
284:デフォルトの名無しさん
22/11/27 21:17:38.14 08DsEtQJ.net
問題ないですかじゃねーよ他スレでやって前回の質問でかまわないって回答もらってんだろ
さっさと試して納得したらクソして寝ろ
285:デフォルトの名無しさん
22/11/27 21:22:06.82 C5a07Tdj.net
>>272
そもそもファイルをそんな用途に使ってはダメ
複数のアプリから頻繁にアクセスされるようなデータは
DBに格納してDBMSの排他制御機能を使うべき
286:デフォルトの名無しさん
22/11/27 21:36:36.64 OTgOWMg7.net
>>274
1行程度400文字以内の短いデータを上書き保存するだけなのですが、DB使った方が良いんでしょうか?
以前PostgreSQLを使ったことが一度だけあったのですが使うの大変だった記憶があるのでなるべく使いたくないという嫌悪感があります。
pythonとc++間で簡単に値渡しできるデータベースみたいなものってあるんでしょうか
287:デフォルトの名無しさん
22/11/27 21:42:01.22 vZKExyua.net
>>272
それじゃダメだよw
Python同士で試せばすぐ分かることだから
まずやってから問題が出たらその問題を解消するための質問をしてね
288:デフォルトの名無しさん
22/11/27 22:48:34.35 kKh2EuGH.net
>>275
両プログラムを同時に起動できるならパイプ
個別に起動するなら名前付きパイプ
Unix前提ならドメインソケットでも
古典的だけどサーバやミドルウェア不要
289:デフォルトの名無しさん
22/11/28 10:59:27.05 cGJ8oXTg.net
毎秒数十回の書き込みとかSSDがすぐ死にそう
自分がやるならFlaskとか入れてweb通信で渡すかな
290:デフォルトの名無しさん
22/11/28 11:05:12.64 k2v8jKfn.net
>>278
毎回フラッシュするわけないじゃん
291:デフォルトの名無しさん
22/11/28 12:09:34.48 HJ3Js2uA.net
Ruby on Rails で使う、3大RDB は、PostgreSQL, MySQL, SQLite で、
開発環境では、SQLiteも使うけど、本番環境ではPostgreSQL一択
AWS でキャッシュとして使うDB では、Redis 一択
292:デフォルトの名無しさん
22/11/28 13:27:32.87 mtDAqXwT.net
内容と流れがここと全く同じだなw
スレリンク(tech板:739番)-760
293:デフォルトの名無しさん
22/11/28 15:02:56.92 982hcGex.net
ファイルI/Oって即座に完了する保証ないから
いつか書き込みモードでのオープンに失敗して破綻しそう
294:デフォルトの名無しさん
22/11/28 15:11:00.07 dPkgM1YV.net
ウソや意味が通らんことをもっともらしく書く文才に嫉妬
295:デフォルトの名無しさん
22/11/28 15:23:24.17 oZh4s12L.net
>>275
memcached
296:デフォルトの名無しさん
22/11/28 15:26:32.33 EYUOHryu.net
>>282
何を言っとるんだね君はw