質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

893閲覧

python & VScode / 型の処理について

toshihiko

総合スコア5

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/01 04:07

編集2021/06/01 07:23

<<環境>>
windows10
anaconda3
VScode1.56.2

以下のようなソースコードにて方程式を解いています。

VScodeにて型に関しての問題提起がされているようですが
対処方法が分かりません。

本業がハード屋でありpythonを触り始めて
1週間の素人で型についての対処方法に
関して分かっていません。

どのようにしたらよろしいかご教示頂けたら幸いです。

import sympy as sy #文字の定義 [Vo, Vi, s] = sy.symbols('Vo, Vi, s') [Rf, R2, Cf, C2, gm2] = sy.symbols('Rf, R2, Cf, C2, gm2') #式の左辺を定義 eq1_left = -(s*Cf)/(1+(s*Rf*Cf))*(Vo-Vi) - (Vo/R2) - (s*C2*Vo) -gm2*Vi   #式の方程式を定義 eq1 = sy.Eq(eq1_left, 0) print("eq1 :", eq1, "\n") #式をVoについて解く sol_Vo_eq1 = sy.solve(eq1, Vo) print("Voについて解く : Vo =", sol_Vo_eq1[0], "\n") #16行目(VScodeにて問題提起あり)   #上式からVo/Viを求めてsで整理 H = sy.collect(sol_Vo_eq1[0]/Vi, s) #19行目(VScodeにて問題提起あり) print("Vo/Ii =", H)

<<VScodeによる問題提起文章>>
16行目
"getitem" method not defined on type "BooleanAtom"

19行目
"getitem" method not defined on type "BooleanAtom"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/06/01 04:30

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
attakei

2021/06/01 06:56 編集

※問題文読み間違えたので訂正。お騒がせしました Pythonのコードの場合は、問題提起周りもコードブロックで囲んでもらえると良いかと思います。 (__getitem__でしたね)
guest

回答2

0

こちらで再現テストを行ったところ、エラーは出ませんでした。

python

1>>> import sympy as sy 2>>> 3>>> #文字の定義 4>>> [Vo, Vi, s] = sy.symbols('Vo, Vi, s') 5>>> [Rf, R2, Cf, C2, gm2] = sy.symbols('Rf, R2, Cf, C2, gm2') 6>>> 7>>> #式の左辺を定義 8>>> eq1_left = -(s*Cf)/(1+(s*Rf*Cf))*(Vo-Vi) - (Vo/R2) - (s*C2*Vo) -gm2*Vi 9>>> 10>>> #式の方程式を定義 11>>> eq1 = sy.Eq(eq1_left, 0) 12>>> print("eq1 :", eq1, "\n") 13eq1 : Eq(-C2*Vo*s - Cf*s*(-Vi + Vo)/(Cf*Rf*s + 1) - Vi*gm2 - Vo/R2, 0) 14 15>>> 16>>> #式をVoについて解く 17>>> sol_Vo_eq1 = sy.solve(eq1, Vo) 18>>> print("Voについて解く : Vo =", sol_Vo_eq1[0], "\n") 19Voについて解く : Vo = R2*Vi*(-Cf*Rf*gm2*s + Cf*s - gm2)/(C2*Cf*R2*Rf*s**2 + C2*R2*s + Cf*R2*s + Cf*Rf*s + 1) 20 21>>> 22>>> #上式からVo/Viを求めてsで整理 23>>> H = sy.collect(sol_Vo_eq1[0]/Vi, s) 24>>> print("Vo/Ii =", H) 25Vo/Ii = R2*(-gm2 + s*(-Cf*Rf*gm2 + Cf))/(C2*Cf*R2*Rf*s**2 + s*(C2*R2 + Cf*R2 + Cf*Rf) + 1)

投稿2021/06/01 04:41

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toshihiko

2021/06/01 05:02

ご回答ありがとうございます。 エラーでは無くてVScodeの「問題」タブに 出てくるメッセージです。 ワーニングのようなものなのでしょうか。 あまりよく分かっていません。
guest

0

google翻訳
"getitem" メソッドが型に定義されていません "BooleanAtom"

投稿2021/06/01 04:31

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toshihiko

2021/06/01 05:01

ご回答ありがとうございます。 型に関して問題提起されていることは理解できているのですが 具体的に何をどうしたらいいのかが分かっていません。
y_waiwai

2021/06/01 05:10

VSCodeってのはぶっちゃけただのテキストエディタなんで、エラーチェックは自前でやってるんで、実際のPython環境とは食い違ってるってことがよくあります なにが出してるエラーか、ってのがわからないとかえって混乱しますねー
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問