LINUX.ORG.RU

Расчёт пропорций

 


0

1

Я пишу скрипт на питоне, который вычесляет пропорцию. Расчёт пропорции нужен для графического дизайна. Сам скрипт на Python:

x1 = float(input('Введите X1: '))
y1 = float(input('Введите Y1: '))
x2 = float(input('Введите X2: '))
y2 = float(input('Введите Y2: '))

if x1 == ?
    x1=y1*x2/y2
    print(f'Ответ: {x1}')

Вылезает такая ошибка:

  File "main.py", line 6
    if x1 == ?
             ^
SyntaxError: invalid syntax

Из-за чего вылезает ошибка?

★★★★★

из-за

SyntaxError: invalid syntax
Sahas ★★★★☆
()
Ответ на: комментарий от ConLenov

Зачем вообще if? Зачем ты запрашиваешь значение перед его вычислением?

Пусть идея уходит.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)

Тебе наверное непонятно это

  File "main.py", line 6
    if x1 == ?
             ^
SyntaxError: invalid syntax

Вот я локализовал

  Файле 📁 "main.py", лайне 6️⃣
    if x1 == ? 👈😎
             👆😎
СинтаксЕррор⚠️: инвалид ♿ синтакс
LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)

Ты должен сравнивать с чем то, а не с выдуманным ? даже если бы это была родная конструкция языка то какое значение у ? было бы если оно не определено. Или это могла бы быть константа аля PI, но это я так в рамках параллельного мира и альтернативной истории.

Юмор юмором, но ты наверное только только начинаешь тыкать палочкой питон, ничего страшного, ты просто сравниваешь значение полученное в переменную с несуществующей сущностью. Напиши вместо ? например 10 и если у тебя в x1 будет 10 то будет выполнено условие и выполнится код в его теле. Ещё момент ты используешь float и == точное сравнение я в питоне не шибко понимаю, но думаю что мало чем там отличается подобная штука от остальных, никогда не сравнивай float (как минимум без приведения к целому или округления) с чем угодно. Используй >=,<=.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от ConLenov

Короче, по-тупому: знак вопроса, если его ввести вот так, будет строкой «?». Поэтому твоя программа будет принимать четыре значения и считать, что они строки.

Дальше надо if x1==«?», а перед вычислениями остальные три значения преобразовать в числа и посчитать ответ.

Или будет считать строкой только то значение, где ты ввел вопрос, тогда преобразовывать не придется.

Irma ★★
()
Последнее исправление: Irma (всего исправлений: 1)
Ответ на: комментарий от ConLenov

Аааа, ты хотел ввести ряд чисел и сделать пропуск в одном заменив ввод числа на символ ? а затем сделать 4 тела if для каждого случая, тогда принимай значения как строки, смотри есть ли в переменной (куда ты получил значения) символ ? и в зависимости от того в какой переменной переходи в тело условия где вычисляешь конкретную неизвестную. Ничего страшного твоя беда была в том что ты думал что в float можно хранить и символ ? напрямую, но ты сам в получении же преобразовал ввод к float приводи к нему значения непосредственно перед расчётами, а до этого держи просто как входящую строку. Не сдавайся, разберёшься только не забудь что надо обернуть в кавычки if x == "?" и после этих уже проверок приводи к float оставшиеся известные значения.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Я типа нашёл решение:

x1 = input("Введите X1: ")
y1 = input("Введите Y1: ")
x2 = input("Введите X2: ")
y2 = input("Введите Y2: ")

if x1 == "?":
    x1=float(y1)*float(x2)/float(y2)
    print(f'Ответ: {x1}')
ConLenov ★★★★★
() автор топика
Ответ на: комментарий от ggrn

Для некоторых достаточно табов =) Но для тебя это не будет аргументом. Поэтому не ругайтесь.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от ConLenov

К слову видя такое добрым словом вспоминаешь строгую типизацию

Главный как по мне недостаток и достоинство одновременно питона именно как языка

nikitalol
()
Ответ на: комментарий от nikitalol

В питоне строгая типизация - в чем её достоинство и в чём недостаток?

vvn_black ★★★★★
()

Из-за чего вылезает ошибка?

Попробуй вместо вычеслений использовать вычисления...

Xintrea ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.