【问题标题】:Difficulties with python exercisespython练习的难点
【发布时间】:2014-07-26 09:00:02
【问题描述】:

所以,我正在练习 Practical Programming 这本书中关于 Python 的练习,但我被困在第 2 章的第 9 个练习上,这与第 7 个练习有关:

7.:在美国,汽车的燃油效率以每加仑英里数来衡量。在公制系统中,通常以升/升为单位 100公里。编写一个名为convert_mileage 的函数 从每加仑英里数转换为每 100 公里升数。

我是这样写程序的:

def convert_mileage(miles_per_gallon):
    liters_per_gallon = 3.785411784
    kilometers_per_mile = 1.609344
    liters_per_100 = (100*liters_per_gallon)/(kilometers_per_mile*miles_per_gallon)
    print miles_per_gallon,'miles per gallon are',liters_per_100,'liters per 100 kilometers.'

convert_mileage(40)
convert_mileage(20)

现在,第 9 个练习如下:

9.: 定义一个名为liters_needed 的函数,它接受一个表示距离的值(以公里为单位)和一个表示气体的值 车辆的里程并返回所需的汽油量(以升为单位) 走那么远。您的定义应该调用该函数 convert_mileage 您在之前的练习中定义的。

我不知道如何将第一个功能链接到第二个功能...与升程相比,我很难理解整个里程数。如果有人可以帮助我,那就太好了!谢谢:)

【问题讨论】:

  • 本练习要求您重用 convert_mileage 函数,但要这样做,您首先必须修改它以便将 returns 值而不是打印出来。

标签: python python-2.7 code-reuse


【解决方案1】:

本练习要求您重用您的convert_mileage 函数。因此,您必须return 它,而不是仅仅打印计算值。把你的函数改成这样:

LITERS_PER_GALLON = 3.785411784
KILOMETERS_PER_MILES = 1.609344

def convert_mileage(miles_per_gallon):
    """convert miles-per-gallon to liters per 100 kilometers"""
    return (100*LITERS_PER_GALLON)/(KILOMETERS_PER_MILES*miles_per_gallon)

现在你可以调用这个函数并在另一个计算中重用它的结果:

def liters_needed(distance_km, miles_per_gallon):
    """determine liters needed for distance with given miles per gallon"""
    liters_per_100km = convert_mileage(miles_per_gallon)
    return liters_per_100km * distance_km / 100

现在您必须在调用函数时打印结果:

print "Liters needed for 200km with 15mpg:", liters_needed(200, 15)

【讨论】:

    【解决方案2】:
    #onverting l/100km into mpg
    def liters_100km_to_miles_gallon(liters): 
        kms_per_mile=1.609344
        liters_per_gallon=3.785411784
        kms_per_liter=100/liters
        kms_per_gallon=kms_per_liter*liters_per_gallon
        miles_per_gallon=kms_per_gallon/kms_per_mile
        return miles_per_gallon
    
    #onverting mpg into 1/100km
    def miles_gallon_to_liters_100km(miles):
        kms_per_mile=1.609344
        liters_per_gallon=3.785411784
        gallons_per_100miles=100/miles
        gallons_per_100kms=gallons_per_100miles/kms_per_mile
        liters_per_100kms=gallons_per_100kms*liters_per_gallon
        return liters_per_100kms
    
    print(liters_100km_to_miles_gallon(3.9))
    print(liters_100km_to_miles_gallon(7.5))
    print(liters_100km_to_miles_gallon(10.))
    print(miles_gallon_to_liters_100km(60.3))
    print(miles_gallon_to_liters_100km(31.4))
    print(miles_gallon_to_liters_100km(23.5))
    
    # output
    60.31143162393162
    31.36194444444444
    23.52145833333333
    3.9007393587617467
    7.490910297239916
    10.009131205673757
    

    【讨论】:

      猜你喜欢
      • 2015-05-01
      • 2013-04-06
      • 2011-12-04
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多