私は100から0までループしようとしています。どうやってこれをPythonでできますか?
for i in range (100,0)
は動作しません。
range(100,-1,-1)
を試してみてください。3番目の引数は使用する増分値です(文書化された ここ )。
私の意見では、これが最も読みやすいです。
for i in reversed(xrange(101)):
print i,
for i in range(100, -1, -1)
そしてもう少し長い(そして遅い)解決策:
for i in reversed(range(101))
for i in range(101)[::-1]
一般にPythonでは、後ろから負の添字を使うことができます。
numbers = [10, 20, 30, 40, 50]
for i in xrange(len(numbers)):
print numbers[-i - 1]
結果:
50
40
30
20
10
あなたのコードがうまくいかなかった理由
for i in range (100, 0)
は問題ありませんが、を除いて
3番目のパラメーター(step
)は、デフォルトで+1
です。そのため、後退するには、range()に3番目のパラメータを-1
として指定する必要があります。
for i in range(100, -1, -1):
print(i)
注:これは、出力に100&0を含みます。
複数の方法があります。
より良い方法
Pythonic方式の場合は、 PEP 0322 を確認してください。
これは100から0(100と0を含む)までを印刷するPython 3 Pythonicの例です。
for i in reversed(range(101)):
print(i)
別の解決策:
z = 10
for x in range (z):
y = z-x
print y
結果:
10
9
8
7
6
5
4
3
2
1
ヒント:この方法を使用してリスト内のインデックスをカウントバックする場合は、リストインデックスが0から始まるので、 'y'の値から-1を求めます。
あなたの問題を解決するための簡単な答えはこのようになります:
for i in range(100):
k = 100 - i
print(k)
短くて甘い。これは、codecademyコースを実施する際の私のソリューションでした。文字列を回転順に出力します。
def reverse(text):
string = ""
for i in range(len(text)-1,-1,-1):
string += text[i]
return string
for var in range(10,-1,-1)
は動作します
100 - i
ここでi in range( 0, 101 )
の場合、いつでも範囲を広げて変数から減算することができます。
for i in range( 0, 101 ):
print 100 - i
ああ、質問を間違って読んでも大丈夫です、私はそれが配列の中で逆方向に進んでいるのでしょうか?もしそうなら、私はこれがあります:
array = ["ty", "rogers", "smith", "davis", "tony", "jack", "john", "jill", "harry", "tom", "jane", "hilary", "jackson", "andrew", "george", "rachel"]
counter = 0
for loop in range(len(array)):
if loop <= len(array):
counter = -1
reverseEngineering = loop + counter
print(array[reverseEngineering])
私はこれをcodeacademy演習の1つで試しました(reverse nor :: -1を使用せずに文字列内のcharsを反転します)
def reverse(text):
chars= []
l = len(text)
last = l-1
for i in range (l):
chars.append(text[last])
last-=1
result= ""
for c in chars:
result += c
return result
print reverse('hola')
2つのリストを同時に逆方向にループ処理したかったので、負のインデックスが必要でした。これが私の解決策です:
a= [1,3,4,5,2]
for i in range(-1, -len(a), -1):
print(i, a[i])
結果:
-1 2
-2 5
-3 4
-4 3
-5 1