Форум сайта python.su
Тебе нужно поставить пакет заголовков от Pyaudio. Попробуй так:
sudo apt-get install portaudio19-dev
pip install --allow-unverified=pyaudio pyaudio
Офлайн
Народ, помогите разобраться, начал изучать программирование (сейчас мой уровень ниже 0)
Там есть самостоятельное задание написать программку для решения квадратных уравнений. Никак не получается у меня это сделать, пробовал разные варианты. В итоге вот на чем остановился:
def kvadrat(u): n=u+2 prompt1 = "введите коэффициент a" a = input(prompt1) prompt2 = "введите коэффициент b" b = input(prompt2) prompt3 = "введите коэффициент с" c = input(prompt3) D = b**2 - 4*a*c if D<0: return none, none import math x1 = (-b + math.sqrt(D))/2*a x2 = (-b - math.sqrt(D))/2*a return x1, x2
kvadrat(1) введите коэффициент a1 введите коэффициент b3 введите коэффициент с2 Traceback (most recent call last): File "<pyshell#41>", line 1, in <module> kvadrat(1) File "<pyshell#40>", line 9, in printroots D = b**2 - 4*a*c TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
Отредактировано ilyatr (Июнь 29, 2017 10:14:05)
Офлайн
Он же очень понятно все пишет
неподдеживаемый тип(ы) операции (в данном случае – для возведения в степень).
В общем, a,b,c это строки, когда вы их ввели с клавиатуры, а нужно чтобы они были числами, чтобы делать математические операции над ними.
Офлайн
scidamа почему они становятся строками? нужно чтобы после вывода “введите коэффициент a” значение a вводилось с новой строки?
Он же очень понятно все пишетнеподдеживаемый тип(ы) операции (в данном случае – для возведения в степень).В общем, a,b,c это строки, когда вы их ввели с клавиатуры, а нужно чтобы они были числами, чтобы делать математические операции над ними.
Офлайн
ilyatrПотому что функция input() возвращает строки.
а почему они становятся строками?
Офлайн
krok64разобрался, в кода перед input нужно было написать тип
a=int(input(prompt1))
Офлайн
ilyatrМарк Лутц “Изучаем Python”
на форуме не нашел книг на русском по питону. Есть только для тех кто азы знает, но это не про меня.
Офлайн
Strightуже нашел, спасибо.
def kvadrat(u):
n=u+2
def func(n): if n == 1: return 1 return func(n-1)**3 + func(n)**3
Отредактировано ilyatr (Июнь 29, 2017 15:30:53)
Офлайн
ilyatr
return func(n-1)**3 + func(n)**3
return func(n-1) + n**3
Отредактировано krok64 (Июнь 29, 2017 15:42:19)
Офлайн
Вообще, такие конструкции очень медленно выполняются на Python, попробуйте вычислить func(100)… или func(1000);
такой вариант будет много быстрей:
func = lambda n: sum([x**3 for x in range(n)])
Отредактировано scidam (Июнь 29, 2017 15:55:54)
Офлайн