def get_resources(*required):
"""
This is to help building functions in the main calculator faster
returns lists of resources needed, in the order requested
"""
print('-'*30)
a = ['acceleration', 0, 'a', 'm s⁻²', '.2f', 'scalar']
A = ['amplitude', 0, 'A', 'm', '.2f', 'scalar'] # A: amplitude
Em = ['combined mass', 0, '∑m', 'kg', '.2f', 'scalar']
f = ['frequency', 0, 'f', 'Hz', '.1f', 'scalar'] # f: frequency (also m s⁻¹)
F = ['force', 0, 'F', 'N', '.2f', 'scalar']
g = ['gravity', 9.81, 'a', 'm s⁻²', '.2f', 'scalar']
hl = ['wavelength', 0, 'λ', 'm', '.2f','vector'] # λ: wavelength
m = ['mass', 0, 'm', 'kg', '.2f', 'scalar']
m1 = ['mass1', 0, 'm1', 'kg', '.2f', 'scalar']
m2 = ['mass2', 0, 'm2', 'kg', '.2f', 'scalar']
t = ['time', 0, 't', 's', '.2f', 'scalar']
T = ['tension', 0, 'T', 'N', '.1f', 'scalar']
T = ['period', 0, 'T', 's', '.3f', 'scalar'] # T: Time PERIOD of oscillation in seconds (T = 2π√(m/k))
v = ['wave speed', 0, 'v', 'm s⁻¹', '.2f', 'scalar'] # v: speed of a wave (v = fλ OR v = λ/T)
v = ['velocity', 0, 'v', 'm s⁻¹', '.2f', 'scalar']
v0 = ['initial velocity', 0, 'v₀', 'm s⁻¹', '.2f', 'vector']
vf = ['final velocity', 0, 'vf', 'm s⁻¹', '.2f', 'vector']
x = ['change in distance', 0, 'Δx', 'm', '.2f', 'scalar']
x = ['distance', 0, 'x', 'm', '.2f', 'scalar']
for i in required:
for j in vars().items():
if i == j[0]: print('{} = {}'.format(j[0], j[1]))
私は関数を引数にとり、関数内の値と比較してすべての可能なマッチを出力しています。しかし、可能なすべての一致を印刷するのではなく、最後に一致するものだけを印刷します。また、x = ['distance'、0、 'x'、 'm'、 '.2f'、 'scalar']> x = ['distance'のようなアルファベットの文字をリスト[1] 'ABCは、 'X'、 'M'、' .2f」、 'スカラー']python3リスト内のすべての変数を返します
瞬間、私は
get_resources('x','F', 'T')
をすればそれは
------------------------------
x = ['distance', 0, 'x', 'm', '.2f', 'scalar']
F = ['force', 0, 'F', 'N', '.2f', 'scalar']
T = ['period', 0, 'T', 's', '.3f', 'scalar']
を印刷しますが、私このように印刷したいと考えています。
------------------------------
x = ['change in distance', xc, 'Δx', 'm', '.2f', 'scalar']
x = ['distance', xc, 'x', 'm', '.2f', 'scalar']
F = ['force', Fc, 'F', 'N', '.2f', 'scalar']
T = ['tension', Tc, 'T', 'N', '.1f', 'scalar']
T = ['period', Tc, 'T', 's', '.3f', 'scalar']
この関数を書き換えて、必要に応じて結果を返す方法を教えてください。
? *実際の*変数名、各リストの3番目の項目、または任意のリスト内の項目?私が 'a'を検索すると、 '振幅'も表示されるのでしょうか?私が 'N'を検索すると、それは '緊張'と '力'を返すべきでしょうか? – Evert
私は必要な名前、例えば、 'T' = 'list'である関数内のすべての項目と比較したいと思います。私は何も返さず、結果を印刷するだけです。たぶんそれは混乱の原因になります。 – nsy16
あなたはまだマッチしたいことを言っているわけではありません:変数名そのものですか? – Evert