我的代码中的除法不允许我将浮点数作为输出。我的程序正在构建一个函数体,它读取一个距离的输入,而不是计算它所属的时间,以获得每个距离与不同的路径驱动,最后给我一个数字作为输出。问题是,在我的程序中,我只想将距离除以km / h,但我得到的除法只是模数而不是浮点数。我试过将它存储在变量duration = distance / km_h中,但这也不起作用。所以这里是我的代码。
# Die Auswahl wie man die Strecke zurück legen will
a = "Morway"
b = "A-road"
c = "town"
# Das ist die Höchstgeschwindigkeit von jeder Strecke in km/h
m_strecke = 60
a_strecke = 90
town = 50
# This Program will ask for the demand of your way to travel and the distance too
print("give the distance to travel")
distance = int(input("Wie weit wollen sie reisen: "))
print("Wollen sie die Motorway (0), A-road(1), town(2) fahren")
random.choice(["a", "b", "c"])
choice = str(input("Wollen sie (a) Motorway fahren, (b) A-road oder (c) town fahren: "))
# This route we want to drive
print(choice)
# So fast we want to drive
print("Sie können von (30) bis (90) schnell fahren: ")
random.randint(30,90)
km_h = int(input("Wie schnell wollen Sie fahren: "))
print("So schnell kommen sie in Minuten in das Ziel")
print(distance / km_h)
# now we just to want to give the output of the time it belongs
if km_h == a_strecke:
print("Sie fahren zulässige Höchstgeschwindigkeit(a_strecke)".format(a_strecke))
print("So Schnell kommen sie in Minuten in das Ziel")
print(distance / km_h)
elif km_h == m_strecke:
print("Sie kommen ins Ziel wenn sie a_strecke fahren würden)".format(a_strecke))
print(distance / km_h)
elif km_h == town:
print("Sie kommen ins Ziel wenn die (a_strecke) fahren würden.".format(a_strecke))
print("So schnell kommen sie in Minten in das Ziel")
print(distance/ km_h)
else:
print("Sie fahren entweder zu langsam oder zu schnell")
print("So schnell kommen sie in das Ziel")
print(distance / km_h)
# now we divide the motorway with the function mudolo through kilometer per hour and see
if km_h < a_strecke:
print("Das sind sie unter der zulässigen Höchstgeschwindigkeit")
xspeed = a_strecke % km_h
print(xspeed)
print("zur Erinnerung so schnell fahren sie")
print("So schnell kommen sie in das Ziel")
print(distance / km_h)
else:
print("passt alles")
答案 0 :(得分:0)
使用Python 2.x时,你应该意识到在执行分割时实际上有两种风格
经典部门
1 / 2 # yields 0
1 / 2.0 # yields 0.5
后者始终执行,因为至少有一个类型为float的操作数
真正的分裂
使用Python 3x时执行true division。所以不管你是否划分
1 / 2
或
1 / 2.0
它将始终执行真正的除法,尽管是否有任何浮动作为操作数。
因此,代码中的问题可能不是源于分部。
只需打开Python3交互式shell并输入
即可60 / 30
自己看看 - 会发生什么。
有关Python中除法的更多信息,您可能需要访问此站点:
答案 1 :(得分:-1)
您的问题似乎是整数除法。只需在调用中尝试使用float()而不是int():
distance = float(input("Wie weit wollen sie reisen: "))
km_h = float(input("Wie schnell wollen Sie fahren: "))