Ist es möglich ein ganze Python Programm in einer Zeile code zu schreiben?

6 Antworten

Alles in einer Zeile geht vermutlich nicht, aber du kannst das auf kosten der Lesbarkeit schon deutlich kürzen.

x = ''
if a>5:
    x = 1
else:
    x = 10
#oder
x = 1 if a>5 else 1
#oder
x = [5,1][a>5]

#Neues Beispiel
for i in range(5):
    if a>5:
        print(1)
    else:
        print(10)
    print('-'*10)
#oder
for i in range(5):
 if a>5:print(1)
 else:print(10)
 print('-'*10)
#oder
for _ in' '*5:print([5,1][a>5]);print('-'*10)

#Neues Beispiel
def quadrat(x):
    return x*x

#oder
quadrat = lambda x: x*x

print(quadrat(10))

Mehr dazu siehe: https://codegolf.stackexchange.com/questions/54/tips-for-golfing-in-python

Kommt natürlich auf das genaue Programm an. Im Prinzip ist ein Einzeiler, wie print("Hello, World") schon ein komplettes Python-Programm. Codeeinrückungen gehen halt nicht in einer Zeile, daher darf dein Programm nicht mehrere Befehle haben. Manche Sachen, wie z.B. FizzBuzz gehen aber mit ein bisschen Trickserei

print(*[(not(x%15) and "FizzBuzz") or (not(x%3) and "Fizz") or (not(x%5) and "Buzz") or x for x in range(1,101)], sep="\n")
whgoffline  15.11.2023, 18:42

Geht auch noch ein wenig kürzer wie z.B.

for i in range(1,101):print('Fizz'*(i%3<1)+'Buzz'*(i%5<1)or i)
1
daCypher  16.11.2023, 07:59
@whgoffline

Ah, ich mag Code Golf 😁

Ich hab mir ehrlich gesagt keine Mühe gegeben, den Code möglichst kurz zu machen, sondern wollte nur ein Beispiel geben, wie man ein Python-Programm in eine Zeile kriegt.

Es geht sogar noch drei Zeichen kürzer:

for i in range(100):print(i%3//2*'Fizz'+i%5//4*'Buzz'or-~i)
1

Ja, es ist möglich, ein gesamtes Python-Programm in einer einzigen Zeile Code zu schreiben, insbesondere wenn es sich um sehr einfache Programme handelt. Hier ist ein einfaches Beispiel:

python

print("Hello, world!")

Dieser Code gibt einfach "Hello, world!" auf der Konsole aus.

Für komplexere Programme wird es jedoch schnell unpraktisch, alles in einer Zeile zu schreiben, da die Lesbarkeit und Wartbarkeit stark beeinträchtigt werden können. In der Praxis ist es daher üblicher, Python-Code auf mehrere Zeilen aufzuteilen, um ihn verständlicher zu machen.

Dennoch gibt es einige Wettbewerbe oder Code Golfing-Herausforderungen, bei denen Entwickler versuchen, so viel wie möglich in einer einzigen Zeile Code zu erreichen, oft unter Verwendung von List Comprehensions, Lambdas und anderen kompakten Python-Features. Dies ist jedoch eher eine akademische oder spielerische Übung und nicht die empfohlene Vorgehensweise für die normale Programmierung.

Woher ich das weiß:Hobby

Bei python wird das schwierig da es ja auf Eindrückung basiert aber bei c/cpp und so geht das

Woher ich das weiß:Hobby – hobby programmierer seit 2020

Es geht wenn du den Code mit base64 verschlüsseltst weil man manche Syntax nicht in einer Zeile machen kannst in Python selbst mit semikolon