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