1

私はPythonを初めて使用します。私は小さなelavatorプログラムを作ろうとしています。

コード:

import time
elavator = True
# 0 is B floor // basement
elavatorFloors = [0,1,2,3,4,5]

while elavator == True:
    getLevel = input ("Which floor would you like to visit? ( 1 - 5) ")
    time.sleep(2)
    print "you're now at floor, " +int.getLevel

このエラーが発生します:AttributeError:type object'int' has no attribute'getLevel' strをintに変更する以外に、悪いテクニックを使用していますか?プログラミングの考え方とコードの書き方を本当に改善したいと思っています。ありがとうございました :)

4

2 に答える 2

8

int()int(getLevel)は型なので、インスタンス化するには、 ではなくを実行する必要がありますint.getLevel

例などについては、ドキュメントを確認してください。

また、変数の奇妙な名前に注意してくださいgetLevel。これは、レベルを与える関数であることを意味します。より良い名前はただlevel.

が入力を Python コードとして評価することも注目に値しinput()ます (Python 2.x では、3.x ではraw_input()古いバージョンと同じように機能します)。そのため、getLevel既に数値になっていますが、raw_input()代わりに使用することをお勧めします。コードの任意の実行を許可しないため、文字列を整数に変換します。これははるかに優れています。

于 2012-12-07T17:41:05.847 に答える
-2

変更されたサンプル コードは次のとおりです。

import time
elevator = "false"
# 0 is B floor // basement
elavatorFloors = [0,1,2,3,4,5]
getLevel = input("Which floor would you like to visit? ( 1 - 5) ")
for x in elavatorFloors:
    if x == getLevel:
        time.sleep(getLevel)
        print "you're now at floor, " + str(getLevel)
        elevator = "true"
        pass
    else:
        pass
if (elevator == "false"):
    print "There is no floor: " +  str(getLevel)
于 2012-12-07T19:12:32.387 に答える