Попробуйте назначить значения при определении функции:
def vol(vol1 = 0,vol2 = 0,vol3 = 0,vol4 = 0):
volsum = vol1 + vol2
vol1n = vol1 / volsum
vol2n = vol2 / volsum
vol3n = vol3 / volsum
vol4n = vol4 / volsum
return vol1n, vol2n,vol3n,vol4n
Теперь предположим, что вы хотите пропустить vol2
:
variable_assigned = vol(vol1 = 5,vol3 = 2,vol4 = 5)
Если вам требуется одна строка (я люблю создание одного):
#defining vol()
def vol(*kwargs): return [i/sum(kwargs) for i in kwargs]
# using vol()
#example
vol (1,2,3)
#returns
[0.16666666666666666, 0.3333333333333333, 0.5]
# so to assign variables,
#if you give 3 values,
vol1n, vol2n, vol3n = vol(1,2,3)
# if 4,
vol1n, vol2n, vol3n, vol4n = vol(1,2,3,5)
Немного веселья (не рекомендуется):
- Допустим, ваш
vol1 =1, vol2 = 5 vol3 = 3 ...voln = 10
- Итак, давайте:
vol = [ 1, 5, 3, ... n values, 10]
- Теперь, если вы запустите следующий код:
for j in range(len(vol)): exec(f'vol{j+1}n = [i/sum(vol) for i in vol][j]')
- Этот код автоматически создаст ваши
vol1n, vol2n, ... volnn
переменные автоматически.