• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

Djon253

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

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$
 
Последнее редактирование:
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 )
 
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
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab