0

距離計算できないの?(TypeError: /: 'int' および 'str' のオペランド型がサポートされていません) Python に、どの名前がどの番号に対応するかを認識させるための提案はありますか? そうすれば、勝った時間で正しい名前を印刷することができますか? (文字列?)

def main():
    print "~*~*~*~*~*~ Timbuktu Archery Contest ~*~*~*~*~*~"
    archerList = [] #list
    timeList = [] #list2
    distanceList = [] #list3
    name = raw_input ("Enter contestants first name: ")
    s = str(name)
    archerList.append(name)
    while name:
        time = raw_input ("Enter time (in milliseconds) for %s: " % s)
        timeList.append(time)
        name = raw_input ("Enter contestants first name: ")
        s = str(name)
        archerList.append(name)
    else:
        print "Slowest archer was " , min(timeList)
        print "Fastest archer was " , max(timeList)
    for time in timeList:
        distance = ((230/time)*681.1)
        distanceList.append(distance)
4

3 に答える 3

1

まずtime、変数として使用しないでください。これはPythonモジュールです。

第二に

time = raw_input ("Enter time (in milliseconds) for %s: " % s)ここtimeに文字列があります

intあなたはそれを好きに変換してからそれをのために使うべきtimeList.append(int(time))です

distance = ((230/time)*681.1)

また、変換しmin/maxないと、目的の出力が得られません

于 2013-02-15T08:29:25.587 に答える
1
time = raw_input ("Enter time (in milliseconds) for %s: " % s)

する必要があります:

time = int( raw_input ("Enter time (in milliseconds) for %s: " % s) )

またはさらに良い:

repeat = True
while repeat:
    try:
        time = int(raw_input ("Enter time (in milliseconds) for %s: " % s))
        repeat = False
    except ValueError:
        print "Invalid time."
于 2013-02-15T08:31:05.787 に答える
0

他の人がすでに「要点」を答えているので、ここでは追加の情報をいくつか示します。

計算する前にint、まず時間を変換する必要があります。floatPython は厳密に型付けされた言語です。変数の型宣言はありませんが、すべての変数には型があります。

distance = ((230./time)*681.1)また、float をある数値で割るように (230 の後ろの "." に注意してください) と書く必要もあります。浮動小数点除算は整数除算とは異なります。

于 2013-02-15T08:33:38.623 に答える