简单除法如何获得浮点数而不是模数?

时间:2014-09-30 10:28:11

标签: python operators division

我的代码中的除法不允许我将浮点数作为输出。我的程序正在构建一个函数体,它读取一个距离的输入,而不是计算它所属的时间,以获得每个距离与不同的路径驱动,最后给我一个数字作为输出。问题是,在我的程序中,我只想将距离除以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")

2 个答案:

答案 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中除法的更多信息,您可能需要访问此站点:

http://www.informit.com/articles/article.aspx?p=1439189

答案 1 :(得分:-1)

您的问题似乎是整数除法。只需在调用中尝试使用float()而不是int():

distance = float(input("Wie weit wollen sie reisen: "))
km_h = float(input("Wie schnell wollen Sie fahren: "))