Magische gedrehte Schachbrettfunktion aus Python!
Hier ist ein Puzzle für alle Python-Programmierer:
Ich habe eine Funktion definiert, die so aussieht:
def checkers(num):
magic = [_____________________________________________________________]
print('\n'.join(magic + magic[num-2::-1]))
Hier sind die Ergebnisse des Aufrufs der Funktion mit verschiedenen Nummern:
checkers(1)
Ausgabe:
_|
_|
checkers(2)
Ausgabe:
_|
_|_|_|
_|
checkers(3)
Ausgabe:
_|
_|_|_|
_|_|_|_|_|
_|_|_|
_|
checkers(4)
Ausgabe:
_|
_|_|_|
_|_|_|_|_|
_|_|_|_|_|_|_|
_|_|_|_|_|
_|_|_|
_|
checkers(5)
Ausgabe:
_|
_|_|_|
_|_|_|_|_|
_|_|_|_|_|_|_|
_|_|_|_|_|_|_|_|_|
_|_|_|_|_|_|_|
_|_|_|_|_|
_|_|_|
_|
Ich hoffe, Sie bekommen einen Überblick darüber, was die Funktion tut, aber wenn nicht: Unabhängig von der Zahl, die wir in die Klammern eingeben
, wird ein um 45 Grad gedrehtes Schachbrett gedruckt, wobei die Zahl, die wir eingegeben haben, jeweils eine der Abmessungen ist.
Finden Sie für Ihre Herausforderung heraus, wie magicdefiniert ist.
Sie müssen es nicht so definieren, wie ich es getan habe, aber nur für einen kleinen Hinweis auf eine Art, es zu definieren, repräsentiert jeder Unterstrich zwischen den beiden eckigen Klammern ein Zeichen ohne unnötige Leerzeichen ( ich liebe PEP-8 Versteh mich nicht falsch ).
Antworten
Von einem anderen Missbraucher von Listcomps ist Magie
" "*(num-i-1)+"_|"*(2*i+1)+" "*(num-i-1)for i in range(num)
Es ist eine Liste der Zeilen in der oberen Hälfte.
Der Hinweis ist
Magie (1) ist nicht quadratisch: Dies geschieht, weil num-2 -1 ist. Was also alles außer der letzten Zeile in umgekehrter Reihenfolge ist, wird zur letzten (und einzigen) Zeile
49 Bytes unter Berücksichtigung der Leerzeichen auf der rechten Seite:
Probieren Sie es online aus!('_|'*(2*i+1)).center(num*4-2)for i in range(num)
Das heißt, es ist kein sehr interessantes Rätsel, da bei der regulären Programmierung häufig Aufgaben zur Formatierung von Zeichenfolgen verwendet werden, mit Ausnahme der Schlussfolgerung, worauf sich das auswirken magicsollte. Ich hoffe du kommst später auf weitere interessante :)