2 / 2 / 0
Регистрация: 13.12.2019
Сообщений: 21

Программа, выводящая сама себя

22.03.2020, 15:14. Показов 5931. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Цель - написать такую программу, используя минимальное количество средств (я знаю только питон, поэтому привожу для него: хотелось бы использовать только команду print, кавычки, умножение на число и сложение строк - известно решение, использующее ещё точку с запятой и функцию chr, превращающую номер в символ под данным номером в юникоде).

Вот то решение:

a = "b = chr(97) + chr(32) + chr(61) + chr(32) + chr(34); b += a; print(b + chr(34)); print(a)"
b = chr(97) + chr(32) + chr(61) + chr(32) + chr(34); b += a; print(b + chr(34)); print(a)

По-видимому, очевидного доказательства невозможности обойтись названными мною выше средствами не существует, а если есть неочевидное, то так будет даже интереснее. Но, каков бы ни был ответ на этот вопрос, он всё равно должен быть интересен.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.03.2020, 15:14
Ответы с готовыми решениями:

Не запускается сама программа
Не могу найти ошибку import random print ("\tДобро пожаловать в игру 'Отгадай число' !") print ("\nКомпьютер загадал...

Программа должна удалить сама себя
Я хочу чтобы программа удалила свой .exe файл, то бишь саму себя, с помощьюos.remove('disk_name:\\file_name' можно удалять .exe файлы с...

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

3
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.03.2020, 17:35
mrilinski, попробуйте ничего не курить. как отпустит попробуйте сформулировать вопрос.
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.03.2020, 18:03
Лучший ответ Сообщение было отмечено mrilinski как решение

Решение

mrilinski,
Писать куайны на языках которые имеет рефлексию - изврат.
Python может элементарно вывести текст программы через модуль inspect.
Python
1
2
import inspect, sys
print(inspect.getsource(sys.modules[__name__]))
А что касается до извратов - на хабре есть статья.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.03.2020, 07:16
Цитата Сообщение от Garry Galler Посмотреть сообщение
inspect.getsource(
Вот только это не работает, при отсутствии исходника на диске:
Python
1
2
3
4
5
6
7
8
9
10
11
python3 2.cpython-35.pyc 
Traceback (most recent call last):
  File "1.py", line 2, in <module>
    print(inspect.getsource(sys.modules[__name__]))
  File "/usr/lib/python3.5/inspect.py", line 943, in getsource
    lines, lnum = getsourcelines(object)
  File "/usr/lib/python3.5/inspect.py", line 930, in getsourcelines
    lines, lnum = findsource(object)
  File "/usr/lib/python3.5/inspect.py", line 761, in findsource
    raise OSError('could not get source code')
OSError: could not get source code
Добавлено через 14 секунд
С тем же успехом я мог бы написать:
Python
1
print(open(__file__).read())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2020, 07:16
Помогаю со студенческими работами здесь

Программа, выводящая чётные степени чисел
Со стандартного потока считываются НАТУРАЛЬНЫЕ числа a и n. Разработать программу, вычисляющую ЧЁТНЫЕ числа a^1, a^2, a^3 и так до a ^n. От...

Не запускается интерфейс и сама программа Translator
Сделал переводчик на PyQt5 , переделал его в py файл написал программу , ошибок вроде нету но ничего не происходит, просто выдаёт ...

Как избавиться от быдлокодинга? Сама программа простейшая
Ребята, такой вопрос. Я изучай Python со вчерашнего дня и решил поэкспериментировать в консольном приложении. Вообще, суть этой, своего...

Программа копирует сама себя
Эта программа (имя 1.bas) копирует свой текст в файл 2.bas. REM REM 1.bas =&gt; 2.bas REM CLS DIM S AS STRING

Программа копирует сама себя
1)Как сделать что бы после запуска программы пошел оcчет 15 сек а затем запустилась программа c:/my.exe 2) Как сделать что бы после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru