Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这些数据被存储为字符串而不是浮点数?(Python)_Python_String_List - Fatal编程技术网

为什么这些数据被存储为字符串而不是浮点数?(Python)

为什么这些数据被存储为字符串而不是浮点数?(Python),python,string,list,Python,String,List,我正在编写一个简单的Python程序,将用户输入的圈数存储在一个列表中,然后在该列表上执行一些函数 我的问题是,尽管在将圈速添加到列表之前明确声明圈速为“float”,但它们仍然被存储为字符串。这意味着我无法在列表上执行sum()之类的函数,因为我会收到错误消息,例如:TypeError:不支持+:“int”和“str”的操作数类型 代码如下: lapTimes = [] count = 0 while True: count += 1 lap = input("Enter

我正在编写一个简单的Python程序,将用户输入的圈数存储在一个列表中,然后在该列表上执行一些函数

我的问题是,尽管在将圈速添加到列表之前明确声明圈速为“float”,但它们仍然被存储为字符串。这意味着我无法在列表上执行sum()之类的函数,因为我会收到错误消息,例如:TypeError:不支持+:“int”和“str”的操作数类型

代码如下:

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感谢您修复了所有这些错误。引用文档总是很好的,但您也许应该在答案中加入相关部分。引用文档总是很好的,但是你也许应该在答案中加入相关的部分。