X



【まず1嫁】くだすれPython(超初心者用) その56

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2021/12/27(月) 01:38:10.93ID:GepmXCuJ
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その55
https://mevius.5ch.net/test/read.cgi/tech/1633070807/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
0449デフォルトの名無しさん
垢版 |
2022/03/08(火) 18:14:37.92ID:pY0AUvqt
>>448
元のseriesと、shiftメソッド使って一個行方向にずらしたseriesを引き算して、
1なら連続、とかやる方法はあるけど、あんまりエレガントにならないし、
遅いしメモリも食うしいいことなさそうな感じだなあ。
0450デフォルトの名無しさん
垢版 |
2022/03/08(火) 18:16:01.08ID:cb69q7TI
元配列[1,2,1,1,1,2,3,1,2,1,2,3,1,2,1,2,1,2,3,4,5,1,1,2])に含まれる1の数、2の数、3の数・・・をカウントするだけでいい
今の値が3だとしたら、次に4が来るか途切れそうかは、カウントした4の数から考えることができる↑だと4は一個だからほぼほぼ途切れるだろうということになる
0451デフォルトの名無しさん
垢版 |
2022/03/08(火) 18:56:13.93ID:/uluuvq4
>>449
なるほど

>>450
今の値が1連続目だとすると
常に、1連続以上になる確率が高くなりそうな気がしますが違うでしょうか
0453デフォルトの名無しさん
垢版 |
2022/03/08(火) 21:11:58.59ID:/uluuvq4
>>452
ありがとうございます
この数列は、カウンターが出力される機器のログを記録したようなものです
ボタンを押すごとに1,2,3・・と数字がカウントされますが途中でリセットされます
リセットのタイミングは機器によって異なります

極論、
{ 1:1, 2: 10000, 7: 2 }
のログデータを示した機器は(1,2)が10000回出ているので
もし現在2回連続中なら、次ボタンを押しても1にリセットされる期待大だろうと思います

問題は、1,2,1,1,1,2みたいなseriesのデータでしか受け取れないというところで
どうせなら受け取ったdataframeの操作だけでできないのだろうかとあれこれやってみましたが行き詰まり質問しました

上の極論例で言えば
圧倒的に1,2,1,2,1,2…のパターンが多いと思うので、良い感じにグループ化して
期待が大きい順にソートできないのかな、みたいな

ゴリ押しコードではできそうになりました
ありがとうございました。
0454デフォルトの名無しさん
垢版 |
2022/03/08(火) 23:14:01.22ID:NoeFnt/B
1が出てきたところで分割するだけならmore_itertoolsのsplit_beforeが簡単
Counter(len(x) for x in split_before(array, lambda x: x == 1))

ある要素の次に連続した数字が出てくる確率を求めたいなら
yield前に計算が必要なのでsplit_beforeはそのまま使えない
https://ideone.com/TMXIXG
(Counterの要素数が多くなるようならメモ化とかで最適化)
0455デフォルトの名無しさん
垢版 |
2022/03/09(水) 01:42:21.21ID:5uyncfY/
>>454
ありがとうございます
この賭けをするかどうか、がパッと見ですごくわかりやすいですね
>メモ化
やってみたいと思います!
ありがとうございました
0456デフォルトの名無しさん
垢版 |
2022/03/09(水) 13:55:40.04ID:uPg2QLX1
画像認識用に Pillow package 追加した後に pyinstaller でexe化したら、吐き出されるファイルのサイズが全て大きくなりました。
--exclude pillow で除外するしかないのでしょうか?
よろしくお願いします
0457デフォルトの名無しさん
垢版 |
2022/03/09(水) 17:38:50.03ID:Ey9V1kD3
>>456
pyinataller 肥大 検索
0459デフォルトの名無しさん
垢版 |
2022/03/10(木) 11:17:29.77ID:XgQ7nsDt
>>457
ありがとうございます。
仮想環境を構築してexe化するのがベターなのでしょうか?
不要なライブラリを一つずつ除外してアーカイブするってのは現実的じゃないですよね? プロの皆さんはどうやってますか?
0460デフォルトの名無しさん
垢版 |
2022/03/10(木) 11:37:47.77ID:XgQ7nsDt
>>458
ありがとうございます。
py2exe でしょうか? pyinstaller に比べるとかなり軽量化されますね。onefileになりませんが、解決できそうです。
0461デフォルトの名無しさん
垢版 |
2022/03/10(木) 12:19:42.66ID:F03aXzW3
>>459
プロジェクトごとに最小限の環境切って出力までいく
他に手はない
だからガバガバAnacondaとかが嫌われているんだね
組み込みに、必要なライブラリを必要なときに入れていく。最後にpyinstallerを入れてexe
これが最小
0462デフォルトの名無しさん
垢版 |
2022/03/10(木) 12:23:23.50ID:F03aXzW3
py2exeやcxFreezeはディスコン
0463デフォルトの名無しさん
垢版 |
2022/03/10(木) 12:44:48.00ID:2dGzdKSz
exe化自体がPythonには向かないから肥大化は諦めろとしか
まともな使い方したいならpip対応してインストーラーを配布
0464デフォルトの名無しさん
垢版 |
2022/03/10(木) 14:01:53.94ID:fg/vrfqm
まあenv+最小環境でも20MBスタートくらいだしな
0466デフォルトの名無しさん
垢版 |
2022/03/10(木) 14:24:28.69ID:7DfxLAmP
>>463
やるにしても超初心者の手を出すことじゃねえなあ
超初心者ほど必要になってしまうジレンマもあるのかも知れんが
0467デフォルトの名無しさん
垢版 |
2022/03/10(木) 16:22:34.24ID:fg/vrfqm
>>465
anaconda+tensorflow+kerasあたりのお手軽AI環境構築で700MBくらいだった気がする
0468デフォルトの名無しさん
垢版 |
2022/03/11(金) 09:47:30.49ID:jL2x9Ttt
def select(idx: int, name: str):
ret = None
__if idx: ret.add
__if name: ret.add
return ret

こういう省略可能な引数に対する型ヒントはどう書きます?
select(idx: int|None =None,
みたいにしなきゃダメ?
0470デフォルトの名無しさん
垢版 |
2022/03/11(金) 11:13:57.75ID:Ozj2kjqC
>>468
Optional
パイプで区切る書き方は3.10以降しかできない
0471デフォルトの名無しさん
垢版 |
2022/03/11(金) 11:47:52.31ID:jL2x9Ttt
すまん、書き方が悪かった
None必須なのかなと思って。引数に何も入れなかったらNoneじゃなくて未定義なのでは?

あとこれが通るのも違和感ある
初期化はおkなので?

class Foo():
def __init__(self):
__self.var : list[int] = [] # コイツ


def insert(self, value: int):
__self.var.append(value)
0473デフォルトの名無しさん
垢版 |
2022/03/11(金) 12:59:50.35ID:jL2x9Ttt
>>472
そうなのか…
了解した
0474デフォルトの名無しさん
垢版 |
2022/03/13(日) 22:05:27.78ID:Eg2cTOah
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw
0475デフォルトの名無しさん
垢版 |
2022/03/15(火) 21:22:46.39ID:uGLxHLAf
PysimleGUIで使いたい機能が動かない事があるんですが、
もしかしてJupyterNotebookってPysimleGUIと相性が悪いとかってありますか?
0478デフォルトの名無しさん
垢版 |
2022/03/15(火) 22:19:24.09ID:onaoSqbL
逆にそれはjupyterがすごい
vsc使おう
0479デフォルトの名無しさん
垢版 |
2022/03/15(火) 22:43:02.98ID:IXWkoe6F
SmalltalkやZopeみたいな実行環境自体がGUIでIDEってやつかとおもったら
PySimpleGUIはJupyterの外なのか
そこまでうれしくはないな
0480デフォルトの名無しさん
垢版 |
2022/03/16(水) 00:21:06.85ID:oBLq1y/2
>>477
具体的には例えばこのページ(ttps://knt60345blog.com/pysimpleguigui_popup2/)にある
「popup_get_file」を使ってファイル読み込みダイアログが簡単に出るみたいに書いてあるんですが
実際にはダイアログボックスが表示こそされるもののそれ以降はエラーだらけだったりって感じです。

>>478
VSCって奴がメジャー?だったりするんですかね
教本に載ってた通りに環境をセットアップした状態だったんですが
やっぱそういう相性とかあるんですね・・・
0481デフォルトの名無しさん
垢版 |
2022/03/16(水) 01:22:04.38ID:PxZpXkqG
PySimpleGUI は、ネイティブアプリか?

一方、Ruby on Rails, Electron(Node.js + Chromium), Electron製のVSCode などは、
HTML, CSS, JavaScript を使ったウェブアプリ

Jupyter Notebook もウェブアプリかも?

そもそも、Windows 用のネイティブアプリがまともに動くのか、という疑問がある。
文字コードがUTF-8 じゃないし

C# だけはWindows用言語だけど、それ以外の言語はすべてLinux用だから、
Windows用にコンパイルして、テストしているかどうか疑問
0482デフォルトの名無しさん
垢版 |
2022/03/16(水) 16:29:22.67ID:KaTnXwme
手動でモジュールをインストール(コピー)するにはどうしたらいいのでしょう?

環境コピー元でpip install numpyするとlib/site-package/numpyができる
環境コピー先のlib/site-package/の中にそのnumpyフォルダを単純にコピーしてやればいいかと思ったのですが
これだと'No module named numpy'になってしまいます

コピー先でもpip installしてやればいいのですが、nuget ironpythonで作った環境なのでそれができず(方法がわからず)
単純にコピーしてやればいいやというのが発端で起きた疑問です
0484デフォルトの名無しさん
垢版 |
2022/03/16(水) 17:35:55.37ID:KaTnXwme
searchPaths.Add(@"\Lib\site-packages");
engine.SetSearchPaths(searchPaths);
でパスを追加すると、'Non-ASCII character '\xef' が出て
numpyのpyファイルにエンコード指定を追加すると、今度はunexpected 'from'というようなエラーが出てしまうけれど
エラーが出るということは正常にコピーできてるのかな。とりあえず動かなそうなので諦めます
0485デフォルトの名無しさん
垢版 |
2022/03/17(木) 11:48:34.57ID:BdzeKlQx
Windows+Python3.5です、少し古いかもしれないですがご勘弁下さい
インストールしてすぐです

requestsを使いたくて適当な記事からいくつかサンプルコードを打ち込んだのですが、ImportError: No module named requestsというエラーを吐かれて
まずコマンドプロンプトでpip install requestsを実行すべきなのがわかりました
しかしpip install requestsで新しく生成されたディレクトリは〜\Lib\site-packages\requestsで
pip install requests実行前に、Python自体をインストールした状態ではLib\site-packages\pip\_vendor\にもrequestsディレクトリがあり
しかしこの\_vendor\requestsフォルダはコマンドプロンプトでもPythonの対話モードでも認識されておらず、存在していないような扱いでした

このLib\site-packages\pip\_vendor\内のrequestsが、どのような経路で利用されるものなのか教えていただけないでしょうか?
あまり余分にファイルを増やしたくないので、_vendor\requestsの方を利用できる手段があるならばそうしたいのです
0486デフォルトの名無しさん
垢版 |
2022/03/17(木) 17:42:15.85ID:o4f7Z1L+
>>485
ちなみに、サポート期限切れのバージョンを使わなきゃいけない理由はなに?
0487デフォルトの名無しさん
垢版 |
2022/03/17(木) 17:46:15.17ID:o4f7Z1L+
>>485
"Requests officially supports Python 2.7 & 3.6+."
https://pypi.org/project/requests/

Requestsでも3.6以上じゃないとサポートしていない
0488デフォルトの名無しさん
垢版 |
2022/03/17(木) 17:50:03.61ID:o4f7Z1L+
>>485
pip install requestsは何もエラーや警告もでずに正常終了した?
pip install requests実行してから、適当な記事からいくつかサンプルコードを打ち込んだときは、ImportError: No module named requestsはでなかったの?
Windowsのバージョンはなに?
0489デフォルトの名無しさん
垢版 |
2022/03/17(木) 19:01:16.89ID:Jm9Rrpw3
pip\_vendor\はあくまでもpip自体が使用するモジュール
他のパッケージでも_venderディレクトリに限らず依存モジュールを持ってる場合もあるが
特定バージョンに依存してたり改変されてる可能性もあるのでもったいないからと言って外部から使おうとしちゃだめよ
0490デフォルトの名無しさん
垢版 |
2022/03/18(金) 09:41:06.94ID:hUwp9ZtX
├label 判定処理の開始
│├┬処理1の演算(複数行)
││└演算の結果で「判定処理の終了」に飛ぶ
││
│├┬処理2の演算(複数行)
││└演算の結果で「判定処理の終了」に飛ぶ
││
│└┬処理3の演算(複数行)
│ └演算の結果で「判定処理の終了」に飛ぶ

├label 判定処理の終了

こういうことやりたいんだけど、gotoを使わないでやる方法てある?
gotoは推奨しないていってるよね。
フラグとか使って、前の判定がNGだったかを見る方法しかないのか?
自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、
0491デフォルトの名無しさん
垢版 |
2022/03/18(金) 10:09:20.13ID:wuzcJXmn
>>490
>自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、
単純に処理1の終了時に結果に応じてreturnおけば、それで簡単に抜けられるぞ
ガード節とか早期returnで調べると分かりやすいかも
0493デフォルトの名無しさん
垢版 |
2022/03/18(金) 11:41:42.28ID:EttWLc7+
端折りすぎて何がしたいかわからん
単純に
if func1()
elif func2()
else func3()
の構図じゃねそれ
0494デフォルトの名無しさん
垢版 |
2022/03/18(金) 11:54:17.65ID:S88dx27z
1→2→3→終了処理
1→2→終了処理
1→終了処理
この組み合わせになるってことだろ

ifで簡単にやるなら
ret = func1
if(ret) ret=func2
if(ret) ret=func3
finally()
0495デフォルトの名無しさん
垢版 |
2022/03/18(金) 19:08:01.39ID:RDOlUVi1
Flaskでつくったアプリをデプロイ先で"git clone", "pip install -e ."して入れていて、アップデートがあった場合はgit pullだけしています
こういう使い方ってpipで管理できない以外で何か問題ってありますか?
確かでなくても何となく気になる程度の事でも書いてもらえるだけでも有難いです
0496デフォルトの名無しさん
垢版 |
2022/03/18(金) 19:21:48.00ID:/+NJrK2n
デプロイ時に公式リポジトリが落ちてる可能性あるからアリ
いまどきはコンテナ生成時にpip使うからそういうリスクないけども
0498495
垢版 |
2022/03/18(金) 20:31:32.06ID:RDOlUVi1
すいません、言葉足らずでした
自分で作ったアプリでリポジトリも自前のリポジトリです
0499デフォルトの名無しさん
垢版 |
2022/03/19(土) 00:10:30.98ID:k2W7TKOh
>>495
多言語のバージョンマネージャーのanyenv で使もう、rbenv のインストーラ
https://github.com/rbenv/rbenv-installer/blob/main/bin/rbenv-installer

これを簡単に説明すると、
Mac のHomebrew の場合と、Linux の場合で、処理を切り替えている

23行目 : rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
で、-v : 「コマンド」を実行せず、実行対象となるコマンドやファイル名、
関数・エイリアスの定義を表示する

25行目 : if [ -n "$rbenv" ]; then
で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero)

つまり、初回はgit init して、2回目以降は、git pull する

if [ -n "$rbenv" ]; then
git pull --tags origin master

else
git init
git remote add -f -t master origin https://github.com/rbenv/rbenv.git
git checkout -b master origin/master
fi
0500499
垢版 |
2022/03/19(土) 00:18:51.04ID:k2W7TKOh
>>499
の続き

69行目からも同じ

69行目 : if [ -n "$ruby_build" ]; then
で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero)

つまり、初回はgit clone して、2回目以降は、git pull する

if [ -n "$ruby_build" ]; then
git pull origin master

else
git clone https://github.com/rbenv/ruby-build.git "${rbenv_root}/plugins/ruby-build"
fi
0501デフォルトの名無しさん
垢版 |
2022/03/19(土) 10:05:43.22ID:/3rRpnUt
こんにちは。
文字列を空行で分割したいのですが 良い方法が見つからず悩んでいます。
たとえば、文字列を2つに分割したいです。
良い方法があればヒントをいただけると助かります。

---------はじまり
aaa
bbb
<==== ここで分割したい
ccc
ddd
---------おわり
0502デフォルトの名無しさん
垢版 |
2022/03/19(土) 10:06:40.03ID:/3rRpnUt
サンプルの文字列がおかしくなったので再度書き込みます。
bbb と ccc の間の空行で分割したいです。

aaa
bbb

ccc
ddd
0504デフォルトの名無しさん
垢版 |
2022/03/19(土) 10:40:05.16ID:93YS43Ns
pythonって簡単にできる命令が多いからそれ探しがちだけどそういうの考えなきゃいくらでもできるだろ
単純に配列に一行ずつ読み込んで、要素の中身をチェックして空ならそこまでの要素を切り出してくとか
全部をひとつの文字列として変数に入れて、split(\n\n)みたいな感じで分割すればいい
0505デフォルトの名無しさん
垢版 |
2022/03/19(土) 12:41:10.12ID:umrdatZo
プログラムの初心者です。
書籍を見ながら勉強しているのですが、
指示通りに入力しても正常に反応しなくて、どこが間違っているのかわかりません。
どなたか教えていただけませんか?
0506デフォルトの名無しさん
垢版 |
2022/03/19(土) 12:51:46.78ID:umrdatZo
>>505
import tkinter
root=tkinter.Tk()
root.title("初めてラベル")
root.geometry("800x600")
label=tkinter.Label(root,text="ラベルの文字列",font=("System",24))
label.place(x=200,y=100)
root.mainloop()
こう入力しましたがウィンドウが表示されませんでした。
0507デフォルトの名無しさん
垢版 |
2022/03/19(土) 12:59:31.84ID:d0jgyl+4
ファイルの文字コードがSJISになってるんじゃないかな
UTF-8で保存し直してみたら
0508デフォルトの名無しさん
垢版 |
2022/03/19(土) 13:06:08.80ID:CtZdn1W5
>>506
vscode上ではそれで動く
0509デフォルトの名無しさん
垢版 |
2022/03/19(土) 13:12:31.23ID:umrdatZo
>>506
です。
こちらで解決しました!
お騒がせしてすみません。
0510デフォルトの名無しさん
垢版 |
2022/03/19(土) 19:10:36.78ID:ozskatPz
if x : return
elif y : return
else:
処理

みたいな、ガード連打するときなんか改行なしで行きたい気がするんだけど
やっぱ許されぬ罪なのですか神父様
0513デフォルトの名無しさん
垢版 |
2022/03/19(土) 20:47:24.25ID:26UREXqN
if x or y:
__return
else:
処理

じゃだめなん?
0514デフォルトの名無しさん
垢版 |
2022/03/19(土) 21:45:40.71ID:pKV2CHvJ
>>513
主題はそこじゃなくて
アーリーリターンが続くような構造では改行レスのreturnと書きたいが、許されるかどうか
ということでは
0515デフォルトの名無しさん
垢版 |
2022/03/19(土) 21:51:17.02ID:GkqZBVMg
大学の研究室のコードとかはめちゃクソ改行レス
あいつら道具は動けばいいんでしょ精神だからぬ
0516デフォルトの名無しさん
垢版 |
2022/03/19(土) 23:15:07.02ID:guM/7r5m
でもカッコやendいるわけじゃなし
1行returnくらいあってもむしろ見通しいいし
0519デフォルトの名無しさん
垢版 |
2022/03/19(土) 23:50:57.25ID:1HyJgrvG
ガード節早期リターンをいれるなら
if elif elseでつなげるよりもifの連打でとことんリターンさせた方が条件の独立性も保たれるしわかりやすい
てかelifやelse 意味ないし

if a: return
if b: return
if c: return
0522デフォルトの名無しさん
垢版 |
2022/03/20(日) 07:50:41.23ID:aLyHOWc6
>>501
Ruby では、空行は改行が2つ続くので、そこで分割すると、

input_text = <<'TEXT'






TEXT

p ary = input_text.split( "\n\n", 2 ) # 最大で2分割
#=> [ "あ\nい", "う\n\nえ\n" ]
0523デフォルトの名無しさん
垢版 |
2022/03/22(火) 14:47:11.41ID:ijxTKnpM
---a.py-----
import b
x="abc"

b.kansu()

---b.py-----
def kansu()
global x
print(x)

a.pyを実行させて、その中で呼び出された関数kensuの中でa.pyで定義された変数xを参照したいんですけどできます。
xが定義されてないて言われるんだけど。
0526デフォルトの名無しさん
垢版 |
2022/03/22(火) 15:11:44.38ID:BhdZW57e
質問です

大量にあるpng画像の中にある特定の画像が含まれる画像だけ抽出することはできますか?

例:オンラインゲームの撃破ログ時に特定の画像が画面内に現れるとする(ヘッドショットアイコンなど)
その画像は不変であるが、画面内のどこにあるかは不特定。

特定の画像のimgを先に作成しておき、その画像が含まれる画像のpngデータを抽出したい。
0528デフォルトの名無しさん
垢版 |
2022/03/22(火) 15:23:33.53ID:48q5H/E5
>>523
できるけどおすすめしない
import b
b.x = “abc"
b.kansu()
bにxのアクセサ(プロパティ)つくるのがましかな
0530デフォルトの名無しさん
垢版 |
2022/03/22(火) 18:38:00.86ID:qHCIAUP+
変数じゃなく定数だったりすると、
本来は、別のconfig.pyあたりに書いて同じことをするんだっけ?
import config as g
g.x = 'abc'
みたいに
0531デフォルトの名無しさん
垢版 |
2022/03/22(火) 20:38:23.71ID:Rdq5z+Lu
>>526
OpenCVのテンプレートマッチング
0532デフォルトの名無しさん
垢版 |
2022/03/23(水) 15:54:16.61ID:cM5bvOqV
bbox = [0, 0, 100, 100]

l, t, r, b = bbox
l = 20
print(bbox) -> [20, 0, 100, 100]

こういうことがしたいんですが、どうすればいいですか
どういう単語で検索したらいいのかすらわかりません
0534デフォルトの名無しさん
垢版 |
2022/03/23(水) 17:07:45.87ID:cgrsbd9g
>532 辞書使って無理やり。

bbox = { 'l': 20, 't':0, 'r':100, 'b':100 }
bbox['l'] = 20
bbox_values = list( bbox.values() )
print( bbox_values )
0535デフォルトの名無しさん
垢版 |
2022/03/23(水) 17:18:26.23ID:PTuUM17Q
あえてやるならこんなのとか
単語で検索するとしたらオブジェクト

bbox=([0],[0],[100],[100])

l,t,r,b=bbox

l[0]=20

print(bbox)

->([20], [0], [100], [100])
0536デフォルトの名無しさん
垢版 |
2022/03/23(水) 17:27:30.54ID:Uj8u7VlE
配列順に意味があるなら
L,T,R,B = 0,1,2,3
bbox[L] = 20
とか
意味ないならクラスか辞書で保持すべき
0537デフォルトの名無しさん
垢版 |
2022/03/23(水) 18:03:21.12ID:cM5bvOqV
あーなるほど、そういう感じなんですね
わかりました。ありがとうございます

なんか要素へリンクしてて
l = bbox[0]
print(l) # 0
l = 20
print(bbox[0]) # 20
みたいな感じになると思ってました

bboxクラス作ります
0538デフォルトの名無しさん
垢版 |
2022/03/23(水) 19:08:25.09ID:OkzK5R+n
>>537
話ずれるけど、要素を外で書き換えるよりも箱の拡大縮小みたいなメソッドを作る方が一般的な気がします
0539デフォルトの名無しさん
垢版 |
2022/03/25(金) 13:39:47.22ID:uOX7ULt1
openpyxlでxlsxファイルを作る時にひとつのシートに複数のグラフを描こうとしたらThe same chart cannot be used in more than one worksheetってエラメ吐いたんだけど何でだろう
エラメでぐぐってもイマイチよくわからなかった
0540デフォルトの名無しさん
垢版 |
2022/03/25(金) 14:33:26.73ID:9HZfMhVl
chart2=chart1
とかやったりするとそうなるかも

複数チャート作る時に前のチャートを使いまわしたりしてない?
0541デフォルトの名無しさん
垢版 |
2022/03/25(金) 15:27:53.71ID:uOX7ULt1
使い回しはしてましたね…
グラフ描く回数の分同じ記述を何度もするのが嫌だったから関数にして複数回呼び出せばいいかと思ってた
グラフ描画部分の関数に引数として描画シートとか参照するセルの範囲を渡してやってたんだけどそれじゃ駄目だったか
0542デフォルトの名無しさん
垢版 |
2022/03/26(土) 06:26:35.95ID:m+SAsqZm
ダメってわけじゃないけど気を付けないといけないポイントがある
チャートとかのいわゆるオブジェクトのコピーはdeepcopy使う
0543デフォルトの名無しさん
垢版 |
2022/03/26(土) 11:27:01.85ID:qLHTxQhk
配布するpyスクリプトで標準外パッケージを使いたいけどユーザの環境を汚したくないというときはvenvのような仮想環境か
pyinstallerでまとめるくらいしか手は無いのかな。
どちらもpython.exe自体をコピーして大げさなんで、jsのwebpackみたいなパッケージのバンドルができたらよかったんだけど。
0544デフォルトの名無しさん
垢版 |
2022/03/27(日) 17:22:26.41ID:nYvTQ02C
質問なんです
GIMPのpython使っています
# -*- coding: utf-8 -*-
import glob,os,re
file = glob.glob(‘C:\Users\name\Desktop\*.jpg’)
で取り出したファイル名を使ってファイルを開こうとすると
ファイル名が日本語の場合文字化けしてファイルが開けませんでした。
文字化けを直すにはどうしたら良いのでしょうか?
print(file)した時に文字化け表示される文字は
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'
こんな感じです
よろしくおねがいします
0545デフォルトの名無しさん
垢版 |
2022/03/27(日) 17:44:38.62ID:p/i0WnQH
>>544
>ファイルが開けませんでした。
この時どんなエラーがでましたか?
0546544
垢版 |
2022/03/27(日) 18:47:55.50ID:nYvTQ02C
>>545
RuntimeError: 'C:\Users\name\Desktop\�A���G�N�`���b�g�Ή�.JPG' を開いて読み込むことができません。
Invalid argument

これと詳細な情報のところに
Traceback (most recent call last):
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 740, in response
dialog.res = run_script(params)
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 361, in run_script
return apply(function, params)
File "C:\Users\name\AppData\Roaming\GIMP\2.10\plug-ins\add_aaaaaaaa.py", line 11, in aaaaaaa
0548デフォルトの名無しさん
垢版 |
2022/03/27(日) 19:01:26.37ID:ayYjDlX4
>>544
バイナリでglobしてバイナリでopenしてみれば?
cp932がutf8の文字列として解釈されてるのが原因だと思う
glob(b'*.jpg')
■ このスレッドは過去ログ倉庫に格納されています

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