Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python. Invalid syntax

Алина Чекаева Ученик (207), на голосовании 1 месяц назад
print("введите двоичное число, отделив запятой дробную часть от целой")
x=str(input())
print("введите основание СС, в которую требуется перевести число")
b=int(input())
a=x.slpit(",")
a1=int(a[0],2)
k=len(a[1])
if b==8:
y1=oct(a1)
while k%3!=0:
a[1]=a[1]+"0"
k=len(a[1])
a2=int(a[1],2)
y2=oct(a2)
print(x"(2)= ",y1[2:],",",y2[2:]," (8)")
elif b==16:
y1=hex(a1)
while k%4!=0:
a[1]=a[1]+"0"
k=len(a[1])
a2=int(a[1],2)
y2=hex(a2)
print(x,"(2)=",y1[2:],",",y2[2:],"(16)")
else:
print("неверный ввод основания")


--------------------------------------------------------------------------------------
File "Untitled9.py", line 15
print(x"(2)= ",y1[2:],",",y2[2:]," (8)")
^
SyntaxError: invalid syntax


** Process exited - Return Code: 1 **
Press Enter to exit terminal


Как исправить ошибку?
Голосование за лучший ответ
Денис Копысов Профи (659) 2 месяца назад
Я думал это какой-то инопланетянин писал
Марк Твен Гуру (3832) 2 месяца назад
print("Введите двоичное число, отделив запятой дробную часть от целой:")
x = str(input())
print("Введите основание СС, в которую требуется перевести число:")
b = int(input())

a = x.split(",")
a1 = int(a[0], 2) # Целая часть
k = len(a[1]) if len(a) > 1 else 0 # Дробная часть

if b == 8:
y1 = oct(a1)
while k % 3 != 0:
a[1] += "0"
k = len(a[1])
a2 = int(a[1], 2) if k > 0 else 0 # Если дробной части нет
y2 = oct(a2)
print(x + " (2) = ", y1[2:], ", ", y2[2:], " (8)")
elif b == 16:
y1 = hex(a1)
while k % 4 != 0:
a[1] += "0"
k = len(a[1])
a2 = int(a[1], 2) if k > 0 else 0
y2 = hex(a2)
print(x + " (2) = ", y1[2:], ", ", y2[2:], " (16)")
else:
print("Неверный ввод основания")
Анатолий Зяблин Просветленный (32659) 2 месяца назад
Вот исправленный
 print("введите двоичное число, отделив запятой дробную часть от целой")  
x = str(input())
print("введите основание СС, в которую требуется перевести число")
b = int(input())

# Исправлено: правильное название метода split
a = x.split(",")
a1 = int(a[0], 2)
k = len(a[1]) if len(a) > 1 else 0 # Проверяем, есть ли дробная часть

if b == 8:
y1 = oct(a1)
while k % 3 != 0 and k > 0: # Убедимся, что k больше 0
a[1] += "0"
k = len(a[1])
a2 = int(a[1], 2) if k > 0 else 0 # Проверяем, есть ли дробная часть
y2 = oct(a2) if k > 0 else "0"
print(x + " (2)= ", y1[2:], ",", y2[2:], " (8)")

elif b == 16:
y1 = hex(a1)
while k % 4 != 0 and k > 0: # Убедимся, что k больше 0
a[1] += "0"
k = len(a[1])
a2 = int(a[1], 2) if k > 0 else 0 # Проверяем, есть ли дробная часть
y2 = hex(a2) if k > 0 else "0"
print(x + " (2)=", y1[2:], ",", y2[2:], "(16)")

else:
print("неверный ввод основания")
Похожие вопросы