2017-10-14 6 views
-2

私はPythonの初心者です。私の割り当ては、私に頭痛のビットを与えています。 -Zから順にアルファベットの文字列を出力するプログラムを作成レンジとアキュムレータの機能の使い方は?

私の割り当てはにあります。文字列 'acegikmoqsuwy'と 'bdfhjlnprtvxz'を指定すると、forループのrange関数を使用して3番目の文字列を作成します。アキュムレータを使用して3番目の文字列を作成します。

私は実際にアキュムレータとレンジ機能の使い方を理解していません...インストラクターから提供されたノートを見直しましたが、あまり明確ではありません。

これまでのところ、私は

#Alphabet code 
s1 = 'acegikmoqsuwy' 
s2 = 'bdfhjlnprtvxz' 
s3 = list.sort([s3]) 
print(s3) 
+0

@RoryDaultonいいえ、私はそれが命令型プログラミングの一般的な用語で、理解しています。彼らはまだこれを教えています:)私は質問が適切に指定されていないと言ってみようとしていましたが、一見すると、これらの文字列は単にアルファベットの織り込みであることを認識しませんでした。課題が何を得ていたのかは明らかです。 –

答えて

2

アン「アキュムレータ」have-は、ループを使用して行われている計算の一時的な結果を保持する変数です。たとえば、整数のリストを合計するには、accumulator変数をゼロに設定し、ループを使用してリスト内の各整数をアキュムレータに追加します。ループが終了すると、アキュムレータの値はリストの合計になります。あなたの問題で

s2は、第二、第四、第六、第八、...手紙を保持しながら、s1は、第一、第三、第五、第七、...アルファベットの文字を保持しています。 s1の最初の文字に続いてs2の最初の文字を入力し、次にs1に2番目の文字を追加し、続いてs2の2番目の文字を追加することで、アルファベット全体を構築することができます。これらの文字のうち、一度に1つ。

range(n)関数は、0で始まるnの値より小さい整数を返します。これらの整数は、一度に1文字ずつ取得するために、s1s2文字列のインデックスとして使用できます。 range()についてもっと多くのことが言えます。チュートリアルのサイトではないので、詳細はチュートリアルを読む必要があります。

ここでは、あなたがしたいことを行ういくつかのコードです。これは同じ長さの2つの入力文字列に依存することに注意してください。それ以外の場合はエラーが発生します。私は、変数名をより自己記述的にするために変数名を変更しました。このコードは索引の使用において「Pythonic」ではないことに注意してください。これを行うにはより良い方法がありますが、range()は使用しません。

string1 = 'acegikmoqsuwy' 
string2 = 'bdfhjlnprtvxz' 
accum = '' 
for index in range(len(string1)): 
    accum += string1[index] + string2[index] 
print(accum) 

印刷結果がアルファベットである:

abcdefghijklmnopqrstuvwxyz 
関連する問題