2017-02-26 5 views
0

Ich schreibe ein Programm, das zu drucken soll:Wie drucke ich eine Tabelle des Alphabets in Python?

A abcdefghijklmnopqrstuvwxyz 
B bcdefghijklmnopqrstuvwxyz 
C cdefghijklmnopqrstuvwxyz 
D defghijklmnopqrstuvwxyz 
E efghijklmnopqrstuvwxyz 
F fghijklmnopqrstuvwxyz 
G ghijklmnopqrstuvwxyz 
H hijklmnopqrstuvwxyz 
I ijklmnopqrstuvwxyz 
J jklmnopqrstuvwxyz 
K klmnopqrstuvwxyz 
L lmnopqrstuvwxyz 
M mnopqrstuvwxyz 
N nopqrstuvwxyz 
O opqrstuvwxyz 
P pqrstuvwxyz 
Q qrstuvwxyz 
R rstuvwxyz 
S stuvwxyz 
T tuvwxyz 
U uvwxyz 
V wxyz 
X xyz 
Y yz 
Z z 

ich den folgenden Code für das Programm geschrieben haben, aber es wird nicht gedruckt, was ich will es. Das ist, was ich für das Programm geschrieben:

alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] 
for k in range(len(alphabet)): 
    for j in range(len(alphabet)): 
     print(alphabet[j-k],end='') 
    print('\n')` 

und druckt es aus:

abcdefghijklmnopqrstuvwxyz 

zabcdefghijklmnopqrstuvwxy 

yzabcdefghijklmnopqrstuvwx 

xyzabcdefghijklmnopqrstuvw 

wxyzabcdefghijklmnopqrstuv 

vwxyzabcdefghijklmnopqrstu 

uvwxyzabcdefghijklmnopqrst 

tuvwxyzabcdefghijklmnopqrs 

stuvwxyzabcdefghijklmnopqr 

rstuvwxyzabcdefghijklmnopq 

qrstuvwxyzabcdefghijklmnop 

pqrstuvwxyzabcdefghijklmno 

opqrstuvwxyzabcdefghijklmn 

nopqrstuvwxyzabcdefghijklm 

mnopqrstuvwxyzabcdefghijkl 

lmnopqrstuvwxyzabcdefghijk 

klmnopqrstuvwxyzabcdefghij 

jklmnopqrstuvwxyzabcdefghi 

ijklmnopqrstuvwxyzabcdefgh 

hijklmnopqrstuvwxyzabcdefg 

ghijklmnopqrstuvwxyzabcdef 

fghijklmnopqrstuvwxyzabcde 

efghijklmnopqrstuvwxyzabcd 

defghijklmnopqrstuvwxyzabc 

cdefghijklmnopqrstuvwxyzab 

bcdefghijklmnopqrstuvwxyza 

abcdefghijklmnopqrstuvwxyz 

Ich brauche Hilfe, um herauszufinden, was ich falsch gemacht habe und was ich für den Code zu drucken tun müssen was ich drucken möchte.

+1

beachten Sie, dass im Gegensatz zum Beispiel Länge 26 hat jede der gedruckten Zeilen Warum, glauben Sie, ist das denn? Was denkst du, zum Beispiel, Alphabet [-5]? –

Antwort

1
alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] 
for k in range(len(alphabet)): 
     for j in range(len(alphabet) - k): 
      print(alphabet[j+k],end='') 
     print('\n') 

Ich hoffe, es wird Ihnen helfen.

+0

Vielen Dank es half viel. –

1

Es gibt eine sauberere und kürzere Lösung für Ihr Problem:

alphabet = "abcdefghijklmnopqrstuvwxyz" 
for i, letter in enumerate(alphabet): 
    print(letter.upper(), alphabet[i:]) 

Ich schlage vor, Sie über Python Scheiben lesen (from the doc oder here on Stack).

0

Hier ist eine mehr „pythonic“ Art und Weise, die 3.6 die Vorteile der neuen f-Strings in Python nimmt auch:

alphabet = 'abcdefghijklmnopqrstuvwxyz' 
for i,k in enumerate(alphabet): 
     print(f'{k.upper()} {alphabet[i:]}') 
  • Sie über die Zeichen einer Zeichenkette laufen kann.
  • enumerate gibt sowohl einen Index den Wert der aktuellen Iteration.
  • Mit f-Strings können Ausdrücke in einer Zeichenfolge ausgewertet werden.
  • .upper() gibt die Großbuchstabe Version einer Zeichenfolge.
  • [i:] slice Notation gibt eine Teilzeichenfolge, die i bis zum Ende der Schnur am Index beginnt.
Verwandte Themen