0

我正在尝试创建一个列表,我需要在一个列表中输入数字作为字符串,并且我正在尝试使用 while 循环来完成。

while input_list[-1] != "":
    input_list.append(raw_input())

但是,当输入数字时,它们将返回为 u'X',X 是输入的数字。我无法对这些数字进行数学计算。

我通常会使用 str() 或 int() 但在这种情况下我不能一概而论。

有没有比使用 if 语句更简单的方法来删除 u' ' 前缀?

4

1 回答 1

2

“u”前缀试图指示值的类型。你这里有字符串,而不是数字。如果要进行数学运算,则需要将字符串转换为数字。如果他们碰巧输入了一个不能转换为数字的字符串,你应该告诉用户发生了什么

user_typed = raw_input()
try:
    user_number = float(user_typed)
except ValueError:
    print "Couldn't convert this to a number, please try again: %r" % user_typed

另见:LBYLEAFP

于 2013-11-05T18:44:59.377 回答