Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
2 / 2 / 0
Регистрация: 13.12.2019
Сообщений: 21

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

22.03.2020, 15:14. Показов 5925. Ответов 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 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru