2017-02-26 5 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の3.6で新たにF-文字列を活用して、より「神託」方法です:

alphabet = 'abcdefghijklmnopqrstuvwxyz' 
for i,k in enumerate(alphabet): 
     print(f'{k.upper()} {alphabet[i:]}') 
  • は、あなたが文字列の文字を反復処理することができます。
  • enumerateインデックスの両方に、現在の反復の値を与えます。
  • f-stringsでは、式を文字列で評価できます。
  • .upper()は大文字の文字列を返します。
  • [i:]スライス表記は、文字列の最後までインデックスiから始まるサブストリングを返します。
関連する問題