2017-02-26 120 views
0

我寫一個應該打印的程序:如何在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 

我寫了下面的代碼的程序,但它不會打印出我想要它。這就是我對編寫的程序:

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')` 

,並打印出:

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 

我需要幫助找出我做錯了什麼,我需要的代碼打印做我想要它打印什麼。

+1

請注意,與示例不同,每個打印行的長度均爲26.您爲什麼認爲這是?另外,你認爲,例如,字母[-5]是什麼? –

回答

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') 

我希望它能幫助你。

+0

非常感謝你幫助了很多。 –

1

有一個更清潔和更短的解決問題的方法:

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

我建議你閱讀關於Python切片(from the doc,或here on Stack)。

0

這裏有一個更「Python化」的方式,需要在Python 3.6,以及新的F-字符串的優勢:可以通過遍歷字符串中的字符

alphabet = 'abcdefghijklmnopqrstuvwxyz' 
for i,k in enumerate(alphabet): 
     print(f'{k.upper()} {alphabet[i:]}') 
  • enumerate給出了兩個索引當前迭代的值。
  • f-strings允許在字符串中評估表達式。
  • .upper()給出了字符串的大寫版本。
  • [i:]切片符號返回一個從索引i開始直到字符串結尾的子字符串。