22/09/15 18:52:26.67 VqLViKoX0.net
!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る「横着」禁止)
URLリンク(techiedelight.com) Run Code機能あり。
URLリンク(ideone.com) デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
URLリンク(pastebin.com) まずまずシンプル。
URLリンク(dpaste.com) とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト URLリンク(www.python.org)
◇Pythonドキュメント URLリンク(docs.python.org)
◇まとめwiki URLリンク(python.rdy.jp)
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
スレリンク(tech板)
〇前スレ〇
Pythonのお勉強 Part67
スレリンク(tech板)
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2:デフォルトの名無しさん
22/09/15 18:56:18.62 VqLViKoX0.net
print()
3:デフォルトの名無しさん
22/09/15 20:24:28.18 VqLViKoX0.net
保守します
4:デフォルトの名無しさん
22/09/15 21:36:55.07 v5ZFVedh0.net
input()
5:デフォルトの名無しさん
22/09/15 22:29:59.15 u8cmgYgo0.net
raise Exception
6:デフォルトの名無しさん
22/09/16 03:01:25.86 mHJ2EhzM0.net
Hello World
7:デフォルトの名無しさん
22/09/16 03:26:22.69 CP0EuvL40.net
import this
8:デフォルトの名無しさん
22/09/16 04:02:44.42 A450q/gvd.net
oppai = 2 * math.pi
9:デフォルトの名無しさん
22/09/16 08:12:32.25 BdFdhtkEr.net
str(math.pi) * 2
10:デフォルトの名無しさん (ワッチョイ 6aad-OdF3)
[ここ壊れてます] .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]>
11:デフォルトの名無しさん (ワッチョイ e6bb-VPVD)
[ここ壊れてます] .net
挫折ですか
残念でしたね
12:デフォルトの名無しさん (アークセー Sxbd-ia8c)
[ここ壊れてます] .net
勉強してて、5ちゃんの名前欄に!omikujiって入れたら結果が出てくるけどPython使ってるのかーってすげー関心したよ
13:デフォルトの名無しさん
22/09/16 12:19:10.92 XGOelKRjd.net
5chってperlかphpじゃなかったっけ?
14:デフォルトの名無しさん
22/09/16 12:24:02.04 STPMjQbh0.net
perl
15:デフォルトの名無しさん
22/09/16 13:52:31.50 fe3TsGSyx.net
お恥ずかしい
あれPythonじゃないのね
16:デフォルトの名無しさん
22/09/16 15:13:38.95 s0L9ffNv0.net
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...
が表示されるよう書く方法はないですか?
17:デフォルトの名無しさん
22/09/16 18:07:30.98 xVhXxd2Ka.net
class myLabel(tk.Label):
__def __init__(self, parent, *agrs, **kwargs):
____super().__init__(parent, *args, **kwargs)
18:デフォルトの名無しさん
22/09/16 18:08:30.05 xVhXxd2Ka.net
武漢コロナ ω株 PI.3.14型
19:デフォルトの名無しさん
22/09/16 20:01:18.48 hwvpyfny0.net
>>16
手元だとmyLabelでもスラズラでるから言語サーバかな
Pylanceになってるか確認してみて
20:デフォルトの名無しさん
22/09/16 21:51:17.25 lcGJOFxSM.net
んちんちんちんちん
21:デフォルトの名無しさん
22/09/16 21:51:25.91 lcGJOFxSM.net
以下んちんちんちんちん禁止
22:デフォルトの名無しさん (ワッチョイ d72c-W3aP)
[ここ壊れてます] .net
URLリンク(imgur.com)
下でも上の表示がいいんす
23:デフォルトの名無しさん
22/09/17 12:19:11.97 kn9qAbXr0.net
>>10
解決しました。>>10のレスは無視してください。
24:デフォルトの名無しさん
22/09/17 16:45:25.92 T/Ka29IB0.net
>>17
この関数の引数、
可変長引数のあとに連想配列では値がわたらないだろう
25:デフォルトの名無しさん
22/09/17 17:15:48.49 t52rQtHi0.net
初心者です。
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('URLリンク(www.google.com)')
26:デフォルトの名無しさん
22/09/17 19:09:57.35 6XxZTqFF0.net
chrome,chromedriverともに105.0.5195.127と書いてるのにバージョンがあってないとはいかに
27:デフォルトの名無しさん
22/09/17 19:25:38.45 0jjtsTOp0.net
繰り返し使うプログラムならドライバー自動で取ってきてくれる
webdriver-manager使った方がいいよ
28:デフォルトの名無しさん
22/09/17 20:15:49.18 t52rQtHi0.net
webdriver-managerで上手くいきました。
ありがとうございます。
29:デフォルトの名無しさん
22/09/17 23:33:23.67 eA0eWCp60.net
漏れは、Ruby でSelenium Webdriver を使っているけど、
Chrome の自動更新で、105.0.5195.127 になって、急に動かなくなった
ChromeDriver 105.0.5195.52 をダウンロードしたら、正常に動いた
30:デフォルトの名無しさん
22/09/20 10:16:04.22 0+YIm89I0.net
abspath → absolute path
__init__ → initialization
pardir → parent directory
curdir → current directory
getcwd → get current directory
chdir → change directory
こういうの、英語を略してるのだけど思うけど、元の略されてない英語のスペルを調べられるサイトとかありませんか?
毎回ググって出てきた検索結果ページで「abspath (absolute path)」みたいになってるのを探してるのですが、時間が掛かってしまいます
31:デフォルトの名無しさん
22/09/20 10:29:13.62 pd2Ujokt0.net
>>30
>>30
32:デフォルトの名無しさん
22/09/20 10:42:03.05 7MkL1qhTa.net
cwd は current working directory
33:デフォルトの名無しさん
22/09/20 10:54:15.10 HlTpV5j10.net
>>30
まずは公式を見れば?
34:デフォルトの名無しさん
22/09/20 10:57:11.96 0+YIm89I0.net
>>32
抜けてました訂正助かります
略称の元を調べる方法で、地道にググる以外の方法とかも分かりませんか?
35:デフォルトの名無しさん
22/09/20 11:02:55.38 0+YIm89I0.net
>>33
python.org/ の検索窓にgetcwd, chdir, cwd, ch 色々入れてみても、ググった時と一緒で地道に複数タブでページ開いて探すのと同じでした
36:デフォルトの名無しさん
22/09/20 11:06:51.68 7MkL1qhTa.net
>>34
辞書を引くとか
37:デフォルトの名無しさん
22/09/20 11:09:36.67 HlTpV5j10.net
>>35
わからないときに調べるのではなくて、一括でリストみたいに知りたいということですか?そういうサイトは知らないです
38:デフォルトの名無しさん
22/09/20 11:16:09.11 7MkL1qhTa.net
知識がないのが問題だったら知識を得るか補助ツール使うしか無いんだよなあ
google翻訳みたいにリアルタイムでオーバーレイで適当な情報出してくれるやつがあればいいんだけども
39:デフォルトの名無しさん
22/09/20 11:19:05.42 EhDO16lPa.net
>>30
そういうサイトがあると便利だよな
是非作ってくれ
40:デフォルトの名無しさん
22/09/20 11:20:47.83 DMd4PKyr0.net
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]
が速くて見やすいですか?
もったいないからループ一回で両方ゲットできたらいいんだけど、天の声がそれは遅いというんです
41:デフォルトの名無しさん
22/09/20 11:27:35.23 0+YIm89I0.net
>>36
pythonの広辞苑みたいなのあるなら知りたいです
>>37
そんな感じです。イメージとしてはこんな感じ
URLリンク(i.imgur.com)
>>39
もうすでに誰かしら作ってそうな気がしたのですけど意外にないんですね
42:デフォルトの名無しさん
22/09/20 11:30:55.43 0+YIm89I0.net
なぐり書きしたので案の定スペルミスしてる
IME辞書みたいに誰かしら作って配布してたりしないのかな
あったら本当に便利だと思う
43:デフォルトの名無しさん
22/09/20 11:35:44.18 7MkL1qhTa.net
>>40
求めてるのはzipとちがうの?
44:デフォルトの名無しさん
22/09/20 11:35:51.10 pd2Ujokt0.net
>>40
max_width = max(sizes)
max_height = max(sizes, key =lambda x:x[1])[1]
45:デフォルトの名無しさん
22/09/20 12:11:40.27 i/aW+9oN0.net
いまいちどういうものを欲してるのピンと着てないけど、存在しないという事はそういうことだろ
もしくは、誰もが思いつかなかった画期的なものの可能性はあるので、作れば人気でるかもしれないよ
46:デフォルトの名無しさん
22/09/20 12:20:23.86 i/aW+9oN0.net
エディタの補完機能とか知らないわけじゃないですよね
47:デフォルトの名無しさん
22/09/20 13:03:31.73 dpaaQYZ2M.net
>>30
python が発展してきた歴史を知るといい
48:デフォルトの名無しさん
22/09/20 13:32:48.86 +UHOIJTp0.net
>>30
英語の略語を集めたサイトはあるけど一般的な略語はともかくabspathみたいな奴はヒットしないし逆にcwdみたいに短い略語はヒットしまくるから使いづらいよ
URLリンク(www.abbreviations.com)
49:デフォルトの名無しさん
22/09/20 14:47:32.20 yGE7fJx20.net
>>30
osモジュールの該当メソッドの説明を読むのがいいと思う
URLリンク(docs.python.org)
一般的なunixコマンドから拝借してるものが多いから
pythonでの一覧がないならそっちを調べるといいかもしれない
50:デフォルトの名無しさん
22/09/20 14:59:07.65 HlTpV5j10.net
>>49
>>35
51:デフォルトの名無しさん
22/09/20 15:12:53.61 0+YIm89I0.net
30について回答くれた方々ありがとうございます。コメントで教えてもらったサイト見てみます
ググって意味を調べる時間の短縮目的は、そもそも我儘な要望だったかもしれません
52:デフォルトの名無しさん
22/09/20 15:33:22.20 0+YIm89I0.net
URLリンク(i.ibb.co)
望みの実行結果にはなるのですが、パスがないエラーを吐いてしまいます
本来は、os.mkdir(“パス名”)、os.makedirs(“パス名”)、のようにパス名を挿れるとのことですが
for文の変数を引数に渡したい場合はどう記述すればエラーを吐かないのでしょうか?
今朝始めたばっかなので用語の使い方間違ってるかもしれません
53:デフォルトの名無しさん
22/09/20 15:54:52.63 yGE7fJx20.net
>>52
エラーメッセージにあるように空文字が渡されてるのがエラーの原因
split(‘\n’)した結果のfolder_listの中身を確認すると分かると思う
でもってsplit()じゃなくsplitlines()を使うといい
54:デフォルトの名無しさん
22/09/20 16:08:35.44 0+YIm89I0.net
>>53
おかげで解決しましたありがとうございます
テキストファイルに何もない改行がありました
55:デフォルトの名無しさん
22/09/20 17:56:48.55 xv+EClXQ0.net
問題とは関係ないけれど
パスを操作する時はpathlibのほうがいいよ
56:デフォルトの名無しさん
22/09/20 18:02:43.94 GUzHgw240.net
正規表現で16進数を表すのに、いちいち[0-9a-fA-F]と書くのが面倒
もっとスマートに書けないものか
57:デフォルトの名無しさん
22/09/20 18:12:50.27 0B59Bo4G0.net
>>56
URLリンク(www.google.com)
58:r+classes
59:デフォルトの名無しさん
22/09/20 20:23:11.29 zGhXnhGV0.net
case-insensitiveで [\da-f]
60:デフォルトの名無しさん
22/09/21 19:43:53.71 b5Bal3Dn0.net
URLリンク(i.ibb.co)
pathlibというのを使って>>52と同じことをやってみたのですが、書き方が間違ってる気がしてならないので指摘して欲しいです
line14-15は何で上手くいかないのかも教えてほしいです
61:デフォルトの名無しさん
22/09/21 20:06:17.61 Qxk2XzJU0.net
まず、12行目のmkdirで例外発生してない?
temporaryなんてらフォルダはchdirしてるからすでに存在してるんでしょう?
62:デフォルトの名無しさん
22/09/21 20:13:22.49 VhW4jWqJ0.net
os関連の処理は互換性とか捨てて、subprocessでやるのが楽でしかも安定してる
63:デフォルトの名無しさん
22/09/21 20:30:50.72 2GcRUbUk0.net
繰り返される任意の文字列を1回の繰り返しに直す方法ありませんか?
"abcdabcdabcdefg"→"abcdefg"(abcdの繰り返し)
"abababc"→"abc"(abの繰り返し)
"aabbaabbc"→"aabbc"(aabbの繰り返し)
パターンの長さはとりあえず固定でいいので(例えば4でabcdとaabbはマッチできる)一気に置換する方法ないでしょうか
64:デフォルトの名無しさん
22/09/21 20:30:55.54 b5Bal3Dn0.net
>>60
存在してます。path.rename()書いてない時は、同名のフォルダが作られて「すでに存在してる~」みたいなエラーを吐いてました
そもそもpathlib使って>>52をやりたい場合は、osを使う必要がなかったりもするのでしょうか?
65:デフォルトの名無しさん
22/09/21 20:31:19.96 yjl6UhSi0.net
>>59
URLリンク(ideone.com)
66:デフォルトの名無しさん
22/09/21 20:52:17.39 b5Bal3Dn0.net
>>64
参考に直して見たら無事にできました。ありがとうございます。
URLリンク(i.ibb.co)
67:デフォルトの名無しさん
22/09/21 20:58:11.32 b5Bal3Dn0.net
変数名とか色々、短く略して書いた方が良いのでしょうか?
入力時間的には大差ないので、見返した時に分かりやすいようにしてるのですが
これは初心者だからで、経験者から見ると見苦しいとか、むしろ略されてた方が見やすいとかありますか?
68:デフォルトの名無しさん
22/09/21 22:11:39.31 yjl6UhSi0.net
>>62
競プロの問題?
69:デフォルトの名無しさん
22/09/21 22:25:22.90 sVtx8qcf0.net
>>62
質問の意味がよくわからん
"abcdabcdefcdefg"の場合どうしたいの
70:デフォルトの名無しさん (ワッチョイ d763-DwLj)
[ここ壊れてます] .net
LZ78の考え方の応用で行け
71:デフォルトの名無しさん (ワッチョイ ffdb-OuJ4)
[ここ壊れてます] .net
>>67
普通に処理したいだけです
>>68
"abcdabcdefcdefg"なら"(abcdabcd)efcdefg"→"abcdefcdefg"だと思います
72:デフォルトの名無しさん (ワッチョイ ffdb-OuJ4)
[ここ壊れてます] .net
あ、cdefcdefが繰り返されていたんですね…
最終的に人がチェックする工程があるので、先にマッチした方優先とかで大丈夫です
73:デフォルトの名無しさん
22/09/21 23:11:15.16 yjl6UhSi0.net
'abcabcdabcabcdefg'
だったら?
74:デフォルトの名無しさん
22/09/21 23:16:47.91 VS1qJent0.net
長さ4固定でいいなら、正規表現あたりで
>>> import re
>>> re.sub(r'(....)\1+', r'\1', "abcdabcdabcdefg")
'abcdefg'
>>> re.sub(r'(....)\1+', r'\1', "aabbaabbc")
'aabbc'
75:デフォルトの名無しさん
22/09/21 23:21:53.64 757dNGj40.net
>>62
URLリンク(www.online-python.com)
76:デフォルトの名無しさん
22/09/21 23:30:41.78 Qxk2XzJU0.net
そこにforを使うなんて
77:デフォルトの名無しさん
22/09/21 23:49:19.41 2GcRUbUk0.net
>>73 >>74
ありがとうございます!
文中に含まれてるものにも対処したいので73を長さ変えながら複数回適用で使いたいと思います
78:デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
[ここ壊れてます] .net
>>39
いらね
79:デフォルトの名無しさん
22/09/22 11:11:13.09 u9/ouAZsa.net
>>72 の回答はよ
80:デフォルトの名無しさん
22/09/22 11:12:02.23 ufV304t80.net
見てすぐ判らんようなもんは使うべきではないな
81:デフォルトの名無しさん
22/09/22 13:04:09.56 kBSagdtc0.net
abracadabra
82:デフォルトの名無しさん
22/09/23 06:05:04.44 l/gDdEyB0.net
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:
みたいなのは嫌です
83:デフォルトの名無しさん
22/09/23 06:29:46.22 ciin+wbx6.net
その11にはどういう意味があるんですか
84:デフォルトの名無しさん
22/09/23 06:42:29.24 j5q+73vfM.net
>>82
そもそも、「いい書き方」って何ですか
85:デフォルトの名無しさん
22/09/23 07:14:40.79 ILPrLpfC0.net
これ、やべぇな
URLリンク(gigazine.net)
GitHub Copilot とかで広まっちゃうのか
86:デフォルトの名無しさん (スッププ Sdbf-HYId)
[ここ壊れてます] .net
>>84
これは完全に誤訳
翻訳元では、GitHub上の数多くのOSSにこの脆弱性が存在するからCopilot等がそれを学習して広がるかもしれないと言っているだけ
87:デフォルトの名無しさん (ワッチョイ bf66-C6xl)
[ここ壊れてます] .net
そんな風に読んだけど違うの?
88:デフォルトの名無しさん
22/09/23 10:22:01.14 7VR4OLWz0.net
確かにtarを使うリポジトリではcopilot経由で広がる可能性があるけど、tarを使うリポジトリなんてリポジトリ検索してもそんなにないので実数としては眉唾
依存関係から侵入してくる方がよっぽど可能性が高い
Copilotが批判されがちなので批判の文脈で喋ったほうが肯定的に聞いてもらえるだろうという余計な意図が入ってるのではと邪推してしまうね:)
89:デフォルトの名無しさん
22/09/23 12:26:25.28 nucVVsrtd.net
>>86
> Trellixによると、35万件を超えるリポジトリがこの脆弱性に脅かされていると見られ、その多くでGitHub Copilotなどの自動ツールが使われているとのこと。
前知識なく普通にこれ読んだら、35万件のリポジトリがGitHub Copilptを使っている、そして、Copilotがその脆弱性の原因であると思うでしょ
というかこの記事書いた人はたぶんそのように誤解してる
> URLリンク(www.trellix.com)
まあソースも推計方法や論理がガバガバで似たようなレベルだが
90:デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
[ここ壊れてます] .net
>>81 が何を考えてるのか詳しく知りたいなωωω
91:デフォルトの名無しさん
22/09/24 01:05:33.05 WVAdUwxP0.net
>>81
インデックスなら0~10の番号で管理すべきじゃないの
endを取り出して使うときに+1すれば良いんじゃない
スライシングと混同してるのかな
92:デフォルトの名無しさん
22/09/24 02:03:35.51 6DJLRQJMH.net
>>90
外部入力でスライス範囲を受け取ってて(start, end)
その値を使いまわしてインデックスアクセスしたいんだろう
テーブル扱うGUIとかでままある
93:デフォルトの名無しさん
22/09/24 07:13:39.52 52DloiQc0.net
単にインデックスの範囲とスライスを混同してるだけだろ
外部からの入力なら値のチェックは必須だしその時に調整しとけばいいだけ
94:デフォルトの名無しさん
22/09/24 07:29:05.56 RoHmfu6K0.net
一昔前のseabornのカラーマップだか忘れたけど1から数えて最後の数字を入れるようなインデックス指定を偶に見かける
[0, 10] → 0から9までと
[1, 10] → そもそも0が存在せず1から10
この2つの書き方にそれぞれ名前ついてたりする?
95:デフォルトの名無しさん
22/09/24 08:37:46.88 3mLYFKO40.net
>>93
前者は「半開区間」として [0,10) といった表記にするのをよく見る
96:デフォルトの名無しさん
22/09/24 09:09:58.79 RoHmfu6K0.net
>>94
あーたしかに数学で見るわ
97:デフォルトの名無しさん
22/09/24 09:21:01.36 P3HsQQA/0.net
メモリマップとかで、
A: 0x0000 - 0x0fff
B: 0x1000 - 0x1fff
みたいに末尾をfffにせずに、末尾は1足して表記する、という約束にした方が使いやすい
98:デフォルトの名無しさん
22/09/24 09:53:57.04 N1C+NhRL0.net
そうすると最後は
F: 0xf000 - 0x10000
と最後だけ2バイトでは表記しきれなくなるね
99:デフォルトの名無しさん
22/09/24 10:03:22.17 P3HsQQA/0.net
それはもう0でいい
100:デフォルトの名無しさん
22/09/24 10:26:03.89 8OhmHPew0.net
すみません、プログラミング初心者です、python構築について質問があります
python3.10.7をインストールしたのですがコンドプロンプトで確認したらpython 3.9.12になっています
もしかしたら以前DLしてたのかと思って探しても見つからないのですが
こういうものなのでしょうか?
101:デフォルトの名無しさん
22/09/24 10:37:33.81 8OhmHPew0.net
すみません、調べてみたらanacondaの方にpythonが入ってたみたいです
102:デフォルトの名無しさん
22/09/24 10:54:04.69 gdtERKOB0.net
まーたanaconda被害者がひとり…
103:デフォルトの名無しさん
22/09/24 10:55:37.98 8OhmHPew0.net
>>101
そんなに有名な事でしたか…
調べても出てこなかったので
104:デフォルトの名無しさん
22/09/24 11:18:28.18 4ctEaw520.net
君は悪くない、anacondaも悪くない
anacondaを進める入門的な書籍やサイトが悪い
105:デフォルトの名無しさん
22/09/24 11:29:33.35 8t4kL4/n0.net
pipでバイナリを配布できなかった時代ならまだしも、今そんな時代じゃないしな~
106:デフォルトの名無しさん
22/09/24 11:34:58.91 P3HsQQA/0.net
何かのツールをインストールするとpythonも一緒にインストールされるのはよくある
python2だったりもする
大抵は、自分用のバイナリを自分で使うだけなので迷惑はかけないけど、
行儀の悪い奴もいる
107:デフォルトの名無しさん
22/09/24 12:01:38.29 52DloiQc0.net
>>98
さすがにそれはアホすぎる
108:デフォルトの名無しさん
22/09/24 12:23:45.45 gdtERKOB0.net
未だにpython事始めで検索すると
無責任な入門サイトの「anaconda入れとけ☆」 ばっかり
いやべつにいいんだけどさあanacondaでも。オールインワンで便利なのも分かるけど
109:デフォルトの名無しさん
22/09/24 13:25:40.55 mEJjKZc00.net
anacondaでもpipでも両方使えばいいジャマイカ
110:デフォルトの名無しさん
22/09/24 13:33:00.23 +zHy6u5Kr.net
condaのコマンドで新しい環境作れるようにしたらスタンドアロンのpythonが外れた記憶ある
111:デフォルトの名無しさん
22/09/24 15:33:58.69 BGgCMaIl0.net
俺も初心者の頃はアナコンダ入れてた。
けど後から無駄も多く必要ないことがわかったのでアンインストールした。
pythonとVSCodeあれば事足りる。
112:デフォルトの名無しさん (ワッチョイ 1214-P81A)
[ここ壊れてます] .net
ファイル名に使えない文字を全角に変換するコードってこんなに長くなるものなんですか?
URLリンク(qiita.com)
name_ng = ["/","\",":","*","?","<",">","|"]
こんな感じでリストに入れてfor文の中で replace で置換すれば良いんじゃないかと思ったけど、リストにする段階でエラーになります
上記のURLの記述が最適解?
簡略化された書き方があったら教えてほしいです。
113:デフォルトの名無しさん
[ここ壊れてます] .net
a=True
b=True
aかつbがTrue、それ以外の全て
の条件って
if not (a and b): でよかったっけ・・?
114:デフォルトの名無しさん (ブーイモ MMde-zdrj)
[ここ壊れてます] .net
>>111
translate使えばforすらいらない
115:デフォルトの名無しさん
22/09/24 18:29:31.09 LDtPUxey0.net
>>111
その記事が最適かどうかは別問題として、まず0x5cをちゃんとエスケープして、あなたの考えを動くコードとして完成させよう
その上で、記事のコードと分かりやすさや速度を気の済むまで比較してみればよい
116:デフォルトの名無しさん
22/09/24 19:22:50.96 nYu0cH9J0.net
>>113
調べて試してみます
>>114
そもそも ”\” は文字列としても単体では使うことができない感じですかね?
知らなかったです。教えてくれてありがとうございます
117:デフォルトの名無しさん (アウアウウー Sa43-a1Je)
[ここ壊れてます] .net
r'hoge\hoge'
118:デフォルトの名無しさん
22/09/25 00:00:20.77 TfTFVrn20.net
>>112
if all([a, b]):
else
119:デフォルトの名無しさん
22/09/25 00:30:59.06 wq9M03AC0.net
allとanyは積極的に使おう
フラグを別に持つとか途中で抜けてループ変数を見るとか、
何でレガシーな言語はそれで満足してたのか判らん
120:デフォルトの名無しさん
22/09/25 02:03:20.35 ouzeiwB30.net
今日からPython始めたんだけど、エラーが出て動かなくて悩んでたらインデントが原因だったw
調べたらインデント自体プログラム構造的に意味を持ってたんだな。。。
121:デフォルトの名無しさん
22/09/25 05:32:21.54 WCcUyzUQ0.net
少しコードが長くなってきたので、関数を定義してみようと思ったのですが
関数を使うくらいなら、最初からclassとmethodでやった方が後々便利ですかね?
それから現段階ではまだinstance変数を使うかどうかは不明ですが
classの最初に__init__は決まり文句として書いておいて良いのでしょうか?
仮に全く使わなかった場合にバグの元になったりするのでしょうか?
122:デフォルトの名無しさん
22/09/25 05:38:14.60 iEmY5l+s0.net
そのレベルならまず関数に慣れよう
classはそのあと
123:デフォルトの名無しさん
22/09/25 05:54:55.13 WCcUyzUQ0.net
了解しました
124:デフォルトの名無しさん
22/09/25 11:02:47.56 sQFmQmse0.net
classを使うほうが常に優れていると思ってるなら認識を改めたほうがいいよ。
classと関数両方使えるがpythonのメリット。
標準ライブラリだって両方共存してるのにどちらかを捨てるなんてもったいない
125:デフォルトの名無しさん
22/09/25 11:22:42.32 Sdaj2srm0.net
自己満だからといっていつも意識的にそれらを考えていかなければより良い設計はできないのかもしれない
126:デフォルトの名無しさん
22/09/25 11:43:23.68 rlnwElI30.net
クラスはメンバ変数にselfが強制だからコードが冗長になって嫌だわ
127:デフォルトの名無しさん
22/09/25 12:37:00.29 uj3dGGMEr.net
>>125
インデントも深くなるし、状態持つ必要が無ければモジュール化で十分よな
128:デフォルトの名無しさん
22/09/25 12:49:19.19 wq9M03AC0.net
大仰なクラスを作ろうとするから
インスタンス変数が2つだけ、みたいなのでも十分役立つ
129:デフォルトの名無しさん
22/09/25 17:18:10.55 hs4ndUhv0.net
>>127
それくらいならNamedTupleでも良いかな
130:デフォルトの名無しさん
22/09/25 17:41:46.06 iEmY5l+s0.net
dataclassええで
131:デフォルトの名無しさん
22/09/25 17:54:34.18 AFTbeWYX0.net
クラスは実装の詳細を見せたくない時に限る
132:デフォルトの名無しさん
22/09/26 07:24:51.77 ciNDFZ6I0.net
クラス名をclass Hoge
ファイル名をhoge.py
インポートでimport hoge
インスタンス名何にしようかいつも悩む
??? = hoge.Hoge()
133:デフォルトの名無しさん
22/09/26 09:07:29.52 P9G+/qqR0.net
>>81
そもそも[0,1]のときにx[0]を2つ取り出したいのかどうかがよくわからないな
あと、最大(?)は[0,10]じゃないか?
[0,9]のときと[0,10]のときでどう処理を変えたいのかよくわからない
半開区間に含まれる最小最大を取り出したいなら、
for i in [idxs[0], idxs[1] - 1]でいいと思うのだけどこれは嫌?
134:デフォルトの名無しさん
22/09/26 09:12:30.59 P9G+/qqR0.net
木構造とかグラフ構造を自作したいなら(間々ある)、
クラスにした方が便利なときある気がするけどな。
get_tree_children(node)とかしだすなら、node.children()の方が名前空間がすっきりしていいし。
実装の詳細を見せたくないかどうかというよりは、関心の分離をしたいかどうかによるような気がするな。
確かにクラス作るまでもないようなことは多いけど。
135:デフォルトの名無しさん
22/09/26 20:32:27.38 b9hyANFk0.net
>>128
値が変えられないがな
136:デフォルトの名無しさん
22/09/26 23:15:54.08 QR+uVx8I0.net
python 3.9.10
a = (1, 2, 3)
b = a
c = (1, 2, 3)
print(a==b)
print(a is b)
print(a==c)
print(a is c) #True?
なぜ a is c が true になるのでしょうか?
137:デフォルトの名無しさん
22/09/26 23:17:59.46 QR+uVx8I0.net
>>135
ideone に貼っときます
URLリンク(ideone.com)
なぜでしょうか?
138:デフォルトの名無しさん
22/09/26 23:31:03.60 b9hyANFk0.net
a = 1
c = 1
の時と同じ理由
139:デフォルトの名無しさん
22/09/26 23:32:02.41 Gide+MMY0.net
>>136
ならない
140:デフォルトの名無しさん
22/09/26 23:33:01.37 Gide+MMY0.net
ほらよ
URLリンク(i.imgur.com)
141:デフォルトの名無しさん
22/09/26 23:49:19.92 eE4Lst2k0.net
>>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)
142:デフォルトの名無しさん
22/09/27 00:20:20.92 LFY5tutJ0.net
>>140
ありがとうございます、オプティマイゼーションの余地がある、ということですね、納得しました
143:デフォルトの名無しさん
22/09/27 19:02:24.07 zjZtbJ3M0.net
a is cが真になるかはかなりケースバイケースな気がするし、
中身を比較したいんだったら使うべきじゃないね
本当に同じtupleインスタンスかどうかを確認したいときだけにすべき
144:デフォルトの名無しさん
22/09/27 22:33:08.85 3OHfLHhN0.net
tupleだけの話ではなくてどの型でも同じだけどね
例えば文字列とか
145:デフォルトの名無しさん
22/09/27 23:35:04.66 tKd9rAjb.net
n=12345.67
小数点以下が何桁あるのか調べたいのですが
len(str(n).split(".")[1]) if isinstance(n, float) else 0
こんなんでいいですかね・・?
146:デフォルトの名無しさん
22/09/27 23:51:45.87 3OHfLHhN0.net
>>144
URLリンク(ideone.com)
147:デフォルトの名無しさん
22/09/27 23:53:56.84 +joc5Asc0.net
>>144
誤差で予想外の挙動しそうだからDecimal使う方がいい
148:デフォルトの名無しさん
22/09/28 02:27:12.38 OOL0jr8Q0.net
>>144
それだと
n=1.0 -> 1
n=0.00001 -> IndexError
になる
len(format(n,".17f").split(".")[1].rstrip("0"))
後ろのif isinstance(n, float) else 0も不要
n=1.0 -> 0
n=0.00001 -> 5
149:デフォルトの名無しさん
22/09/28 09:19:00.77 9I9ISsCh.net
>>145-147
たしかに
0.30000000000000004に対して17得られたのは正解だと思いますが
0.00001で1e-05になっててエラーでました
Decimalかformat使ってみようと思います
ありがとうございました
150:デフォルトの名無しさん
22/09/28 10:07:58.97 9I9ISsCh.net
やりたかったことは
受けとった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でもいい
みたいにしたかったのですが難しい・・
151:デフォルトの名無しさん
22/09/28 10:17:26.42 9I9ISsCh.net
from decimal import Decimal
str(Decimal(0.123456))
str(Decimal(0.123456)*Decimal(1.05))
#'0.1296288000000000015945911258'
あれ、そもそも0.123456の小数部の桁数はどうやって知るんだっけ??
てところで詰まってます・・
152:デフォルトの名無しさん
22/09/28 11:25:04.93 9I9ISsCh.net
冗長な気がしますがこんな感じにしてみました
何かバグが発生しそうな気がします
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(
153:r) rs=c.quantize(Decimal("0."+("0"*d))) print(n,c,d) print("-->",rs,"\n")
154:デフォルトの名無しさん
22/09/28 11:30:47.23 9I9ISsCh.net
連投すみません 結果です
URLリンク(ideone.com)
155:デフォルトの名無しさん
22/09/28 13:38:45.48 E42G0/DqM.net
元々の桁数でroundしたいって感じなのかな
156:デフォルトの名無しさん
22/09/28 18:25:19.27 OOL0jr8Q0.net
>>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は好みのオプションでどうぞ
157:デフォルトの名無しさん
22/09/28 19:37:21.94 9I9ISsCh.net
>>154
ありがとうございます
やはり至るところで誤差が発生するのですね
四捨五入は今回の用途ではどちらでも良い感じです
せっかくなのでまとめてみました
URLリンク(ideone.com)
ありがとうございました
158:デフォルトの名無しさん
22/09/28 19:42:02.44 o0cHd3Tq0.net
先にIEEE754読んでみては?
誤差に関しての勘所がわかるようになる
159:デフォルトの名無しさん
22/09/28 20:32:50.93 x5UMfEp40.net
Pythonに限らず浮動小数点数を使う場合は常に誤差の問題がつきまとう。
0.1というのがすでに二進数ではきっちり表現できない数字なので、有効数字を何桁にするのかというのは実装の段階で決めなくちゃならない。
URLリンク(docs.python.org)
正確に表現できるのは、0.5,0.25,0.125...と1を2で割っていった数とその整数倍のみ
0.1は1/(2×5)となり1/5が2進数では循環小数となり浮動小数点数では正確に表せない。
ということを念頭に置いてまず何がやりたいか考えた方がいいよ。
decimalモジュールは便利そうだね。
160:デフォルトの名無しさん
22/09/28 23:21:28.71 FDPwu/KN0.net
log2で有効桁数計算出来るでしょ
161:デフォルトの名無しさん
22/09/29 00:26:06.29 3C3gpnCY0.net
>>154
どちらの書き方でも
-0.015 を四捨五入したら-0.02だった、すまん
-0.01にしたい場合は自力でなんとかして
162:デフォルトの名無しさん
22/09/30 00:55:04.52 qun5+YRs0.net
昔から不思議なんだけど
何で分数で処理しないのかな?
最後に割り算を一回だけすれば
誤差がでないじゃないの
163:デフォルトの名無しさん
22/09/30 01:46:32.47 0IYvIpx66.net
掛け算でも足し算でも誤差が出るから
164:デフォルトの名無しさん
22/09/30 01:53:32.93 sForoGQI0.net
Pythonは整数側の桁数制限が無いのを利用して高精度にできそう
165:デフォルトの名無しさん (アウアウウー Sa43-hb2l)
[ここ壊れてます] .net
>>160
似たような大きさの数字ならその発想もいいけどね
現実はコスパの悪い任意精度の演算が必要になることが多いのでは
166:デフォルトの名無しさん
22/09/30 03:11:26.40 FkDRVgM50.net
>>160
つ fractions
167:デフォルトの名無しさん
22/09/30 04:56:46.10 HxNT59pn0.net
だから誤差の話するならIEEE754読めよ
168:デフォルトの名無しさん
22/09/30 04:57:30.60 CfDFJOy00.net
>>160
昔GCD付きの分数クラス作ったけど
結局はdoubleになったことがある
169:デフォルトの名無しさん
22/09/30 05:21:28.14 oHn8O8ll0.net
>>160
四則演算だけならいいけど√とかsin( )とかはどうする?
>>161
掛け算、足し算で誤差がでるケースとは?
170:デフォルトの名無しさん
22/09/30 08:01:25.94 Gm4+1fgX0.net
sinとかも内部は四則演算
171:デフォルトの名無しさん
22/09/30 09:17:00.10 oHn8O8ll0.net
>>168
近似演算の話されても困るんだがw
172:デフォルトの名無しさん
22/09/30 09:23:23.51 k91OtGRla.net
三角関数の近似じゃない演算て
173:デフォルトの名無しさん
22/09/30 10:05:45.64 EsKmogiV0.net
python chapelについて質問です。
情報があまりないので、チャペルについてお勧めのサイトがあれば教えてほしいです。
174:デフォルトの名無しさん
22/09/30 10:38:01.55 t/wNXSJY0.net
クヌースのTAOCP読むといいよ
コンピュータでの数値計算の全てが書かれてる
175:デフォルトの名無しさん
22/09/30 13:20:23.85 oHn8O8ll0.net
>>170
sinsin, cos のまま計算するって話だろ
数学不得意か?
176:デフォルトの名無しさん
22/09/30 13:47:23.87 k91OtGRla.net
>>173
そんなもん代数的な操作だろ
177:デフォルトの名無しさん
22/09/30 13:54:50.47 oSg68bQdM.net
>>160
遅いからだよ
178:デフォルトの名無しさん
22/09/30 14:09:07.38 oHn8O8ll0.net
>>174
話は>>160から始まってて途中は代数的な操作で最後に一回だけ演算することで誤差を抑えられるって話な
179:デフォルトの名無しさん
22/09/30 16:11:14.18 7g2iZKZC0.net
三角関数は二項演算じゃないから後も先もないだろ
180:デフォルトの名無しさん
22/09/30 16:39:44.93 du1MSukG0.net
ここまで有効数字の話なし
181:デフォルトの名無しさん
22/09/30 16:40:16.15 Gm4+1fgX0.net
有理数演算に有効数字は関係ない
182:デフォルトの名無しさん
22/09/30 17:02:40.52 7g2iZKZC0.net
実は誰も数値計算誤差について知らないのである
183:デフォルトの名無しさん (ワッチョイ 1e66-yYUR)
[ここ壊れてます] .net
組み込み系で、積算の量を保持していて
1秒毎に測定して何年というスパンで計算を続けると、
もう32bitでは精度が足りなくなる
184:デフォルトの名無しさん
22/09/30 18:26:40.60 J+iH2myB0.net
最後に浮動小数点数にして誤差を減らす方法は、代数的な計算ができる必要がある。
Mathematicaとか、SymPyだな。
ただ代数的な計算は上手いこと式を整理してやらないと簡単にならないことも多い。積分は公式を知らないと出来ない、というのと同じ。
有理数の四則演算だったら単なる有理数演算を逐次的に実行していけば問題ないだろうが。
185:デフォルトの名無しさん
22/09/30 18:28:54.96 J+iH2myB0.net
>>177
んなことないだろ。加法定理やら積和、和積の公式とか習わなかったのか。あの辺使うと極端な場合の誤差減らせるよ。
xが0に非常に近い場合のsin2x/sinxとかね。
186:デフォルトの名無しさん
22/10/01 03:53:03.59 SpYHa2lW0.net
お金の計算とかは
有理数しか出てこないんだから
分数で十分のような気がするんだが
187:デフォルトの名無しさん
22/10/01 05:23:12.47 9xFR6mUQ0.net
丸めたくない意図だと思うが加減算だけで速攻破綻する
188:デフォルトの名無しさん
22/10/01 05:55:22.47 jubCkgWp0.net
単にbit数が足りなくなるという話なので、
必要に応じてbit数を増やしていけばいい
無限に増えることは絶対ない
189:デフォルトの名無しさん
22/10/01 06:02:40.31 WTWdfTM50.net
質問です。
djangoの資格を作りたいとおもってます。
需要はありますか?
190:デフォルトの名無しさん
22/10/03 07:28:28.28 qHW/WFxU0.net
URLリンク(translate.google.com)
Google翻訳のページで、テキスト入力ボックスから「Tabキー」を1回押すと必ず「音声を聞く」のアイコンに移動するようにしたいのですが、Pythonで可能ですか?
通常は3回で行けるのですが、”原文の言語”や”もしかして”が表示されるとTabキーを押す回数が変わって面倒です。しかもリストが表示されててそのパターンなのか見えない。
Pythonで何とかしようとしてるのがそもそも間違っている気がして、簡単なHPをJavaとか?で作ったり、アドオンを組んだりとか別の手段が必要ですかね?
191:デフォルトの名無しさん
22/10/03 07:35:38.92 y8eCR1Dta.net
うるせえ
192:デフォルトの名無しさん
22/10/03 09:20:27.54 XqhFz79Ma.net
>>188
現在のフォーカスを取得することでTab回数制御できそうだけど
そもそも音声を聞く、のidありゃそこに飛ばせるやろ
193:デフォルトの名無しさん
22/10/03 10:02:57.41 qHW/WFxU0.net
>>190
seleniumを使ってプログラムを実行した時だけなら出来たのですが、普段使いで常にその状態にさせる方法が分からなかったです。
独自の簡単なChrome拡張機能を作る方向が一番良さそうな感じです。そっちで少しやってみます。お騒がせしました。
194:デフォルトの名無しさん
22/10/03 10:19:40.80 2xmZEmoH0.net
>>191
拡張起こさなくてもTampermonkey拡張でスクリプト書くだけ
195:デフォルトの名無しさん
22/10/03 10:33:51.18 vUZPctIIM.net
USWCとか使ってESCキーを押したら画像認識で再生ボタンクリックとかにすると簡単そう
ESCだと位置的に押しやすいし予測候補も消える
pyautoguiみたいなの使えばPythonでもUWSCと同じ事出来たはず
windows限定の話だけど
196:デフォルトの名無しさん
22/10/03 10:49:36.68 WjbJBDxU0.net
拡張する方向でやってもすぐに使えなくなったりするので、
キーやマウスの操作を発生させる方向でやるのが結局ベストだったりする
197:デフォルトの名無しさん
22/10/03 10:54:58.28 qHW/WFxU0.net
>>192-194
最初に調べるキーワードが出てこなくて分からないことが多いので情報助かります
頂いた情報を元に解決する方向でやってみます。ありがとうございました。
198:デフォルトの名無しさん
22/10/03 10:55:37.39 S1BqvHYWd.net
>>169
>>173
複素数や四元数を使うのが割りとマジでお薦め
199:デフォルトの名無しさん
22/10/03 11:05:12.96 zOLlU4yCa.net
オイラーをほめたたえよ
200:デフォルトの名無しさん
22/10/03 18:00:29.25 pcuzjq2H0.net
>>188
Ruby, Selenium でも、JavaScript を使って出来たけど、
ソースコードの何かの単語がブロックされるので、
ここには貼れないので以下へ
URLリンク(jsfiddle.net)
201:デフォルトの名無しさん
22/10/03 18:09:52.15 wCVa7NBkM.net
>>198
どーゆーこと?
202:1
22/10/03 22:09:32.24 yB/cj66NM.net
質問です
以下のプログラム(wikipediaの今日は何の日)をエクセルで起動させたときに最後の年号の()が取れてないとおかしいのですがどこのコードが間違っていますか?
優しい方教えてください
import requests
from bs4 import BeautifulSoup
import csv
import re
url="URLリンク(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)
203:1
22/10/03 22:11:29.02 yB/cj66NM.net
何度も本(スクレイピング・ハッキング・ラぼ)見返したけど間違ってないんです…
204:デフォルトの名無しさん
22/10/03 22:13:35.20 WjbJBDxU0.net
漢字コードとか?
205:デフォルトの名無しさん
22/10/03 22:15:49.89 phcGwi7g0.net
とりあえずこれに聞こうぜ
URLリンク(aiprogrammer.hashlab.jp)
206:デフォルトの名無しさん
22/10/03 22:28:30.42 cMmfYMlm0.net
お願いします
URLリンク(ideone.com)
for i in range(1, 100) で 99 回 next を呼んでいるのに、なぜ 79 で終わってしまうのですか?
207:デフォルトの名無しさん
22/10/03 22:28:53.24 fB4Oth8WM.net
>>203
すげぇこんなのあるんだ
でも解決しなかった(´・ω・`)
208:デフォルトの名無しさん
22/10/03 22:36:32.61 Hgv/NPoj0.net
>>204
n=15のときFizzBuzz Fizz Buzzの3つ表示されます
209:デフォルトの名無しさん
22/10/03 22:54:57.92 phcGwi7g0.net
これでいけそうですが、どうでしょうか
1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を表示する
210:デフォルトの名無しさん
22/10/03 22:58:18.22 phcGwi7g0.net
修正した
1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を文字列で表示する
211:デフォルトの名無しさん
22/10/03 23:01:03.63 cMmfYMlm0.net
>>206
elif にするべきだったんですね!ありがとうございます!
212:デフォルトの名無しさん
22/10/03 23:48:34.11 DL3YHdAw0.net
ウェブスクレイピングをやってみたくて奮闘しておりますが、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'
213:デフォルトの名無しさん
22/10/04 00:31:15.23 QZmM2iut0.net
>>210
URLリンク(pastebin.com)
214:デフォルトの名無しさん
22/10/04 06:25:16.21 UhX37WNP0.net
>>203 で
Python
Tuple to dataframe
で聞く
215:デフォルトの名無しさん
22/10/04 06:51:23.40 jZxsvBQn0.net
URLリンク(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()
216:デフォルトの名無しさん
22/10/04 22:24:51.48 fseuENfmM.net
知恵袋にも質問したのですがどなたか教えていただけると嬉しいです
URLリンク(detail.chiebukuro.yahoo.co.jp)
217:デフォルトの名無しさん
22/10/04 22:40:41.78 g6GmefYL0.net
>>211 213
丁寧に教えてくださりありがとうございます。
218:デフォルトの名無しさん
22/10/04 23:17:10.94 CNGS9dK70.net
>知恵袋にも質問したのですが
5ch はマルチポスト禁止です!
5chで質問する場合は、他での質問を取り消してからにしてください
219:デフォルトの名無しさん
22/10/04 23:19:23.00 NeQlYRE40.net
んなこたーない
220:デフォルトの名無しさん
22/10/04 23:24:09.71 4YJ9syiq0.net
さすがにインストールできてないのは答えようがない
221:デフォルトの名無しさん
22/10/04 23:28:30.56 IUIBMeejH.net
>>216
fj ではマルチポスト禁止の理由がありクロスポストという代替があったけれども、ここでのマルチポスト禁止の理由は?
222:デフォルトの名無しさん
22/10/05 00:22:21.08 Tx2gHWm/0.net
せっかくの集合知が分散するからじゃないの?
223:デフォルトの名無しさん
22/10/05 00:31:43.32 rm6FRUcS0.net
マルチ野郎はよそで解決しても報告しない
放置してそこら中にゴミを残す
224:デフォルトの名無しさん
22/10/05 00:40:43.93 93gtHac60.net
ぶっちゃけスレは落ちて過去ログになるし
検索性も低いから集合知の蓄積なんてしないよ
マルチポスト禁止は形骸化した旧きネチケットだと思う
225:デフォルトの名無しさん
22/10/05 00:56:27.52 Tx2gHWm/0.net
>>222
いやぁそうでもないと思うけどねぇ
2ちゃんねるの過去ログをあさって解決方法を見つけたことも数多あるし
解決できない場合でも、ヒントになるようなことが散らばっていて、それをきっかけに探し出せることもある
検索のやり方次第じゃないか?
226:デフォルトの名無しさん
22/10/05 01:03:22.70 93gtHac60.net
>>223
調べごとはよくするけど
2ちゃんで解決したことはないな、というか、検索方法によるだろうが出てきすらしない
大体Qiita、個人ブログ、stackoverflowのどれか
227:デフォルトの名無しさん
22/10/05 01:12:14.00 Tx2gHWm/0.net
>>224
いまはそうした5ちゃんねる以外の方がまともな完結方法があると思うよ
でも以前は、そういうのがほとんど当てにできなかったり、
*nixやマイナー言語、ハードウェア特有のトラブル、アングラ系wなんかだと、
英語資料を当たるきっかけやヒントが欲しかったりしたので、
2ちゃんねるのちょっとした書き込みがありがたかったなぁ
いまでも、"site:5ch.net" をつけてキーワードをググることで、
5ちゃんねるの集合知はちゃんと機能しているよ
228:デフォルトの名無しさん
22/10/05 01:17:40.14 j989iulk0.net
2ちゃんねるに書いてある事を、
そこまで信用したことはないな
あるとすれば、裏が取れたとき位
リンク張ってあっても、あやしげなサイトだったりすることもある
229:デフォルトの名無しさん
22/10/05 01:59:12.01 xc1v9MP10.net
今回みたいに簡単なエラー文も読めねえだけのカスがネット上に散らかることが多く
これが害悪であるのでマルチポスト野郎は基本的にクソである
集合知の分散ではない。無知の飽和が問題
230:デフォルトの名無しさん
22/10/05 05:43:38.64 FOT9/eKgM.net
ゴメン 今回の件は全面的に俺が悪い
すみません
231:デフォルトの名無しさん
22/10/05 05:45:37.15 FOT9/eKgM.net
>>227
エラー文のseleniumは既にインストール済だぞ
232:デフォルトの名無しさん
22/10/05 05:51:53.98 FOT9/eKgM.net
>>218
seleoniumはインストール済だよ
pip install selenium でね
233:デフォルトの名無しさん
22/10/05 06:08:56.11 Vke5X/wtM.net
Pythonが複数バージョンインストールされてるってオチじゃないの
よくあるAnacondaどうこうってやつ
234:デフォルトの名無しさん
22/10/05 06:09:13.82 FOT9/eKgM.net
selenium一度アンインストールして再度インストールしたら出来ました
スレ汚しスマン
235:デフォルトの名無しさん
22/10/05 06:11:17.00 FOT9/eKgM.net
>>231
朝早いですね!
再インストールしたら出来るようになりました
何故か知らないけど……
……というより勝手にブラウザが開いて閉じての動作を見た時は感動しました
すげー勉強する意欲が増した
236:デフォルトの名無しさん
22/10/05 06:57:09.88 wne70pEz0.net
>>219
マルチポストされると同じようなレスを複数回読むハメことあるし回答したら他のスレで既に解決してたとかあるからそりゃうざいわってことだろ
ちなみにクロスポストはたいていのリーダーでどれか一つ読めば他のグループへの投稿も既読になるし回答する際もディフォルトの回答先グループが指定できるから回答が散らばることも防げる
237:デフォルトの名無しさん
22/10/05 18:42:25.05 8ltN7Y6y0.net
原神スレかpythonスレかで迷ったんですけど、ちょっと失礼します。
URLリンク(github.com)
ディスコbotがサ終してたのでありがたくオフ環境に導入すべく頑張ったんです。
setupの手順から一通り終えてpy bot.py後なんですが
raise ValueError("Duplicate keys!")の無間地獄にはまってるんですけど
列行文でエラー指摘されてチェックしても全然関係無さげでわからない時どこ見たらいいですか?。
やっぱり基本を熟知してる人は修正して当たり前な場所とかを理解できてなくてエラー起きてるんですよね。たぶん。。
詳細足りなさすぎるのは理解してるんですけど、ほんと憶測適当アドバイスでいいので教えて下さい。
238:デフォルトの名無しさん
22/10/05 22:24:23.68 MbZCvQpZ0.net
>>220
それが理由だとしたらそもそも質問できる場が複数存在していて統一されていないことが悪いってことになる。
239:デフォルトの名無しさん
22/10/05 23:32:03.75 W5I+dJQy0.net
>>235
Duplicate keys! って、
データベースのUNIQUE インデックスまたは PRIMARY KEY に、
既に存在する同じキーで挿入しようとしたとか?
そのGithub のbot.py 内を「Duplicate」で検索しても、見当たらないけど?
どのファイルのソースコードなの?
240:デフォルトの名無しさん
22/10/06 01:46:24.04 eDAszKmt0.net
>>237
bot.py実行後に、~\Programs\Python\Python38-32\Lib\site-packages\toml
内のpython38-32のdecoder.pyからエラーが出てます。
powershellを使いました。 ほぼ素人ですみません。
241:デフォルトの名無しさん
22/10/06 02:48:03.34 2LM4DEsy0.net
コードじゃなくて食わせるデータがおかしいんでないの
242:デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
[ここ壊れてます] .net
>>238
python入門おめでとう!
243:デフォルトの名無しさん (ワッチョイ 632c-LIzE)
[ここ壊れてます] .net
「python toml decoder duplicate keys」で検索!
TOML ファイルの形式になっていないとか?
ファイルがBOM付きUTF-8 になっているとか?
Python は、BOMなしUTF-8 じゃないの?
URLリンク(git.cardiff.ac.uk)
このファイルの781, 783 行目に、raise ValueError("Duplicate keys!") がある
244:デフォルトの名無しさん
22/10/07 07:11:32.41 0vlnX2v40.net
>>241
UTF-8になってました。
ValueError: Duplicate keys!とTomlDecodeError: Duplicate keys!が出ていますが
デコードが実行された結果キー重複が起こっているのを知らせただけで、原因はやはりbot.pyの中にあるのでしょうか?
245:デフォルトの名無しさん
22/10/07 09:55:21.23 BuUd5Oey0.net
>>242
tomlでエラー出てるなら
bot.pyで
config = toml.load(open("config.toml"))
っていう記述あるけど、config.tomlの中身がおかしいんじゃない?
246:デフォルトの名無しさん
22/10/07 13:38:21.48 6W+GCvSh0.net
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
こういうファイル名や行数とか出てないの?
247:デフォルトの名無しさん (ワッチョイ ff14-51cu)
[ここ壊れてます] .net
pyautogui素晴らしい最初に知りたかった
248:デフォルトの名無しさん
22/10/07 20:11:45.22 f7Qxxz6p0.net
ぴゃうとぐい
249:241
22/10/07 23:54:53.64 cLCpsl3k0.net
TOML のValidator で、TOMLファイルの形式が正しいかどうか、チェックすれば?
「toml validator online」で検索!
プログラマーなら、VSCode で、~/toml/decoder.py をデバッグするとか、
decoder.pyを差し替えて、
raise ValueError("Duplicate keys!") の前後で、ログ出力してみるとか
250:デフォルトの名無しさん
22/10/08 07:10:23.20 kX9hT5zA0.net
PyAutoGuiも便利だけど何でもできるかというとかなり限定的
画面がこういう状態になったらこの条件に合う部分を探して、
この範囲をコピーしてこのアプリに切り替えてコピペ
みたいなことはできない
251:デフォルトの名無しさん
22/10/08 07:26:14.47 Qqe7/SLY0.net
ディスプレイを切ったら動かないのも使いづらい
252:デフォルトの名無しさん
22/10/08 11:25:58.24 TDMvIP2Ta.net
ライブラリ関数の情報を調査する方法についての質問です
sagemathというpython wrapperにあるpolygon3dという関数がどういうキーワード引数を持っているのか調べたいのです
ググるとinspect.signature関数というのが見つかります
コレでpolygon3dを調べてみると
signature = inspect.signature(polygon3d)
print(signature.parameters)
OrderedDict([('points', <Parameter "points">), ('options', <Parameter "**options">)])
と出ます
おそらく位置引数'points'とキーワード引数がいくらかあるという意味だと思うのですがやはりコレが限界なんでしょうか?
どんな名前のキーワード引数を持ってるかの一覧表を出力するような方法はないもんなんでしょうか?
253:デフォルトの名無しさん
22/10/08 12:37:16.55 ymJkU01o0.net
>>250
オープンソースなんだからGitHubに見に行けばいいじゃん
254:デフォルトの名無しさん
22/10/08 14:49:02.11 hw6LN7oLa.net
>>251
そうなんです
実際sagemathは割とドキュメントもしっかりしててググれば一覧とかもあります
でもいちいちめんどくさいじゃないですか
もしかしたら各オプジェクトで利用可能なキーワード引数のリストを得る方法とか容易されてたら便利でいいなぁと
結構ググったのでなさそうではあるんですけど、調べて「あった」場合はともかく「ないなぁ」の場合、やはり最終的には強者に聞いてみないとダメかなと
255:デフォルトの名無しさん (ワッチョイ 4aa5-gAv1)
[ここ壊れてます] .net
ドキュメントをぶっこ抜いてその関数がどんな引数とるかのポップアップをエディタで出せばいい
256:デフォルトの名無しさん (ワッチョイ ca14-0xn2)
[ここ壊れてます] .net
pyautogui
エラー出さずにできましたが最適ではない気がします
下記のやり方より良い方法があれば教えて欲しいです
①
pyautogui.write() でエクスプローラーのアドレスにパスを打ち込む時
日本語や \ が入力できなかったり、最初の C: が C* に勝手に変わったりしました
・pyperclip を使って値をコピーしてから、pyautogui.hotkeyで貼り付けました
②
pyautoguiを使って検索したりクリックしたりする時
・画像認識してから次の処理する時は、while pyautogui.locateOnScreen() is None: で time.sleep(1) させて
・検索結果表示とか全選択とか、少し時間がかかりそうな箇所は逐一改行して「time.sleep()」を書きました
これを書くのが結構あってcodeが余計に長くなりました
257:デフォルトの名無しさん
22/10/08 15:27:35.37 bWQzA1rj0.net
pyautogui 便利だけどマウスとモニターが使用不可になるのだけは面倒でした
下のソフトの処理ができるなら別のもので構わないのですが、pyautogui以外でやってる人がいたら教えてください
・Adobe Acrobat
・Evernote ※Legacy版
・ソシャゲ全般(デイリー回収用)
258:デフォルトの名無しさん
22/10/08 15:49:00.05 kX9hT5zA0.net
ahkで簡単なことはやらせてる
python化されたahkがあればいいのにと思っている
259:デフォルトの名無しさん
22/10/08 15:57:12.38 IpF+MZYD0.net
ahkって何?
260:デフォルトの名無しさん
22/10/08 16:00:09.87 xEoQJfh1M.net
sleepが面倒なら画像名を指定するだけで待ち&クリックする関数を作れば良いんでない
バックグラウンドでの使用は、昔VPCを多重起動して使ってたことあるけど今でも出来るんかな
昔、某MMOでプロセスメモリの内容を読み取って動くマクロとか作ったけど
プロセスメモリが読めればエスパーなマクロが作れるよ
261:デフォルトの名無しさん
22/10/08 20:40:05.22 bWQzA1rj0.net
>>258
それでやってみます
ゲームに使えるならプロセスメモリもその内手を出しそうです
262:デフォルトの名無しさん (ワッチョイ 034f-6jYr)
[ここ壊れてます] .net
>>252
VSCode, Ruby では拡張機能で、関数の説明なども見れる
また端末から、そういうコマンドを実行しても見れるけど、
ブラウザで見た方が見やすいので、
一旦コマンドで説明をHTML ファイルにしてから、それをブラウザで見て、
見た後に、HTMLファイルを削除する。
これが自動で行われる
ただし、その関数・モジュールの作者が、
Doc コメントみたいな決められた様式で、コメントを書いている場合のみ
たいてい、Doc コメントの説明などは、
パーフェクトRuby などのパーフェクト・シリーズ本に書いてある
263:デフォルトの名無しさん
22/10/09 04:21:23.14 L81MTKQk0.net
クリップボードにpathlibのPathで指定した、不特定多数のファイルをコピーをしたいのですが方法が分かりません
コピーするファイルは、フォルダー・テキスト・画像・動画・PDF関係なく、PC上で選択してCtrl+Cできるファイル全てが対象です
pyautogui.hotkey(“Ctrl”,”v“) を使って貼り付ける予定です。※Evernote Legacyというメモアプリ上で使いたい
pyperclip、shutil、pillow関連の記事は見つかるのですが、クリップボードに複数・拡張子問わずコピーする方法が見
264:つかりません どうすればできるのか教えてください
265:デフォルトの名無しさん
22/10/09 04:59:04.96 L81MTKQk0.net
今のところPathにあるファイル名いじって、検索かけてから全選択して、pyautogui.hotkeyでコピーするという遠回りなやり方でしてみました
266:デフォルトの名無しさん
22/10/09 11:51:56.93 xdRBYpSIM.net
FileDrop形式に変換できれば良いんだろうけどパッと検索してみた限り難しそうだね
VSを使ってクリップボードを監視してファイル名が含まれていたらFileDrop形式に変換するアプリを自作するか
コピー用のtempフォルダにファイルを一旦コピーしてから全選択→貼り付けとかでも良さそう
267:デフォルトの名無しさん
22/10/09 16:29:09.15 L81MTKQk0.net
>>263
FileDrop形式という単語を知れただけでも良かったです。ありがとうございます
268:デフォルトの名無しさん
22/10/09 20:19:39.13 nf8IBTFd0.net
chm形式のヘルプが3.7までしか野良に無いんだけど、3.10(stable)のchmどこかに無い?
公式はDLしたいけど404でオンラインでしか参照できなくて困ってる
269:デフォルトの名無しさん
22/10/09 20:45:08.96 Ozrjh9EB0.net
>>265
公式にpython3107.chmあるし、落ちてくるよ
270:デフォルトの名無しさん
22/10/09 20:53:03.75 nf8IBTFd0.net
>>266
すまん、日本語版希望。。。
githubに3.7jpビルドしてる人の使ってる
271:デフォルトの名無しさん
22/10/09 23:28:35.38 t9JKJStV0.net
>>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 # 出力したコマンドプロンプト画面を閉じないようにする
272:デフォルトの名無しさん
22/10/11 09:09:33.80 L++CLq2X0.net
すみません、jupyter labで下記のように記述して実行したんですが、エラーでサイトが開きません。原因わかる方いらっしゃいませんか?
url = ''URLリンク(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クリックで確認しました。
273:デフォルトの名無しさん
22/10/11 09:22:50.72 S+x+TbIN0.net
エラーメッセージの内容を切り分けて質問しろよ
エラーの原因はすぐわかるだろ
web view not found
まぁ、こんな状態でスクレイピングとかアホかって感じだけど
274:デフォルトの名無しさん
22/10/11 09:43:03.84 L++CLq2X0.net
>>270
回答どもでーす
275:デフォルトの名無しさん
22/10/12 16:39:03.55 +cq2T5fE0.net
python 3.10.8インストールしようとしたらエラー出る
こういうやつな
URLリンク(pullanswer.com)
276:デフォルトの名無しさん
22/10/12 16:41:57.24 Q9qje2Sc0.net
ご愁傷様
277:デフォルトの名無しさん
22/10/13 13:50:28.26 uklwGmra0.net
>>272だけど今試したら3.10.8インストール出来た
URLリンク(www.python.org) のフォルダの属性設定を間違えてたらしい
よって>>273は昨日の時点ではインストールしてないとすぐに分かるんだね
278:デフォルトの名無しさん
22/10/14 23:30:33.11 0UzEEAJh0.net
>>294
できました!辞書型なら列追加できるんすね
279:デフォルトの名無しさん
22/10/15 01:53:05.91 gy4T8Zz60.net
df_merged = pd.concat([df.iloc[:, 0], df.iloc[:, 2]], axis=1)
280:デフォルトの名無しさん
22/10/15 08:25:41.38 w1fQiwU/0.net
iloc()じゃなくてiloc[]の時点で、何しとるのかよく判らん
281:デフォルトの名無しさん
22/10/15 10:37:21.32 Awb5Gbls0.net
URLリンク(pandas.pydata.org)
ドキュメント嫁
282:デフォルトの名無しさん
22/10/15 14:09:18.62 wUAlKc2l0.net
質問です。
配列内にアルファベットの要素がランダムに複数個入っています。
これらの要素をなるべく隣り合わないように並べ替えるにはどうするといいでしょうか?
例:AAABBC -> ABACAB
283:デフォルトの名無しさん
22/10/15 14:14:45.53 w1fQiwU/0.net
不可能なパターンがあるな
284:デフォルトの名無しさん
22/10/15 14:20:59.88 1JUKlkYAM.net
>>279
なるべくっていう処理はコンピュータには不可能
きっちり仕様として示せる処理でなければならない
285:デフォルトの名無しさん
22/10/15 14:30:34.17 ttRM3D3c0.net
>>279
隣合うのが不可避の場合どうするのか
前に溜めるのか後ろに溜めるのか
2文字ずつ並ぶ→3文字ずつ並ぶのように緩和するのか
286:デフォルトの名無しさん
22/10/15 14:38:02.16 PHpzEK3Ka.net
>>281
最短を目指すとかよくあると思うけど
287:デフォルトの名無しさん
22/10/15 14:45:59.33 wUAlKc2l0.net
>>282
前後に貯めるのではなく、2文字ずつ並ぶ→3文字ずつ並ぶのように緩和できるようにしたいです。
例:AAAAAABBC -> AABAACABA
288:デフォルトの名無しさん
22/10/15 14:49:24.73 w1fQiwU/0.net
AABAACABA はNG箇所が2だけれど、
AAABACABA にすると1箇所で済む
2連続2箇所よりも3連続1箇所の方がスコアが低くなる評価関数の定義が必要
289:デフォルトの名無しさん
22/10/15 14:49:49.52 VXb7W7XW0.net
こういうパズル的なのはプログラミングお題スレで出題する方が早く回答が付きそうだな
290:デフォルトの名無しさん
22/10/15 14:51:37.73 VXb7W7XW0.net
>>285
n連続は1箇所につき2^n点のペナルティを課すとかは?
291:デフォルトの名無しさん
22/10/15 14:55:21.58 1JUKlkYAM.net
>>286
いや、ていうかよく考えたらこの質問Python関係ないじゃんね
292:デフォルトの名無しさん
22/10/15 15:03:04.47 wUAlKc2l0.net
>>288
すいません。
使っているのがpythonだったのでここで質問しました。
やはり難しいようなので、皆さんのコメントを参考に自力で考えてみようと思います。
ありがとうございました。
293:デフォルトの名無しさん
22/10/15 15:15:21.01 ttRM3D3c0.net
>>284
26要素のリストで各文字の個数をカウント
最大のものを見つけ出す
最大/他全部で連続個数が分かる
最大の文字を連続個数並べて他の文字を順番に挟む
挟む時は各文字の文字数をつじつま合うようにリストをカウントダウンして調整
同じ文字は可能な限り離したいとか条件追加するともっと難しくなる
294:デフォルトの名無しさん
22/10/15 15:17:51.26 ubtsaD1N0.net
>>280
ちゃんと確認してないけど、交互に置けない場合が条件になるのかな?
不可能条件
最頻出文字数 > 文字総数/2
かな
295:デフォルトの名無しさん
22/10/15 15:17:59.84 ttRM3D3c0.net
文字の挿入は総数がつじつま合うようにもっと工夫が必要だな
まあ頑張ってくれ
296:デフォルトの名無しさん
22/10/15 15:18:54.05 ubtsaD1N0.net
かぶった上に劣化だった><
297:デフォルトの名無しさん
22/10/15 15:33:35.79 wUAlKc2l0.net
>>290
>>291
ありがとうございます。
試してみます。
298:デフォルトの名無しさん
22/10/15 15:53:38.83 2u2iBEwS0.net
>>283
「なるべく」は結果についての話
最短は手順の話だから違うよね
299:デフォルトの名無しさん
22/10/15 16:21:01.13 w1fQiwU/0.net
ガチでなるべくなヒューリスティックな問題の方が現実には多い
300:デフォルトの名無しさん
22/10/15 16:39:39.77 ywjmScUEa.net
>>295
今回は結果の話しかないよな
301:デフォルトの名無しさん
22/10/15 17:41:55.96 Hv7z/9nw0.net
思いつきだけど
[合計文字数][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
302:デフォルトの名無しさん
22/10/15 17:50:25.10 ttRM3D3c0.net
>>298
合計じゃなくて最大個数の文字数でいいな
303:デフォルトの名無しさん
22/10/15 18:29:11.63 a1geBJ2n0.net
for文の途中で条件に当てはまったら、for文の任意の値から処理を再開させる書き方とかありますか?
例えば「for x in range(10):」とあったとして、7の途中で条件に当てはまったら、3から再開してそのまま最後まで処理するみたいな
304:デフォルトの名無しさん
22/10/15 18:32:12.78 VXb7W7XW0.net
while使った方がいい
305:デフォルトの名無しさん
22/10/15 18:48:06.23 w1fQiwU/0.net
処理で条件が変わるような場合は、whileにしてもハマる
いつ終わるか判らないようなループは本質的に不安定
306:デフォルトの名無しさん
22/10/15 18:48:39.13 i+M+Mx9R0.net
再帰でいいのでは?
307:デフォルトの名無しさん
22/10/15 18:52:19.28 2u2iBEwS0.net
>>300
そういうジェネレータ作ってrangeと置き換えればいいんじゃね
308:デフォルトの名無しさん
22/10/15 19:03:32.69 jl8SG5IY0.net
あんま綺麗じゃないけど、こんな感じでいいのか?
競プロの連中ならもっとスマートなの書いてくれるはず
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)
309:デフォルトの名無しさん
22/10/15 19:10:00.74 jl8SG5IY0.net
よく見たら、聞くまでもなくダメなやつだなすまん
310:デフォルトの名無しさん
22/10/15 19:57:10.99 icx3tYx0M.net
>>305
とりあえずcollectionsのCounterだけは覚えようか
311:デフォルトの名無しさん
22/10/15 20:30:20.03 Hv7z/9nw0.net
Numpyで作ってみたで
URLリンク(ideone.com)
312:デフォルトの名無しさん
22/10/15 20:30:36.10 Ji35UDrea.net
きったね
313:デフォルトの名無しさん
22/10/15 20:48:46.65 jl8SG5IY0.net
>>305
ありがとう
このソートって思ったよりも難しいな
ツリー構造は理解できねえわ
314:デフォルトの名無しさん
22/10/15 21:15:49.97 jl8SG5IY0.net
アンカミスってた
>>307
ありがとう
315:デフォルトの名無しさん
22/10/16 01:02:14.69 moLuv1n40.net
>>279
URLリンク(ideone.com)
すごーく分かりづらいけど、2種類に分けて導き出した
区切り文字中心に考えたのに、そこで処理を分けてない体たらく
あと、同じ文字は出来るだけ遠く?は難しかった
〆切ってそうな話題ですまん、Python覚えたくてやってみた
316:デフォルトの名無しさん
22/10/16 20:28:46.68 MD6QHwBW0.net
質問です。
vscordとpycharmと他のパイソン系なのですが
「マルチグラボ」対応してるのを探してます。
お勧めはありますか?
317:デフォルトの名無しさん
22/10/16 20:56:42.88 tl8sUwzf0.net
Windowsで作成した画像を外付けHDDに保存する。
※macとWindows共通で使えるFAT32使用
それをmacPCのpythonのglobで画像のパスを読み込んだ時に
「バスケ」や「ポケモン」などの濁点と半濁点の検索ができません。
※printで中身を見るとあります。
原因や対処方法がありましたら教えて下さい。
318:デフォルトの名無しさん
22/10/16 21:20:40.98 F/Fiy6Pc0.net
unicodedata.normalize()
319:デフォルトの名無しさん
22/10/16 21:28:07.05 cG9YvU2e0.net
あれはあれでunicodeなんだよな
統一できてない
320:デフォルトの名無しさん
22/10/16 21:50:36.51 tl8sUwzf0.net
>>315
ありがとうございます。
うまくできました。
321:デフォルトの名無しさん
22/10/16 22:24:25.86 U1duiFVid.net
>>279
これ貪欲法で解ける??
解けるならAtcoderのCくらいででそう
322:デフォルトの名無しさん
22/10/16 22:53:43.69 1lEHOAQp0.net
Mac は「ハ + 濁点」「ホ + 半濁点」に分割しているのか
1文字にまとめるのが普通
323:デフォルトの名無しさん
22/10/16 23:02:52.94 cG9YvU2e0.net
昔からそうだったとかでもないのに
デファクトスタンダードに合わせるのは嫌というイキりたいOSの性格が現れている
324:デフォルトの名無しさん
22/10/16 23:16:15.14 N+fxT3Y10.net
昔はバやパを平気で使ってたぞ
325:デフォルトの名無しさん
22/10/17 00:13:29.63 uAMFVFmC0.net
半角カナを全角に変換した時に
文字数が変わるのを許容できるかという問題
326:332
22/10/17 01:43:17.91 fAAk7KG50.net
>>279
URLリンク(ideone.com)
内包表記とスライスを使ってみた
・・・Pythonヤバすぎる、便利すぎる
327:デフォルトの名無しさん
22/10/18 01:25:14.77 zc0QoIzs.net
単純な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.su
328:bplots() 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)
329:デフォルトの名無しさん
22/10/18 10:34:44.39 jjMTEoo10.net
test = set(A[‘A1’] for B in C[‘C1’] for A in B[‘D’] )
ってどういうコマンドなんでしょうか。
入れ子が多すぎてよくわからず…
何がどう処理されてtestには何が入るんでしょう?
330:デフォルトの名無しさん
22/10/18 10:55:11.72 RkLeKawPM.net
バラせば済む話だわな
331:デフォルトの名無しさん
22/10/18 11:05:17.60 xDZsbnE90.net
test = set(...) は
URLリンク(docs.python.org)
なんで置いといて中身の話だけど
A['A1'] の所を一時的に C B A と順に3回置き換えて動かすとみえてくるかも
332:デフォルトの名無しさん
22/10/18 11:09:45.56 jjMTEoo10.net
>>326
バラす場合は
test = set(A[‘A1’]
for B in C[‘C1’]
for A in B[‘D’] )
ここでバラすってことですかね?
333:344
22/10/18 12:45:29.61 zc0QoIzs.net
ゴテゴテになりましたがなんとかできました
URLリンク(ideone.com)
#0.0 97
#crossover sin,cos 2
#crossunder sin,cos 1
334:デフォルトの名無しさん
22/10/18 12:56:03.93 41XzDqyZM.net
>ここでバラすってことですかね?
>>328
フィルタリングしてるのはわかってるやんな?
335:デフォルトの名無しさん
22/10/18 13:24:53.77 jjMTEoo10.net
>>330
すみません
フィルタリングってなんでしょうか…?
336:デフォルトの名無しさん
22/10/18 14:51:24.85 5thtfPTiM.net
>>325
forループに直して読めばいい
test = set()
for B in C[‘C1’]:
__for A in B[‘D’]:
____test.add(A[‘A1’])
あまりいい内包表記の使い方ではない
337:344
22/10/18 14:53:46.55 zc0QoIzs.net
差とったバージョン貼るの忘れてました >>329
URLリンク(ideone.com)
せっかくnumpyやpandas使っているのにforで回す感じが納得できませんが妥協します