Python 逻辑错误-需要从1开始计算,而不是从2开始计算

Python 逻辑错误-需要从1开始计算,而不是从2开始计算,python,Python,我试图让它读取第一个“计数器”,而不是将小时1计算为0.0。它应该在第一个小时计算速度 如果我不能很好地解释我的意思,请运行代码。您会注意到,在1处(因为它打印了一个长列表),第二个数字是0.0。假设我以每小时20英里的速度输入,以小时15英里的速度输入。当它打印出来的时候,20.0直到第2个才出现。我需要它在1号位置弹出。我知道这是最基本的问题,但我就是想不出来:/ 输出: 1 0.0 2 20.0 3 40.0 4 60.0 5 80.0 6 100.0

我试图让它读取第一个“计数器”,而不是将小时1计算为0.0。它应该在第一个小时计算速度

如果我不能很好地解释我的意思,请运行代码。您会注意到,在1处(因为它打印了一个长列表),第二个数字是0.0。假设我以每小时20英里的速度输入,以小时15英里的速度输入。当它打印出来的时候,20.0直到第2个才出现。我需要它在1号位置弹出。我知道这是最基本的问题,但我就是想不出来:/

输出:

1   0.0

2   20.0

3   40.0

4   60.0

5   80.0

6   100.0

7   120.0

8   140.0

9   160.0

10   180.0

11   200.0

12   220.0

13   240.0

14   260.0

15   280.0

Distance traveled by Smith was 300 miles.
我的代码:

 def main ():

    greet()

    name = input("Please enter your name: ")
    print()

    speed = float(input("Please enter, in miles per hour, your speed (Between 20-500 MPH): "))

    while speed < 20 or speed > 500:
        print("You must enter a speed between 20-500 MPH")
        print()
        speed = float(input("Please try again: "))
        print()

    print("That speed is accepted.")
    print()

    time = int(input("Please enter, in hours, your travel time (Between 2-15 hours): "))    

    while time < 2 or time > 15:
        print("You must enter a time between 2-15 hours.")
        print()
        time = int(input("Please try again: "))
        print()

    print("That time is accepted.")
    print()

    totaldistance = speed * time
    totaldistance = int(totaldistance)

    for count in range (time):
        distance = speed * count
        print_data(name, distance, count, time)

    print()
    print("Distance traveled by", name,"was", totaldistance,"miles.") 

def greet ():
    print()
    print("This program calculates distance traveled.")
    print()

def print_data (name, distance, count, time):
    print()
    print(format(count + 1), " ", format(distance))

main() 
defmain():
问候
name=输入(“请输入您的姓名:”)
打印()
速度=浮动(输入(“请以英里/小时为单位输入您的速度(20-500英里/小时):”)
当速度<20或速度>500时:
打印(“您必须输入20-500 MPH之间的速度”)
打印()
速度=浮动(输入(“请重试:”)
打印()
打印(“接受该速度”)
打印()
time=int(输入(“请以小时为单位输入您的旅行时间(2-15小时之间):”)
当时间<2或时间>15时:
打印(“您必须输入2-15小时之间的时间。”)
打印()
time=int(输入(“请重试:”)
打印()
打印(“接受该时间”)
打印()
总距离=速度*时间
totaldistance=int(totaldistance)
对于范围内的计数(时间):
距离=速度*计数
打印数据(名称、距离、计数、时间)
打印()
打印(“行驶的距离”,名称,“是”,总距离,“英里”)
def greet():
打印()
打印(“此程序计算行驶距离。”)
打印()
def打印数据(名称、距离、计数、时间):
打印()
打印(格式(计数+1),“”,格式(距离))
main()

打印数据
内部的
计数
中添加1,而不是在计算距离时产生偏移量

试试这个:

for count in range (1, time):
    distance = speed * count
    print_data(distance, count)
连同

def print_data (distance, count):
    print()
    print(count, distance)
如果这是打印输出,那么您将以count的第一个值0开始,因为这将开始该范围。由于count=0,那么速度*0=0,您的打印数据将始终具有

print(format(1), " ", format(0))

作为第一个输出

当我这样做时,对包含“for range”的1的反应消除了我的第一行(10.0),但没有解决问题。2仍然是(220.0)。为了更好地解释这一点,我认为有些东西是自己乘以零的,但我看不出我在哪里做到了that@user3399963然后,您只更改了循环,而没有更改函数
print\u data
。没有什么东西在悄悄地繁殖。这真是编程101。。。
print(format(1), " ", format(0))