• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Начал изучение Python.

Djon253

Green Team
15.11.2017
120
93
BIT
6
Начал изучение. Написал простенькое решение уровнения. Выдает ощибку. Что не так?

Python:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import math

def sqeq( a, b, c ) :
    D = b*b - 4*a*c
    if D < 0 :
        return [ ]
    else :
        x1 = ( -b + math.sqrt( D ) ) / ( 2 * a )
        x2 = ( -b - math.sqrt( D ) ) / ( 2 * a )
        return [ x1, x2 ]
       
a2 = input( u"a: " )
a1 = input( u"b: " )
a0 = input( u"c: " )

X = sqeq( a2, a1, a0 )
print( X )


iMac-iMac:Choise imacos$ python choise1.py
a: 1
b: 5
c: 200

Traceback (most recent call last):
File "choise1.py", line 19, in <module>
X = sqeq( a2, a1, a0 )
File "choise1.py", line 7, in sqeq
D = b*b - 4*a*c
TypeError: can't multiply sequence by non-int of type 'str'

iMac-iMac:Choise imacos$
 
Последнее редактирование:
R

rain.seller

a2 = int(input( u"a: " ))
a1 = int(input( u"b: " ))
a0 = int(input( u"c: " ))


Python:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import math

def sqeq( a, b, c ) :
    D = (b*b) - (4*a*c)
    if D < 0 :
        return "FALSE"
    else :
        x1 = ( -b + math.sqrt( D ) ) / ( 2 * a )
        x2 = ( -b - math.sqrt( D ) ) / ( 2 * a )
        return x1, x2
       
a2 = float(input( u"a: " ))
a1 = float(input( u"b: " ))
a0 = float(input( u"c: " ))

X = sqeq( a2, a1, a0 )
print( X )
 

Dr.Lafa

Green Team
30.12.2016
507
1 050
BIT
0
1. input возвращает объект типа str, а тебе нужен int
2. в python2 print без скобок
3. лучше бы возвращать строку, а не массив

Python:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import math

def sqeq( a, b, c ):
    D = b*b - 4*a*c
    if D < 0:
        return "Нет решений"
    else:
        x1 = ( -b + math.sqrt( D ) ) / ( 2 * a )
        x2 = ( -b - math.sqrt( D ) ) / ( 2 * a )
        return "x1 = %d, x2 = %d" % (x1, x2)
       
a2 = int(input("a: "))
a1 = int(input("b: "))
a0 = int(input("c: "))

X = sqeq( a2, a1, a0 )
print X
 
Последнее редактирование:
  • Нравится
Реакции: Djon253
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!