私はpythonが初めてで、カウントダウンするプログラムを書きたいと思っています。100 で開始し、1 または 0 で終了する必要があります。これは私が今持っているものです:
def countdown(n):
while n > 0:
print (n)
n = n =2**123
print('Blastoff')
countdown(200)
私はpythonが初めてで、カウントダウンするプログラムを書きたいと思っています。100 で開始し、1 または 0 で終了する必要があります。これは私が今持っているものです:
def countdown(n):
while n > 0:
print (n)
n = n =2**123
print('Blastoff')
countdown(200)
n = n =2**123
??? これは何をすることになっていますか?n
2 の 123 乗に設定して何を達成しようとしていますか? おもう
n = n - 1
また
n -= 1
より適切でしょう。
簡単な方法は、範囲を負のインクリメント パラメータで使用することです。例えば:
for n in range(10,0,-1):
print(n)
別の方法: yield コマンドを使用できます。ジェネレーターの作成に使用しています。コマンドを返すようなものです。例えば:
#this is generator function
def countdown(start,last):
n=start
while(n>last):
yield n
n-=1
for n in countdown(10,0):
print(n)
これを試してみてください。カウントダウンする必要がある数字を入力できます。
import time
numTimes = int(input("How Many Seconds Do You Wish To Have Untill LiftOff: "))
def countdown(count):
while (count >= 0):
print ("LiftOff In: ", count)
count -= 1
time.sleep(1)
countdown(numTimes)
print ("!WE HAVE LIFT OFF!")
Udacity で問題が発生したようです。この問題に対する私の解決策は次のとおりです。
def countdown (n):
print n
while n > 1:
n=n-1
print n
print "Blastoff!"
ところで、インデントに注意してください。2 番目の「print n」は、その前の行に従ってインデントする必要があります。そうしないと、手順が機能しません。