-1

私が達成しようとしているのは、最初のテキストが1秒後に表示されることです。次に2、電気ショック療法。10まで。その後、時間が10に等しくなると、時間が減少するため、テキストは9秒後に表示され、次に8などが表示されます。

正しく機能するようにこのコードを修正するにはどうすればよいですか?

エラー:

Traceback (most recent call last):
  File "C:/Users/Eric/Dropbox/time.py", line 13, in <module>
    time.sleep(time)
AttributeError: 'int' object has no attribute 'sleep'

コード :

import time
x = 1
t = 1
time = t + 1
while x == 1:


    print time
    if time >=10:
        time = t - 1
    elif time <= 0:
        time = t + 1
    time.sleep(time)

編集:

import time
x = 1
t = 1
time1 = 0
while x == 1:

    if time1 == 10:
        time1 = time1 - 1
    elif time1 == 0:
        time1 = time1 + 1
    else :
        time1 = time1 + 1
    print time1
    time.sleep(time1)

だから私はプログラムを少し変えたので、ほとんど正しく動作します。それが行うことは、10にカウントし、次に9にカウントし、次に10に戻します。1,2,3,4,5,6,7,8,9,10,9,10,9,10プログラムが時間を10に増やし、次にゼロに減らし、次に再び増やすように設定するにはどうすればよいですか?

4

3 に答える 3

5

インポートしたtimeモジュール(1行目)を独自のtime変数(4行目)でオーバーライドしています。あなたはできる:

  • time変数の名前を別の名前に変更します

    import time
    x = 1
    t = 1
    time_passed = t + 1 # use "time_passed" instead of "time" for example
    while x == 1:
        print time_passed
        if time_passed >= 10:
            time_passed = t - 1
        elif time_passed <= 0:
            time_passed = t + 1
        time.sleep(time_passed)
    
  • timeインポートされたモジュールのエイリアスをimport time as tm使用してtm.sleep(time)

    import time as tm # alias the time module as "tm" for example
    x = 1
    t = 1
    time  = t + 1
    while x == 1:
        print time
        if time >= 10:
            time = t - 1
        elif time <= 0:
            time = t + 1
        tm.sleep(time) # use "tm" to refer to the module
    
  • withsleepからインポートして代わりに使用するだけtimefrom time import sleepsleep(time)

    from time import sleep # only import "sleep" from time, not the whole module
    x = 1
    t = 1
    time  = t + 1
    while x == 1:
        print time
        if time >= 10:
            time = t - 1
        elif time <= 0:
            time = t + 1
        sleep(time) # use "sleep" directly
    

これを修正した後、次の反復で時間を増やすか減らす必要があることも覚えておく必要があります。例えば:

from time import sleep
x = 1
t = 1
time  = t + 1
incr = True
while x == 1:
    print time
    if time >= 10:
        time = 9
        incr = False
    elif time <= 0:
        time = t + 1
        incr = True
    else:
        if incr:
            time = time + 1
        else:
            time = time - 1
    sleep(time)
于 2012-04-22T03:41:46.607 に答える
4

インポートした後、「時間」を再定義しています...

別の変数名を使用してみてください。

于 2012-04-22T03:41:58.297 に答える
3

変数が、インポートtimeしたモジュール()と競合しています。または代わりに変数名としてtime使用できます。curTimemyTime

于 2012-04-22T03:42:22.633 に答える