当スレに★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(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
探検
【まず1嫁】くだすれPython(超初心者用) その59
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2023/07/13(木) 18:48:41.56ID:INS7SIu4630デフォルトの名無しさん
2024/06/06(木) 17:55:27.15ID:+f7ZeVqk pipxが安全なのはわかるが使いにくいな
pipxは見ずにpoetryだけ使えばいいのか
pipxは見ずにpoetryだけ使えばいいのか
631デフォルトの名無しさん
2024/06/07(金) 01:52:33.37ID:TKo/YskT >>612
こいつの本性が笑える
Pythonのお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/970-
の
ID:ESv2AI1d0
こいつの本性が笑える
Pythonのお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/970-
の
ID:ESv2AI1d0
632デフォルトの名無しさん
2024/06/07(金) 06:04:01.45ID:+I6YMw89 あれだけ煽っておいてよく同じ質問を同じ板でしたなw
633デフォルトの名無しさん
2024/06/07(金) 12:09:55.41ID:dEUVRqD7 pythonのパッケージマネージャーはいくつ出れば気が済むのか(´・ω・`)
634デフォルトの名無しさん
2024/06/07(金) 12:34:41.54ID:q6BY+Kco 幾つのパッケージマネージャが出れば、君は Pythonをまともな言語と呼ぶのか。
友よ、その答は風に吹かれている。
友よ、その答は風に吹かれている。
635デフォルトの名無しさん
2024/06/07(金) 12:49:10.90ID:XsPkgKWU PythonでのYAMLの処理で教えてください
groupA:
image: sampleA0.jpg
section:
- section1:
aaa: 0
bbb: 0
- section2:
bbb: 2
aaa: 1
image: sampleA2.jpg
groupB:
section:
- section1:
aaa: 123
- section2:
image: sampleB1.jpg
こんな感じのYAMLファイルがありまして、「image」キーを持つものの
最上位からの要素を得たいと思ってます
出力のイメージとしては、こんな感じです
groupA: image: sampleA0.jpg
groupA: section: - section1: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg
他にも、aaaやbbbのキーでも同様なことをしたいです
なにかよい対応方法はありますか
groupA:
image: sampleA0.jpg
section:
- section1:
aaa: 0
bbb: 0
- section2:
bbb: 2
aaa: 1
image: sampleA2.jpg
groupB:
section:
- section1:
aaa: 123
- section2:
image: sampleB1.jpg
こんな感じのYAMLファイルがありまして、「image」キーを持つものの
最上位からの要素を得たいと思ってます
出力のイメージとしては、こんな感じです
groupA: image: sampleA0.jpg
groupA: section: - section1: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg
他にも、aaaやbbbのキーでも同様なことをしたいです
なにかよい対応方法はありますか
636デフォルトの名無しさん
2024/06/07(金) 14:49:41.59ID:SXd2mcAV groupA: image: sampleA0.jpg
groupA: section: - section2: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg
にならない理由は?
groupA: section: - section2: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg
にならない理由は?
637デフォルトの名無しさん
2024/06/07(金) 15:25:32.07ID:U/LNotLd いっぱいあるXPath相当がつかえるモジュールでもつかえば?
YAML用じゃなくてもDict向けのでもいい
YAML用じゃなくてもDict向けのでもいい
638デフォルトの名無しさん
2024/06/07(金) 16:31:15.75ID:Z4LBLF5E Python はvenv、Ruby はrbenv、Node.js はnvm など、
各言語で異なるバージョンマネージャーを使う香具師は素人。
すべて使い方が異なるだろ
プロは少なくとも数言語を使うから、
多言語バージョンマネージャーで使い方を統一する
Linux のローカル開発なら、Docker を使うのが簡単だが、
日本人が作った、多言語バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
pyenv も同様。
asdf でも、多言語の好みのバージョンを入れられる
各言語で異なるバージョンマネージャーを使う香具師は素人。
すべて使い方が異なるだろ
プロは少なくとも数言語を使うから、
多言語バージョンマネージャーで使い方を統一する
Linux のローカル開発なら、Docker を使うのが簡単だが、
日本人が作った、多言語バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
pyenv も同様。
asdf でも、多言語の好みのバージョンを入れられる
639デフォルトの名無しさん
2024/06/07(金) 17:35:37.77ID:wW+zlW8A640デフォルトの名無しさん
2024/06/08(土) 00:52:57.64ID:TvmcjMCs641デフォルトの名無しさん
2024/06/08(土) 00:54:05.76ID:TvmcjMCs dockerは無駄多すぎだろ
さすがに
さすがに
642デフォルトの名無しさん
2024/06/08(土) 12:49:56.73ID:JJO/Gn8n dockerがベスト
vscodeのdevcontainerこそ人類がたどり着いた最高地点
vscodeのdevcontainerこそ人類がたどり着いた最高地点
643デフォルトの名無しさん
2024/06/08(土) 14:04:39.39ID:pZ+rs27B 俺もvscode devcontainerの組み合わせが良い気がする(´・ω・`)
644デフォルトの名無しさん
2024/06/08(土) 14:22:11.33ID:3whGHUAW みんなそんなdockerつかうのね
645デフォルトの名無しさん
2024/06/08(土) 14:41:09.17ID:E87q1Rk2 デプロイまで考えるとコンテナにしとくのがシンプル
646デフォルトの名無しさん
2024/06/08(土) 14:46:38.50ID:dTYjDoY8 逆にDocker使ってない人見ると何で?って思うぐらいだよね
647デフォルトの名無しさん
2024/06/08(土) 15:29:59.02ID:Dxs/ulLi 自分でコード書いてる時間が一番幸せなんじゃ
648デフォルトの名無しさん
2024/06/08(土) 17:55:04.64ID:Hlb2wDxo >>644
といいかまともな開発してたらもう使うわないと環境が破綻する
といいかまともな開発してたらもう使うわないと環境が破綻する
649デフォルトの名無しさん
2024/06/08(土) 21:01:34.24ID:D2c2x+th そんなもんデプロイ先の環境によるだろ
650デフォルトの名無しさん
2024/06/08(土) 23:58:06.46ID:gE4A0CAK くだ質ですまんが教えてください
Win11 + Python3.12.8 + vscode 環境で、
3 * 0.3 を計算させると8.99999...になってしまいます
(期待している計算結果は0.9)
是正させるためには
round(3 * 0.3 *10) / 10
をすればいいのはわかってるんですが、出来るだけコードを簡略化させたいのと、そもそも何故こんな結果になってしまうのかを出来れば知りたい、です
Win11 + Python3.12.8 + vscode 環境で、
3 * 0.3 を計算させると8.99999...になってしまいます
(期待している計算結果は0.9)
是正させるためには
round(3 * 0.3 *10) / 10
をすればいいのはわかってるんですが、出来るだけコードを簡略化させたいのと、そもそも何故こんな結果になってしまうのかを出来れば知りたい、です
651デフォルトの名無しさん
2024/06/08(土) 23:59:19.96ID:gE4A0CAK ごめん計算結果のとこは0.899999...の間違いです
652デフォルトの名無しさん
2024/06/09(日) 00:42:23.58ID:DuD3W8cN ttps://docs.python.org/ja/3/tutorial/floatingpoint.html
653デフォルトの名無しさん
2024/06/09(日) 01:03:55.23ID:KXbUABQj デデキントの切断という話でなくて単純に整数n,mによる
n/mをサポートする型がデフォルトではないから
そういう有理数正確に扱える↓を使え
fractions -> Rational numbers
n/mをサポートする型がデフォルトではないから
そういう有理数正確に扱える↓を使え
fractions -> Rational numbers
654デフォルトの名無しさん
2024/06/09(日) 01:19:56.30ID:KXbUABQj 不動点少数は高速でメモリ消費が少ないのでpythonのデフォルト型には似合ってるよ
でももし、こうした計算が頻回あるいは重要に行なわれるなら
デフォルトで有理数をサポートした言語 common_lisp,R,wolfram等が良いだろう
また無理数も正確に扱いたいならwolframを薦めとく。これはsin(2pi)=0を返す珍しい言語だ
でももし、こうした計算が頻回あるいは重要に行なわれるなら
デフォルトで有理数をサポートした言語 common_lisp,R,wolfram等が良いだろう
また無理数も正確に扱いたいならwolframを薦めとく。これはsin(2pi)=0を返す珍しい言語だ
655デフォルトの名無しさん
2024/06/09(日) 06:20:23.00ID:zJwQQmGc サンクス
言語仕様なら仕方ないか
仮想通貨の自動売買用にpythonを始めたんだけど、今のところ他の言語に切り替える考えはないっす
あと調べたらdecimalってモジュールもあって、これを使ってもスッキリ書けそうね
言語仕様なら仕方ないか
仮想通貨の自動売買用にpythonを始めたんだけど、今のところ他の言語に切り替える考えはないっす
あと調べたらdecimalってモジュールもあって、これを使ってもスッキリ書けそうね
656デフォルトの名無しさん
2024/06/09(日) 09:38:02.01ID:XLDZv0sl 浮動小数点数は言語仕様というと違和感があるな
どの言語でもほぼ同じ問題出るだろうし
どの言語でもほぼ同じ問題出るだろうし
657デフォルトの名無しさん
2024/06/09(日) 09:39:22.17ID:XLDZv0sl >是正させるためには
>round(3 * 0.3 *10) / 10
>をすればいいのはわかってるんですが
こんなことしたらダメでしょ
>round(3 * 0.3 *10) / 10
>をすればいいのはわかってるんですが
こんなことしたらダメでしょ
658デフォルトの名無しさん
2024/06/09(日) 10:37:28.45ID:0/tKVw6D Decimalは使いづらいんだよね
Decimal('3') * Decimal('0.3')とかいちいちやってられん
Decimal('3') * Decimal('0.3')とかいちいちやってられん
659デフォルトの名無しさん
2024/06/09(日) 11:41:31.33ID:lrgfA1Gl 継承と合成どちらを使うべきかと基準がよくわからんなぁ(´・ω・`)
660デフォルトの名無しさん
2024/06/09(日) 17:04:58.68ID:Fa41Tv3c >>658
>>> 3 * Decimal('0.3')
Decimal('0.9')
演算子オーバーロードしてるから1箇所でいい
>>> Decimal(3) * '0.3'
TypeError: can't multiply sequence by non-int of type 'decimal.Decimal'
でもこう書けないんだよな
>>> Decimal(3) * 3 / 10
Decimal('0.9')
>>> 3 * Decimal('0.3')
Decimal('0.9')
演算子オーバーロードしてるから1箇所でいい
>>> Decimal(3) * '0.3'
TypeError: can't multiply sequence by non-int of type 'decimal.Decimal'
でもこう書けないんだよな
>>> Decimal(3) * 3 / 10
Decimal('0.9')
661デフォルトの名無しさん
2024/06/10(月) 15:55:09.93ID:YXHAsqQy >>> Decimal(3) * Decimal(3/10)
Decimal('0.8999999999999999666933092612')
だっさ
Decimal('0.8999999999999999666933092612')
だっさ
662デフォルトの名無しさん
2024/06/10(月) 16:09:43.37ID:17x/k5Bx まじか decimal だらしねーな
お手本
[1]> (* 3 (/ 3 10))
9/10
お手本
[1]> (* 3 (/ 3 10))
9/10
663デフォルトの名無しさん
2024/06/10(月) 17:41:53.13ID:8JGo2SkV >>> Decimal(3/10)
Decimal('0.299999999999999988897769753748434595763683319091796875')
>>> Decimal(3/10).quantize(Decimal('0.0'))
Decimal('0.3')
エスパーしない方針だから
Decimal('0.299999999999999988897769753748434595763683319091796875')
>>> Decimal(3/10).quantize(Decimal('0.0'))
Decimal('0.3')
エスパーしない方針だから
664デフォルトの名無しさん
2024/06/10(月) 21:30:34.55ID:RgnmhcQ5 >>661
クソだっさwww
クソだっさwww
665デフォルトの名無しさん
2024/06/11(火) 10:00:28.46ID:ufFRRQKE ↓俺の考えた最強のスマートな書式を語れ
666デフォルトの名無しさん
2024/06/11(火) 11:06:34.00ID:GrH0S5VC >>> Decimal('3.0')
だっさpgr
だっさpgr
667デフォルトの名無しさん
2024/06/11(火) 11:19:18.72ID:GtLbEh/G perlの2番煎じにはなるが import XXX で オーバーライドしてくれればいいね
668デフォルトの名無しさん
2024/06/11(火) 20:03:54.96ID:NWbfM0Iu C++プログラマーだが、
エディタは何使えばええの?
Visual Studioは一応動くが…
エディタは何使えばええの?
Visual Studioは一応動くが…
669デフォルトの名無しさん
2024/06/11(火) 20:27:59.97ID:OZZ7Wa3f 汎用でつかえるのはPyCharmかVSCodeかな
用途とマッチするならJupyter/Colabもいける
用途とマッチするならJupyter/Colabもいける
671デフォルトの名無しさん
2024/06/13(木) 07:44:44.26ID:W4hE6ovf 環境を整え無くてもいいPyCharmが楽だな
672デフォルトの名無しさん
2024/06/13(木) 13:05:54.68ID:vNUeXKFR 会社の糞PCだとPyCharmが重いんだわ
673デフォルトの名無しさん
2024/06/13(木) 13:21:14.57ID:Uc7cK+cC パイチャ!
674デフォルトの名無しさん
2024/06/17(月) 12:06:22.09ID:2+GH8Qi6 モジュールAのMainクラスがモジュールBに書いたSubクラスのインスタンスを生成する
型ヒントのためにAはBの、BはAの参照するから相互参照になっちゃうんだけど
typing typechecking使えば回避できるとして
これって根本的にどう作って相互参照回避すべきなんだ?
型ヒントのためにAはBの、BはAの参照するから相互参照になっちゃうんだけど
typing typechecking使えば回避できるとして
これって根本的にどう作って相互参照回避すべきなんだ?
675デフォルトの名無しさん
2024/06/17(月) 12:17:35.59ID:a7DQgjMw シチュエーションが謎で理解できてないけど
インターフェースとして上位クラスをつくる
インターフェースとして上位クラスをつくる
676デフォルトの名無しさん
2024/06/17(月) 12:44:35.82ID:laKFnUpc 循環しちゃうのは速度落ちてメモリ消費してしまうけど記憶しといたのと照し合わせる手法がある
677デフォルトの名無しさん
2024/06/17(月) 12:50:19.30ID:Me30jdtI678デフォルトの名無しさん
2024/06/17(月) 14:24:03.32ID:KAevd3qc679デフォルトの名無しさん
2024/06/17(月) 15:22:40.07ID:Me30jdtI >>678
その例だとWinが依存すべきなのはAppそのものじゃなく
Appが継承してる型だったり実装してるインターフェースの型
tkを例にすればWinが依存するのはAppそのものじゃなくtk.Tkやtk.Widget
AとBの相互依存から共通で依存する抽象度の高いCを切り出すことで
AはBとCに依存、BはCに依存、CはAにもBにも依存しない形になる
その例だとWinが依存すべきなのはAppそのものじゃなく
Appが継承してる型だったり実装してるインターフェースの型
tkを例にすればWinが依存するのはAppそのものじゃなくtk.Tkやtk.Widget
AとBの相互依存から共通で依存する抽象度の高いCを切り出すことで
AはBとCに依存、BはCに依存、CはAにもBにも依存しない形になる
680デフォルトの名無しさん
2024/06/18(火) 23:47:26.99ID:l8Y5coIJ681デフォルトの名無しさん
2024/06/19(水) 07:39:14.75ID:Ml7xOhwE __init__.py 描けば良いのに
682デフォルトの名無しさん
2024/06/19(水) 08:41:26.42ID:oNcSZ2Oe C言語系は数年やっていてpythonのお勉強してるので質問させてくれ
@propertyを使用してgetter/setterを作れるのが分かりました
このプロパティをprotectedにするにはどうしたらいいですか?
@propertyを使用してgetter/setterを作れるのが分かりました
このプロパティをprotectedにするにはどうしたらいいですか?
683デフォルトの名無しさん
2024/06/19(水) 09:10:58.03ID:Of90IDaN684デフォルトの名無しさん
2024/06/19(水) 10:07:39.70ID:Ml7xOhwE685デフォルトの名無しさん
2024/06/19(水) 10:48:00.65ID:EzJYrWWw686デフォルトの名無しさん
2024/06/19(水) 11:37:31.50ID:ANMSl1mg >>685
そうはいってもどんな場合でも回避できるわけじゃないでしょ
うまく切り出せば回避できるかもしれないけど、見通しが悪く不自然になる場合があると思う
今自分が困ってるのは先生と生徒の関係で、先生は生徒を何人か選ぶのだけど、先生の事情もあるし、生徒のスケジュールもあるしで、
先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってるんだけど
かなり先生と生徒が密結合なのが避けられなくてインタフェースに切り出すと見通しが悪くなりそうなんだよね
こういう場合はどうすればいいのかな
そうはいってもどんな場合でも回避できるわけじゃないでしょ
うまく切り出せば回避できるかもしれないけど、見通しが悪く不自然になる場合があると思う
今自分が困ってるのは先生と生徒の関係で、先生は生徒を何人か選ぶのだけど、先生の事情もあるし、生徒のスケジュールもあるしで、
先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってるんだけど
かなり先生と生徒が密結合なのが避けられなくてインタフェースに切り出すと見通しが悪くなりそうなんだよね
こういう場合はどうすればいいのかな
687デフォルトの名無しさん
2024/06/19(水) 19:41:52.46ID:E1qEKZbV688デフォルトの名無しさん
2024/06/19(水) 22:24:53.92ID:jr8KvPbD ctypesで構造体宣言するときに、以下のようにc側が不完全型の配列定義であった場合は、どのように宣言すればよいでしょうか。
typedef struct aa
{
uint32 eListType;
uint16 wRes;
uint16 wOdList[];
}
class aa(Structure):
_fields_ = [("eListType",c_uint32),
("wRes",c_uint16),
("wOdList",???)
]
typedef struct aa
{
uint32 eListType;
uint16 wRes;
uint16 wOdList[];
}
class aa(Structure):
_fields_ = [("eListType",c_uint32),
("wRes",c_uint16),
("wOdList",???)
]
689デフォルトの名無しさん
2024/06/19(水) 22:42:47.22ID:0e7E5JVP >>686
>先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってる
これもapp.rootのやつと同じで生徒が先生に直接依存する必要なくない?
先生、生徒、コース/クラス、受講、のよくあるモデル
参照じゃなくidで受け渡すことも考えるといいよ
>先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってる
これもapp.rootのやつと同じで生徒が先生に直接依存する必要なくない?
先生、生徒、コース/クラス、受講、のよくあるモデル
参照じゃなくidで受け渡すことも考えるといいよ
690デフォルトの名無しさん
2024/06/20(木) 08:09:05.13ID:hChVJ2JT >>687
それってpipでインストールできる?
それってpipでインストールできる?
691デフォルトの名無しさん
2024/06/20(木) 17:09:09.89ID:F8Q2DGBi692デフォルトの名無しさん
2024/06/20(木) 17:55:30.81ID:ZSpymqjs >>689
直接依存する必要がないので、idを持っておけばよいということ?
確かにidから引けるdictを持っておけばよいのはそうだけど、実質的にはそれは依存関係にあって、プログラミング言語での表現の制約を回避する策にすぎないような気がするのだけど勘違い?
直接依存する必要がないので、idを持っておけばよいということ?
確かにidから引けるdictを持っておけばよいのはそうだけど、実質的にはそれは依存関係にあって、プログラミング言語での表現の制約を回避する策にすぎないような気がするのだけど勘違い?
693デフォルトの名無しさん
2024/06/20(木) 18:12:29.06ID:pudWG0gF >>688
("wOdList", POINTER(c_uint16))
a = aa()
a.wOdList = (c_uint16 * size)()
wResがwOdListのsizeだったりするのかな?
("wOdList", POINTER(c_uint16))
a = aa()
a.wOdList = (c_uint16 * size)()
wResがwOdListのsizeだったりするのかな?
694デフォルトの名無しさん
2024/06/20(木) 23:47:51.33ID:F6VlqWlP695デフォルトの名無しさん
2024/06/21(金) 10:29:55.02ID:M8EEKVG+ >>693
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]
a = aa()
a.a # 0
a.b # <__main__.LP_c_ushort object at 0x000002033996A340>
a.__sizeof__() # 104
sizeof(a) # 16
a.b = (c_uint16 * 4)(9,8,7,6)
a.b # <__main__.LP_c_ushort object at 0x000002033996AAC0>
a.__sizeof__() # 104
sizeof(a) # 16
だめやん
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]
a = aa()
a.a # 0
a.b # <__main__.LP_c_ushort object at 0x000002033996A340>
a.__sizeof__() # 104
sizeof(a) # 16
a.b = (c_uint16 * 4)(9,8,7,6)
a.b # <__main__.LP_c_ushort object at 0x000002033996AAC0>
a.__sizeof__() # 104
sizeof(a) # 16
だめやん
696デフォルトの名無しさん
2024/06/21(金) 13:07:20.00ID:tjV7APzm697デフォルトの名無しさん
2024/06/21(金) 15:09:56.96ID:M8EEKVG+ そういう問題じゃなくて
常にPOINTER型の容量分しか無いのは可笑しい
常にPOINTER型の容量分しか無いのは可笑しい
698デフォルトの名無しさん
2024/06/21(金) 15:17:35.67ID:M8EEKVG+ 少なくとも >>688 の質問に対して正しい答えは
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]
a = aa()
a.b = (c_uint16 * 4)() # これは間違い
sizeof(a) # 16
class bb(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 4))]
b = bb()
sizeof(b) # 12
class cc(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 8))]
c = cc()
sizeof(c) # 20
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]
a = aa()
a.b = (c_uint16 * 4)() # これは間違い
sizeof(a) # 16
class bb(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 4))]
b = bb()
sizeof(b) # 12
class cc(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 8))]
c = cc()
sizeof(c) # 20
699デフォルトの名無しさん
2024/06/21(金) 15:45:50.01ID:K+jIH7ye700デフォルトの名無しさん
2024/06/21(金) 16:03:41.50ID:K+jIH7ye 単に同じというと誤解を生むかもしれないから言い直しておくと
可変長部分のサイズがsizeofに反映されず自分で計算して別途管理しないといけないのはCも同じ
ということ
可変長部分のサイズがsizeofに反映されず自分で計算して別途管理しないといけないのはCも同じ
ということ
701デフォルトの名無しさん
2024/06/21(金) 16:04:51.86ID:pyvrMoIs pythonでandroidとiOSのアプリ作ってる人いる?
kotlinとswift覚えればいいんだけど、手間がかかるので
kotlinとswift覚えればいいんだけど、手間がかかるので
702688
2024/06/21(金) 19:26:17.13ID:HIobLuWQ みなさんありがとうございます
結局固定長で適当に宣言しとけば良いってことですかね
確かにc側でmalloc使ってそうな気がします
結局固定長で適当に宣言しとけば良いってことですかね
確かにc側でmalloc使ってそうな気がします
703デフォルトの名無しさん
2024/06/21(金) 21:53:29.93ID:xFZSSSbA ちゃんと配列をやるならbuffer protocolにしたら
704デフォルトの名無しさん
2024/06/22(土) 03:01:56.40ID:UT0yRehg 変数に何入ってんのかわかんなくない?
$%@使い分けるperl最強だわ
$%@使い分けるperl最強だわ
705デフォルトの名無しさん
2024/06/22(土) 03:20:24.58ID:ITxAndmC 時代はタイプアノテーションなんですよ!(´・ω・`)
706デフォルトの名無しさん
2024/06/22(土) 09:29:12.03ID:mcK0MSE8 タイプアノテーションで思いだしたが、結局型チェック実装された?
それともそこまで効力は無い?
それともそこまで効力は無い?
707デフォルトの名無しさん
2024/06/22(土) 09:38:48.07ID:R3uDiOs/ >>704
#&*も忘れてるだろ
#&*も忘れてるだろ
708デフォルトの名無しさん
2024/06/22(土) 11:44:35.80ID:tVWK2T1P >>706
Pythonの型チェックは外部ツールに任せるというのがポリシーなので標準実装されることはない
型アノテーションは厳密なチェックをするというよりは文字通り注釈としての役割が主であり、
VSCodeやPyCharmを通じて人間にヒントを与えるという点においてはそれなりに効力はある
Pythonの型チェックは外部ツールに任せるというのがポリシーなので標準実装されることはない
型アノテーションは厳密なチェックをするというよりは文字通り注釈としての役割が主であり、
VSCodeやPyCharmを通じて人間にヒントを与えるという点においてはそれなりに効力はある
709デフォルトの名無しさん
2024/06/22(土) 13:20:16.98ID:JlqSUEN6 >>708
vscodeでさ
a.py
__init__
self.b = b.B(subclassX | subclassY)
b.py
__init__
self.subclass = subclass
こうしたとき、b.pyに動的にサブクラス型情報送りたいんだけどどうすればいい?
a.py書いたあとにb.py触りに行ったら、self.subclass以下のツールチップがXかYのものになってほしいんだけど
vscodeでさ
a.py
__init__
self.b = b.B(subclassX | subclassY)
b.py
__init__
self.subclass = subclass
こうしたとき、b.pyに動的にサブクラス型情報送りたいんだけどどうすればいい?
a.py書いたあとにb.py触りに行ったら、self.subclass以下のツールチップがXかYのものになってほしいんだけど
710デフォルトの名無しさん
2024/06/22(土) 13:39:16.54ID:o/eWDsQ7 >>688 への回答として >>693 は全く不適切
判っててわざと間違ってるんだろうが全く別物
初心者に嘘を教えるのは良くない
https://ideone.com/YUADDB
#include <stdio.h>
#include <stdlib.h>
int x;
struct A {
int a;
int b[];
};
struct B {
int a;
int *b;
};
int main(void) {
printf("%zu\n", sizeof(x));
printf("%zu\n", sizeof(struct A));
printf("%zu\n", sizeof(struct B));
struct B b = {0};
b.b = (int *)malloc(4 * sizeof(int));
free(b.b);
/*
struct A a = {0};
a.b = (int *)malloc(4 * sizeof(int)); // compile error
free(a.b); // don't free (may be cause to runtime error)
*/
return 0;
}
判っててわざと間違ってるんだろうが全く別物
初心者に嘘を教えるのは良くない
https://ideone.com/YUADDB
#include <stdio.h>
#include <stdlib.h>
int x;
struct A {
int a;
int b[];
};
struct B {
int a;
int *b;
};
int main(void) {
printf("%zu\n", sizeof(x));
printf("%zu\n", sizeof(struct A));
printf("%zu\n", sizeof(struct B));
struct B b = {0};
b.b = (int *)malloc(4 * sizeof(int));
free(b.b);
/*
struct A a = {0};
a.b = (int *)malloc(4 * sizeof(int)); // compile error
free(a.b); // don't free (may be cause to runtime error)
*/
return 0;
}
711デフォルトの名無しさん
2024/06/22(土) 16:27:25.33ID:zTNlWcoj712デフォルトの名無しさん
2024/06/22(土) 16:39:32.42ID:HiCoQzk6 TypeScriptより優れてるってこと?そうかなあ
713デフォルトの名無しさん
2024/06/22(土) 16:51:56.48ID:UT0yRehg714デフォルトの名無しさん
2024/06/22(土) 18:07:00.66ID:n3FOHUyg715デフォルトの名無しさん
2024/06/22(土) 21:23:10.50ID:+hHL9oAL # ダイアログを表示する
import TkEasyGUI as eg
layout = [[eg.Input(width=9, key="pt"), eg.Text("pt", width=6, height=2), eg.Button("コピー", key="pt_copy")],
[eg.Input(width=9, key="kyu"), eg.Text("級(歯)", width=6, height=2), eg.Button("コピー", key="kyu_copy")],
[eg.Input(width=9, key="mm"), eg.Text("mm", width=6, height=2), eg.Button("コピー", key="mm_copy")]]
window = eg.Window("pt-Q-mm", layout, font=(None,14), size=(250,150))
def execute():
in_pt = values["pt"]
window["kyu"].update(in_pt)
window["mm"].update(in_pt)
while True:
event, values = window.read()
if event == "pt":
execute()
if event == "kyu":
execute()
if event == "mm":
execute()
window.close()
key="pt"の入力欄に文字が入力されると、リアルタイムに、
key="kyu"とkey="mm"の入力欄にkey="pt"と同じ文字を表示したいのですが、
def execute():をどう修正すれば良いでしょうか?
今のままだと、key="pt"の入力欄に文字を入力しても、
key="kyu"とkey="mm"の入力欄に何も表示されません…
import TkEasyGUI as eg
layout = [[eg.Input(width=9, key="pt"), eg.Text("pt", width=6, height=2), eg.Button("コピー", key="pt_copy")],
[eg.Input(width=9, key="kyu"), eg.Text("級(歯)", width=6, height=2), eg.Button("コピー", key="kyu_copy")],
[eg.Input(width=9, key="mm"), eg.Text("mm", width=6, height=2), eg.Button("コピー", key="mm_copy")]]
window = eg.Window("pt-Q-mm", layout, font=(None,14), size=(250,150))
def execute():
in_pt = values["pt"]
window["kyu"].update(in_pt)
window["mm"].update(in_pt)
while True:
event, values = window.read()
if event == "pt":
execute()
if event == "kyu":
execute()
if event == "mm":
execute()
window.close()
key="pt"の入力欄に文字が入力されると、リアルタイムに、
key="kyu"とkey="mm"の入力欄にkey="pt"と同じ文字を表示したいのですが、
def execute():をどう修正すれば良いでしょうか?
今のままだと、key="pt"の入力欄に文字を入力しても、
key="kyu"とkey="mm"の入力欄に何も表示されません…
716715
2024/06/22(土) 21:53:43.34ID:+hHL9oAL JavaScriptのOnChangeみたいなのをやりたかったのですが、止めました
ChatGPTに教えてもらったコードでも、うまくリアルタイム表示出来なかったので…
「実行」ボタンを押したら、表示されるようにします
ありがとうございました
ChatGPTに教えてもらったコードでも、うまくリアルタイム表示出来なかったので…
「実行」ボタンを押したら、表示されるようにします
ありがとうございました
717デフォルトの名無しさん
2024/06/23(日) 00:28:02.79ID:2xccr50A >>714
>C側でメモリ確保したいならこう書く
>struct A *a = malloc(sizeof(struct A) + size * sizeof(int));
もちろん知ってる
>a.wOdList = (c_uint16 * size)()はPython側でメモリ確保する場合
どこが等価なの
>C側でメモリ確保したいならこう書く
>struct A *a = malloc(sizeof(struct A) + size * sizeof(int));
もちろん知ってる
>a.wOdList = (c_uint16 * size)()はPython側でメモリ確保する場合
どこが等価なの
718デフォルトの名無しさん
2024/06/23(日) 12:15:44.92ID:6BLTL9tJ >>717
>どこが等価なの
誰も等価だなんて話はしとらんのやで
FAMを含む構造体が使われてるCのAPIを
FAMを直接サポートしてないctypesを使ってPythonから利用する話をしとるんやで
構造体のメモリをCで確保/開放する場合もあれば
Pythonで確保/開放する場合もあるんやで
(一旦コピーする場合はそれぞれでやるのもありえるんやで)
FAMの有無も違う上に
メモリ管理の方法もルールも根本的に違うCとPythonで
等価になるわけないんやで
>どこが等価なの
誰も等価だなんて話はしとらんのやで
FAMを含む構造体が使われてるCのAPIを
FAMを直接サポートしてないctypesを使ってPythonから利用する話をしとるんやで
構造体のメモリをCで確保/開放する場合もあれば
Pythonで確保/開放する場合もあるんやで
(一旦コピーする場合はそれぞれでやるのもありえるんやで)
FAMの有無も違う上に
メモリ管理の方法もルールも根本的に違うCとPythonで
等価になるわけないんやで
719デフォルトの名無しさん
2024/06/23(日) 12:29:27.23ID:NuUT7kNv >688
>ctypesで構造体宣言するときに、
>以下のようにc側が不完全型の配列定義であった場合は、
>どのように宣言すればよいでしょうか。
>ctypesで構造体宣言するときに、
>以下のようにc側が不完全型の配列定義であった場合は、
>どのように宣言すればよいでしょうか。
720デフォルトの名無しさん
2024/06/23(日) 12:42:53.65ID:NuUT7kNv chatGPT の回答を改変した様な解答やね
伝言ゲームでもやってんのかな
伝言ゲームでもやってんのかな
721デフォルトの名無しさん
2024/06/23(日) 19:40:41.83ID:GsZtttEh 終了までお早めに
https://i.imgur.com/f7tN1NE.jpg
https://i.imgur.com/f7tN1NE.jpg
722デフォルトの名無しさん
2024/06/23(日) 20:12:48.30ID:nLTHI867 >>721
もう既にやっとるよ
もう既にやっとるよ
723デフォルトの名無しさん
2024/06/23(日) 20:26:42.71ID:f4WzOl4U >>721
グロ
グロ
724デフォルトの名無しさん
2024/06/24(月) 00:41:26.66ID:sso3G8sO Pythonの変数、オブジェクトは最初に設定した値でデータ型が決まるから、結局、変数の初期化のような古臭いコーティングルールがないといけない。
データ型がわからなくなったら、データ型を調べるという行き当たりばったりの言語仕様
データ型がわからなくなったら、データ型を調べるという行き当たりばったりの言語仕様
725デフォルトの名無しさん
2024/06/24(月) 07:13:54.02ID:lLj5yZl4726デフォルトの名無しさん
2024/06/24(月) 08:57:31.37ID:+wQGxx+4 >>721
気軽に稼げそうでいいね
気軽に稼げそうでいいね
727デフォルトの名無しさん
2024/06/24(月) 09:38:30.63ID:ALkJ+vo8 メソッドの引数にdictを渡してアンパックする場合しない場合の使い分けってどういう基準なんやろ(´・ω・`)
728デフォルトの名無しさん
2024/06/24(月) 10:11:03.74ID:mBNYuZ1y729デフォルトの名無しさん
2024/06/24(月) 11:25:58.61ID:ldoAoKVT 変数は任意のオブジェクトをアサインできるといっても
実際には複雑化するから最初の型から変えないよね
そこを人間が意識する必要があるってことかな
typingにつながる話
実際には複雑化するから最初の型から変えないよね
そこを人間が意識する必要があるってことかな
typingにつながる話
730デフォルトの名無しさん
2024/06/24(月) 12:01:57.24ID:QPNUuP4k 動的言語を使えない人のメンタルモデルってこういう感じなんだな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 「アベノミクス」で投資対象と化したマンション ローンの低金利続き「年収の12倍」借りる20代出現 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
