X



Pythonのお勉強 Part68
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ ab79-ia8c)
垢版 |
2022/09/15(木) 18:52:26.67ID:VqLViKoX0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/

〇前スレ〇
Pythonのお勉強 Part67
https://mevius.5ch.net/test/read.cgi/tech/1653540315/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
0004デフォルトの名無しさん (ワッチョイ 4a0c-To/p)
垢版 |
2022/09/15(木) 21:36:55.07ID:v5ZFVedh0
input()
0010デフォルトの名無しさん (ワッチョイ 6aad-OdF3)
垢版 |
2022/09/16(金) 11:29:06.80ID:IG7NLL2G0
meboっていうチャットボット用のAPIを操作したいのですが
単純なAPIが使えなくて挫折してます。

meboHP: https://mebo.work/
meboAPIのAI構築について:https://zenn.dev/makunugi/books/f3d9eb62b6d133/viewer/f0c36f

環境
google colab(Python 3.7.14)

コード
https://pastebin.com/jjDUXv4h

現在の出力
rpc error: code = InvalidArgument desc = Document name "projects/mabo-f1cc7/databases/(default)/documents/bots/" has invalid trailing "/".

サーバーからのステータス
<Response [500]>
0016デフォルトの名無しさん (ワッチョイ a52c-qXZl)
垢版 |
2022/09/16(金) 15:13:38.95ID:s0L9ffNv0
vscodeとtkinterのナヤミデス

class myLabel(tk.Label):
__def __init__(self, parent, *agrs, **kwargs):
____super().__init__(parent, *a, **kw)

tkinterでカスタムウィジェット作るときこうすると思うんですが
これだとmyLabel呼び出し時に親のパラメータの一覧が表示されません
l = tk.Label() だと引数ズラズラーと確認できるのに
myl = myLabel() だとスン…というかんじ


myl = myLabel(
と書いたところで、master, cnf, bg...
が表示されるよう書く方法はないですか?
0017デフォルトの名無しさん (アウアウウー Sa21-1xMQ)
垢版 |
2022/09/16(金) 18:07:30.98ID:xVhXxd2Ka
class myLabel(tk.Label):
__def __init__(self, parent, *agrs, **kwargs):
____super().__init__(parent, *args, **kwargs)
0018デフォルトの名無しさん (アウアウウー Sa21-1xMQ)
垢版 |
2022/09/16(金) 18:08:30.05ID:xVhXxd2Ka
武漢コロナ ω株 PI.3.14型
0022デフォルトの名無しさん (ワッチョイ d72c-W3aP)
垢版 |
2022/09/17(土) 11:16:05.47ID:mOZyl/wc0
https://imgur.com/GZujQcs.jpg
下でも上の表示がいいんす
0025デフォルトの名無しさん (ワッチョイ bf5f-W3aP)
垢版 |
2022/09/17(土) 17:15:48.49ID:t52rQtHi0
初心者です。
seleniumでGoogleChromeを起動させたいのですが、
コードを実行しても一瞬起動するだけですぐに落ちてしまいます。
chrome,chromedriverともに105.0.5195.127です。
time.sleep()を使えば一応閉じることはありません。
ネットで調べたのですがchromeとchromedriverのバージョンを一致させれば解決できるらしいのですができなかったのでわかる人いたら教えてください。

from selenium import webdriver
import chromedriver_binary
driver = webdriver.Chrome()
import time
driver.get('https://www.google.com/')
0028デフォルトの名無しさん (ワッチョイ bf5f-W3aP)
垢版 |
2022/09/17(土) 20:15:49.18ID:t52rQtHi0
webdriver-managerで上手くいきました。
ありがとうございます。
0029デフォルトの名無しさん (ワッチョイ 9f2c-bG2j)
垢版 |
2022/09/17(土) 23:33:23.67ID:eA0eWCp60
漏れは、Ruby でSelenium Webdriver を使っているけど、
Chrome の自動更新で、105.0.5195.127 になって、急に動かなくなった

ChromeDriver 105.0.5195.52 をダウンロードしたら、正常に動いた
0030デフォルトの名無しさん (ワッチョイ 9f14-t1N9)
垢版 |
2022/09/20(火) 10:16:04.22ID:0+YIm89I0
abspath → absolute path
__init__ → initialization
pardir → parent directory
curdir → current directory
getcwd → get current directory
chdir → change directory

こういうの、英語を略してるのだけど思うけど、元の略されてない英語のスペルを調べられるサイトとかありませんか?
毎回ググって出てきた検索結果ページで「abspath (absolute path)」みたいになってるのを探してるのですが、時間が掛かってしまいます
0038デフォルトの名無しさん (アウアウウー Sa5b-qGT6)
垢版 |
2022/09/20(火) 11:16:09.11ID:7MkL1qhTa
知識がないのが問題だったら知識を得るか補助ツール使うしか無いんだよなあ
google翻訳みたいにリアルタイムでオーバーレイで適当な情報出してくれるやつがあればいいんだけども
0040デフォルトの名無しさん (ワッチョイ d72c-3X0R)
垢版 |
2022/09/20(火) 11:20:47.83ID:DMd4PKyr0
sizes = list[(int, int),,,]
からmax_widthとmax_heightを取りたいんだけど

numpyなどの外部ライブラリなしだったら
max_width = [i[0] for i in sizes]
max_height = [i[1] for i in sizes]
が速くて見やすいですか?
もったいないからループ一回で両方ゲットできたらいいんだけど、天の声がそれは遅いというんです
0045デフォルトの名無しさん (ワッチョイ f733-E+l9)
垢版 |
2022/09/20(火) 12:11:40.27ID:i/aW+9oN0
いまいちどういうものを欲してるのピンと着てないけど、存在しないという事はそういうことだろ
もしくは、誰もが思いつかなかった画期的なものの可能性はあるので、作れば人気でるかもしれないよ
0046デフォルトの名無しさん (ワッチョイ f733-E+l9)
垢版 |
2022/09/20(火) 12:20:23.86ID:i/aW+9oN0
エディタの補完機能とか知らないわけじゃないですよね
0050デフォルトの名無しさん (ワッチョイ 9714-xcNX)
垢版 |
2022/09/20(火) 14:59:07.65ID:HlTpV5j10
>>49
>>35
0051デフォルトの名無しさん (ワッチョイ 9f14-t1N9)
垢版 |
2022/09/20(火) 15:12:53.61ID:0+YIm89I0
30について回答くれた方々ありがとうございます。コメントで教えてもらったサイト見てみます
ググって意味を調べる時間の短縮目的は、そもそも我儘な要望だったかもしれません
0052デフォルトの名無しさん (ワッチョイ 9f14-t1N9)
垢版 |
2022/09/20(火) 15:33:22.20ID:0+YIm89I0
https://i.ibb.co/QnYv5Sz/CB-0001.jpg

望みの実行結果にはなるのですが、パスがないエラーを吐いてしまいます
本来は、os.mkdir(“パス名”)、os.makedirs(“パス名”)、のようにパス名を挿れるとのことですが
for文の変数を引数に渡したい場合はどう記述すればエラーを吐かないのでしょうか?

今朝始めたばっかなので用語の使い方間違ってるかもしれません
0053デフォルトの名無しさん (ワッチョイ 9f01-vggc)
垢版 |
2022/09/20(火) 15:54:52.63ID:yGE7fJx20
>>52
エラーメッセージにあるように空文字が渡されてるのがエラーの原因
split(‘\n’)した結果のfolder_listの中身を確認すると分かると思う
でもってsplit()じゃなくsplitlines()を使うといい
0055デフォルトの名無しさん (ワッチョイ bf2d-RYbe)
垢版 |
2022/09/20(火) 17:56:48.55ID:xv+EClXQ0
問題とは関係ないけれど
パスを操作する時はpathlibのほうがいいよ
0062デフォルトの名無しさん (ワッチョイ ffdb-OuJ4)
垢版 |
2022/09/21(水) 20:30:50.72ID:2GcRUbUk0
繰り返される任意の文字列を1回の繰り返しに直す方法ありませんか?

"abcdabcdabcdefg"→"abcdefg"(abcdの繰り返し)
"abababc"→"abc"(abの繰り返し)
"aabbaabbc"→"aabbc"(aabbの繰り返し)

パターンの長さはとりあえず固定でいいので(例えば4でabcdとaabbはマッチできる)一気に置換する方法ないでしょうか
0063デフォルトの名無しさん (ワッチョイ 9f14-t1N9)
垢版 |
2022/09/21(水) 20:30:55.54ID:b5Bal3Dn0
>>60
存在してます。path.rename()書いてない時は、同名のフォルダが作られて「すでに存在してる〜」みたいなエラーを吐いてました

そもそもpathlib使って>>52をやりたい場合は、osを使う必要がなかったりもするのでしょうか?
0066デフォルトの名無しさん (ワッチョイ 9f14-t1N9)
垢版 |
2022/09/21(水) 20:58:11.32ID:b5Bal3Dn0
変数名とか色々、短く略して書いた方が良いのでしょうか?
入力時間的には大差ないので、見返した時に分かりやすいようにしてるのですが
これは初心者だからで、経験者から見ると見苦しいとか、むしろ略されてた方が見やすいとかありますか?
0067デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 22:11:39.31ID:yjl6UhSi0
>>62
競プロの問題?
0072デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 23:11:15.16ID:yjl6UhSi0
'abcabcdabcabcdefg'
だったら?
0077デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/22(木) 11:05:41.34ID:u9/ouAZsa
>>39
いらね
0078デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/22(木) 11:11:13.09ID:u9/ouAZsa
>>72 の回答はよ
0081デフォルトの名無しさん (ワッチョイ d72c-3X0R)
垢版 |
2022/09/23(金) 06:05:04.44ID:l/gDdEyB0
x = [i for i in range(10)]
idxs = [start, end] # 0 <= start <= end <= max(x)かつend +=1

xが上記の場合
最小はidxs = [0, 1]
最大は idxs = [0, 11]
です。このとき
for i in idxs:
__x[i]
だと最後が11のときindexErrorになるんだけど
try exceptでcontinueする以外にいい書き方ないですか

if i == len(x): breakみたいなのとか
_idxs[1] -= 1
for i in idxs:
みたいなのは嫌です
0087デフォルトの名無しさん (ワッチョイ d763-DwLj)
垢版 |
2022/09/23(金) 10:22:01.14ID:7VR4OLWz0
確かにtarを使うリポジトリではcopilot経由で広がる可能性があるけど、tarを使うリポジトリなんてリポジトリ検索してもそんなにないので実数としては眉唾
依存関係から侵入してくる方がよっぽど可能性が高い

Copilotが批判されがちなので批判の文脈で喋ったほうが肯定的に聞いてもらえるだろうという余計な意図が入ってるのではと邪推してしまうね:)
0088デフォルトの名無しさん (スッププ Sdbf-HYId)
垢版 |
2022/09/23(金) 12:26:25.28ID:nucVVsrtd
>>86
> Trellixによると、35万件を超えるリポジトリがこの脆弱性に脅かされていると見られ、その多くでGitHub Copilotなどの自動ツールが使われているとのこと。
前知識なく普通にこれ読んだら、35万件のリポジトリがGitHub Copilptを使っている、そして、Copilotがその脆弱性の原因であると思うでしょ
というかこの記事書いた人はたぶんそのように誤解してる
> https://www.trellix.com/en-us/about/newsroom/stories/research/open-source-intelligence.html
まあソースも推計方法や論理がガバガバで似たようなレベルだが
0089デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/23(金) 13:17:45.83ID:esyqbAqHa
>>81 が何を考えてるのか詳しく知りたいなωωω
0091デフォルトの名無しさん (JP 0H1f-nvXy)
垢版 |
2022/09/24(土) 02:03:35.51ID:6DJLRQJMH
>>90
外部入力でスライス範囲を受け取ってて(start, end)
その値を使いまわしてインデックスアクセスしたいんだろう
テーブル扱うGUIとかでままある
0093デフォルトの名無しさん (ワッチョイ 1610-Nf8B)
垢版 |
2022/09/24(土) 07:29:05.56ID:RoHmfu6K0
一昔前のseabornのカラーマップだか忘れたけど1から数えて最後の数字を入れるようなインデックス指定を偶に見かける
[0, 10] → 0から9までと
[1, 10] → そもそも0が存在せず1から10
この2つの書き方にそれぞれ名前ついてたりする?
0099デフォルトの名無しさん (ワッチョイ 1228-AIux)
垢版 |
2022/09/24(土) 10:26:03.89ID:8OhmHPew0
すみません、プログラミング初心者です、python構築について質問があります
python3.10.7をインストールしたのですがコンドプロンプトで確認したらpython 3.9.12になっています
もしかしたら以前DLしてたのかと思って探しても見つからないのですが
こういうものなのでしょうか?
0101デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/24(土) 10:54:04.69ID:gdtERKOB0
まーたanaconda被害者がひとり…
0103デフォルトの名無しさん (ワッチョイ 3733-6qsd)
垢版 |
2022/09/24(土) 11:18:28.18ID:4ctEaw520
君は悪くない、anacondaも悪くない
anacondaを進める入門的な書籍やサイトが悪い
0105デフォルトの名無しさん (ワッチョイ 1e66-yYUR)
垢版 |
2022/09/24(土) 11:34:58.91ID:P3HsQQA/0
何かのツールをインストールするとpythonも一緒にインストールされるのはよくある
python2だったりもする
大抵は、自分用のバイナリを自分で使うだけなので迷惑はかけないけど、
行儀の悪い奴もいる
0107デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/24(土) 12:23:45.45ID:gdtERKOB0
未だにpython事始めで検索すると
無責任な入門サイトの「anaconda入れとけ☆」 ばっかり
いやべつにいいんだけどさあanacondaでも。オールインワンで便利なのも分かるけど
0111デフォルトの名無しさん (ワッチョイ 1214-P81A)
垢版 |
2022/09/24(土) 17:32:16.78ID:nYu0cH9J0
ファイル名に使えない文字を全角に変換するコードってこんなに長くなるものなんですか?
https://qiita.com/kusunamisuna/items/a32679874afedc032158

name_ng = ["/","\",":","*","?","<",">","|"]
こんな感じでリストに入れてfor文の中で replace で置換すれば良いんじゃないかと思ったけど、リストにする段階でエラーになります

上記のURLの記述が最適解?
簡略化された書き方があったら教えてほしいです。
0112デフォルトの名無しさん
垢版 |
2022/09/24(土) 17:37:12.69ID:xsaou6hs
a=True
b=True

aかつbがTrue、それ以外の全て
の条件って
if not (a and b): でよかったっけ・・?
0114デフォルトの名無しさん (ワッチョイ b247-tX/F)
垢版 |
2022/09/24(土) 18:29:31.09ID:LDtPUxey0
>>111
その記事が最適かどうかは別問題として、まず0x5cをちゃんとエスケープして、あなたの考えを動くコードとして完成させよう
その上で、記事のコードと分かりやすさや速度を気の済むまで比較してみればよい
0116デフォルトの名無しさん (アウアウウー Sa43-a1Je)
垢版 |
2022/09/24(土) 20:25:24.85ID:7pBAspe1a
r'hoge\hoge'
0117デフォルトの名無しさん (ワッチョイ 127d-nvXy)
垢版 |
2022/09/25(日) 00:00:20.77ID:TfTFVrn20
>>112
if all([a, b]):
else
0119デフォルトの名無しさん (ワッチョイ b302-QcAE)
垢版 |
2022/09/25(日) 02:03:20.35ID:ouzeiwB30
今日からPython始めたんだけど、エラーが出て動かなくて悩んでたらインデントが原因だったw
調べたらインデント自体プログラム構造的に意味を持ってたんだな。。。
0120デフォルトの名無しさん (ワッチョイ 1214-P81A)
垢版 |
2022/09/25(日) 05:32:21.54ID:WCcUyzUQ0
少しコードが長くなってきたので、関数を定義してみようと思ったのですが
関数を使うくらいなら、最初からclassとmethodでやった方が後々便利ですかね?

それから現段階ではまだinstance変数を使うかどうかは不明ですが
classの最初に__init__は決まり文句として書いておいて良いのでしょうか?
仮に全く使わなかった場合にバグの元になったりするのでしょうか?
0121デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/25(日) 05:38:14.60ID:iEmY5l+s0
そのレベルならまず関数に慣れよう
classはそのあと
0123デフォルトの名無しさん (ワッチョイ 96bb-sDLX)
垢版 |
2022/09/25(日) 11:02:47.56ID:sQFmQmse0
classを使うほうが常に優れていると思ってるなら認識を改めたほうがいいよ。
classと関数両方使えるがpythonのメリット。
標準ライブラリだって両方共存してるのにどちらかを捨てるなんてもったいない
0126デフォルトの名無しさん (オッペケ Sr47-d9EM)
垢版 |
2022/09/25(日) 12:37:00.29ID:uj3dGGMEr
>>125
インデントも深くなるし、状態持つ必要が無ければモジュール化で十分よな
0128デフォルトの名無しさん (ワッチョイ 1610-d9EM)
垢版 |
2022/09/25(日) 17:18:10.55ID:hs4ndUhv0
>>127
それくらいならNamedTupleでも良いかな
0129デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/25(日) 17:41:46.06ID:iEmY5l+s0
dataclassええで
0132デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/26(月) 09:07:29.52ID:P9G+/qqR0
>>81
そもそも[0,1]のときにx[0]を2つ取り出したいのかどうかがよくわからないな
あと、最大(?)は[0,10]じゃないか?
[0,9]のときと[0,10]のときでどう処理を変えたいのかよくわからない
半開区間に含まれる最小最大を取り出したいなら、
for i in [idxs[0], idxs[1] - 1]でいいと思うのだけどこれは嫌?
0133デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/26(月) 09:12:30.59ID:P9G+/qqR0
木構造とかグラフ構造を自作したいなら(間々ある)、
クラスにした方が便利なときある気がするけどな。
get_tree_children(node)とかしだすなら、node.children()の方が名前空間がすっきりしていいし。
実装の詳細を見せたくないかどうかというよりは、関心の分離をしたいかどうかによるような気がするな。

確かにクラス作るまでもないようなことは多いけど。
0140デフォルトの名無しさん (ワッチョイ d201-/Peb)
垢版 |
2022/09/26(月) 23:49:19.92ID:eE4Lst2k0
>>139
それREPLでやってるからinterningが効いてないじゃないかな

>>135
Tupleはimmutableだからaとcが同じオブジェクトを指しても問題なくて
Pythonが最適化をした場合はa is cがTrueになるケースがある
「interning」でググってみて

例えばTupleを関数で返すようにすればinterningされずにFalseになると思う
def foo(x):
 return (x, x+1, x+2)

a = foo(1)
c = foo(1)
0142デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/27(火) 19:02:24.07ID:zjZtbJ3M0
a is cが真になるかはかなりケースバイケースな気がするし、
中身を比較したいんだったら使うべきじゃないね

本当に同じtupleインスタンスかどうかを確認したいときだけにすべき
0143デフォルトの名無しさん (ワッチョイ 3733-tX/F)
垢版 |
2022/09/27(火) 22:33:08.85ID:3OHfLHhN0
tupleだけの話ではなくてどの型でも同じだけどね
例えば文字列とか
0144デフォルトの名無しさん
垢版 |
2022/09/27(火) 23:35:04.66ID:tKd9rAjb
n=12345.67

小数点以下が何桁あるのか調べたいのですが
len(str(n).split(".")[1]) if isinstance(n, float) else 0
こんなんでいいですかね・・?
0146デフォルトの名無しさん (ワッチョイ 1610-DrlT)
垢版 |
2022/09/27(火) 23:53:56.84ID:+joc5Asc0
>>144
誤差で予想外の挙動しそうだからDecimal使う方がいい
0148デフォルトの名無しさん
垢版 |
2022/09/28(水) 09:19:00.77ID:9I9ISsCh
>>145-147
たしかに
0.30000000000000004に対して17得られたのは正解だと思いますが
0.00001で1e-05になっててエラーでました
Decimalかformat使ってみようと思います
ありがとうございました
0149デフォルトの名無しさん
垢版 |
2022/09/28(水) 10:07:58.97ID:9I9ISsCh
やりたかったことは
受けとった1234.56や0.12345などの固定小数点数に
0.1とかを掛けたり足したりして計算、変形したのを
受け取った固定小数点数の整数部と小数部の数を維持したまま
固定小数点か文字列で処理したかったのですが
改めてやってみるとなんか勝手に桁数が変わってしまいますね・・

1234.56で受け取った場合、1.05を掛けたとき→1296.288ではなく1296.29
0.12345で受け取った場合、1.05を掛けたとき→0.1296225ではなく0.12962
1234で受け取った場合、1.05を掛けたとき→1295.7でもいいし1296でもいいし1296.0でもいい
みたいにしたかったのですが難しい・・
0150デフォルトの名無しさん
垢版 |
2022/09/28(水) 10:17:26.42ID:9I9ISsCh
from decimal import Decimal
str(Decimal(0.123456))
str(Decimal(0.123456)*Decimal(1.05))
#'0.1296288000000000015945911258'

あれ、そもそも0.123456の小数部の桁数はどうやって知るんだっけ??
てところで詰まってます・・
0151デフォルトの名無しさん
垢版 |
2022/09/28(水) 11:25:04.93ID:9I9ISsCh
冗長な気がしますがこんな感じにしてみました
何かバグが発生しそうな気がします
from decimal import Decimal
ary=[1234.5,165,0.34,0.0001,0.000001,3.00001,0.1*3,123456]

def f(n):
 s=format(n)
 return int(s.split("-")[1]) if "-" in s else len(s.split(".")[1].rstrip("0")) if "." in s else 0

r=1.05
for n in ary:
 d=f(n)
 c=Decimal(n)*Decimal(r)
 rs=c.quantize(Decimal("0."+("0"*d)))
 print(n,c,d)
 print("-->",rs,"\n")
0154デフォルトの名無しさん (ワッチョイ 2701-tX/F)
垢版 |
2022/09/28(水) 18:25:19.27ID:OOL0jr8Q0
>>152
format使うの提案したけど使わないほうがよさそう、誤差がでる

f(n): 負数で落ちる
s=str(n).lstrip("-")

c=Decimal(n*r) のところで
n*r で誤差がでる
c=Decimal(str(n)) * Decimal(str(r))

負数対応四捨五入 -0.015 を四捨五入して -0.02
rs=((c > 0) - (c < 0)) * abs(c).quantize(Decimal("0."+("0"*d)), rounding=ROUND_HALF_UP)

-0.015 を四捨五入して -0.01のようにしたい場合
rs=c.quantize(Decimal("0."+("0"*d)), rounding=ROUND_HALF_UP)

四捨五入したいのかよくわからんかった、roundingは好みのオプションでどうぞ
0155デフォルトの名無しさん
垢版 |
2022/09/28(水) 19:37:21.94ID:9I9ISsCh
>>154
ありがとうございます
やはり至るところで誤差が発生するのですね
四捨五入は今回の用途ではどちらでも良い感じです
せっかくなのでまとめてみました
https://ideone.com/JmTu06
ありがとうございました
0157デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/28(水) 20:32:50.93ID:x5UMfEp40
Pythonに限らず浮動小数点数を使う場合は常に誤差の問題がつきまとう。
0.1というのがすでに二進数ではきっちり表現できない数字なので、有効数字を何桁にするのかというのは実装の段階で決めなくちゃならない。

https://docs.python.org/ja/3/tutorial/floatingpoint.html

正確に表現できるのは、0.5,0.25,0.125...と1を2で割っていった数とその整数倍のみ

0.1は1/(2×5)となり1/5が2進数では循環小数となり浮動小数点数では正確に表せない。

ということを念頭に置いてまず何がやりたいか考えた方がいいよ。

decimalモジュールは便利そうだね。
0171デフォルトの名無しさん (ワッチョイ 2701-okKg)
垢版 |
2022/09/30(金) 10:05:45.64ID:EsKmogiV0
python chapelについて質問です。
情報があまりないので、チャペルについてお勧めのサイトがあれば教えてほしいです。
0177デフォルトの名無しさん (ワッチョイ 1610-DrlT)
垢版 |
2022/09/30(金) 16:11:14.18ID:7g2iZKZC0
三角関数は二項演算じゃないから後も先もないだろ
0180デフォルトの名無しさん (ワッチョイ 1610-DrlT)
垢版 |
2022/09/30(金) 17:02:40.52ID:7g2iZKZC0
実は誰も数値計算誤差について知らないのである
0182デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/30(金) 18:26:40.60ID:J+iH2myB0
最後に浮動小数点数にして誤差を減らす方法は、代数的な計算ができる必要がある。
Mathematicaとか、SymPyだな。
ただ代数的な計算は上手いこと式を整理してやらないと簡単にならないことも多い。積分は公式を知らないと出来ない、というのと同じ。
有理数の四則演算だったら単なる有理数演算を逐次的に実行していけば問題ないだろうが。
0183デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/30(金) 18:28:54.96ID:J+iH2myB0
>>177
んなことないだろ。加法定理やら積和、和積の公式とか習わなかったのか。あの辺使うと極端な場合の誤差減らせるよ。
xが0に非常に近い場合のsin2x/sinxとかね。
0187デフォルトの名無しさん (ワッチョイ 8301-Umkq)
垢版 |
2022/10/01(土) 06:02:40.31ID:WTWdfTM50
質問です。
djangoの資格を作りたいとおもってます。
需要はありますか?
0188デフォルトの名無しさん (ワッチョイ ff14-51cu)
垢版 |
2022/10/03(月) 07:28:28.28ID:qHW/WFxU0
https://translate.google.com/

Google翻訳のページで、テキスト入力ボックスから「Tabキー」を1回押すと必ず「音声を聞く」のアイコンに移動するようにしたいのですが、Pythonで可能ですか?
通常は3回で行けるのですが、”原文の言語”や”もしかして”が表示されるとTabキーを押す回数が変わって面倒です。しかもリストが表示されててそのパターンなのか見えない。
Pythonで何とかしようとしてるのがそもそも間違っている気がして、簡単なHPをJavaとか?で作ったり、アドオンを組んだりとか別の手段が必要ですかね?
0191デフォルトの名無しさん (ワッチョイ ff14-51cu)
垢版 |
2022/10/03(月) 10:02:57.41ID:qHW/WFxU0
>>190
seleniumを使ってプログラムを実行した時だけなら出来たのですが、普段使いで常にその状態にさせる方法が分からなかったです。
独自の簡単なChrome拡張機能を作る方向が一番良さそうな感じです。そっちで少しやってみます。お騒がせしました。
0193デフォルトの名無しさん (ワンミングク MM9f-A0fl)
垢版 |
2022/10/03(月) 10:33:51.18ID:vUZPctIIM
USWCとか使ってESCキーを押したら画像認識で再生ボタンクリックとかにすると簡単そう
ESCだと位置的に押しやすいし予測候補も消える
pyautoguiみたいなの使えばPythonでもUWSCと同じ事出来たはず
windows限定の話だけど
0196デフォルトの名無しさん (スフッ Sd1f-0H1b)
垢版 |
2022/10/03(月) 10:55:37.39ID:S1BqvHYWd
>>169
>>173
複素数や四元数を使うのが割りとマジでお薦め
02001 (テテンテンテン MM7f-kE2G)
垢版 |
2022/10/03(月) 22:09:32.24ID:yB/cj66NM
質問です
以下のプログラム(wikipediaの今日は何の日)をエクセルで起動させたときに最後の年号の()が取れてないとおかしいのですがどこのコードが間違っていますか?
優しい方教えてください

import requests
from bs4 import BeautifulSoup
import csv
import re

url="https://ja.wikipedia.org";
response=requests.get(url)
soup=BeautifulSoup(response.content,"html.parser")

top_entry=soup.find("div",attrs={"id":"on_this_day"})
entries=top_entry.find_all("li")

today_list=[]

for i,entry in enumerate(entries):
today_text=entry.get_text().replace("(","(").replace(")",")")
match=re.search("\(([1-9].*?)年\)", today_text)
if match:
today_list.append([i+1, entry.get_text(),match.group(1)])
else:
today_list.append([i+1, entry.get_text()])

with open("output.csv", "w", encoding="Shift_JIS") as file:
writer=csv.writer(file, lineterminator="\n")
writer.writerows(today_list)
02011 (テテンテンテン MM7f-kE2G)
垢版 |
2022/10/03(月) 22:11:29.02ID:yB/cj66NM
何度も本(スクレイピング・ハッキング・ラぼ)見返したけど間違ってないんです…
0207デフォルトの名無しさん (ワッチョイ ff9f-ufYE)
垢版 |
2022/10/03(月) 22:54:57.92ID:phcGwi7g0
これでいけそうですが、どうでしょうか

1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を表示する
0210デフォルトの名無しさん (ワッチョイ bfbd-vqPj)
垢版 |
2022/10/03(月) 23:48:34.11ID:DL3YHdAw0
ウェブスクレイピングをやってみたくて奮闘しておりますが、CSVへの書き込み時にエラーがでます
どう改善すればよいかわからず困っています。助けてください。

おま環(Python 3.9.12+Windows10+VScode)
【コード】
for a in soup.find_all('a'):
link = a.get('href'), a.text
link.to_csv('link.csv')

【エラー】
link.to_csv('link.csv')
AttributeError: 'tuple' object has no attribute 'to_csv'
0213デフォルトの名無しさん (ワッチョイ ff9f-ufYE)
垢版 |
2022/10/04(火) 06:51:23.40ID:jZxsvBQn0
https://aiprogrammer.hashlab.jp/
ウェブスクレイピングで、aタグを取得し、そのaタグをcsvファイルに出力するコードを作成してください。

import csv
from bs4 import BeautifulSoup

with open("sample.html") as f:
soup = BeautifulSoup(f, "html.parser")

csv_file = open("output.csv", "w", encoding="utf-8")
writer = csv.writer(csv_file)

for a in soup.find_all("a"):
writer.writerow([a.text, a.get("href")])

csv_file.close()
0215デフォルトの名無しさん (ワッチョイ bfbd-vqPj)
垢版 |
2022/10/04(火) 22:40:41.78ID:g6GmefYL0
>>211 213
丁寧に教えてくださりありがとうございます。
0222デフォルトの名無しさん (ワッチョイ cf10-1pq4)
垢版 |
2022/10/05(水) 00:40:43.93ID:93gtHac60
ぶっちゃけスレは落ちて過去ログになるし
検索性も低いから集合知の蓄積なんてしないよ
マルチポスト禁止は形骸化した旧きネチケットだと思う
0223デフォルトの名無しさん (ワッチョイ 2363-N8ha)
垢版 |
2022/10/05(水) 00:56:27.52ID:Tx2gHWm/0
>>222
いやぁそうでもないと思うけどねぇ
2ちゃんねるの過去ログをあさって解決方法を見つけたことも数多あるし
解決できない場合でも、ヒントになるようなことが散らばっていて、それをきっかけに探し出せることもある
検索のやり方次第じゃないか?
0224デフォルトの名無しさん (ワッチョイ cf10-1pq4)
垢版 |
2022/10/05(水) 01:03:22.70ID:93gtHac60
>>223
調べごとはよくするけど
2ちゃんで解決したことはないな、というか、検索方法によるだろうが出てきすらしない
大体Qiita、個人ブログ、stackoverflowのどれか
0225デフォルトの名無しさん (ワッチョイ 2363-N8ha)
垢版 |
2022/10/05(水) 01:12:14.00ID:Tx2gHWm/0
>>224
いまはそうした5ちゃんねる以外の方がまともな完結方法があると思うよ
でも以前は、そういうのがほとんど当てにできなかったり、
*nixやマイナー言語、ハードウェア特有のトラブル、アングラ系wなんかだと、
英語資料を当たるきっかけやヒントが欲しかったりしたので、
2ちゃんねるのちょっとした書き込みがありがたかったなぁ

いまでも、"site:5ch.net" をつけてキーワードをググることで、
5ちゃんねるの集合知はちゃんと機能しているよ
0226デフォルトの名無しさん (ワッチョイ ff63-pIDl)
垢版 |
2022/10/05(水) 01:17:40.14ID:j989iulk0
2ちゃんねるに書いてある事を、
そこまで信用したことはないな
あるとすれば、裏が取れたとき位

リンク張ってあっても、あやしげなサイトだったりすることもある
0227デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
垢版 |
2022/10/05(水) 01:59:12.01ID:xc1v9MP10
今回みたいに簡単なエラー文も読めねえだけのカスがネット上に散らかることが多く
これが害悪であるのでマルチポスト野郎は基本的にクソである
集合知の分散ではない。無知の飽和が問題
0233デフォルトの名無しさん (テテンテンテン MM7f-iU/c)
垢版 |
2022/10/05(水) 06:11:17.00ID:FOT9/eKgM
>>231
朝早いですね!

再インストールしたら出来るようになりました
何故か知らないけど……

……というより勝手にブラウザが開いて閉じての動作を見た時は感動しました

すげー勉強する意欲が増した
0234デフォルトの名無しさん (ワッチョイ ff01-d1zO)
垢版 |
2022/10/05(水) 06:57:09.88ID:wne70pEz0
>>219
マルチポストされると同じようなレスを複数回読むハメことあるし回答したら他のスレで既に解決してたとかあるからそりゃうざいわってことだろ
ちなみにクロスポストはたいていのリーダーでどれか一つ読めば他のグループへの投稿も既読になるし回答する際もディフォルトの回答先グループが指定できるから回答が散らばることも防げる
0235デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/05(水) 18:42:25.05ID:8ltN7Y6y0
原神スレかpythonスレかで迷ったんですけど、ちょっと失礼します。
https://github.com/shrubin/Genshin-Artifact-Rater
ディスコbotがサ終してたのでありがたくオフ環境に導入すべく頑張ったんです。

setupの手順から一通り終えてpy bot.py後なんですが
raise ValueError("Duplicate keys!")の無間地獄にはまってるんですけど
列行文でエラー指摘されてチェックしても全然関係無さげでわからない時どこ見たらいいですか?。

やっぱり基本を熟知してる人は修正して当たり前な場所とかを理解できてなくてエラー起きてるんですよね。たぶん。。
詳細足りなさすぎるのは理解してるんですけど、ほんと憶測適当アドバイスでいいので教えて下さい。
0237デフォルトの名無しさん (ワッチョイ 632c-kE2G)
垢版 |
2022/10/05(水) 23:32:03.75ID:W5I+dJQy0
>>235
Duplicate keys! って、

データベースのUNIQUE インデックスまたは PRIMARY KEY に、
既に存在する同じキーで挿入しようとしたとか?

そのGithub のbot.py 内を「Duplicate」で検索しても、見当たらないけど?
どのファイルのソースコードなの?
0238デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/06(木) 01:46:24.04ID:eDAszKmt0
>>237

bot.py実行後に、~\Programs\Python\Python38-32\Lib\site-packages\toml
内のpython38-32のdecoder.pyからエラーが出てます。
powershellを使いました。 ほぼ素人ですみません。
0240デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
垢版 |
2022/10/06(木) 03:52:44.67ID:mL002h1/0
>>238
python入門おめでとう!
0241デフォルトの名無しさん (ワッチョイ 632c-LIzE)
垢版 |
2022/10/07(金) 05:27:45.05ID:TBR3DhbF0
「python toml decoder duplicate keys」で検索!

TOML ファイルの形式になっていないとか?

ファイルがBOM付きUTF-8 になっているとか?
Python は、BOMなしUTF-8 じゃないの?

https://git.cardiff.ac.uk/c2021544/blogg/-/blob/abf082d45bcacad0728c2a03e91baf103046eba9/venv/lib/python3.6/site-packages/pip/_vendor/toml/decoder.py

このファイルの781, 783 行目に、raise ValueError("Duplicate keys!") がある
0242デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/07(金) 07:11:32.41ID:0vlnX2v40
>>241
UTF-8になってました。
ValueError: Duplicate keys!とTomlDecodeError: Duplicate keys!が出ていますが
デコードが実行された結果キー重複が起こっているのを知らせただけで、原因はやはりbot.pyの中にあるのでしょうか?
0244デフォルトの名無しさん (ワッチョイ ff79-pIDl)
垢版 |
2022/10/07(金) 13:38:21.48ID:6W+GCvSh0
Traceback (most recent call last):
File "test.py", line 31, in <module>
func1()
File "test.py", line 28, in func1
func2()
File "test.py", line 30, in func2
raise Exception("hogehogeException")
Exception: hogehogeException

こういうファイル名や行数とか出てないの?
0247241 (ワッチョイ c34f-LIzE)
垢版 |
2022/10/07(金) 23:54:53.64ID:cLCpsl3k0
TOML のValidator で、TOMLファイルの形式が正しいかどうか、チェックすれば?
「toml validator online」で検索!

プログラマーなら、VSCode で、〜/toml/decoder.py をデバッグするとか、

decoder.pyを差し替えて、
raise ValueError("Duplicate keys!") の前後で、ログ出力してみるとか
0248デフォルトの名無しさん (ワッチョイ 0666-37Vs)
垢版 |
2022/10/08(土) 07:10:23.20ID:kX9hT5zA0
PyAutoGuiも便利だけど何でもできるかというとかなり限定的

画面がこういう状態になったらこの条件に合う部分を探して、
この範囲をコピーしてこのアプリに切り替えてコピペ
みたいなことはできない
0250デフォルトの名無しさん (アウアウウー Sa2f-mRh5)
垢版 |
2022/10/08(土) 11:25:58.24ID:TDMvIP2Ta
ライブラリ関数の情報を調査する方法についての質問です
sagemathというpython wrapperにあるpolygon3dという関数がどういうキーワード引数を持っているのか調べたいのです
ググるとinspect.signature関数というのが見つかります
コレでpolygon3dを調べてみると
signature = inspect.signature(polygon3d)
print(signature.parameters)

OrderedDict([('points', <Parameter "points">), ('options', <Parameter "**options">)])
と出ます
おそらく位置引数'points'とキーワード引数がいくらかあるという意味だと思うのですがやはりコレが限界なんでしょうか?
どんな名前のキーワード引数を持ってるかの一覧表を出力するような方法はないもんなんでしょうか?
0251デフォルトの名無しさん (ワッチョイ de10-XciQ)
垢版 |
2022/10/08(土) 12:37:16.55ID:ymJkU01o0
>>250
オープンソースなんだからGitHubに見に行けばいいじゃん
0252デフォルトの名無しさん (アウアウウー Sa2f-mRh5)
垢版 |
2022/10/08(土) 14:49:02.11ID:hw6LN7oLa
>>251
そうなんです
実際sagemathは割とドキュメントもしっかりしててググれば一覧とかもあります
でもいちいちめんどくさいじゃないですか
もしかしたら各オプジェクトで利用可能なキーワード引数のリストを得る方法とか容易されてたら便利でいいなぁと
結構ググったのでなさそうではあるんですけど、調べて「あった」場合はともかく「ないなぁ」の場合、やはり最終的には強者に聞いてみないとダメかなと
0254デフォルトの名無しさん (ワッチョイ ca14-0xn2)
垢版 |
2022/10/08(土) 15:13:56.04ID:bWQzA1rj0
pyautogui
エラー出さずにできましたが最適ではない気がします
下記のやり方より良い方法があれば教えて欲しいです


pyautogui.write() でエクスプローラーのアドレスにパスを打ち込む時
日本語や \ が入力できなかったり、最初の C: が C* に勝手に変わったりしました
・pyperclip を使って値をコピーしてから、pyautogui.hotkeyで貼り付けました


pyautoguiを使って検索したりクリックしたりする時
・画像認識してから次の処理する時は、while pyautogui.locateOnScreen() is None: で time.sleep(1) させて
・検索結果表示とか全選択とか、少し時間がかかりそうな箇所は逐一改行して「time.sleep()」を書きました
これを書くのが結構あってcodeが余計に長くなりました
0255デフォルトの名無しさん (ワッチョイ ca14-0xn2)
垢版 |
2022/10/08(土) 15:27:35.37ID:bWQzA1rj0
pyautogui 便利だけどマウスとモニターが使用不可になるのだけは面倒でした
下のソフトの処理ができるなら別のもので構わないのですが、pyautogui以外でやってる人がいたら教えてください

・Adobe Acrobat
・Evernote ※Legacy版
・ソシャゲ全般(デイリー回収用)
0258デフォルトの名無しさん (ワンミングク MM3a-TLx9)
垢版 |
2022/10/08(土) 16:00:09.87ID:xEoQJfh1M
sleepが面倒なら画像名を指定するだけで待ち&クリックする関数を作れば良いんでない
バックグラウンドでの使用は、昔VPCを多重起動して使ってたことあるけど今でも出来るんかな
昔、某MMOでプロセスメモリの内容を読み取って動くマクロとか作ったけど
プロセスメモリが読めればエスパーなマクロが作れるよ
0260デフォルトの名無しさん (ワッチョイ 034f-6jYr)
垢版 |
2022/10/09(日) 00:21:51.03ID:t9JKJStV0
>>252
VSCode, Ruby では拡張機能で、関数の説明なども見れる

また端末から、そういうコマンドを実行しても見れるけど、
ブラウザで見た方が見やすいので、
一旦コマンドで説明をHTML ファイルにしてから、それをブラウザで見て、
見た後に、HTMLファイルを削除する。
これが自動で行われる

ただし、その関数・モジュールの作者が、
Doc コメントみたいな決められた様式で、コメントを書いている場合のみ

たいてい、Doc コメントの説明などは、
パーフェクトRuby などのパーフェクト・シリーズ本に書いてある
0261デフォルトの名無しさん (ワッチョイ ca14-0xn2)
垢版 |
2022/10/09(日) 04:21:23.14ID:L81MTKQk0
クリップボードにpathlibのPathで指定した、不特定多数のファイルをコピーをしたいのですが方法が分かりません
コピーするファイルは、フォルダー・テキスト・画像・動画・PDF関係なく、PC上で選択してCtrl+Cできるファイル全てが対象です

pyautogui.hotkey(“Ctrl”,”v“) を使って貼り付ける予定です。※Evernote Legacyというメモアプリ上で使いたい

pyperclip、shutil、pillow関連の記事は見つかるのですが、クリップボードに複数・拡張子問わずコピーする方法が見つかりません
どうすればできるのか教えてください
0263デフォルトの名無しさん (ワンミングク MM3a-TLx9)
垢版 |
2022/10/09(日) 11:51:56.93ID:xdRBYpSIM
FileDrop形式に変換できれば良いんだろうけどパッと検索してみた限り難しそうだね
VSを使ってクリップボードを監視してファイル名が含まれていたらFileDrop形式に変換するアプリを自作するか
コピー用のtempフォルダにファイルを一旦コピーしてから全選択→貼り付けとかでも良さそう
0265デフォルトの名無しさん (ワッチョイ cb63-rqSc)
垢版 |
2022/10/09(日) 20:19:39.13ID:nf8IBTFd0
chm形式のヘルプが3.7までしか野良に無いんだけど、3.10(stable)のchmどこかに無い?
公式はDLしたいけど404でオンラインでしか参照できなくて困ってる
0267デフォルトの名無しさん (ワッチョイ cb63-rqSc)
垢版 |
2022/10/09(日) 20:53:03.75ID:nf8IBTFd0
>>266
すまん、日本語版希望。。。
githubに3.7jpビルドしてる人の使ってる
0268デフォルトの名無しさん (ワッチョイ 034f-iygP)
垢版 |
2022/10/09(日) 23:28:35.38ID:t9JKJStV0
>>261
漏れは、Ruby で、drag&drop での複数ファイルの移動処理を作ったけど、
これはファイルのみに適用される。
フォルダの再帰的コピーも出来るみたい

require 'fileutils'

dest_dir = "C:/Users/Owner/Documents/tmp/"

# ARGV は、ドロップした複数のファイルパスの配列
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
file_name = File.basename( full_path ) # ファイル名のみ

FileUtils::DryRun.move( full_path, dest_dir + file_name)
end

sleep # 出力したコマンドプロンプト画面を閉じないようにする
0269デフォルトの名無しさん (ワッチョイ 9eda-y5q7)
垢版 |
2022/10/11(火) 09:09:33.80ID:L++CLq2X0
すみません、jupyter labで下記のように記述して実行したんですが、エラーでサイトが開きません。原因わかる方いらっしゃいませんか?
url = ''https://telegram.org/''
browser.get(url)

エラー内容
NoSuchWindowException: Message: no such window: target window already closed from unknown error: web view not found

browser.getをdriver.getに変えて試してもみましたがダメでした。
urlについてはサイトに飛べることをurlクリックで確認しました。
0275デフォルトの名無しさん (ワッチョイ 6b10-SUfT)
垢版 |
2022/10/13(木) 18:02:26.26ID:SD2zWMPC0
import pandas as pd
df = pd.DataFrame(
[[10,"a", True],
[20,"b", False],
[30,"c", False],
[40,"d", True]])
#というデータフレームを定義したとして、0列目、2列目を独立して処理したとします
#これを最終的に結合したいのですが、
a = pd.DataFrame(df.iloc[:,0],df.iloc[:,2])
# というようにすると
0 1
0 10 True
1 20 False
...
というデータフレームではなく、
0
2
True NaN
False NaN
False NaN
True NaN
というデータフレームになってしまいます。なんで欠損値になってしまうのか
わからないのですが、求めるデータフレームを作るにはどういう結合方法をとればいいでしょうか。ちなみに、
p=df.iloc[:,0]
に対して
p["A"] = df.iloc[:,2]
という方法は、pがSeries型なので取れないです。一旦Series型にして取り出してから処理して結合させたいのです。どうすればいいでしょうか。
0279デフォルトの名無しさん (ワッチョイ de10-QDWw)
垢版 |
2022/10/13(木) 19:07:19.22ID:ZrA3PYH80
二重のforループ抜けるときフラグを使ってるんですけどもっとかっこいいやり方ありますか?
for i in range(10):
flag = False
for j in range(10):
if hoge[i][j] == fuga:
piyo()
flag = True
break
if flag:
break
0281デフォルトの名無しさん (ワッチョイ de10-bGEg)
垢版 |
2022/10/13(木) 19:23:22.28ID:0KS7pmji0
for-else

for i in range(10):
__for j in range(10):
____if condition:
______break
__else:
____continue
__break

例外

try:
__for i in range(10):
____for j in range(10):
______if condition:
________raise Exception
except:
__pass

他には関数にして脱出はreturnとか
0285デフォルトの名無しさん (ワッチョイ 6b10-SUfT)
垢版 |
2022/10/13(木) 20:24:16.77ID:SD2zWMPC0
わかりました。Series型だと追加できないので一回一列だけのDataFrame型に変換すればいいみたいです。

a = pd.DataFrame(df.iloc[:,0])
そのあと、列追加で
a.loc[:,"new column"] = df.iloc[:,2]
とやれば追加できました。
0299デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 14:09:18.62ID:wUAlKc2l0
質問です。
配列内にアルファベットの要素がランダムに複数個入っています。
これらの要素をなるべく隣り合わないように並べ替えるにはどうするといいでしょうか?
例:AAABBC -> ABACAB
0304デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 14:45:59.33ID:wUAlKc2l0
>>302
前後に貯めるのではなく、2文字ずつ並ぶ→3文字ずつ並ぶのように緩和できるようにしたいです。
例:AAAAAABBC -> AABAACABA
0306デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/15(土) 14:49:49.52ID:VXb7W7XW0
こういうパズル的なのはプログラミングお題スレで出題する方が早く回答が付きそうだな
0307デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/15(土) 14:51:37.73ID:VXb7W7XW0
>>305
n連続は1箇所につき2^n点のペナルティを課すとかは?
0309デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 15:03:04.47ID:wUAlKc2l0
>>308
すいません。
使っているのがpythonだったのでここで質問しました。

やはり難しいようなので、皆さんのコメントを参考に自力で考えてみようと思います。
ありがとうございました。
0310デフォルトの名無しさん (ワッチョイ 5b08-1SGr)
垢版 |
2022/10/15(土) 15:15:21.01ID:ttRM3D3c0
>>304
26要素のリストで各文字の個数をカウント
最大のものを見つけ出す
最大/他全部で連続個数が分かる
最大の文字を連続個数並べて他の文字を順番に挟む
挟む時は各文字の文字数をつじつま合うようにリストをカウントダウンして調整

同じ文字は可能な限り離したいとか条件追加するともっと難しくなる
0314デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 15:33:35.79ID:wUAlKc2l0
>>310
>>311

ありがとうございます。
試してみます。
0318デフォルトの名無しさん (ワッチョイ bb02-003c)
垢版 |
2022/10/15(土) 17:41:55.96ID:Hv7z/9nw0
思いつきだけど
[合計文字数][26]の2次元配列を作る
各文字ごとに均等に配置
空白部分には空白なりNoneなり入れる
2次元配列を縦方向に連結して1次元配列にする
空白を除去する
ってのはどう?

aaabbc
[a,n,a,n,a,n]
[b,n,n,b,n,n]
[c,n,n,n,n,n]
abcaba
0320デフォルトの名無しさん (ワッチョイ 9f14-Z7Nq)
垢版 |
2022/10/15(土) 18:29:11.63ID:a1geBJ2n0
for文の途中で条件に当てはまったら、for文の任意の値から処理を再開させる書き方とかありますか?
例えば「for x in range(10):」とあったとして、7の途中で条件に当てはまったら、3から再開してそのまま最後まで処理するみたいな
0321デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/15(土) 18:32:12.78ID:VXb7W7XW0
while使った方がいい
0325デフォルトの名無しさん (ワッチョイ 0f02-9zfq)
垢版 |
2022/10/15(土) 19:03:32.69ID:jl8SG5IY0
あんま綺麗じゃないけど、こんな感じでいいのか?
競プロの連中ならもっとスマートなの書いてくれるはず

text = "aaabbc"
char = "abcdefghijklmnopqrstuvwxyz"

char_dict = []
for c in char:
____count = 0
____for t in text:
________if c == t:
____________count += 1
____if count > 0:
________char_dict.append({"name":c, "count":count, "left":count})

char_dict = sorted(char_dict, key=lambda e: (e["left"], -e["count"]), reverse=True)
result = ""
pre = ""
for _ in text:
____ci = 0
____while True:
________now = char_dict[ci]["name"]
________if now == pre:
____________ci += 1
________else:
____________result += now
____________pre = now
____________char_dict[ci]["left"] -= 1
____________char_dict = sorted(char_dict, key=lambda e: (e["left"], -e["count"]), reverse=True)
____________break

print(result)
0333デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/16(日) 20:28:46.68ID:MD6QHwBW0
質問です。
vscordとpycharmと他のパイソン系なのですが
「マルチグラボ」対応してるのを探してます。
お勧めはありますか?
0334デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/16(日) 20:56:42.88ID:tl8sUwzf0
Windowsで作成した画像を外付けHDDに保存する。
※macとWindows共通で使えるFAT32使用
それをmacPCのpythonのglobで画像のパスを読み込んだ時に
「バスケ」や「ポケモン」などの濁点と半濁点の検索ができません。
※printで中身を見るとあります。
原因や対処方法がありましたら教えて下さい。
0337デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/16(日) 21:50:36.51ID:tl8sUwzf0
>>335
ありがとうございます。
うまくできました。
0344デフォルトの名無しさん
垢版 |
2022/10/18(火) 01:25:14.77ID:zc0QoIzs
単純なy1,y2の差ではなく、
y1がy2をcrossover(上抜け)したところの値とy2との差を、crossunderするまで取り続ける
y1がy2をcrossunder(下抜け)したところの値とy2との差を、crossoverするまで取り続ける
そのデータを取得したいのですが
何かうまい具合にできないものでしょうか
where使って切り替わりの判別はできたのですが

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
t = np.linspace(0, 10, 1000)
y1 = np.sin(t)
y2 = np.cos(t)

ax.plot(t, y1)
ax.plot(t, y2)

fig.tight_layout()
plt.show()

np.where(y1>y2,1,0)
0345デフォルトの名無しさん (ワッチョイ ab5f-40n0)
垢版 |
2022/10/18(火) 10:34:44.39ID:jjMTEoo10
test = set(A[‘A1’] for B in C[‘C1’] for A in B[‘D’] )

ってどういうコマンドなんでしょうか。
入れ子が多すぎてよくわからず…
何がどう処理されてtestには何が入るんでしょう?
0349344
垢版 |
2022/10/18(火) 12:45:29.61ID:zc0QoIzs
ゴテゴテになりましたがなんとかできました
https://ideone.com/huqmu0
#0.0 97
#crossover sin,cos 2
#crossunder sin,cos 1
0352デフォルトの名無しさん (ブーイモ MM7f-Z2+b)
垢版 |
2022/10/18(火) 14:51:24.85ID:5thtfPTiM
>>345
forループに直して読めばいい

test = set()
for B in C[‘C1’]:
__for A in B[‘D’]:
____test.add(A[‘A1’])

あまりいい内包表記の使い方ではない
0353344
垢版 |
2022/10/18(火) 14:53:46.55ID:zc0QoIzs
差とったバージョン貼るの忘れてました >>349
https://ideone.com/yDQwqO

せっかくnumpyやpandas使っているのにforで回す感じが納得できませんが妥協します
0355デフォルトの名無しさん (アウアウウー Sacf-FOJj)
垢版 |
2022/10/18(火) 20:19:11.20ID:wvci1M8ka
[{'id': 1, 'name': 'hogehoge', 'start_time': datetime.time(22, 0)}]
ってリストを
{'id': 1, 'name': 'hogehoge', 'start_time': datetime.time(22, 0)}
と言う辞書に簡単に変換する方法ってありますか?
クエリーセットから辞書に出来れば一番いいんだけど...。
0356デフォルトの名無しさん (ワッチョイ 4b97-+LDt)
垢版 |
2022/10/18(火) 20:24:46.13ID:BZdlnClE0
>>355
普通に最後に[0]つけるだけでは?
0359デフォルトの名無しさん
垢版 |
2022/10/18(火) 21:48:30.15ID:zc0QoIzs
>>357
cross地点のラインとか見やすくていいですね
実際に使うチャートのプロットに使ったら良い感じになりました!
ありがとうございます!!
0360デフォルトの名無しさん (ワッチョイ fb7c-gX9J)
垢版 |
2022/10/19(水) 11:35:50.09ID:XPI64Z3+0
Wsl2上Ubuntu20.04でtorch使って機械学習させてたんだけど、3万イテレーションぐらいで
Segmentation fault
とだけ出て落ちてた
VRAMの容量が不足したと考えてあってる?
あとLinux環境でこれをデバッグするなら何がいいか教えて欲しい
0363デフォルトの名無しさん (オイコラミネオ MM8f-4fP8)
垢版 |
2022/10/19(水) 22:23:16.68ID:3NiqH8qVM
>>1
p = [0,1]
q = [2,3]

r = [0,2,1,3]
にまとめたい、、、
0364デフォルトの名無しさん (ブーイモ MM7f-+LDt)
垢版 |
2022/10/19(水) 23:34:10.81ID:bkANZ+VWM
>>358
良かった。おめでとう

>>363
zipとflatten使えばできる、flattenは自前で書いても可
0365デフォルトの名無しさん (ブーイモ MM7f-+LDt)
垢版 |
2022/10/19(水) 23:37:46.30ID:bkANZ+VWM
>>360
再現性あるかどうかは大事。ないなら電圧降下とか宇宙線とか回避できない事象かもしれない。
再現性あるならまずはメモリのテストとか?
0369デフォルトの名無しさん (オイコラミネオ MM8f-4fP8)
垢版 |
2022/10/20(木) 09:06:52.31ID:rssHMFyJM
>>364
ありがとう
0370デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 11:03:22.52ID:rq8DqaFj0
.pyの拡張子のプログラムファイル送られてきたんだが
ひらきかたがわからん
0373デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 11:59:34.42ID:rq8DqaFj0
返信ありがとう。
ココナラの仕事関連で贈られたブツだから
妖しくはないと思う。
ただひらき方がわからんだけw
テキストね。ありがとう!
0374デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 14:07:22.08ID:rq8DqaFj0
.pyだからgoogle colabとかvsでもひらけますか?
0376デフォルトの名無しさん (ワッチョイ 0fbb-mZPx)
垢版 |
2022/10/20(木) 14:46:25.62ID:VKVL3k1N0
すまんが、開発環境について教えて欲しいんだけどさ
NumPyの行列がどんな形してるか、あらかじめ推測がつく場合にVSCodeのエディタ上で表示してくれるような機能ってなんかないのかな?
あったら教えてほすぃ
0379デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 16:52:22.34ID:rq8DqaFj0
>>375
今グーグルコラボひらいたんやが。
ファイル、編集、表示、挿入などあるけど。
なかなかファイルを読み込むっていうのができひんねん。
教えて下さい!
0380デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 16:55:29.69ID:rq8DqaFj0
ファイル→ノートブックをアップロード→ダウンロードできひんw
0382デフォルトの名無しさん (ワッチョイ fb09-h7FX)
垢版 |
2022/10/20(木) 17:44:01.65ID:aiWxu/Mz0
Pythonの乱数はCPUのbit長とあまり関係ないみたい
64bit= 8バイトや128bit = 16バイトが効率がいいのかとおもったが
一度にまとめて長いのを生成したほうがいいみたい


https://ideone.com/JlYdMk

import random
from time import perf_counter

def randcomp(byte = 4, loop = 100000):
N =[]
K =[]
for i in range(3):
K.append(2**i)
N.append (2**(8*byte*K[-1]) -1)
for i in range(3):
t = perf_counter()
for n in range(loop * int(4/K[i]) ): random.randint(0, N[i])
t = perf_counter() - t
print("%d%s : %0.3f sec" % (8*byte*K[i], "バイトで乱数生成" , t), flush=True)

print("同一長乱数はまとめて生成したほうがいいが分割したほうがいいか")
randcomp(100, 30000)
0386デフォルトの名無しさん (ワッチョイ 0fbb-mZPx)
垢版 |
2022/10/20(木) 19:05:49.55ID:VKVL3k1N0
年3万かあ・・・・教えてくれたのはありがたいけどちょっとこれは・・・・
0393デフォルトの名無しさん (ワッチョイ ef66-MUdf)
垢版 |
2022/10/20(木) 21:14:59.71ID:zFT+mBQ80
量子使う奴は意思が入り込むよ
未来の科学ではそんなの当たり前になってるだろうけど、現時点ではオカルト
二重スリット実験とかも本当は不思議でも何でもない
0394デフォルトの名無しさん (ブーイモ MMbf-+LDt)
垢版 |
2022/10/20(木) 23:49:24.98ID:PbiytdPqM
ほんとの乱数を使う必要がある場合と疑似乱数でいい場合は区別したほうが良くないか。
Pythonで出し分ける方法は調べてないから知らないけど。
0402デフォルトの名無しさん (ワッチョイ fb09-h7FX)
垢版 |
2022/10/21(金) 17:50:39.73ID:+NQJkQPg0
小さめファイルのハッシュ値を計算したい人です
ファイルIOにかかる時間のほうが圧倒的に時間食うことがわかりました
ハッシュ計算が3倍遅いほうでも差がほぼないようです
0404デフォルトの名無しさん
垢版 |
2022/10/21(金) 18:01:25.42ID:Ty04Hsfm
データフレームのある列で、0が連続する値だけを起点にデータを分割する
いわゆるビニング処理をしたいのですが
こういう感じにしました
https://ideone.com/JIk4Zz
たぶん期待通りの処理(df_sample["b"]で0以外の値が連続するブロックだけ抽出)になったのですが
改善できないでしょうか
0405デフォルトの名無しさん (ワッチョイ 0f89-gBql)
垢版 |
2022/10/21(金) 21:02:47.32ID:QvDTOA5Y0
>>399
君には難しいだろう。
たぶん無理だから諦めた方がいい。
Pythonは統計とマシンラーニング課題も出るからそれらの背景知識がなければ受からないと考えたほうがいいし、Pythonを学ぶ意味も意義もなんの価値もない
というのと、そんなことでいちいち根拠は?と思考停止する程度であればなにも成すことはできない。
よってそれら含めて知識として習得するつもりがあり、そのはじめの一歩として資格試験に挑戦するというのであれば、勝手に挑戦すればいい
0406デフォルトの名無しさん (ワッチョイ 0f89-gBql)
垢版 |
2022/10/21(金) 21:10:42.50ID:QvDTOA5Y0
>>399
マジで厳しいこというかもしれないが
何のためにその資格を取りたいと思ったのか
何のためにPythonを学ぼうと思ったのか
心から学びたいと言う欲求があなたの中にあるのか
あなた自身がこれら命題に答えられなければ、時間の無駄になるだろう
0408デフォルトの名無しさん (JP 0H7f-ZPbQ)
垢版 |
2022/10/21(金) 21:23:51.77ID:BRobyhizH
愚直おじさん流
https://ideone.com/TnSTHy
0413デフォルトの名無しさん (ワッチョイ 2b4f-KWxC)
垢版 |
2022/10/21(金) 23:30:16.98ID:X//QLN3D0
ひろゆきは自分で試していない。
検索して、それを話しているだけ

自分の経験に基づかないから、いつも話が浅い。
だから聞くだけ、時間の無駄

検索して分かるような事しか話さない

Python は良いみたいですよ。
流行っているからとかw
0414デフォルトの名無しさん (ワッチョイ 2b4f-KWxC)
垢版 |
2022/10/21(金) 23:38:32.06ID:X//QLN3D0
Python は文系は無理。
大学院数学科か、AWS 機械学習の資格が必要

だから、YouTube で有名な雑食系エンジニア・KENTA とか、
たにぐちまことも、Pythonの動画を作れない

だから、英語だけできる文系女は皆、Ruby on Rails へ行く。
Railsは算数で十分

Pythonの文法だけ知っている香具師は、いらない。
仕事ができないから
0416デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/21(金) 23:48:12.69ID:sRGYRPn90
>>409
効いてて草
0418デフォルトの名無しさん (ワッチョイ e94f-9Hqw)
垢版 |
2022/10/22(土) 00:46:25.52ID:5ajtmD/n0
KENTA は文系でしょ。
TOEIC も、800点以上取っていたかも?

英語ができるから、10言語以上のプログラミングに強い

でも、Python は別。
大学院レベルの特殊な勉強が必要だから、文系では無理
0420デフォルトの名無しさん (ワッチョイ 1197-/6zz)
垢版 |
2022/10/22(土) 04:24:24.02ID:+A4lsW440
ニューラルネットワークはともかく、他の言語出来たらPythonだって出来るでしょ。NumPyとかPyTorchだけがPythonじゃないし。なんか知らんYouTuberを根拠にするとか頭おかしすぎる 正直BASICみたいなもんだろ、
0421デフォルトの名無しさん (ワッチョイ 0d09-72Rk)
垢版 |
2022/10/22(土) 04:31:36.51ID:x/c/WoEY0
PythonはCとかで作れられたソフトのラッパーにすぎないだろ
元の操作が難しくても初心者向けにラッピングしてあるんだろ
BASICみたいというのはその面あるかと
当時だとアセンブラのラッパーといえるだろうが
0423デフォルトの名無しさん (ワントンキン MMd2-TT3r)
垢版 |
2022/10/22(土) 05:47:55.19ID:7jLTm2VBM
とにかく手軽で便利、マルチプラットフォームで動く高機能なスクリプト言語
一般人から研究者まで、エンジニアじゃなくても手軽に扱えるシェアNo.1のプログラミング言語
さあ今すぐPythonを始めよう!
0426デフォルトの名無しさん (ササクッテロラ Sp11-w3aL)
垢版 |
2022/10/22(土) 14:21:00.87ID:8gOeqRywp
生まれて初めてカキコします。
pythonでエクセル内の
指定したセル範囲を画像として保存することはできるのでしょうか?
openyxl等の使い方を見ましたが該当する機能が見つからず。。。
0434デフォルトの名無しさん (ワッチョイ 1197-/6zz)
垢版 |
2022/10/22(土) 19:41:53.56ID:+A4lsW440
独学で行ける奴は独学で行けるかどうか質問する前に独学できる範囲は独学しちゃうからなあ。
その質問が出る人と出ない人の違いが不思議だよね。
子供の頃に近くに誰も教えてくれないジャンルで何かを自分で調べてやったかどうかの違いなのかなあ。
0435デフォルトの名無しさん (テテンテンテン MMe6-zh4g)
垢版 |
2022/10/22(土) 19:55:08.06ID:YnOyl9oPM
全くのプログラミング初心者はCとJavaをやってからPythonやるのおススメ
するとCでポインタに挫折し、Javaでオブジェクト指向に挫折するはず
次にPythonをやると大幅に難易度が下がり感激して習得が進む
0437デフォルトの名無しさん (アウアウウー Sa45-sGwS)
垢版 |
2022/10/22(土) 20:15:49.62ID:OES5lhv+a
できるやつはそんなくだらない質問してる間に書いてるからな
よほど頭が良いやつを除けばプログラミングなんてスポーツに近い
ある程度書きまくって理解するという面がかなりある
0438431 (AU 0H41-Otos)
垢版 |
2022/10/22(土) 20:35:33.98ID:kATB1i3DH
>>432
素直でよろしい
わからないことがあったらすぐにここで聞くがよい、少なくとも私は答えてあげよう
0440デフォルトの名無しさん (JP 0H1d-SrSm)
垢版 |
2022/10/22(土) 21:47:35.31ID:cKHN2pKRH
0441デフォルトの名無しさん (ワッチョイ 8214-vLwz)
垢版 |
2022/10/22(土) 23:09:50.86ID:SZlNO/Fu0
PythonのpyautoguiでDMMGAMEPLAYERのクリック操作ができません
多分他にもできないソフトや操作がある気がします
できるようにする方法をご存知の方いませんか?
0457デフォルトの名無しさん (ブーイモ MMa2-+yyz)
垢版 |
2022/10/23(日) 23:07:36.81ID:ukbFQOFRM
「オーエス!オーエス!」
謎の掛け声の語源は?
0459デフォルトの名無しさん (ワッチョイ ee10-9vwd)
垢版 |
2022/10/24(月) 00:31:12.46ID:GUF0AyIv0
>>458
大本の大本を辿ればハンドアセンブルに行き着く
始めは機能が限定されたCコンパイラを作り、だんだん必要な機能全てが揃ったCコンパイラを作る
0471デフォルトの名無しさん (ワッチョイ 81f0-sGwS)
垢版 |
2022/10/24(月) 12:57:00.37ID:m3/1dAn60
>>470
何を言ってるんだ?
支離滅裂だぞ
Cコンパイラの作り方を知りたいのか?
字句解析、構文解析、意味解析、コード生成、最適化とかを知りたいのか?
コンパイラの教科書でも読めば?
ちな俺は大学でその辺やってたから教えても良いよ
0472デフォルトの名無しさん (ワッチョイ 81f0-sGwS)
垢版 |
2022/10/24(月) 13:06:44.24ID:m3/1dAn60
Cコンパイラ作りたいなら湯淺太一先生のコンパイラの教科書読みな
この本は昔大学で使っててアセンブリ言語のコード生成までちゃんと書いてある
著者はLisp処理系とか作ってた人
この本読めばRustがどういうコード生成してるかもわかる
0484デフォルトの名無しさん (スップ Sd02-SGBs)
垢版 |
2022/10/24(月) 14:40:45.31ID:Ifzcx8SRd
アウアウウー Sa45-sGwS、ワッチョイ 81f0-sGwS
は同一人物でしょ

スレ違いだけど、こっちの流れのほうがわからん
462の発言に対して463が否定した
その後の467が???
>>462 テテンテンテン MMe6-zh4g
> Cコンパイラが何でできているか知っているのは
> コンパイラを作った人だけ
>>463 ワッチョイ 81f0-sGwS
> gccならCだよ
> clangはC++
>>467 ワッチョイ 8201-yYWu
> それはそう言う例があるってだけの話
> テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
0486デフォルトの名無しさん (スップ Sd02-SGBs)
垢版 |
2022/10/24(月) 15:22:20.03ID:2pr4kIm+d
>>485
一例ってことは、
462に対して例をあげて否定した463を肯定しつつ、新たな話題で絡んだってことよね

463以前でもそれ以降でも「C/C++以外では作れない」なんて言ってないのに
0488デフォルトの名無しさん (スップ Sda2-SGBs)
垢版 |
2022/10/24(月) 16:17:10.49ID:ZTzctXE7d
>>487
>>462 コンパイラ一般の話と
>>463 いくつか例外があるぞと
>>467 いくつか例外をあげても意味ないぞ
こういう流れだったか

> テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
んで、2行目のこれは「どこに」かかってるんだ?
0493デフォルトの名無しさん (ブーイモ MMe6-/6zz)
垢版 |
2022/10/24(月) 18:01:08.06ID:neM6LaqeM
そもそもPythonもC言語で実装されているとは限らないしね。普通はCPython以外のことを考えなくていいと思うけど、今でもpypyとか使おうと思ったら考えなくちゃだしな(使ったことないのでよく知らないけど)
0494デフォルトの名無しさん (ワッチョイ ee10-LzLA)
垢版 |
2022/10/24(月) 20:11:23.46ID:FaCSJwQ/0
c++で思い出したんだけどboost.pythonでndarrary渡したあとそのままndarrary操作してたら処理にアホほど時間がかかったわ
結局vectorに入れ替えて処理したあとpythonのリストに変換して戻したら早かった
今思えば最初から渡すのリストで良かったな
ndarray渡す利点なんかあるのかな?
0495デフォルトの名無しさん (ワッチョイ e114-rBY1)
垢版 |
2022/10/24(月) 20:35:32.52ID:Uzj8AQ880
>>494
コピーを減らせるのが利点だけど、アクセス時のチェック等で遅くなったら意味ないのでポインタを使う。
コピーをするにしても、ndarrayのデータは連続してるのでリストより速くなると思う。
0496デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 20:57:46.29ID:1daaREig0
初めてvsコードに触ったんだが
pyhtonのバージョンはどうやってわかるんですかねー
教えて偉い人!
0498デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 21:01:12.11ID:1daaREig0
September 2022 (version 1.72)
これのことかな?
すまん。よくわからんw
0501デフォルトの名無しさん (ワッチョイ e933-80Lh)
垢版 |
2022/10/24(月) 22:16:28.14ID:dNNjxJBr0
>>496
右下に表示されてる
そこクリックしたらインタープリターを選択っていうのがでてくる
0502デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 22:38:27.05ID:1daaREig0
>>501
右下だとこうなります。
imgur.com/a/6CZm37Y
なかなかに初心者には難しいです。
0503デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 22:44:52.56ID:1daaREig0
あ!できたっぽいw
python3.9.0ってでてきた。
これかな?
0506デフォルトの名無しさん (ワッチョイ 0d09-72Rk)
垢版 |
2022/10/26(水) 22:25:06.76ID:HUwfFIwe0
質問です
この引数は普通関数と可変引数ですが
この関数を簡単にする方法ありますか?
5個以上の場合も全部記述するしかないですか?


def connect(F, *x) :
l = len(x)
if l==0 : F()
elif l==1 : F(x[0])
elif l==2 : F(x[0],x[1])
elif l==3 : F(x[0],x[1],x[2])
elif l==4 : F(x[0],x[1],x[2],x[3])
0507デフォルトの名無しさん (ワッチョイ 0d09-72Rk)
垢版 |
2022/10/26(水) 22:26:26.51ID:HUwfFIwe0
>>506
消費メモリと消費時間を計測するベンチマークの補助関数としてつかいたいのですが
0509デフォルトの名無しさん (ワッチョイ 0d09-72Rk)
垢版 |
2022/10/26(水) 22:43:13.09ID:HUwfFIwe0
>>508
サンクス
F(x)で駄目だったですが
それでいいんですか
0512デフォルトの名無しさん (ワッチョイ e933-80Lh)
垢版 |
2022/10/26(水) 23:24:41.91ID:iEeVk++I0
ていうかFって
0516デフォルトの名無しさん
垢版 |
2022/10/27(木) 22:55:12.85ID:5KytWWZZ
FastAPI気軽に使えて良いわ
自動で/docs作られるからUI作んの完全に後回しにできる

ついでにSQLModelも、と思ったけどrelationship周りがエラー出たり出なかったりおかしかったが原因がわかった
SQLAlchemyのバージョンが最新のものだrelationshipが効かない、1.4.35だといける・・
あとCRUDの並行処理は無理ぽいかも。
これらさえなければ個人でさくっとお気軽にウェブアプリ作るフレームワークとして完璧なんだが
0520デフォルトの名無しさん (ワッチョイ 02ad-VsiE)
垢版 |
2022/10/28(金) 08:27:01.13ID:aYQ1muJl0
ちょんてさ、半島に帰れば差別されないのに絶対に半島に帰らないよね?

それは、日本が平和で豊かで、
日本人はみな親切だからです。

なのにちょんは差別されてると妄想をいだいて
日本人女性を強姦しまくってる!

ちょんは皆殺しにするしかない!
0524デフォルトの名無しさん (ワッチョイ 9109-iO6U)
垢版 |
2022/10/30(日) 03:06:48.95ID:9F5gJDkR0
Python初心者ですが新事実を発見しました
クラスのメンバ変数はデフォルト値が設定してあっても
コンスタントラクタで初期化しないかぎり、別に生成したクラスobjと共有されてるようです
リストとか特定の変数限定かもしれないですが
0525デフォルトの名無しさん (ワッチョイ 9109-iO6U)
垢版 |
2022/10/30(日) 03:14:13.07ID:9F5gJDkR0
具体的にこれですが


class A :
L = []
def __init__(self): pass

class X :
L = []
def __init__(self): self.L = []

a = A()
a.L.append(7)
b = A()
print(b.L) # 新規生成なのに値が入ってる

a = X()
a.L.append(7)
b = X()
print(b.L) # 正常
print(a.L) # 正常
0532デフォルトの名無しさん (ワッチョイ 1301-pRvw)
垢版 |
2022/10/30(日) 08:30:50.67ID:2N6ePwSn0
>>531
> どっちも同じに見えるのはその方が便利だと思ったんだろうか
変数宣言をしないって言うポリシーなので最初に使った場所で決めるようにした/せざるを得なかったじゃないかなって思ってる

> 必要なら使う側で見分け付くように名前を付ければいいという柔らか運用
使う側はそれでいいけど宣言する人が勘違いしてたら意味ないわけで...
0535デフォルトの名無しさん (JP 0He5-3A4z)
垢版 |
2022/10/30(日) 08:58:13.36ID:ejVjSPjsH
self.__class__.foo
self.FOO
0536デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 11:40:59.42ID:0ss8sts10
質問です。
requestsを使って画像をダウンロードする時、
一定のサイズ以下の物をダウンロードしないようにしたいです。
どのようにするといいでしょう?
0540デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 12:10:52.74ID:0ss8sts10
>>539
つまり一度ダウンロードしてからcv2等でサイズを確認し、
OKならリネームして保存、NOなら削除
という感じでしょうか?
0544デフォルトの名無しさん (JP 0He5-3A4z)
垢版 |
2022/10/30(日) 12:41:23.93ID:ejVjSPjsH
画像のサイズっていう文脈なら俺はim.sizeとかを想定するなー
request文脈なら容量のサイズだけどな!
0545デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 12:41:44.93ID:0ss8sts10
すいません。
質問の仕方がまずかったです。
画像の横幅とか縦幅の方のサイズのことです。
横幅350px以下の画像をダウンロードする時に除外したいのです。
0547デフォルトの名無しさん (ワッチョイ 7b66-gj4s)
垢版 |
2022/10/30(日) 12:59:12.74ID:WAC/PohS0
元々はサイズなんか判らん、というプロトコルがあって、
それでは不便だからと建て増しで追加してるから、
判る場合も判らない場合もあるんだよな
判ったとしても嘘をついている場合もある
0548デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 13:09:28.80ID:0ss8sts10
>>547
なるほど
そんな事情があるとは知りませんでした。

オンライン上でサイズを調べるのは無理そうなので、
一度ダウンロードしてから仕分けるようにします。

ご迷惑をおかけしてしまいすいません。
ありがとうございました。
0549デフォルトの名無しさん (ワッチョイ f102-+Dbv)
垢版 |
2022/10/30(日) 13:18:51.61ID:XddGgynb0
パッとヘッダ見た感じjpegなら0xA3にWORD値で高さ、0xA5に幅、どちらもリトルエンディアン
pngなら0x10にDWORD値で高さ、0x14に幅、リトルエンディアン
って感じだね
上手くヘッダの一部だけダウンロードして画像サイズを得る関数を作ればトラフィック軽減になるかも?
0551デフォルトの名無しさん
垢版 |
2022/10/30(日) 15:26:12.39ID:VC4EQr6u
デザインパターンのSingletonパターンって必要ですかね・・
結局なんらかのカウンターで一元管理することになりませんか・・
0558デフォルトの名無しさん (ワッチョイ f102-+Dbv)
垢版 |
2022/10/30(日) 19:10:27.11ID:XddGgynb0
>>553
本当だ逆に覚えてた恥ずかしい
JPEGはサイズ前の5byteが共通っぽかったから>>550ではFF C0 00 11 08を検索するようにしてみたけどFF C0後の3byteは可変っぽいね
そもそも1KB以内にサイズ情報があるかも分からないのか
0561デフォルトの名無しさん (ブーイモ MM33-cv0M)
垢版 |
2022/10/31(月) 14:05:35.97ID:j6J+ogvNM
>>551
なんないよ
0562デフォルトの名無しさん (ワッチョイ 1314-bpsI)
垢版 |
2022/11/01(火) 02:33:37.39ID:mmiO/WJW0
不特定の文字・数字・記号、またそれらの組み合わせを意味する表記で記入する方法を教えて下さい

[123456aaaあ井う~〜」
↑みたいなのがあったとして、数字や文字は毎回変わる、場合によっては桁数が変わったりもする
テキストファイル内で上記のパターンの文字列を見つけて、その前の位置で改行を入れるみたいなことをしたいです

イメージですが下記みたいに表して a に代入しておいて
[123456aaa文字] → [%%% ¥¥¥¥¥¥¥¥] or [%(桁数)¥(桁数)]

replace(a,”/n”+a) でテキストファイルを書き換えるようなことって可能ですか?
0564デフォルトの名無しさん (ブーイモ MMeb-cv0M)
垢版 |
2022/11/01(火) 03:36:18.46ID:I1aopbaSM
なるほどわからん
0565デフォルトの名無しさん (ワッチョイ 8b10-WE8j)
垢版 |
2022/11/01(火) 08:16:26.34ID:xJk+jZok0
これは煽りではなく真面目なアドバイスなんだが、プログラミングより国語を勉強した方がいい
その言語能力だと難しいと思う
0566デフォルトの名無しさん (ワッチョイ 1314-bpsI)
垢版 |
2022/11/01(火) 08:30:28.54ID:mmiO/WJW0
222tq2tq2tq269ああ%64agaoiwahaio.59gagagahai3a.t69a 5>22gahaiiha

この文字列を

222tq2tq2tq269
ああ%64agaoiwaha
io.59gagagahai3a.t69
a 5>22gahaiiha

この出力結果にするにはどうすれば良いですか? なら大丈夫ですかね?
この場合だと「文字列2つ + 記号1つ + 数字2つ」のパターンを見つけて改行したい
0577デフォルトの名無しさん (ブーイモ MM33-cv0M)
垢版 |
2022/11/01(火) 17:42:07.83ID:59UjWoGEM
命名とかAPI設計がイケてない
match、search、fullmatch・・・
たまにしか使わない人は諦めて毎回リファレンス参照するしかない
0580デフォルトの名無しさん (ワッチョイ 9109-iO6U)
垢版 |
2022/11/01(火) 22:55:36.13ID:EqpfaKBX0
イテレータ判定されるのにfor できないんですが
イテレータとはforができるものではないんですか


X = type("")
if hasattr(X, '__iter__') :
for x in X : pass
0582デフォルトの名無しさん (ワッチョイ d347-gj4s)
垢版 |
2022/11/01(火) 23:43:36.24ID:vww+azZz0
覚えないといけない時点でおかしい
理解すれば覚えなくていいのが正解

list.append()は破壊的で、str.replace()は非破壊であることに、
合理的な説明は無い
その方が便利なことが多そうだからとか、メモリの都合とか、
一旦そう決めちゃったからとか、そんな理由に過ぎない
0596デフォルトの名無しさん (ワッチョイ d347-gj4s)
垢版 |
2022/11/02(水) 18:42:15.13ID:ul/vZuFO0
0から255までの数字が入った要素数1000の配列があって、
Cだとunsigned char list[1000];
みたいに宣言してlist[i]で参照するとアドレス計算で値を取ってくるけど、
pythonはどうやってるの?
0605デフォルトの名無しさん (ワッチョイ d347-gj4s)
垢版 |
2022/11/02(水) 19:31:44.66ID:ul/vZuFO0
listにappendすると、ポインタの配列の末尾にポインタが追加される
配列のサイズが変わるので、サイズを増やした配列を作ってコピーしないとできない
筈なのに、idを調べると変わらない

**ob_itemに入ってる値は変わるけど、**ob_item自体のアドレスは変わらない
ということ?
0615デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 21:11:39.58ID:CsBXjP5R0
リンクリストはリスト的なものを作るときに第一の選択肢としてはこないと思うよ。
任意の要素へのアクセスがO(n)かかるから。
必ず頭から順番に読んで、途中に挿入したいことが多いとかいう状況だったら使うけど、こういう特性を、癖があると思う人の方が多いんじゃないかな。
そういうコンピュータサイエンスの初歩みたいなところの実装が気になるなら、Javaを勉強してみるといいかもね。
リストも辞書もセットも、複数の実装方法が標準で用意されてて明示的にどれを使うか決めなくちゃいけないから。
そう考えると初心者にJava教えてた頃ってコレクションで付いていけなくなり勉強を諦めた人多いんだろうか。
0616デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 21:16:31.46ID:CsBXjP5R0
>>609
夕飯を食べる前の自分と食べた後の自分は別のインスタンスか?って問いにyesと答えられるならばイミュータブルなものにしかidを付けてはいけないと考えているのだろう(そういう言語もある、Haskellとか)
そうでなければ、ミュータブルなインスタンスはミュータブルなんだからidが同じでも中身は変化すると考えるべきだろう
0617デフォルトの名無しさん (ワッチョイ d347-gj4s)
垢版 |
2022/11/02(水) 21:22:30.41ID:jJasVlr90
idってCでのアドレスそのものなんでしょ
実装の都合でアドレスが変わったらidも変わるというだけの話で、
何らかのポリシーみたいなものは背景に無いような
0618デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 21:30:55.81ID:CsBXjP5R0
>>617
CPythonではな。(すみません知りませんでした)
しかしGCがかかりまくるVM上で動くPythonの実装もあるから、CPythonではそうっていう認識に留めておいたほうがいいんじゃないかなあ。
0620デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 22:06:28.39ID:CsBXjP5R0
>>619
まず、イミュータブルというのをどう定義するかによると思うけど
(タプルはイミュータブルだが、タプルの中にリストを入れた場合、リストほミュータブルで、リストに変更を加えてもタプルのインスタンスが新しくできるわけではない)
そういうややこしい例を除いても、
イミュータブルならば、値を変えたらidが変わる
値を変えてもidが変わらないならミュータブル
しか言えないんじゃない?
0621デフォルトの名無しさん (ワッチョイ d347-gj4s)
垢版 |
2022/11/02(水) 22:13:30.31ID:F9kh54e50
定義や実装で何がミュータブルかがころころ変わってはいけなくて、
pythonではどんな環境でも同じものがミュータブルであるべき

で、idが変わる/変わらないが環境依存ならば、idとミュータブルは関係ないことになる
0623デフォルトの名無しさん (ワントンキン MMd3-+Dbv)
垢版 |
2022/11/02(水) 22:20:05.72ID:yCeW62XuM
pythonの辞書ってc++のmapと違って内部でソートされてないからアクセス遅いっぽいんだよね
keysで取り出しても登録した順だし
文字列でも数値でもキーにできるからそういうものなのか
0627デフォルトの名無しさん (ワッチョイ 8b10-WE8j)
垢版 |
2022/11/02(水) 23:41:13.42ID:d827SSNz0
>>623
pythonの辞書は順番を保持することが仕様で規定されてる
0630デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/03(木) 00:45:24.21ID:9oLRzF140
>>624
C++のvectorとか、JavaのArrayListの典型的な実装だと、リアロケートが発生するときに倍ぐらいの領域を予め確保しておく、ってのが普通って読んだな
コードレベルで読んだ訳じゃないから確たるエビデンスがあるわけじゃないけど。
0631デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/03(木) 00:49:20.51ID:9oLRzF140
辞書は3.5だかそのぐらいで入れた順になるように仕様が決まったよね
それまではバラバラだったはず
あとソート済みが欲しいならsortedcollectionsがあるんじゃないの
Pythonでパフォーマンス気にするようなコード書いたことないから速くなるかは知らないが
パフォーマンス気になるならもう普通にpybind11よ
0635デフォルトの名無しさん (ワッチョイ 692c-3A4z)
垢版 |
2022/11/03(木) 17:39:13.22ID:JzcJhjtx0
isPrime(n: int):
__for i in range(2, n//2 + 1):
____if (not n%i):
______return 0
__return 1

numPrimes = 0

for i in range(2, 250001):
__numPrimes += isPrime(i)

print(numPrimes)

cとかだと5秒以下で終わると思うんですが
pythonではどうやって高速化できますか?
0640デフォルトの名無しさん (JP 0He5-3A4z)
垢版 |
2022/11/03(木) 18:58:51.96ID:Ppt07bQPH
>>637
言語間の速度差を埋めたいという文脈で
片方により効率的なアルゴリズム使えというのは筋が違うと思う
それやったら相手のCも早くなるやん
0648デフォルトの名無しさん (ワッチョイ c1b0-ee5o)
垢版 |
2022/11/04(金) 11:06:17.40ID:RgN4dMLC0
公式のドキュメント読むと
「pip は推奨されるインストーラ・プログラムです。 Python 3.4 からは、 Python バイナリ・インストーラに最初から付属するようになりました。」
とか見るけど、触る環境どれも最初からインストールされてた試しがなくて手動インストールばっかなんだが
0649デフォルトの名無しさん (ワッチョイ 7933-MTQz)
垢版 |
2022/11/04(金) 11:16:46.46ID:+Vzk9d850
>>648
どこのバイナリインストーラ使ってるの?
0651デフォルトの名無しさん (ワッチョイ 39e0-Sd0E)
垢版 |
2022/11/04(金) 11:26:42.20ID:iSP9CUI40
debianとかはOSのスクリプトを実行するための環境なので
最小限になるようパッケージが分かれている
不便にみえるけどユーザが使う場合はパッケージ外で導入した方が
特定のバージョンも好きにえらべてシンプル
0653デフォルトの名無しさん (ブーイモ MMdd-uk66)
垢版 |
2022/11/04(金) 19:16:21.95ID:7+yqrzWjM
>>648
python -m pipするのが安全やで(pipコマンドだと、複数バージョン入ってると意図したpythonに紐づいてないpipが実行される場合がある)
0656デフォルトの名無しさん (ワッチョイ f568-Cw2/)
垢版 |
2022/11/05(土) 21:51:22.37ID:MH3sXGrP0
>>655
無料のライブラリなんかありませんかね?無いんなら諦めます
0660デフォルトの名無しさん (ワッチョイ d204-ocuO)
垢版 |
2022/11/06(日) 18:38:56.63ID:hWJeexFN0
pythonでなんかかっこいいことがしたいです
でもやることが見つかりません。どうしたらいいですかね
今までポイントサイトをseleniumで自動化したりdiscordのbot作ったり動画編集自動化したりしてきたんですが先というか続きが見えません
0664デフォルトの名無しさん (ワッチョイ d204-ocuO)
垢版 |
2022/11/06(日) 21:07:15.95ID:hWJeexFN0
PyPIで良さそうなモジュール見つけるってどうやるの?
PyPI サイト見てtrend moduleみたいなの適当に選んで説明見ても詳しい使い方がわからない
0665デフォルトの名無しさん (ワッチョイ f666-GkOZ)
垢版 |
2022/11/06(日) 21:15:54.96ID:2BZA6H+N0
電子工作もそうだけど、環境は整いすぎに整ってて、やりたいことがあれば何でもすぐにできる
でもやりたいことが見つからない

さてはみんな環境を整えることを目的にしているな
0667デフォルトの名無しさん (アウアウウー Sacd-ocuO)
垢版 |
2022/11/07(月) 08:02:58.71ID:jFHCFA25a
その通りだけどやりたいことが見つからないんだわ
もしかすると勉強からの逃避のためにプログラミングという逃げ場を作りたいのかもしれない。やりたいことが自然と出てきたらやることにするよ
0676デフォルトの名無しさん (ワッチョイ f666-GkOZ)
垢版 |
2022/11/07(月) 15:51:46.76ID:a5k3bCTy0
AIだから教育が必須で、それなりにコストがかかる
こんなもんは公共事業で、どこかが代表してやって、コスト回収できたら無料化する
各国で自分のとこの言語についてやるのが筋だけど、
どうせ日本はやらないのでgoogleがやる
0677デフォルトの名無しさん (ワッチョイ f666-GkOZ)
垢版 |
2022/11/07(月) 16:22:49.11ID:a5k3bCTy0
似たようなので、音声からテキストへの変換も金かかる
あれが無料で出来たら過去の膨大な音声や動画の資料が検索したり分析可能になって、
文化が大きく前進するだろうに金がブレーキかけてる
国の事業としてやれば一人頭の負担なんて微々たるものなのに
0680デフォルトの名無しさん (ワッチョイ b18e-ly3j)
垢版 |
2022/11/07(月) 16:46:46.72ID:6QND4EcV0
>>675
Rubyオワコン
0686デフォルトの名無しさん (ワッチョイ 5e63-xcLn)
垢版 |
2022/11/08(火) 19:27:53.62ID:h+Zmgne00
有料と言ってもgoogleAPIってかなり安いと思うんだけど
手持ちの本数十冊OCRして1,000円いかなかった気がする
0687デフォルトの名無しさん (ワッチョイ b11d-rPWN)
垢版 |
2022/11/09(水) 17:03:12.36ID:a7tugATP0
某有名ゲーム会社で働いてる友人が、「Pythonではあまりクラスを使うべきではない。
それほど高度なプログラムでなければ関数を使えばいい」と言っていたんですが、
そうなんでしょうか?
皆さんの意見を聞かせて頂きたいです
0689デフォルトの名無しさん (ワッチョイ 1997-OSgl)
垢版 |
2022/11/09(水) 17:30:19.69ID:PaG6ZUsK0
Javaのようになんでもかんでもクラスを作る感じじゃないというのは事実。
でも、dataclassとかnamedtupleとかは使うかな。
とはいえやることによると思う。
0691デフォルトの名無しさん (ワントンキン MM62-76so)
垢版 |
2022/11/09(水) 18:12:18.95ID:uDSXzENKM
pythonはメンバ変数にself必須なのがダルい
メインプログラムまでクラス化する必要はないと思う
規模が小さければモジュール変数をグローバル変数のように使うのが便利
vscodeならインテリセンス利くし
0700デフォルトの名無しさん (ワッチョイ 7247-GkOZ)
垢版 |
2022/11/09(水) 21:30:42.42ID:F89FAkjE0
それは他に影響しないというだけで、グローバル変数の欠点は何も解決しない
作って使ってすぐ捨てるならいいけど、保守が必要なら時間かけてシンプルにしとかないと
0702デフォルトの名無しさん (ワントンキン MM62-76so)
垢版 |
2022/11/09(水) 21:57:03.34ID:uDSXzENKM
グローバル変数はプログラム全体を通した設定値とかに使うもんじゃない?
それこそメインプログラムにとってのselfよ
変に引数取りまくるより可読性高いと思う
規模にもよるんだろうけど
0705デフォルトの名無しさん (ワッチョイ 7247-GkOZ)
垢版 |
2022/11/09(水) 22:13:24.86ID:F89FAkjE0
関数の中に下請け関数があって、
なんかごちゃごちゃしてきたからリファクタリングだと外に出したらスコープから外れたので、
じゃあみんなグローバル化したれ、みたいにglobal付けて誤魔化す
0707デフォルトの名無しさん (ワッチョイ 927e-THRA)
垢版 |
2022/11/09(水) 23:03:08.26ID:a3eCQ+jX0
>>687
どうせ、いたずらにclassを多用したゴミトランプゲームを
見せたんだろ?いつまでも練習だからって言って、設計もしないで
ゴミコードを見せ続けるから嫌われかけてるんだよ。
0708デフォルトの名無しさん (ワッチョイ 5ecf-o+MF)
垢版 |
2022/11/10(木) 00:21:13.04ID:8bOle1Do0
クラス化するのは、言語のタイプやプロジェクトの規模ではなくて
データ同士の相関を元に、見通しをよくすることが目的だと思う
あるいは自分用ライブラリとしてカプセル化しておきたいとか
そういう話を置いて、やらない方がいいレベルの問題があるのかw
0712687 (ワッチョイ b11d-Cw2/)
垢版 |
2022/11/10(木) 00:32:26.74ID:ofaAiG0L0
レスしてくれた皆さんありがとうございます
参考にさせて頂きたいと思います

>>689
CUIの簡単なカードゲームではどうでしょうか?

>>693
失礼しました
曰く「クラスを下手に使わない方がコードが無駄に複雑にならなくてよい」
からだそうです

>>694
まさにそんな感じです

>>698
ちょっと彼に悪いかなって…

>>707
ゴミときたもんだ
彼の人柄はそんな感じじゃないよ
0720デフォルトの名無しさん (アウアウウー Sacd-obsI)
垢版 |
2022/11/10(木) 13:50:13.84ID:99QPf7Vaa
>>716
> 関数とクラス両方使えるのがpythonのメリットなのだから、常に適切な方を選べってことじゃないかと。
なら初めからそう言えや
まあそう言われたら適切な方の決め方について小一時間は問い詰めたいけどなw
0724デフォルトの名無しさん (ブーイモ MMd5-OSgl)
垢版 |
2022/11/10(木) 17:38:31.76ID:aw2UCTg8M
>>712
カードゲームならカードクラスは作ったほうがよさそう。
あとはカードゲームのルールによる。
0726デフォルトの名無しさん (ワッチョイ 655f-nsye)
垢版 |
2022/11/10(木) 18:34:12.90ID:RApG3JqD0
カードクラス作ってもいいけど、同じカードが存在しない、記号4つと数字1〜13の組み合わせの
ものにクラスがいちいちいるかな。
カードクラスはカード1枚を表して、なにができればいいんだ?

記号クラスがあって、各記号クラスがあって、ナンバークラスがあって、
is_MarkMatchとかis_NumberMatchとかもってんの?
idとprintがあればいいのかな。まあいいけど、そんだけのために
classいちいち用意するのめんどくない?
複数枚のカードを扱うcardsクラスなのかな?機能はいろいろ持てそうだけど
ゲーム固有すぎてどうなのかな?
0729デフォルトの名無しさん (ワッチョイ 1997-OSgl)
垢版 |
2022/11/10(木) 19:47:31.93ID:eS5awfmL0
>>725
689だが、トランプはクラスを作った方が(少なくともnamedtuple,dataclass)便利だと思うぞ
>>726
記号クラス、番号クラスなんて作らない
記号はenum、番号はそのまま1~13でいい
が、どの記号が黒だ赤だ、どの番号が絵柄か(JQKA)
みたいなのはたとえインスタンスが一個でもメソッドになってた方が便利だと思うけどなあ。

カードは内部表現とUI上の表現が異なるのが自然だし、そういう意味でもクラスにしておくのは悪くないと思うが

クラスにしすぎてもしょうがないというのは、ゲームのルールをクラスにして共通のインタフェース持たせて、バリエーションを切り替えられるようにしても大抵は仕方ないみたいなことだよ
もちろん、どんなゲームシステムを作るかによるし、ルールを共通インタフェースで入れ替えられるようにするメリットがある場合もあるけど
0733デフォルトの名無しさん (ワッチョイ b12c-rDMU)
垢版 |
2022/11/10(木) 22:35:47.17ID:SvDTIviz0
カード型のインスタンスを生成するデッキクラスを作りたいやん

deck.suffle()
hands = deck.draw(5)

みたいなさあ
あとは各ゲームで処理つくろ
0735687 (ワッチョイ b11d-rPWN)
垢版 |
2022/11/10(木) 23:28:06.08ID:ofaAiG0L0
多くのレスを頂き、ありがたく思います
ちょっと自己顕示欲が強い気もしますが、俺のGitHubを公開させて頂くので、
よろしければご覧下さい
https://github.com/masa-gh/practice
のblackjack_3.pyがそれです
これでもクラス使わないで書けるのかな…
0739デフォルトの名無しさん (ワッチョイ 5e10-420S)
垢版 |
2022/11/11(金) 00:52:49.95ID:5ErmYwLs0
何のためにでっかい関数の中にクラス作るのか分からん
この設計センスなら友人のアドバイスは正しいな
0741687 (ワッチョイ b11d-rPWN)
垢版 |
2022/11/11(金) 01:14:49.41ID:9Wk/PRlY0
レスありがとうございます

>>708
クラス使った方が見通し良くなりますよね?
スッキリJavaにもそう書いてありました(Pythonの本ではないですが)

>>709
複雑にならない方がいいからだそうです

>>710
ええ、ですので皆さんの意見をお聞きしたんです

>>711
うーん、明らかにプロと思われる方の書き込みもありますし、
信じられるレスはあると思います

>>716
ただ彼の主張では、なるべくクラスは使うな、ということでした
Javaを独習した経験がある俺からすると、少し疑問符が付くのです
0743687 (ワッチョイ b11d-rPWN)
垢版 |
2022/11/11(金) 01:28:18.01ID:9Wk/PRlY0
>>724
そうですよね
カードのクラス作りました

>>726
複数枚のカードを持つCardクラスです
ブラックジャックなので、A・J・Q・Kの値は別に決める必要があります

>>727
可読性は重視したいです

>>736
そう言って頂けると大変ありがたいです
やっぱりそこは1つの関数にまとめた方がいいんですね

>>737-740
それも友人に、グローバル変数は少なければ少ないほどいい、と言われたのを
受けてのことです
0744デフォルトの名無しさん (ワッチョイ 515f-r/4M)
垢版 |
2022/11/11(金) 01:39:45.03ID:tK9Svk7P0
>>735
ざっと見た感じ、そりゃ色々言われるわ
クラス云々言ってるのに、blackjackっていうデカい関数の中にクラス切ってる時点で吹いたわ

あとクラスの役割分担というか、所属してる関数もおかしく感じるわ
プレイヤークラスっていう名前なのに、にルール関係のスコア計算、バースト判定とかが入ってるし
それこそblackjackのルールを管理をするクラスを作る方が自然だべ

あともうし自分で書くとしたら、ルールクラスにis_winっていう関数作って、そこで勝利判定してtrue/falseで返すわ
最後に全パターンで人間/CPUに対して勝利判定かけてるけど、参加プレイヤー/CPUが増えた時の勝利判定の実装とか
これベースだと面倒だろうなって思った
0745デフォルトの名無しさん (ワッチョイ 515f-r/4M)
垢版 |
2022/11/11(金) 01:43:33.89ID:tK9Svk7P0
>>743
>グローバル変数は少なければ少ないほどいい
これはまず変数のスコープは狭い方が良い、っていう話だぞ
(グローバル変数だとそれこそスコープが広くてどこで書き変わるのかが不明瞭になるから、なるべく使うなって言われてる)
バカデカい関数を作るって何の解決にもなってねえwwwwwww
0750デフォルトの名無しさん (ワッチョイ 7247-GkOZ)
垢版 |
2022/11/11(金) 09:56:03.89ID:gNt5qX/T0
でかい関数はあれもやってこれもやってになってるから、
それを機能毎に分割すればいいだけ
1箇所からしか呼ばれない関数がいくつもできるけど、それは問題ない

うまく作ってあれば、関数の戻り値を次の関数に渡すだけ、みたいなシンプルな構造に自然となる
それぞれの機能が変数をいろいろ共有していて切り分けられなかったら、元々の書き方が悪い
0751デフォルトの名無しさん (ワッチョイ 927e-THRA)
垢版 |
2022/11/11(金) 10:26:37.58ID:XH1qJoq+0
pythonではクラスをあまり作らないほうがいい、じゃなくて
お前にクラスは百年早い、って言いたかったんだろその友人は。
碌に関数も作れないのだからクラスなんて無用の長物。
0756デフォルトの名無しさん (ワッチョイ 7247-GkOZ)
垢版 |
2022/11/11(金) 11:59:14.38ID:gNt5qX/T0
スクレイピングはそのうち廃れる気がする
元データがあって人間用に加工して表示したものをまた元データに戻さなくても、
最初から元データで公開した方がお互い楽なことに気づき始めた
0757デフォルトの名無しさん (ワッチョイ 5ecf-o+MF)
垢版 |
2022/11/11(金) 12:00:41.38ID:L/uUC/Rw0
C++でキー処理が数百行で、しかもファンクションキー毎に少しづつ違う
という構成のものを改修させれて辟易したことある
もしや、行数で成果が評価される現場だったのか
0759デフォルトの名無しさん (オッペケ Sr79-+MYa)
垢版 |
2022/11/11(金) 13:20:52.45ID:wT5HNNmtr
Python勉強してるけどどうやって初心者の粋を超えたらいいのかが分からない
何か作りたいけどその何かが思い浮かばないし
自動で巡回してエロビDLするとか電子書籍自動でスクショとかできるんだっけ?
0761デフォルトの名無しさん (ワッチョイ 5e42-E6qO)
垢版 |
2022/11/11(金) 14:22:12.06ID:Pyb1B8zp0
>>759
早速思い浮かんでるじゃん
誰かができないと言うからやらないというなら何の勉強にもならない
明確な目的が無く勉強自体が目的なら機能しないゴミしか作れなくても意味があるし思い浮かんだもの全部作ればいい
0762デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:23:36.91ID:JQ5LhQOs0
>>756
もしかして、APIが存在しない世界から来た方ですか?
0763デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:29:46.62ID:JQ5LhQOs0
別に既にあるものでも構わないから、何か作りたいというモチベーションがある内に色んなものを作った方がいい
独学は特に大事
0764デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:34:12.48ID:JQ5LhQOs0
途中で奥ちゃった
そしたら、次に何か新しいもの作りたくなった時に何が足りないか自分で調べられるぐらいにはなってると思う
0766デフォルトの名無しさん (ワッチョイ 1202-o+MF)
垢版 |
2022/11/11(金) 19:48:45.92ID:acI+Bjnd0
クラスを設計するのはものすごく難しい
作り始めないとわからないことも多いし
途中で仕様が変わったりしたら
簡単に破綻する
大きなプロジェクトでは
途中でクラス構成を変えることは
困難なので
しばしば大変なことになる
0767デフォルトの名無しさん (テテンテンテン MM96-xcLn)
垢版 |
2022/11/11(金) 21:01:39.50ID:BuWtLPbxM
>>759
この前も同じこと言ってる人がいたよ
作りたいものがないのでなんかアイディアないですかって

まず、何のためにPythonを勉強しているのか聞きたい
普通は作りたいものがあったり、仕事だから、課題だからという
動機があるはずなんだ
動機もなく身に着けられるものじゃないよ。プログラミングは一応専門技能だから
0775デフォルトの名無しさん (ワッチョイ 2389-UXd1)
垢版 |
2022/11/12(土) 11:00:15.35ID:jZf8/3In0
質問です。
これをヘッドレスモードで動かしたいのですがどうするといいでしょうか?

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browesr = webdriver.Chrome(ChromeDriverManager().install())
0776デフォルトの名無しさん (ワッチョイ 2389-UXd1)
垢版 |
2022/11/12(土) 11:41:37.67ID:jZf8/3In0
すいません。
解決しました。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
browesr = webdriver.Chrome(ChromeDriverManager().install(), options=options)
browesr.quit()
0783デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/12(土) 15:58:01.40ID:pkT2sKDg0
>>756
廃れないよ。Webって広告で成り立っている基本人間向けの情報発信ツールなんだから、人間向けのデータ(文章とかね)のスクレイピングは依然として残る。
APIは有料というのは広告収入につながらないから割と当たり前の話で。
利益を目的としないデータ公開はオープンデータ化していくだろうけれど、そういうのって政府や自治体のデータ公開、大学などぐらいしか基本的にはないだろう。
0788デフォルトの名無しさん
垢版 |
2022/11/13(日) 19:56:00.79ID:S7gZHHW/
_max=7
_min=3
a=2
if a>_max:
 a=_max
elif a<_min:
 a=_min
print(a)

これってもっとスマートに書けませんでしたっけ
0789デフォルトの名無しさん
垢版 |
2022/11/13(日) 20:10:07.19ID:S7gZHHW/
ちなみに0を含む自然数で
range(_min,_max,1)
です
これの範囲外は判定できるのですが
_minより小さく外したのか、_maxより大きく外したのか
って一行で短く書けなかったかな、と。
記憶違いかもしれません、無かったような気がしてきました
0790デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/13(日) 20:12:10.16ID:cgKyROyF0
a=max(min(a,_max),_min)
0791デフォルトの名無しさん
垢版 |
2022/11/13(日) 20:16:44.58ID:S7gZHHW/
>>790
できました!!
そうですこれです!

_max=7
_min=3
for i in range(10):
 print(i,max(min(i,_max),_min))

ありがとうございます!!
0795デフォルトの名無しさん (ワッチョイ 6347-gR3A)
垢版 |
2022/11/13(日) 21:04:49.96ID:xH4HHaxN0
やりたいことをまず自然言語で書く
minとmaxの範囲内ならそのまま出力
範囲外ならばminとmaxでガードする

これだけの情報量があるので、コードがそれなりの長さになって当然
0798デフォルトの名無しさん (ブーイモ MM69-AMkR)
垢版 |
2022/11/13(日) 22:58:00.99ID:6O/r8caVM
何がコードゴルフかはジャンルにもよるよなあ。シェーダーなんかだとminmaxみたいなのは常套句みたいなものだし、
pythonの内包表記もちょっと凝り出すとコードゴルフ的になる。コーディングガイドラインがあればいいけどね。
0800デフォルトの名無しさん (ブーイモ MM69-AMkR)
垢版 |
2022/11/13(日) 23:47:29.33ID:6O/r8caVM
まあ、minmaxの良くないところは、慌てて順番反転させたりする事故が起きると何もクリップしてくれなくなるところなんだけど(良く使うなら関数化しておくべき)
とはいえ、minmax的なのNGって、関数型言語全否定に近いものがあると思うんで、その立場でいいのかは考えるべきだと思うけど。
もちろん手続き型メインのPython使ってるんだからPythonではそんなのお門違いだという意見も否定はしないけど
0802デフォルトの名無しさん (ワッチョイ ad2c-WM47)
垢版 |
2022/11/14(月) 02:35:12.38ID:Msnzn9MH0
初コメです。質問させてください。
ウィジェットに、押すとnotepad.exeを起動するボタンを作ったのですが、起動したテキストに文字を書き込む(テンプレート)ボタンを作りたいのですが、どのようにすれば良いでしょうか…
0804デフォルトの名無しさん (ワッチョイ 6347-gR3A)
垢版 |
2022/11/14(月) 08:17:37.42ID:z4y/4erZ0
AutoItとかAutoHotKeyとかキーボードやマウスをプログラムから操作して
自動化するツールはいろいろあるけど、
どれが最強なのか今ひとつ判らない

簡単にする為に出来ることを減らしていたり、
いろいろできるけど言語仕様が原始的すぎたり
pythonと同じ書き方ができて出来ないことがないのが理想
0808デフォルトの名無しさん (ガックシ 0669-AMkR)
垢版 |
2022/11/14(月) 15:23:33.25ID:yiG7YfVR6
WindowsをVMに入れるか、リモートデスクトップ複数人ログイン対応のWindowsならフォアグラウンドでも実質バックグラウンドにできるから困らなさそうだ
Win32APIを直で叩きまくればバックグラウンドでも動かせるような気がしないでもないけど、イベント処理のメインループが回るかは謎だね。全然詳しくないや。
0815デフォルトの名無しさん (ワッチョイ 2379-zDZ1)
垢版 |
2022/11/14(月) 22:25:56.00ID:SUeRZblV0
import ctypes
SendMessage = ctypes.windll.user32.SendMessageW
hWnd = ごにょごにょ
pos = (y << 16) + x
SendMessage(hWnd, 513, 0, pos) # WM_LBUTTONDOWN
SendMessage(hWnd, 514, 0, pos) # WM_LBUTTONUP

>>806
こんな感じかな
どのみち、どう処理されるかは相手次第になってしまうけど
背面とか最小化とか、最悪トップに出てきたり
0816デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/14(月) 22:50:26.22ID:dRHiUVHI0
>>813
それは自動整形機能の仕事で人間が気遣うことではない
0817デフォルトの名無しさん (スップ Sd03-WM47)
垢版 |
2022/11/14(月) 23:20:28.77ID:XZXiqJkqd
>>803
pyautoguiで一歩進みました!ありがとうございます!
0820デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/15(火) 01:57:43.67ID:7joAI/8k0
>>818
それは、+=や、f.write(','.join([若干長い内包表記]))が許されるかみたいな話とも繋がっていて、
ぶっちゃけ何度も出て来ればこんな簡単なのは1行にしたくなると思うよ
内包表記だって1行で書きたいから書くって側面もあるわけじゃない。
0825デフォルトの名無しさん (ワッチョイ 6347-gR3A)
垢版 |
2022/11/15(火) 07:58:14.56ID:gBqAZwZY0
行数というよりは、中間の変数を登場させたくない
合体させるにしても、後ろに繋げていく方式とネストを深くしていく方式があって、
ネストだとどうしても可読性を損なう
0831デフォルトの名無しさん (ガックシ 0669-AMkR)
垢版 |
2022/11/15(火) 11:49:44.03ID:Hm3rex5D6
>>827
処理時間がめちゃ長くて100倍速くしたいならそもそもCythonとか考える
処理時間ちょっとイラッとするぐらいだったら内包表記で倍速くなれば十分なので内包表記止まりかな
0835デフォルトの名無しさん (アウアウウー Saa9-hD5E)
垢版 |
2022/11/15(火) 15:38:19.98ID:0yW3pQONa
Pythonやるならまず「多重継承」な!

なぜ多重継承かというと、自然言語処理において語句の意味は「文脈」によって異なるからだ!

随意筋  不随意筋
  ↖   ↗
   チンポ

チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650

https://mobile.twitter.com/daikidomon/status/1385368820240437248

土門大貴/Daiki Domon
@daikidomon
Pythonの多重継承がわかりづらい。
継承クラスの左のクラス名を指定とかあたおか。
https://twitter.com/5chan_nel (5ch newer account)
0836デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/15(火) 16:33:43.21ID:QGmQMBHUa
>>827
30分かかるループの中心で何度も使われてたら
倍速になったら15分短縮出来るし
100分の1なら数秒で終わるんだが
0837デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/15(火) 16:35:27.51ID:QGmQMBHUa
>>828
内包表記: あり
+=: あり
lambda: あり

三項演算子: お前は遺憾
0842デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/15(火) 22:05:16.10ID:1JRqHGzu0
並びが
(Trueの場合) (条件) (Falseの場合)
になるのが気に食わん
0845デフォルトの名無しさん (ワッチョイ 6347-gR3A)
垢版 |
2022/11/15(火) 22:47:36.70ID:gBqAZwZY0
if <condition> then <val1> else <val2>
も英語として不自然さは無い
それを、?と:にするのは無理がある

冒頭からifで始まるとif文と区別が付かないので、少し倒置して、
<val1> if <condition> else <val2>
も一応文として読める
C言語よりはまし
0847デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/15(火) 23:05:11.16ID:1JRqHGzu0
プログラミング言語に英文的な自然さとか求めて無いんだわ
読む順と評価順が入れ替わってんのがセンス無いと思う
0852デフォルトの名無しさん (ワッチョイ 2302-gPc0)
垢版 |
2022/11/16(水) 02:18:10.64ID:+BRGBknF0
英語だと if が後置されることもあるからなあ
内包表現は数学の集合の書き方からすれば普通
ラムダは lisp のラムダ関数から考えれば普通

一応理屈はあるけど
0853デフォルトの名無しさん (ワッチョイ 0509-BvCT)
垢版 |
2022/11/16(水) 06:47:02.50ID:hZtfMd7O0
三項演算子だけじゃなくて、Perlみたいに後置ifを実装してれば違和感ないんだろうね

(Trueの場合) if (条件)

Falseの場合はなにもしないけど、Pythonだとpassがあるから三項演算子だけで十分って判断かな
0863デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/16(水) 17:37:03.73ID:z+sJwdsYa
>>846
uby
0864デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/16(水) 17:39:14.54ID:z+sJwdsYa
>>845
findall で解決
0865デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/16(水) 17:39:41.33ID:z+sJwdsYa
アンカ間違ってた >>854
0867デフォルトの名無しさん (ワッチョイ 237e-AMcT)
垢版 |
2022/11/17(木) 17:18:01.85ID:AwlB4ADs0
そりゃ、想定が間違えているから、以外になんか考えられるのかい?
何を想定していてどうなったかも説明しないで、想定と違う!って
言われてもね、人に説明する気も無けりゃ教えを乞う態度でもないし
何したいの?日記ならよそでやってくれる?
0876デフォルトの名無しさん (ワッチョイ c533-BvCT)
垢版 |
2022/11/17(木) 21:45:06.27ID:SeoZPm6s0
>>1>>866
> ★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
>   ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
> ttps://techiedelight.com/compiler/  Run Code機能あり。
> ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
> ttp://pastebin.com/     まずまずシンプル。
> ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
0878デフォルトの名無しさん (US 0Ha3-XgLS)
垢版 |
2022/11/17(木) 23:08:46.05ID:kmneQuTyH
>>876
>デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
一回 python を選択すれば、あとはずっと選択したpythonのままになりますよ
0881デフォルトの名無しさん (ワッチョイ 6347-gR3A)
垢版 |
2022/11/17(木) 23:18:26.59ID:HF5V3LeY0
外部を利用する根拠がインデントの崩壊だけなら、崩壊していないのだから不要
なるべく単体で完結していた方がいい

コードが長いとか、修正後のコードと比較したいとかになると、
さすがに掲示板の機能を超える
0884デフォルトの名無しさん (ブーイモ MM4b-5kBA)
垢版 |
2022/11/18(金) 01:00:39.04ID:pHizXfulM
短いコードなら直接貼ったほうが断然いいわな
0885デフォルトの名無しさん (ワッチョイ ad2c-WM47)
垢版 |
2022/11/18(金) 01:14:15.49ID:E2GzXrNb0
日付(○年○月○日 ○時○分)を抽出してクリップボードにコピーするのってどんな感じでやればいいですかね…
0888デフォルトの名無しさん (ワッチョイ 154f-FFna)
垢版 |
2022/11/18(金) 09:55:43.93ID:Wj1K/ZC10
例えば、Ruby でクリップボードを使うなら、

あらかじめ、クリップボードへ「 あい 」を入れておいてから、
以下のスクリプトを実行すると、
文字列の前後にある、空白類が削除されて「あい」となる

ただし、RubyはUTF-8 だから、Windows のCP932 と変換する必要がある

# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
0889デフォルトの名無しさん (ワントンキン MMa3-OAfI)
垢版 |
2022/11/18(金) 11:23:40.68ID:P6oHPIQ5M
ググったらpyperclipって便利なモジュールがあるらしいよ
前レスから予想するにウィジェットの日付けをメモ帳に貼り付ける感じかな
ウィジェットからのデータ取得はウィジェット作成時にStringVarを関連付けてget,setで取得すれば良い
ログを残すならファイル入出力でやるべきではと思うけど
0892デフォルトの名無しさん (ワッチョイ 4b5f-4ilx)
垢版 |
2022/11/19(土) 00:25:37.14ID:GBhwsA7a0
すみません、質問いいですか?
0895デフォルトの名無しさん (ワッチョイ 0610-zeL/)
垢版 |
2022/11/19(土) 11:38:44.50ID:N2zY4TUb0
千葉県民に喧嘩売ってんのかコラ
0896デフォルトの名無しさん (ワッチョイ 5701-kfYZ)
垢版 |
2022/11/19(土) 12:30:11.97ID:o7Lf802R0
千葉県は恐ろしい田舎なうえ、今もドンドン衰退してる最中。
でも、関東以外の人はそんなこと知らないから、東京の一部みたいな顔できるよ。
0898デフォルトの名無しさん (ワッチョイ 5701-kfYZ)
垢版 |
2022/11/19(土) 12:43:32.19ID:o7Lf802R0
逆に考えることもできるよ。
電車一本で東京に出れる田舎って最強。
みたいな。
0899デフォルトの名無しさん (JP 0H43-NYGE)
垢版 |
2022/11/19(土) 13:00:44.68ID:A7QHTxNqH
ぶぼぼ
0901デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/19(土) 16:23:26.89ID:F8GIHVyHa
久里浜も上総一ノ宮も似たようなもんやろ
0902デフォルトの名無しさん (ワッチョイ ef14-kfYZ)
垢版 |
2022/11/20(日) 02:18:52.83ID:Wzaj0Q6e0
すみません、python超初心者なのですが
ttps://github.com/ihopenot/LpkUnpackerのpython LpkUnpacker.py /path/to/lpk outputdir /path/to/config.jsonのコードを使いたいのですが、何回やっても

python LpkUnpacker.py "C:\11302997995514316369.lpk" "C:\aaaa" "C:\config.json"
^^^^^^^^^^^
SyntaxError: invalid syntaxのエラーが出てできません。

どうかご教授の程よろしくお願いいたしますm(__)m
0907デフォルトの名無しさん (ワッチョイ 6290-kfYZ)
垢版 |
2022/11/20(日) 12:40:41.69ID:zjEDBX2J0
うろ覚えで関数名だけわかってるような状態で
関数の使い方がよくわからなくなることがある
たまにドットが前に来るやつあるじゃん

kansu(引数)
.kansu(引数)
aaa.kansu()

モジュールがどうとかいう話なんだろうけど
こういうのみんなどうやって覚えてるの?
0913デフォルトの名無しさん (ワッチョイ b684-qpCx)
垢版 |
2022/11/20(日) 16:06:56.79ID:V6m7XEpp0
https://mobile.twitter.com/yukiya285/status/1594225137171451904

ゆきや@創薬エンジニア
@yukiya285
機械学習の分野でPythonがよく使われる理由は、ざっくり言ってしまうと、理論の根底にある数式が理解できていなくても機械学習ができるから、ということになります。理論の理解は後回しにして、とりあえずいろいろやってみる、ということができるのがPythonということになります。
https://twitter.com/5chan_nel (5ch newer account)
0915デフォルトの名無しさん (オッペケ Srdf-zeL/)
垢版 |
2022/11/20(日) 17:32:04.11ID:DbVvLhq7r
理由が理由になってなくね?
NumPyやsklearnのようなお手軽ライブラリが充実してることが理由じゃないのか
0927デフォルトの名無しさん (ワッチョイ 62ad-nsJM)
垢版 |
2022/11/21(月) 00:54:44.72ID:ZuT5szBi0
>>916
おめーらホント視野の狭いクズばっかだな

最適な言語を使うのは
プログラマの基本中の基本だぞ?

それとスプリプト言語使う仕事なんてのは
どんなバカでも出来る仕事であって、
それだからこそ、プログラマはスプリプト言語を使う機会は少ないのだよ。

おめーのようなバカは
プログラマ気取りの
ただのコーダーだw
半島ヘかえれよチョソ!
0928デフォルトの名無しさん (ワッチョイ a30c-7h5B)
垢版 |
2022/11/21(月) 01:09:57.53ID:Q4I6Hwd50
>>926
ライブラリの話からなんでコンパイラが関係してくるんだよ
それとコンパイラってソース公開されてたっけ?
読めるかどうか自信ないけど、公開されてんなら読んでみたい
0929デフォルトの名無しさん (ワッチョイ e201-IwB9)
垢版 |
2022/11/21(月) 01:13:37.10ID:KDDXOYAA0
>>928
> それとコンパイラってソース公開されてたっけ?
マジで言ってるのか?
そんなレベルでよく
> もしかしてライブラリに使われてるcのソース読まない人たちばかりなのw
なんて煽れるもんだな
0931デフォルトの名無しさん (ワッチョイ 0610-zeL/)
垢版 |
2022/11/21(月) 01:23:32.91ID:fZMCNRrt0
>>928
他人の書いたコード任せというのはコンパイラを使うことにも当てはまるからだろ
0933デフォルトの名無しさん (ワッチョイ cf5f-pjEt)
垢版 |
2022/11/21(月) 01:57:19.90ID:mQv3uxAK0
たまにPythonの実装(C言語)を読めるのが正義、みたいに思ってるやつおるけど
大抵の場合は読む必要は無いし、勉強がてら読むか、
ライブラリ使ってて気になる挙動(不具合の可能性があるやつ)に遭遇した時に
実装確認するぐらいじゃね?
0939デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/21(月) 14:37:06.50ID:LzW8OiBha
pythonのC実装ってPyObject*観たらおしまいやで
0942デフォルトの名無しさん (ワッチョイ 62da-fSBT)
垢版 |
2022/11/21(月) 17:55:36.53ID:QoaHhDq70
a = [0.2,0.6,0.1,0.3,0.9]
b = ['A','B',C''D,'',E'']
とあって、aを0.5以上ならTrue、違えばFalesの真偽値に変えて、
bからTrueのところだけ抜き出すにはどのように書けば良いですか?
0945デフォルトの名無しさん (ワッチョイ 0610-zeL/)
垢版 |
2022/11/21(月) 19:45:08.40ID:fZMCNRrt0
>>942
numpy使えば直感的にできる
a = np.array([0.2,0.6,0.1,0.3,0.9])
b = np.array(['A','B',C''D,'',E''])
print(b[a>=0.5])
0948デフォルトの名無しさん (ワッチョイ 12bd-5AI7)
垢版 |
2022/11/21(月) 22:57:27.68ID:oF3OxSUK0
b = b'\xfc\xfc\x8a\xbf\x8e\x9a'
j = b.decode('sjis', 'ignore')
print(j)
↑これと同じ書き方をC/C++もしくはGO言語で教えて下さい
ようは、変換できないバイトは読み飛ばして残りを変換してくれればいいだけなんですけど、
調べても分かりませんでした。
0950デフォルトの名無しさん (ワッチョイ 4b02-kiOm)
垢版 |
2022/11/22(火) 00:11:07.60ID:Bp+X7OPb0
スクリプト言語はマルチプラットフォームで高度な機能を使えるのが強みよね
windowsならMutiByteToWideCharみたいなAPIがあったはず
サクラエディタのソースコードみると良いかも
0952デフォルトの名無しさん (ワッチョイ 12bd-5AI7)
垢版 |
2022/11/22(火) 00:42:24.43ID:slO7/hzp0
みなさま
ありがとうございます。
エディタのソースコード、確かによさそうですね。
バイナリエディタとか凄い重いファイルでも一瞬で開くので実装参考にしたいですね。
理解できるか分かりませんが・・。
勉強してみます。
0954デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/22(火) 10:09:35.89ID:E0zMoWY7a
ICUって息してる?
0961959 (ワッチョイ ef4f-kfYZ)
垢版 |
2022/11/22(火) 13:19:03.79ID:p3XTSB6d0
Ruby では、UTF-8 がデフォルトなので、
そのバイナリをCP932 として入力・解釈し、CP932として変換・出力すると、
解釈できない文字はデフォルトで、? に置き換えられる

bin = "\xfc\xfc\x8a\xbf\x8e\x9a"
p bin.encoding #=> <Encoding:UTF-8>

bin.encode!( 'CP932', 'CP932', :invalid => :replace )
p bin.encoding #=> <Encoding:Windows-31J>

p bin #=> "\x{FCFC}\x{8ABF}\x{8E9A}"
puts bin #=> �漢字
0962デフォルトの名無しさん (ワッチョイ ef8e-P3Qh)
垢版 |
2022/11/22(火) 22:26:00.01ID:ntrRKrLv0
Pythonにボロクソに負けて悔しいRubyキチガイ
Rubyはもう終わってるから出てくるなよ
0964デフォルトの名無しさん (ワッチョイ 4e66-QT9j)
垢版 |
2022/11/22(火) 22:43:14.72ID:9/2xLKFJ0
Ruby on Railsは今でも生き残ってるのでrubyも使われていると言えなくもない
そんなこと言ったら、perlだって今でもいろんな所で使われ続けている

それらは今更新しいもので置き換えるコストもかけてられないし、
今後も使い続けられるだろうけど、新規で何かを作ろうとは思わない
単に保守され続けるだけ
0969デフォルトの名無しさん (ワッチョイ ef8e-P3Qh)
垢版 |
2022/11/22(火) 23:17:45.60ID:ntrRKrLv0
英語
0976デフォルトの名無しさん (ワッチョイ c363-TaOI)
垢版 |
2022/11/22(火) 23:42:27.60ID:KtDRh9XQ0
開発現場で使われている言語で評価するか、
稼働しているシステム上の実行イメージ数で評価するか、
稼働でみると意外にCobolやFortranが浮上してきたりするかも
ファームまで含めればC言語なのかな?(アセンブラは除くとして)
0985デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/23(水) 11:05:03.50ID:DxhXFxCJa
>>964
ほんそれ

>>965
だから新規でわざわざ覚える必要無い言語のphaseになってるって話
0987デフォルトの名無しさん (ワッチョイ a361-Os4M)
垢版 |
2022/11/24(木) 09:39:50.37ID:mTxkC9sF0
l = [0, 1 ,2 ,5, 7]
n = 4

ln = [0, 1, 2, 4, 5, 7]

数値比較をして、prev <= x <= next位置に挿入する
myInset()関数作りたいんだけど、ループと代入連打して泥臭く書いてくしかないですか?

ちなみにリストは全部int型、重複あり、ソート済み
入力値もint型、既存要素と同値ありです
0991デフォルトの名無しさん (ワッチョイ ef33-mBx9)
垢版 |
2022/11/24(木) 09:50:39.01ID:A6xfpKBe0
れすつくんはやすぎん?
0995デフォルトの名無しさん (JP 0Haf-Os4M)
垢版 |
2022/11/24(木) 10:31:16.11ID:un5pV6iGH
一見面白そうな話かと思ったが普通にappend後ソートしかなかった
0996デフォルトの名無しさん (ワッチョイ ef33-stRS)
垢版 |
2022/11/24(木) 10:55:43.29ID:A6xfpKBe0
こういう時は大抵、insort_leftみたいに専用のモジュール使った方がだいぶ早い
0997デフォルトの名無しさん (オッペケ Srdf-zeL/)
垢版 |
2022/11/24(木) 16:38:02.61ID:svdfhu67r
append後ソートは流石に無駄が多すぎ
上で答え出てるが木構造ベースのアルゴリズム使えばO(logN)で挿入出来る
0999デフォルトの名無しさん (ブーイモ MM02-p73K)
垢版 |
2022/11/24(木) 18:42:35.06ID:w9TFu4+VM
速度に困りそうなときはbisect、一発動けばいいときはsortで済ませちゃうかもな
bisectは標準モジュールだし、辞書でC++のmapのlower_bound/upper_bound相当のことをしたいときにも使えるから知っていて損はないと思うけどね
本当に速度を追求するなら、Pure PythonじゃないB treeとかを使いたくなるよね。
めんどくささは速度を追求するほど上がっていくから確かにどの程度速度で困っているかによってベストの実装は変わるとは思うけど。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 70日 2時間 26分 2秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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