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]))
我試圖寫一個函數(即接受參數),然後比較這些反對在函數中的值,然後打印出所有可能的匹配。但是,它不會打印所有可能的匹配項,只會打印與名稱匹配的最終匹配項。此外,我想在列表[1]中使用字母字符,例如x = ['distance',0,'x','m','.2f','scalar']> x = ['distance '美國廣播公司, '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']
如何重寫此函數以根據需要返回結果?
爲了要比較什麼? * actual *變量名稱,每個列表中的第三項或任何列表中的任何項目?如果我搜索'a',是否應該顯示「振幅」,甚至是什麼東西?如果我搜索'N',是否應該返回'緊張'和'強制'? – Evert
我想比較所需的名稱,例如'T'與函數中所有項目的'T'= [list]。我沒有返回任何東西,只是打印結果。也許這是造成混亂。 – nsy16
你還沒有說明你想匹配什麼:變量名稱本身,還是其他的東西? – Evert