Форум сайта python.su
11
Тебе нужно поставить пакет заголовков от Pyaudio. Попробуй так:
sudo apt-get install portaudio19-dev
pip install --allow-unverified=pyaudio pyaudio
Офлайн
0
Народ, помогите разобраться, начал изучать программирование (сейчас мой уровень ниже 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)
Офлайн
35
Он же очень понятно все пишет
неподдеживаемый тип(ы) операции (в данном случае – для возведения в степень).
В общем, a,b,c это строки, когда вы их ввели с клавиатуры, а нужно чтобы они были числами, чтобы делать математические операции над ними.
Офлайн
0
scidamа почему они становятся строками? нужно чтобы после вывода “введите коэффициент a” значение a вводилось с новой строки?
Он же очень понятно все пишетнеподдеживаемый тип(ы) операции (в данном случае – для возведения в степень).В общем, a,b,c это строки, когда вы их ввели с клавиатуры, а нужно чтобы они были числами, чтобы делать математические операции над ними.
Офлайн
11
ilyatrПотому что функция input() возвращает строки.
а почему они становятся строками?
Офлайн
0
krok64разобрался, в кода перед input нужно было написать тип
a=int(input(prompt1))
Офлайн
16
ilyatrМарк Лутц “Изучаем Python”
на форуме не нашел книг на русском по питону. Есть только для тех кто азы знает, но это не про меня.
Офлайн
0
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)
Офлайн
11
ilyatr
return func(n-1)**3 + func(n)**3
return func(n-1) + n**3
Отредактировано krok64 (Июнь 29, 2017 15:42:19)
Офлайн
35
Вообще, такие конструкции очень медленно выполняются на Python, попробуйте вычислить func(100)… или func(1000);
такой вариант будет много быстрей:
func = lambda n: sum([x**3 for x in range(n)])
Отредактировано scidam (Июнь 29, 2017 15:55:54)
Офлайн