【问题标题】:For loop to run until hitting variable value循环运行直到达到变量值
【发布时间】:2015-04-25 20:38:47
【问题描述】:

我正在尝试在自己思考与我相关的项目和利用 teamtreehouse 之间学习 Python,尽管它进展缓慢。

我正在尝试查找有关如何使 python 3.3.2 for 循环从值 0 运行直到用户输入可变小时的值的教程。到目前为止,我只是在运行此代码时遇到错误。我没有成功找到涵盖这种方法的教程。

下面的教程似乎涵盖了从零开始,然后通过打印列表/字典的值运行 http://www.python-course.eu/python3_for_loop.php

本教程也是如此 http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_3/For_Loops

这让我开始思考是否不可能,而我需要研究/学习其他循环?

#//////MAIN PROGRAM START//////

#//////VARIABLE DECLARATION//////
speedMPH=0
timeTraveling=0
hours=1
distanceTraveled=0
#//////VARIABLE DECLARATION//////

#//////USER INPUT FUNCTION//////
def userInput():
    speedMPH=int(input("Please provide the speed the vehicle was going in MPH."))
    hours=int(input("Please provide the number of hours it has been traveling in hours."))
    #////////////////testing variable values correct////////////////
#    print(speedMPH)
#    print(hours)
#    print(distanceTraveled)
    #////////////////testing variable values correct////////////////
#//////USER INPUT FUNCTION//////
    print('Distance Traveled\t\t\t' + 'Hours')
    for i in range(1, hours + 1):
        distanceTraveled=0
        distanceTraveled = speedMPH * i
        print(distanceTraveled, '\t\t\t\t\t', i)
#//////CALLING FUNCTION//////
userInput()
#//////CALLING FUNCTION//////

【问题讨论】:

  • 抱歉 Padraic 我不知道我是怎么忘记了最重要的部分。我对其进行了编辑以包含它。
  • 速度和时间应该从哪里来?
  • 感谢 Padraic 纠正我的变量/语法错误。我现在已经更新了。不过,我在运行 for 循环时仍然遇到问题。

标签: python loops for-loop python-3.3


【解决方案1】:

不完全确定您正在尝试做什么,但使用 range 并将您的代码保留为单个函数会更接近:

def user_input():
    # keep track of running total 
    total_distance = 0
    # cast hours and mph to int 
    speed_mph = int(input("Please provide the speed the vehicle was going in MPH."))
    hours = int(input("Please provide the number of hours it has been traveling in hours."))
    # loop from 1 to hours + 1, ranges are not inclusive
    for i in range(1, hours + 1):
        distance_traveled = speed_mph * i
        total_distance += distance_traveled 
        print("Travelled {} miles after {} hour/s".format( distance_traveled,i))

    print("Total distance travelled {} miles after {} hour/s".format(total_distance,hours))
user_input()

【讨论】:

  • 所以我必须输入 range(1,hours+1) 在我的阅读/教程中的某个地方,我的印象是循环自动递增它们由 +1 给出的任何计数器变量?
  • 范围从 0 开始,如果你不提供开始,0 * 任何东西都是 0
  • 好的,这对我来说是一个重要的知识。谢谢帕德莱克。 for 循环是否会在每次迭代时自动将计数器增加 1,或者是否有必要将小时数 + 1 包括在内?
  • hours + 1 只是意味着我们循环到包括小时。我们希望在循环中包含小时数,除非您向 range 提供第三个参数,这是默认值为 1 的步长
  • 哇哦,这打破了我的逻辑。我需要去练习和不同的 for 循环使用。对于 (variable) >output,我有完全不同的理解
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多