最近、edX の MIT クラスで Python の学習を開始しました。
ただし、特定の演習で問題が発生しています。ここにそれらの1つがあります:
「タプルを入力として受け取り、出力として新しいタプルを返す、oddTuples というプロシージャを作成します。ここで、入力タプルの他のすべての要素がコピーされ、最初の要素から始まります。したがって、test がタプル ('I', 'am', 'a', 'test', 'tuple') の場合、この入力でoddTuples を評価すると、タプル ('I', 'a', 'tuple') が返されます。"
講義によると、正しいコードは次のとおりです。
def oddTuples(aTup):
'''
aTup: a tuple
returns: tuple, every other element of aTup.
'''
# a placeholder to gather our response
rTup = ()
index = 0
# Idea: Iterate over the elements in aTup, counting by 2
# (every other element) and adding that element to
# the result
while index < len(aTup):
rTup += (aTup[index],)
index += 2
return rTup
ただし、次のコードを使用して、別の方法で自分で解決しようとしました。
def oddTuples(aTup):
'''
aTup: a tuple
returns: tuple, every other element of aTup.
'''
# Your Code Here
bTup=()
i=0
for i in (0,len(aTup)-1):
if i%2==0:
bTup=bTup+(aTup[i],)
print(bTup)
print(i)
i+=1
return bTup
ただし、私のソリューションは機能せず、その理由を理解できません (チューターが提供するコードと本質的に同じことを行う必要があると思います)。