Печать результатов функции с использованием диапазона чисел - PullRequest
0 голосов
/ 19 мая 2019

Я только изучаю python и просто пытаюсь распечатать результаты функции, используя диапазон чисел, но я получаю ошибку «Значение истинности массива с более чем одним элементом неоднозначно».

print (t1) работает и показывает диапазон, который я хочу использовать в вычислениях.

print (some_function (55, t1)) выдает ошибку

Чего мне не хватает?

Обратите внимание, я делаю это, чтобы помочь кому-то в назначении, и он может использовать только те команды или функции, которые ему показаны, что не так уж много, в основном то, что в текущем коде и массивах.

Спасибо за любую помощь

from pylab import *

def some_function(ff, dd):
    if dd >=0 and dd <=300:
        tt = (22/-90)*ff+24
    elif dd >=300 and dd <=1000:
        st = (22/-90)*(ff)+24
        gg = (st-2)/-800
        tt = gg*dd+(gg*-1000+2)
    else:
        tt = 2.0
    return tt

t1=arange(0,12000,1000)

print(t1)

print(some_function(55,t1))

1 Ответ

1 голос
/ 19 мая 2019

Вы делаете только незначительную ошибку.

t1=arange(0,12000,1000)

print(t1)
[    0  1000  2000  3000  4000  5000  6000  7000  8000  9000 10000 11000]

Вы должны пройти через t1 и вызвать функцию для каждого значения в цикле.

for x in t1: 
    print(some_function(55,x))

10.555555555555555
2.0
2.0
2.0
2.0
2.0
2.0
2.0
2.0
2.0
2.0
2.0

Нам не хватает части цикла в расчете из-за значений в t1. Давайте немного отрегулируем диапазон.

t1=arange(0,2000,100)

print(t1)

[   0  100  200  300  400  500  600  700  800  900 1000 1100 1200 1300
 1400 1500 1600 1700 1800 1900]

И результирующая функция:

for x in t1: 
    print(some_function(55,x))

10.555555555555555
10.555555555555555
10.555555555555555
10.555555555555555
8.416666666666668
7.347222222222222
6.277777777777779
5.208333333333334
4.138888888888889
3.0694444444444446
2.0
2.0
2.0
2.0
2.0
2.0
2.0
2.0
2.0
2.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...