1 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 18:52:26.67 ID: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る「横着」禁止) ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Pythonオフィシャルサイト www.python.org/ ◇Pythonドキュメント https://docs.python.org/ja/3/ ◇まとめwiki ttp://python.rdy.jp/ ●関連スレ● 自称初心者は↓へ 【まず1嫁】くだすれPython(超初心者用) その57 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
110 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 13:33:00.23 ID:+zHy6u5Kr.net] condaのコマンドで新しい環境作れるようにしたらスタンドアロンのpythonが外れた記憶ある
111 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 15:33:58.69 ID:BGgCMaIl0.net] 俺も初心者の頃はアナコンダ入れてた。 けど後から無駄も多く必要ないことがわかったのでアンインストールした。 pythonとVSCodeあれば事足りる。
112 名前:デフォルトの名無しさん (ワッチョイ 1214-P81A) mailto:sage [[ここ壊れてます] .net] ファイル名に使えない文字を全角に変換するコードってこんなに長くなるものなんですか? https://qiita.com/kusunamisuna/items/a32679874afedc032158 name_ng = ["/","\",":","*","?","<",">","|"] こんな感じでリストに入れてfor文の中で replace で置換すれば良いんじゃないかと思ったけど、リストにする段階でエラーになります 上記のURLの記述が最適解? 簡略化された書き方があったら教えてほしいです。
113 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] a=True b=True aかつbがTrue、それ以外の全て の条件って if not (a and b): でよかったっけ・・?
114 名前:デフォルトの名無しさん (ブーイモ MMde-zdrj) mailto:sage [[ここ壊れてます] .net] >>111 translate使えばforすらいらない
115 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 18:29:31.09 ID:LDtPUxey0.net] >>111 その記事が最適かどうかは別問題として、まず0x5cをちゃんとエスケープして、あなたの考えを動くコードとして完成させよう その上で、記事のコードと分かりやすさや速度を気の済むまで比較してみればよい
116 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 19:22:50.96 ID:nYu0cH9J0.net] >>113 調べて試してみます >>114 そもそも ”\” は文字列としても単体では使うことができない感じですかね? 知らなかったです。教えてくれてありがとうございます
117 名前:デフォルトの名無しさん (アウアウウー Sa43-a1Je) [[ここ壊れてます] .net] r'hoge\hoge'
118 名前:デフォルトの名無しさん [2022/09/25(日) 00:00:20.77 ID:TfTFVrn20.net] >>112 if all([a, b]): else
119 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 00:30:59.06 ID:wq9M03AC0.net] allとanyは積極的に使おう フラグを別に持つとか途中で抜けてループ変数を見るとか、 何でレガシーな言語はそれで満足してたのか判らん
120 名前:デフォルトの名無しさん [2022/09/25(日) 02:03:20.35 ID:ouzeiwB30.net] 今日からPython始めたんだけど、エラーが出て動かなくて悩んでたらインデントが原因だったw 調べたらインデント自体プログラム構造的に意味を持ってたんだな。。。
121 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 05:32:21.54 ID:WCcUyzUQ0.net] 少しコードが長くなってきたので、関数を定義してみようと思ったのですが 関数を使うくらいなら、最初からclassとmethodでやった方が後々便利ですかね? それから現段階ではまだinstance変数を使うかどうかは不明ですが classの最初に__init__は決まり文句として書いておいて良いのでしょうか? 仮に全く使わなかった場合にバグの元になったりするのでしょうか?
122 名前:デフォルトの名無しさん [2022/09/25(日) 05:38:14.60 ID:iEmY5l+s0.net] そのレベルならまず関数に慣れよう classはそのあと
123 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 05:54:55.13 ID:WCcUyzUQ0.net] 了解しました
124 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 11:02:47.56 ID:sQFmQmse0.net] classを使うほうが常に優れていると思ってるなら認識を改めたほうがいいよ。 classと関数両方使えるがpythonのメリット。 標準ライブラリだって両方共存してるのにどちらかを捨てるなんてもったいない
125 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 11:22:42.32 ID:Sdaj2srm0.net] 自己満だからといっていつも意識的にそれらを考えていかなければより良い設計はできないのかもしれない
126 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 11:43:23.68 ID:rlnwElI30.net] クラスはメンバ変数にselfが強制だからコードが冗長になって嫌だわ
127 名前:デフォルトの名無しさん [2022/09/25(日) 12:37:00.29 ID:uj3dGGMEr.net] >>125 インデントも深くなるし、状態持つ必要が無ければモジュール化で十分よな
128 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 12:49:19.19 ID:wq9M03AC0.net] 大仰なクラスを作ろうとするから インスタンス変数が2つだけ、みたいなのでも十分役立つ
129 名前:デフォルトの名無しさん [2022/09/25(日) 17:18:10.55 ID:hs4ndUhv0.net] >>127 それくらいならNamedTupleでも良いかな
130 名前:デフォルトの名無しさん [2022/09/25(日) 17:41:46.06 ID:iEmY5l+s0.net] dataclassええで
131 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 17:54:34.18 ID:AFTbeWYX0.net] クラスは実装の詳細を見せたくない時に限る
132 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 07:24:51.77 ID:ciNDFZ6I0.net] クラス名をclass Hoge ファイル名をhoge.py インポートでimport hoge インスタンス名何にしようかいつも悩む ??? = hoge.Hoge()
133 名前:デフォルトの名無しさん [2022/09/26(月) 09:07:29.52 ID:P9G+/qqR0.net] >>81 そもそも[0,1]のときにx[0]を2つ取り出したいのかどうかがよくわからないな あと、最大(?)は[0,10]じゃないか? [0,9]のときと[0,10]のときでどう処理を変えたいのかよくわからない 半開区間に含まれる最小最大を取り出したいなら、 for i in [idxs[0], idxs[1] - 1]でいいと思うのだけどこれは嫌?
134 名前:デフォルトの名無しさん [2022/09/26(月) 09:12:30.59 ID:P9G+/qqR0.net] 木構造とかグラフ構造を自作したいなら(間々ある)、 クラスにした方が便利なときある気がするけどな。 get_tree_children(node)とかしだすなら、node.children()の方が名前空間がすっきりしていいし。 実装の詳細を見せたくないかどうかというよりは、関心の分離をしたいかどうかによるような気がするな。 確かにクラス作るまでもないようなことは多いけど。
135 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:32:27.38 ID:b9hyANFk0.net] >>128 値が変えられないがな
136 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 23:15:54.08 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 23:17:59.46 ID:QR+uVx8I0.net] >>135 ideone に貼っときます https://ideone.com/yVmxfv なぜでしょうか?
138 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 23:31:03.60 ID:b9hyANFk0.net] a = 1 c = 1 の時と同じ理由
139 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 23:32:02.41 ID:Gide+MMY0.net] >>136 ならない
140 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 23:33:01.37 ID:Gide+MMY0.net] ほらよ https://i.imgur.com/mESpBvj.jpg
141 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 23:49:19.92 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 00:20:20.92 ID:LFY5tutJ0.net] >>140 ありがとうございます、オプティマイゼーションの余地がある、ということですね、納得しました
143 名前:デフォルトの名無しさん [2022/09/27(火) 19:02:24.07 ID:zjZtbJ3M0.net] a is cが真になるかはかなりケースバイケースな気がするし、 中身を比較したいんだったら使うべきじゃないね 本当に同じtupleインスタンスかどうかを確認したいときだけにすべき
144 名前:デフォルトの名無しさん [2022/09/27(火) 22:33:08.85 ID:3OHfLHhN0.net] tupleだけの話ではなくてどの型でも同じだけどね 例えば文字列とか
145 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 23:35:04.66 ID:tKd9rAjb.net] n=12345.67 小数点以下が何桁あるのか調べたいのですが len(str(n).split(".")[1]) if isinstance(n, float) else 0 こんなんでいいですかね・・?
146 名前:デフォルトの名無しさん [2022/09/27(火) 23:51:45.87 ID:3OHfLHhN0.net] >>144 https://ideone.com/pSUvOH
147 名前:デフォルトの名無しさん [2022/09/27(火) 23:53:56.84 ID:+joc5Asc0.net] >>144 誤差で予想外の挙動しそうだからDecimal使う方がいい
148 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 02:27:12.38 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 09:19:00.77 ID:9I9ISsCh.net] >>145-147 たしかに 0.30000000000000004に対して17得られたのは正解だと思いますが 0.00001で1e-05になっててエラーでました Decimalかformat使ってみようと思います ありがとうございました
150 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 10:07:58.97 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 10:17:26.42 ID:9I9ISsCh.net] from decimal import Decimal str(Decimal(0.123456)) str(Decimal(0.123456)*Decimal(1.05)) #'0.1296288000000000015945911258' あれ、そもそも0.123456の小数部の桁数はどうやって知るんだっけ?? てところで詰まってます・・
152 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 11:25:04.93 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 11:30:47.23 ID:9I9ISsCh.net] 連投すみません 結果です https://ideone.com/exojEw
155 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 13:38:45.48 ID:E42G0/DqM.net] 元々の桁数でroundしたいって感じなのかな
156 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 18:25:19.27 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:37:21.94 ID:9I9ISsCh.net] >>154 ありがとうございます やはり至るところで誤差が発生するのですね 四捨五入は今回の用途ではどちらでも良い感じです せっかくなのでまとめてみました https://ideone.com/JmTu06 ありがとうございました
158 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:42:02.44 ID:o0cHd3Tq0.net] 先にIEEE754読んでみては? 誤差に関しての勘所がわかるようになる
159 名前:デフォルトの名無しさん [2022/09/28(水) 20:32:50.93 ID:x5UMfEp40.net] 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モジュールは便利そうだね。
160 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 23:21:28.71 ID:FDPwu/KN0.net] log2で有効桁数計算出来るでしょ
161 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 00:26:06.29 ID:3C3gpnCY0.net] >>154 どちらの書き方でも -0.015 を四捨五入したら-0.02だった、すまん -0.01にしたい場合は自力でなんとかして
162 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 00:55:04.52 ID:qun5+YRs0.net] 昔から不思議なんだけど 何で分数で処理しないのかな? 最後に割り算を一回だけすれば 誤差がでないじゃないの
163 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 01:46:32.47 ID:0IYvIpx66.net] 掛け算でも足し算でも誤差が出るから
164 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 01:53:32.93 ID:sForoGQI0.net] Pythonは整数側の桁数制限が無いのを利用して高精度にできそう
165 名前:デフォルトの名無しさん (アウアウウー Sa43-hb2l) mailto:sage [[ここ壊れてます] .net] >>160 似たような大きさの数字ならその発想もいいけどね 現実はコスパの悪い任意精度の演算が必要になることが多いのでは
166 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 03:11:26.40 ID:FkDRVgM50.net] >>160 つ fractions
167 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 04:56:46.10 ID:HxNT59pn0.net] だから誤差の話するならIEEE754読めよ
168 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 04:57:30.60 ID:CfDFJOy00.net] >>160 昔GCD付きの分数クラス作ったけど 結局はdoubleになったことがある
169 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 05:21:28.14 ID:oHn8O8ll0.net] >>160 四則演算だけならいいけど√とかsin( )とかはどうする? >>161 掛け算、足し算で誤差がでるケースとは?
170 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 08:01:25.94 ID:Gm4+1fgX0.net] sinとかも内部は四則演算
171 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 09:17:00.10 ID:oHn8O8ll0.net] >>168 近似演算の話されても困るんだがw
172 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 09:23:23.51 ID:k91OtGRla.net] 三角関数の近似じゃない演算て
173 名前:デフォルトの名無しさん [2022/09/30(金) 10:05:45.64 ID:EsKmogiV0.net] python chapelについて質問です。 情報があまりないので、チャペルについてお勧めのサイトがあれば教えてほしいです。
174 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 10:38:01.55 ID:t/wNXSJY0.net] クヌースのTAOCP読むといいよ コンピュータでの数値計算の全てが書かれてる
175 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 13:20:23.85 ID:oHn8O8ll0.net] >>170 sinsin, cos のまま計算するって話だろ 数学不得意か?
176 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 13:47:23.87 ID:k91OtGRla.net] >>173 そんなもん代数的な操作だろ
177 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 13:54:50.47 ID:oSg68bQdM.net] >>160 遅いからだよ
178 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 14:09:07.38 ID:oHn8O8ll0.net] >>174 話は>>160 から始まってて途中は代数的な操作で最後に一回だけ演算することで誤差を抑えられるって話な
179 名前:デフォルトの名無しさん [2022/09/30(金) 16:11:14.18 ID:7g2iZKZC0.net] 三角関数は二項演算じゃないから後も先もないだろ
180 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 16:39:44.93 ID:du1MSukG0.net] ここまで有効数字の話なし
181 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 16:40:16.15 ID:Gm4+1fgX0.net] 有理数演算に有効数字は関係ない
182 名前:デフォルトの名無しさん [2022/09/30(金) 17:02:40.52 ID:7g2iZKZC0.net] 実は誰も数値計算誤差について知らないのである
183 名前:デフォルトの名無しさん (ワッチョイ 1e66-yYUR) mailto:sage [[ここ壊れてます] .net] 組み込み系で、積算の量を保持していて 1秒毎に測定して何年というスパンで計算を続けると、 もう32bitでは精度が足りなくなる
184 名前:デフォルトの名無しさん [2022/09/30(金) 18:26:40.60 ID:J+iH2myB0.net] 最後に浮動小数点数にして誤差を減らす方法は、代数的な計算ができる必要がある。 Mathematicaとか、SymPyだな。 ただ代数的な計算は上手いこと式を整理してやらないと簡単にならないことも多い。積分は公式を知らないと出来ない、というのと同じ。 有理数の四則演算だったら単なる有理数演算を逐次的に実行していけば問題ないだろうが。
185 名前:デフォルトの名無しさん [2022/09/30(金) 18:28:54.96 ID:J+iH2myB0.net] >>177 んなことないだろ。加法定理やら積和、和積の公式とか習わなかったのか。あの辺使うと極端な場合の誤差減らせるよ。 xが0に非常に近い場合のsin2x/sinxとかね。
186 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 03:53:03.59 ID:SpYHa2lW0.net] お金の計算とかは 有理数しか出てこないんだから 分数で十分のような気がするんだが
187 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 05:23:12.47 ID:9xFR6mUQ0.net] 丸めたくない意図だと思うが加減算だけで速攻破綻する
188 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 05:55:22.47 ID:jubCkgWp0.net] 単にbit数が足りなくなるという話なので、 必要に応じてbit数を増やしていけばいい 無限に増えることは絶対ない
189 名前:デフォルトの名無しさん [2022/10/01(土) 06:02:40.31 ID:WTWdfTM50.net] 質問です。 djangoの資格を作りたいとおもってます。 需要はありますか?
190 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 07:28:28.28 ID:qHW/WFxU0.net] https://translate.google.com/ Google翻訳のページで、テキスト入力ボックスから「Tabキー」を1回押すと必ず「音声を聞く」のアイコンに移動するようにしたいのですが、Pythonで可能ですか? 通常は3回で行けるのですが、”原文の言語”や”もしかして”が表示されるとTabキーを押す回数が変わって面倒です。しかもリストが表示されててそのパターンなのか見えない。 Pythonで何とかしようとしてるのがそもそも間違っている気がして、簡単なHPをJavaとか?で作ったり、アドオンを組んだりとか別の手段が必要ですかね?
191 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 07:35:38.92 ID:y8eCR1Dta.net] うるせえ
192 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 09:20:27.54 ID:XqhFz79Ma.net] >>188 現在のフォーカスを取得することでTab回数制御できそうだけど そもそも音声を聞く、のidありゃそこに飛ばせるやろ
193 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 10:02:57.41 ID:qHW/WFxU0.net] >>190 seleniumを使ってプログラムを実行した時だけなら出来たのですが、普段使いで常にその状態にさせる方法が分からなかったです。 独自の簡単なChrome拡張機能を作る方向が一番良さそうな感じです。そっちで少しやってみます。お騒がせしました。
194 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 10:19:40.80 ID:2xmZEmoH0.net] >>191 拡張起こさなくてもTampermonkey拡張でスクリプト書くだけ
195 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 10:33:51.18 ID:vUZPctIIM.net] USWCとか使ってESCキーを押したら画像認識で再生ボタンクリックとかにすると簡単そう ESCだと位置的に押しやすいし予測候補も消える pyautoguiみたいなの使えばPythonでもUWSCと同じ事出来たはず windows限定の話だけど
196 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 10:49:36.68 ID:WjbJBDxU0.net] 拡張する方向でやってもすぐに使えなくなったりするので、 キーやマウスの操作を発生させる方向でやるのが結局ベストだったりする
197 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 10:54:58.28 ID:qHW/WFxU0.net] >>192-194 最初に調べるキーワードが出てこなくて分からないことが多いので情報助かります 頂いた情報を元に解決する方向でやってみます。ありがとうございました。
198 名前:デフォルトの名無しさん [2022/10/03(月) 10:55:37.39 ID:S1BqvHYWd.net] >>169 >>173 複素数や四元数を使うのが割りとマジでお薦め
199 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 11:05:12.96 ID:zOLlU4yCa.net] オイラーをほめたたえよ
200 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 18:00:29.25 ID:pcuzjq2H0.net] >>188 Ruby, Selenium でも、JavaScript を使って出来たけど、 ソースコードの何かの単語がブロックされるので、 ここには貼れないので以下へ https://jsfiddle.net/w3anscm6/
201 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 18:09:52.15 ID:wCVa7NBkM.net] >>198 どーゆーこと?
202 名前:1 [2022/10/03(月) 22:09:32.24 ID:yB/cj66NM.net] 質問です 以下のプログラム(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)
203 名前:1 [2022/10/03(月) 22:11:29.02 ID:yB/cj66NM.net] 何度も本(スクレイピング・ハッキング・ラぼ)見返したけど間違ってないんです…
204 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:13:35.20 ID:WjbJBDxU0.net] 漢字コードとか?
205 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:15:49.89 ID:phcGwi7g0.net] とりあえずこれに聞こうぜ https://aiprogrammer.hashlab.jp/
206 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:28:30.42 ID:cMmfYMlm0.net] お願いします https://ideone.com/vADQwg for i in range(1, 100) で 99 回 next を呼んでいるのに、なぜ 79 で終わってしまうのですか?
207 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:28:53.24 ID:fB4Oth8WM.net] >>203 すげぇこんなのあるんだ でも解決しなかった(´・ω・`)
208 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:36:32.61 ID:Hgv/NPoj0.net] >>204 n=15のときFizzBuzz Fizz Buzzの3つ表示されます
209 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:54:57.92 ID:phcGwi7g0.net] これでいけそうですが、どうでしょうか 1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を表示する
210 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:58:18.22 ID:phcGwi7g0.net] 修正した 1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を文字列で表示する