Why does it use a floating element in this example?

I am starting to learn Python from Learn Python. This is my first programming language that I am learning and I am stuck in an exercise.

Exercise: "Explain why 4.0 is used instead of 4."

cars = 100
space_in_a_car = 4.0 #Why does he uses 4.0 instead of 4 here?
drivers = 30
passengers = 90
cars_not_driven = cars - drivers
cars_driven = drivers
carpool_capacity = cars_driven * space_in_a_car
average_passengers_per_car = passengers / cars_driven


print "There are", cars, "cars available."
print "There are only", drivers, "drivers available."
print "There will be", cars_not_driven, "empty cars today."
print "We can transport", carpool_capacity, "people today."
print "We have", passengers, "to carpool today."
print "We need to put about", average_passengers_per_car, "in each car."

I honestly cannot find the reasons why he would use a floating point in line 2, except to serve as an example of the fact that if I have a floating point number, this affects the rest of the evaluation of the expression (cars_driven * space_in_a_car) in The result is 120.0.

Am I missing something?

+5
source share
5 answers

It was a simple question with a simple answer, which for some reason I complicated.

(, , 3/4 0 3/4.0 0.75)

, , , , , :

, 4.0 4.

, , . .

, .0, , , :

carpool_capacity = cars_driven * space_in_a_car

, , , 120.0, 120

:

average_passengers_per_car = passengers / float(cars_driven)  #added float

() , , , passengers = 93 , 3, 3.1, , , .

, , :) !

OLD:

, , :

3/4 # returns 0

, int/int == int, 4 "" 0 3 , int.

:

3/4. # returns 0.75

3/float(4)

python 2.x, python 3

, -, , ""!

:

cars = 100
space_in_a_car = 4 #not float
drivers = 30
passengers = 90
cars_not_driven = cars - drivers
cars_driven = drivers
carpool_capacity = cars_driven * space_in_a_car
average_passengers_per_car = passengers / float(cars_driven)  #added float

4 , , 2 , . a >

+6

, , .

+3

div div

integer div:

myInt = 4 / 5
myInt == 0

float div:

myFloat = 4.0 / 5.0
myFloat = 0.8

space_in_car , ( )

space_in_car . , (120 - , 120.0). , , , calami.

+2

, : space_in_a_car , .

,

See what happens when the value of the drivers changes :

form = ('space_in_a_car   : %s\n'
        'drivers          : %s\n'
        'passengers       : %s\n'
        'cars_driven      : %s\n'
        'average_passengers_per_car : %s\n\n')


for nbdrivers in (30, 30.0, 47, 47.0):

    cars = 100
    space_in_a_car = 4

    drivers, passengers = nbdrivers, 90

    cars_driven = drivers
    carpool_capacity = cars_driven * space_in_a_car
    average_passengers_per_car = passengers / cars_driven

    print form % (space_in_a_car,
                  drivers,
                  passengers,
                  cars_driven,
                  average_passengers_per_car)

result

space_in_a_car   : 4
drivers          : 30
passengers       : 90
cars_driven      : 30
average_passengers_per_car : 3


space_in_a_car   : 4
drivers          : 30.0
passengers       : 90
cars_driven      : 30.0
average_passengers_per_car : 3.0


space_in_a_car   : 4
drivers          : 47
passengers       : 90
cars_driven      : 47
average_passengers_per_car : 1


space_in_a_car   : 4
drivers          : 47.0
passengers       : 90
cars_driven      : 47.0
average_passengers_per_car : 1.91489361702

Then these are drivers that should be float, not space_in_a_car

+1
source
cars =  100
space_in_a_car = 4.0
drivers = 30
passengers = 90

# 90 % 4 = 2(man), 90 / 4.0 = 22.5(car)
print "Need %d cars." % int(round(90 / 4.0))

# He wants you to think more about it.
0
source

All Articles