Прощай жестокий мир!


49

Фон

Привет гольфисты! Я хотел бы выучить все языки программирования! Но у меня немного внимания ... и копирование всех примеров Hello World становится скучным ... но я люблю огонь! ^ Ш ^

Вызов

Итак, вот план! Я хочу, чтобы вы все написали самый маленький код, который будет компилироваться, печататься Goodbye Cruel World!, а затем вылетать. Или, в качестве бонуса, распечатайте Hello World!и разбейте сGoodbye Cruel World!

правила

  • Ваш счет будет общим количеством использованных символов. Ответом должна быть целая исполняемая программа.
  • Ваша программа должна распечатать Goodbye Cruel World! для вывода, а затем сбой (неожиданная ошибка).
    • Для получения бонуса вы должны Hello World!вместо этого распечатать , но сообщение об ошибке также должно содержать Goodbye Cruel World!. Если вы выполнили бонусное испытание, вы можете поделить свой счет на 2. (Включите! В конце своего счета, если вы претендуете на бонус!)
  • Пока стандартный вывод все еще печатает, и стандартная ошибка все еще печатает, порядок не имеет значения. Так же, как ни один из них не может помешать другому.
  • Вывод должен содержать содержимое вышеперечисленного; "не должен появляться в выводе.
  • Вывод должен содержать указанную строку и ничего больше.
  • Отчет о сбое может содержать что угодно, но для получения бонуса должно соответствовать следующее регулярное выражение /Goodbye Cruel World!/mi(иначе, содержит, игнорировать регистр / окружающий текст))
  • Строки Hello World!и Goodbye Cruel World!не чувствительны к регистру, но в остальном должны выглядеть точно так же, как указано выше.
  • Если язык допускает сбой (он не может изменить свой код выхода), он должен потерпеть крах. В противном случае используйте стандартный «отчет об ошибках» (т. Е. STDERR) Для языка.

Я могу разбить Python 3, поэтому я включил пример ответа Python 3! Теперь давайте все поджигаем мир! ^ W ^


Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Деннис

as a bonus twist challenge, print "Hello World!" and crash with "Goodbye Cruel World!"?
Волшебная Урна Осьминога

Предположим, я работаю на языке, подобном Java, где STDOUT и STDERR, конечно, печатаются в разных потоках. Это означает, что, хотя программа по порядку печатает «Hello world», а затем вылетает, возможно, что сначала будет напечатана трассировка стека ... Это разрешено?
Сократов Феникс

@SocraticPhoenix Пока STDOUT все еще печатает, а STDERR все еще печатает, порядок не имеет значения. Так же, как ни один из них не может помешать другому.
Тезра

1
Это так весело, я не могу перестать принимать решения!
Адам

Ответы:


36

Желе , 12 байт

“¿µƝɓṭỵae»Ȯ:

Попробуйте онлайн!

Объяснение:

“¿µƝɓṭỵae»Ȯ:

          Ȯ     Print
“¿µƝɓṭỵae       A string...
         »      Decoded from base-250
           :    Integer division

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


7
Добро пожаловать в PPCG!
Деннис

Спасибо! Я скрывался какое-то время, но я впервые столкнулся с проблемой, которую, как мне казалось, я мог решить прилично!
разброс

28
Впечатляющий ответ, хотя почти все ответы Jelly впечатляют, как из-за продолжительности, так и из-за того, что вам удалось выучить Jelly.
Грифон - Восстановить Монику

4
A base-250 encoded stringЭто и здорово, и страшно, что ты можешь это сделать. X3
Tezra

3
Это значительно короче, чем строка «Прощай, жестокий мир!» (20 байт). Сумасшедший ...
Адам Плохер

35

C, 43 байта

main(){puts(puts("Goodbye Cruel World!"));}

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

Попробуйте онлайн!

C, 42 байта

Спасибо @Ruslan!

main(i){i=puts("Goodbye Cruel World!")/0;}

Попробуйте онлайн!

Просто для удовольствия: C (на 64-битном Linux), 149 байт

Модифицировано из этой Hello World -программы здесь .

const int main[]={-443987883,440,113408,-1922629632,4149,1358336,84869120,15544,266023168,1869563654,1702453860,1970422560,1461742693,1684828783,33};

Попробуйте онлайн!


Мне нравится такой подход, но в инструкциях сказано:The answer must be a whole executable program.
Коди

1
main(i){i=puts("Goodbye Cruel World!")/0;}снимает один байт
Руслан

1
Вам не нужно i. puts("")/0;это синтаксически правильное утверждение.
Ричи

1
@rici Да, это так, но он не падает (по крайней мере, на TIO).
Steadybox

1
@Steadybox: это оптимизация для вас.
Ричи

11

SOGL , 15 25 17 байт / 2 = 8,5!

Q7┌θ/²?‘■←#c℮‘o0n

Объяснение:

...‘           push "goodbye cruel world!"
    ...‘       push "hello world!"
         o     output "Hello World!"
           0n  attempt to make an array where each line is 0 characters long, making the array
               required to be infinite, which crashes (OutOfMemoryError)

(Ab) использует тот факт, что SOGL использует STDERR в качестве выходных данных отладки, поэтому в нем много текста, наряду со строкой

`∑`@22: ["goodbye cruel world!"]

Если вы передали STDOUT эскиза Обработка в файл, «До свидания, жестокий мир!» будет там.


Поскольку в задании упоминается « Строки Hello World!и Goodbye Cruel World!регистр не чувствительны, но в противном случае они должны отображаться точно так же, как указано выше », вы можете изменить свой код, полностью избавившись от функции и просто выводя все строчные буквы.
Кевин Круйссен

@KevinCruijssen, о, спасибо!
Дзайма

10

> <> , 25 байт

"!dlroW leurC eybdooG">o<

В основном это добавляет строку в стек (Backwards, последним первым обслужен), а затем делает эквивалент:

while(1):
  pop the stack
  print the character

Когда в стеке не осталось символов (вся строка была напечатана), всплывающее сообщение в стеке выдает ошибку


+1. Пришел #o<"Goodbye Cruel World!", что в принципе то же самое.
hakr14

9

sed, 32 байта

iGoodbye Cruel World!
w/dev/full

iвставляет строку и wзаписывает в файл. /dev/fullв этом случае, потому что все записи в него возвращаютENOSPC («На устройстве не осталось места»).

Тем не менее, для работы все еще нужна одна строка ввода.

$ echo 1 | sed -f crash.sed
Goodbye, cruel world!
sed: couldn't flush /dev/full: No space left on device

3
Даже не знал, что существует такое устройство!
Руслан

9

Lua, 31 , 30 байт

a=-print'Goodbye Cruel World!'

сначала распечатывает «Прощай, жестокий мир!» и затем вылетает при попытке добавить нулевое значение и 0.

Выход:

Goodbye Cruel World!
input:1: attempt to perform arithmetic on a nil value

Кредит GalladeGuy на 1 байт меньше


2
он печатает «Прощай, жестокий мир!» и затем терпит крах, хотя, который я только думал, что это просто должно было потерпеть крах, чтобы быть принятым.
eniallator

@Trebuchette Требование «Ваша программа должна напечатать Goodbye Cruel World! Для вывода и затем сбоя», OP не указал, означает ли «output» stderr, stdout, окно сообщения или что-либо из перечисленного выше.
Pharap

@Pharap О, я вижу. STDERR имеет значение, только если вы собираетесь получить бонус. Спасибо!
Требушетт

@Trebuchette Нету. Там написано: «Или, в качестве бонуса, напечатайте Hello World! И рухните с Goodbye Cruel World!». 'crash' не обязательно подразумевает stderr, 'crash' также может означать (среди прочего) выбрасываемое исключение. Если ОП не определяет его дальше, он открыт для интерпретации. Также некоторые приложения Lua не имеют понятия stderr (например, Lua встроен в качестве языка сценариев для игр) и вместо этого будут печатать в окне сообщений или в файле журнала и т. Д.
Pharap

1
Вы можете сохранить байт, выполнив это вместо этого:a=-print"Goodbye Cruel World!"
GalladeGuy

8

Python 3 | Оценка: 24,5! 23 22!

print("Hello World!")+"Goodbye Cruel World!"

Выведите «Hello World», чем используйте недопустимый оператор «+» в «Goodbye Cruel World!» к элементу возврата NoneType. (вырезать \ n \ r из предыдущей версии)

Попробуйте онлайн!

Python 3 | Оценка: 34 30

+print("Goodbye Cruel World!")

Распечатать До свидания, чем сделать недопустимую унарную + операцию над результатом печати (NoneType)

Попробуйте онлайн!


+"Goodbye Cruel World!"короче на 3 байта и выдает ошибку TypeError.
Габор Фекете

print("Goodbye Cruel World!")/0короче для второго (3 байта?)
matsjoyce

@ Matsjoyce Я боялся, что произойдет сбой до печати. Но так как он печатается первым, я просто сделаю одинарную печать в «результате»: 3
Tezra

24
2.585e + 22 - довольно большой результат ... ты уверен, что больше не сможешь сыграть в гольф?
Tuskiomi

1
@tuskiomi '!' означает, что окончательный счет изменяется бонусным испытанием.
Тезра



6

CJam , 34 байта, оценка 17!

"Goodbye Cruel World!"D>"Hello"ooo

Попробуйте онлайн!(Смотрите панель отладки для STDERR)

объяснение

"Goodbye Cruel World!"              e# Push "Goodbye Cruel World!".
                      D>            e# Slice after index 13: " World!".
                        "Hello"o    e# Push "Hello" and print it.
                                o   e# Print " World!".
                                 o  e# Attempt to print from an empty stack. Crashes.

На TIO он генерирует это сообщение об ошибке:

"Goodbye Cruel World!"D>"Hello"ooo
                                 ^
RuntimeException: The stack is empty
Java exception:
java.lang.RuntimeException: The stack is empty
    at net.aditsu.cjam.CJam.pop(CJam.java:75)
    at net.aditsu.cjam.Op1.run(Op1.java:10)
    at net.aditsu.cjam.Block.run(Block.java:304)
    at net.aditsu.cjam.CJam.runCode(CJam.java:210)
    at net.aditsu.cjam.CJam.main(CJam.java:240)

6

C препроцессор, 27 байтов

#error Goodbye Cruel World!

Выход:

fatal error C1189: #error:  Goodbye Cruel World!

1
Вы можете укоротить его еще больше с просто#Goodbye Cruel World!
абрикосовым мальчиком

@apricotboy Это все равно приведет к ошибке, но полное сообщение об ошибке «Прощай, жестокий мир» не выводится компилятором (по крайней мере, на MSVC)
Говинд Пармар

@ Горвинд Пармар ах. Ну, это определенно подходит для gcc: i.imgur.com/qmGnoJv.png
абрикосовый мальчик

6

APL (Дьялог) , 17,5 байт

Без бонуса, 20 байт

Goodbye Cruel World!

Попробуйте онлайн!

Обратите внимание, что код не заключен в кавычки, поэтому APL пытается выполнить его, но World не определен, что приводит к сбою VALUE ERROR с ошибочной строкой кода, включенной в сообщение об ошибке.

С бонусом 35 ÷ 2 = 17,5 байт

'Hello World!'
Goodbye Cruel World!

Попробуйте онлайн!

Сначала печатает требуемую строку, а затем вылетает, как описано выше.

Более изощренная бонусная версия, 35 ÷ 2 = 17,5 байт

'Goodbye Cruel',5↓⎕←'Hello World!'

Попробуйте онлайн!

Печатает первую строку, затем удаляет первые пять символов из this ( 5↓), затем объединяет that ( ,) с новым префиксом и затем пытается выполнить execute ( ), вызывая ту же ошибку, что и выше.


1
@Cyoce Typo. Спасибо
Адам

5

Баш 20,5! 18,5!

Я не собираюсь разбивать желе, но я немного застенчивый из-за того, что ударил быстрый скрипт. 18,5 не так уж плохо для языка без игры в гольф. (Обратите внимание, что это должен быть скрипт, интерактивный bash будет пытаться интерпретировать !как поиск по истории)

echo Hello World!
Goodbye\ Cruel\ $_

Возвращает с кодом ошибки 127 и:

Hello World!
bash.sh: line 2: Goodbye Cruel World!: command not found

Как и просили нет "... нигде :). Как и предполагалось, apricot boyтеперь я ищу последний аргумент предыдущей команды, чтобы сохранить 4 байта.


Я пытался победить тебя ... и потерпел неудачу с 21! байт. :) W=\ World\!;echo Hello$W;"Goodbye Cruel$W"
reitermarkus

1
Возможно, вы могли бы изменить вторую строку на Goodbye\ Cruel\ !$не 100%, но вполне уверены, что !$это «последнее слово последней команды»
абрикосовый мальчик

Но что делать, если исполняемый файл называется "Goodbye Cruel World!" существует в PATH? :)
Спак

Подтверждено ОК на TIO.run ... бьет мой ответ
Zsh

4

TeX, 19!

Hello World!#\bye Goodbye Cruel World!

Чтобы заставить TeX фактически создать файл DVI / PDF без ручного вмешательства, скомпилируйте -interaction=nonstopmode .

Он печатает Hello World!, выдает ошибку для использования, #когда вы не должны, а затем останавливает компиляцию с \bye. Тем не менее, все, что после \bye, все еще выводится в сообщении об ошибке, поэтому оно применяется для бонуса.


4

WinDBG (локальная отладка ядра Windows XP / Vista), 33 байта

.echo Goodbye Cruel World!;.crash

Предупреждение: это приведет к сбою всей машины, а не только программы.

Отладка локального ядра разрешена только в Windows XP и Vista (но не включена по умолчанию в Vista). В диалоге WinDBG по отладке локального ядра не упоминается ни одна другая ОС Windows, поэтому я предполагаю, что она даже не может быть включена для них. Предположительно для других ОС Windows вы можете подключиться к удаленной машине для отладки ядра, но это будет сбой удаленной машины, поэтому я не думаю, что это решение имеет значение.


Локальная отладка ядра также поддерживается в Windows 7, и я не слышал, чтобы с тех пор она была удалена (но, возможно, я ее пропустил).
Коди Грей

4

JS (ES5), 46/2 = 23 байта!

alert("Hello, World!")["Goodbye Cruel World!"]

Оповещения Hello, World!, а затем ошибки сUncaught TypeError: Cannot read property 'Goodbye Cruel World!' of undefined


4

PowerShell, 26 байт

'Goodbye Cruel World!';1/0

Я думаю, что деление на 0 - это самый простой способ вызвать ошибку.

PowerShell, 35/2 = 17,5 байт

"Hello World!";Goodbye Cruel World!

по TessellatingHeckler , выдает ошибку примерно так:

PS C:\Users\Connor> "Hello World!";Goodbye Cruel World!
Hello World!
Goodbye : The term 'Goodbye' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:16
+ "Hello World!";Goodbye Cruel World!

Не должно ли быть $w='World!'!)?
Gmatht

"Hello World!";Goodbye Cruel World!17.5 байт, выдает исключение, потому что Goodbye не распознается как команда, а сообщение об исключении содержит строку полностью, поэтому оно соответствует регулярному выражению.
TessellatingHeckler

1
Используя ту же логику, что и в ответе 17.5b, можно 'Goodbye Cruel World!';xбыло бы сэкономить два байта в течение 24
Веска

4

Язык сценариев работы Flashpoint , 45/2 = 22,5 байта

f={hint"Hello World!";a Goodbye Cruel World!}

Звоните с:

call f;

Выход:



4

Node.js, Оценка: 25,5 24,5!

Сохранено 1 балл благодаря ETHproductions

Синтаксически правильная полная программа, которая вылетает во время выполнения, потому что console.log()не возвращает функцию.

console.log('Hello World!')`Goodbye Cruel World!`

Попробуйте онлайн!


К сожалению, нет факториала для 25.5...: ((
Mr. Xcoder

@ Mr.Xcoder Это так Gamma(26.5), как в определении Mathematica.
user202729

1
@ user202729 кто сказал, что Mathematica не сломана? :)))
Mr. Xcoder

Можете ли вы удалить X(и, возможно, даже перевод строки)?
ETHproductions

@ETHproductions Да, действительно. Спасибо!
Арно

3

Ацето , оценка: 21,5!

yeru
b Ce+
do l"d
GoWorl
"!dl
p"or
HeW
"llo

Печатает Hello World!, а затем вылетает с

Traceback (most recent call last):
  File "/Users/l3viathan/bin/aceto", line 230, in _plus
    self.push(y+x)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/l3viathan/bin/aceto", line 811, in <module>
    A.run()
  File "/Users/l3viathan/bin/aceto", line 104, in run
    raise e
  File "/Users/l3viathan/bin/aceto", line 98, in run
    self.step()
  File "/Users/l3viathan/bin/aceto", line 152, in step
    method(self, cmd)
  File "/Users/l3viathan/bin/aceto", line 233, in _plus
    raise CodeException(f"Can't add {x!r} to {y!r}")
__main__.CodeException: Can't add 'Goodbye Cruel World' to 0


3

АХК, 50/2 = 25! (Не конкурирующий)

Не конкурирует, потому что добавленное требование сделало ответ недействительным. Я не могу найти способ заставить его скомпилировать, вывести текст и вылетать. Все, что я пытаюсь сделать, не соответствует ни одному из этих требований.


Send,Hello World!
OutputDebug,Goodbye Cruel World!

Это самое скучное решение, которое я мог придумать. Это на самом деле не терпит крах, но это технически не является обязательным требованием. Все, что нужно сделать, это вывести сообщение в окно отладки. Это происходит потому, что я говорю это сделать.


В настоящее время это недействительно. OP заявляет, что программа должна аварийно завершить работу, если язык способен, если это так, то есть AHK.
internet_user

@pycoder Ах, это было добавлено через 40 минут после того, как я написал. Я обновлю новое правило, но оно будет стоить байтов.
Инженер Тост

3

Japt , 22 байта

°Oo`!dlžW ¤¨C eybºoG`w
°Oo`!dl&#158;W ¤¨C eybºoG`w
 Oo                            output
   `!dl&#158;W ¤¨C eybºoG`     the compressed string "!dlroW leurC eybdooG"
                          w    reversed.
°                              ° transpiles to ++, causing an error; a string can't be incremented

Попробуйте онлайн!

Сохранено 3 байта благодаря obarakon и ETHproductions


Вы можете сжать строку, используя, Oc"<string>"а затем заменить текущую строку сжатой версией, заключив ее в черты.
Люк

Объяснение было бы хорошо.
iFreilicht

1
Добавлено объяснение @iFreilicht.
Том

3

C #, 116/2 = 58 байт!

using System;class P{static void Main(){Console.Write("Hello World!");throw new Exception("Goodbye Cruel World!");}}

Обычная версия для 94 87 байтов:

class P{static void Main(){System.Console.Write("Goodbye Cruel World!");int n=0;n/=n;}}

Сохранено 7 байтов благодаря @KevinCruijssen.


int n=0;n/=n;короче для вашего первого ответа.
Кевин Круйссен

@KevinCruijssen Отличное место, у меня были проблемы с компиляцией без деления с постоянной нулевой ошибкой.
TheLethalCoder

Да, в Java вы можете просто сделать int n=1/0;, но, очевидно, это невозможно в C # (что на самом деле хорошо для языка, но плохо для игры в код). Кстати, почему бонус не на вершине? Этот короче.
Кевин Круйссен

@KevinCruijssen Я не был уверен, что он соответствовал требованиям, так как было немного неясно, когда я опубликовал свой ответ, видя, как было уточнено, я переключил их.
TheLethalCoder

3

Желе 10,5! байтов

“,ḷṅḳȦ»¹“¿µƝɓṭỵae»+/R

Попробуйте онлайн!

Это использует неопределенное поведение, используя строки Python (строки) вместо строк Jelly (список строк из 1 символа). Преобразование выполняется путем уменьшения строки Jelly путем добавления, и Python +объединяет две строки, поэтому две строки, добавленные вместе, объединяются в Python. Затем он использует соответствующую монаду (диапазон), чтобы Python intвызывал строку, что приводило к ошибке, которая всегда содержала быGoodbye Cruel World! .

Объяснение:

“,ḷṅḳȦ»¹“¿µƝɓṭỵae»+/R Main Link, niladic.
“,ḷṅḳȦ»¹              Print "Hello World!"
        “¿µƝɓṭỵae»+/  Convert "Goodbye Cruel World!" to a Python string
                    R Make a range out of it

3

Ruby, 43 42 байта / 2 = 21!

puts"Hello World!"
-"Goodbye cruel World!"

Сохранено полбайта с помощью Алексис Андерсен, заменив "String"/0на -"String". Это работает только с версиями Ruby ниже 2.3, в которых унарный минус метод был фактически добавлен в класс String!

С рубином <2.3:

$ ruby -e 'puts"Hello World!";-"Goodbye cruel World!"'
Hello World!
-e:1:in `<main>': undefined method `-@' for "Goodbye cruel World!":String (NoMethodError)

С рубином> = 2.3:

$ ruby -e 'puts"Hello World!";"Goodbye cruel World!"/0'
hello world!
-e:1:in `<main>': undefined method `/' for "Goodbye cruel World!":String (NoMethodError)

Вы можете сохранить (половину) байта, используя -строку вместо /ie-"Goodbye crueld World!"
Alexis Andersen

@AlexisAndersen спасибо! Сегодня я также узнал о новом методе в классе String (см. Обновленную запись)
daniero

3

Двоичный код x86-64 (с системными вызовами Linux), 43 байта

Разборка:

0:  31 c0                   xor    eax,eax
2:  ff c0                   inc    eax            ; write syscall number = 1
4:  31 ff                   xor    edi,edi
6:  ff c7                   inc    edi            ; stdout file descriptor = 1
8:  48 8d 35 07 00 00 00    lea    rsi,[rip+0x7]  ; load the string at offset 16 into rsi
f:  31 d2                   xor    edx,edx
11: b2 15                   mov    dl,0x15        ; 21 byte string
13: 0f 05                   syscall
15: f4                      hlt
16: 47 6f 6f 64 62 79 65 20 43 72 75 65 6c 20 57 6f 72 6c 64 21 0a .ascii "Goodbye Cruel World!\n"

Note: 0x16 code bytes + 0x15 string bytes = 0x2B = 43 total bytes

Эта программа объединяет необходимые данные (строку "Goodbye Cruel World!\n") в свой собственный код. Он загружает указатель на эту строку, используя ripотносительную адресацию, и вызывает writeсистемный вызов напрямую, а не через оболочку glibc, поэтому он полностью независим от позиции, и мы можем легко проверить его, внедрив код в constстроку и приведя эту строку к функции указатель. Чтобы завершить работу программы, я заканчиваю ее hltинструкцией, которая с привилегиями кольца 0 заставит процессор замолчать навсегда (или, по крайней мере, до следующего прерывания), но с привилегиями кольца 3 (типично для пользовательских программ) мы получим гораздо меньше. драматично Segmentation Fault.

Тестовая программа:

#include <stdio.h>

const char code[43] = "\x31\xC0\xFF\xC0\x31\xFF\xFF\xC7\x48\x8D\x35\x07\x00\x00\x00\x31\xD2\xB2\x15\x0F\x05\xF4Goodbye Cruel World!\n";

int main() {
    printf("Code bytes: %zi\nNow running the code:\n\n", sizeof(code));
    ((void(*)())code)();
    printf("Failed to crash, now exiting!\n");
    return 0;
}

Выход:

Code bytes: 43
Now running the code:

Goodbye Cruel World!
Segmentation fault

Обратите внимание, что 43-байтовый код является полной программой, как указано в запросе, а не просто функцией. Это не зависит от mainфункции тестовой программы для правильного функционирования; он по-прежнему печатает строку и вылетает, если загружается и переходит непосредственно к загрузчику.


Сохраните несколько байтов, используя push/ popдля загрузки регистров. Например, первые две инструкции могут быть push 1+ pop rax, что на 1 байт короче. Затем можно заменить следующие две инструкции mov edi, eax, что на 2 байта короче. То же самое push/ popтрюк может быть применен к инструкциям 6 и 7: push 0x15+ pop rdx.
Коди Грей


3

Pyth , 38/2 = 19 байт! 36/2 = 18 байт!

"Hello World!"v"Goodbye Cruel World!

Проверьте это онлайн!

Пояснения

Он печатает Hello World!, затем попытайтесь оценитьGoodbye Cruel World! . Это не удается, потому что эта строка не является допустимым кодом.

Результат:

Hello World!
Traceback (most recent call last):
  File "pyth.py", line 760, in <module>
  File "<string>", line 4, in <module>
  File "/app/macros.py", line 1085, in Pliteral_eval
  File "/app/.heroku/python/lib/python3.4/ast.py", line 46, in literal_eval
  File "/app/.heroku/python/lib/python3.4/ast.py", line 35, in parse
  File "<unknown>", line 1
    Goodbye Cruel World!
                ^
SyntaxError: invalid syntax
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.