为什么这些数据被存储为字符串而不是浮点数?(Python)
我正在编写一个简单的Python程序,将用户输入的圈数存储在一个列表中,然后在该列表上执行一些函数 我的问题是,尽管在将圈速添加到列表之前明确声明圈速为“float”,但它们仍然被存储为字符串。这意味着我无法在列表上执行sum()之类的函数,因为我会收到错误消息,例如:TypeError:不支持+:“int”和“str”的操作数类型 代码如下:为什么这些数据被存储为字符串而不是浮点数?(Python),python,string,list,Python,String,List,我正在编写一个简单的Python程序,将用户输入的圈数存储在一个列表中,然后在该列表上执行一些函数 我的问题是,尽管在将圈速添加到列表之前明确声明圈速为“float”,但它们仍然被存储为字符串。这意味着我无法在列表上执行sum()之类的函数,因为我会收到错误消息,例如:TypeError:不支持+:“int”和“str”的操作数类型 代码如下: lapTimes = [] count = 0 while True: count += 1 lap = input("Enter
lapTimes = []
count = 0
while True:
count += 1
lap = input("Enter lap time " + str(count) + ": ")
if lap == 'x':
break
else:
float(lap)
print(type(lap))
lapTimes.append(lap)
print(type(lapTimes[-1]))
print("Fastest Lap time was: ", min(lapTimes))
print("Slowest lap time was: ", max(lapTimes))
在else子句中将“lap”声明为float之后,我写了一行来打印“lap”的数据类型,当运行时,我被告知这是一个字符串
我对print(type(lapTimes[-1])行做了同样的事情,只是为了确保,是的,我仍然被告知数据是一个字符串
底部应该有更多的代码行打印列表和平均圈时间之和,因为这个问题,这将不起作用。因为您没有分配
浮点(圈)
的值。写
lap=float(lap)
或者更好
lap = float(input("Enter lap time " + str(count) + ": "))
因为您没有指定
float(lap)
的值。写
lap=float(lap)
或者更好
lap = float(input("Enter lap time " + str(count) + ": "))
您应该编写
lap=float(lap)
。只写float(lap)
对原始lap变量没有任何影响。您应该写lap=float(lap)
。只需写入float(lap)
对原始lap变量没有任何影响
我的问题是,尽管明确宣布圈速为“浮动”
在将它们添加到列表之前,它们仍然被存储为
字符串
你没有做过这样的事。Python没有变量声明。您只需调用float
类型构造函数,并将字符串作为参数传递给它。它返回您期望的float
值,但您从未捕获它的输出,它会立即被丢弃。相反,要:
lapTimes.append(float(lap))
我的问题是,尽管明确宣布圈速为“浮动”
在将它们添加到列表之前,它们仍然被存储为
字符串
你没有做过这样的事。Python没有变量声明。您只需调用float
类型构造函数,并将字符串作为参数传递给它。它返回您期望的float
值,但您从未捕获它的输出,它会立即被丢弃。相反,要:
lapTimes.append(float(lap))
转换为浮动后,您错过了圈数分配。这就是为什么我们看到了错误
转换为浮动后,您错过了圈数分配。这就是看到错误的原因。请查看有关
float()的文档。
float()
的返回值是一个float
在else块中,您需要编写如下代码:
else:
lap = float(lap)
print(type(lap))
lapTimes.append(lap)
请查看有关
float()
float()
的返回值是一个float
在else块中,您需要编写如下代码:
else:
lap = float(lap)
print(type(lap))
lapTimes.append(lap)
请在while循环中缩进您的代码。请在while循环中缩进您的代码。@user2357112-ugh感谢您修复了所有这些错误。@user2357112-ugh感谢您修复了所有这些错误。引用文档总是很好的,但您也许应该在答案中加入相关部分。引用文档总是很好的,但是你也许应该在答案中加入相关的部分。