在Python中使用空格字符作为分隔符将句子拆分为单词

在Python中使用空格字符作为分隔符将句子拆分为单词,python,python-3.x,Python,Python 3.x,我的数据结构类中有一个赋值,我正在使用Python来解决它。我真的被巨蟒困住了,生锈了,所以请容忍我 问题 我的代码到目前为止。。。 这给了我这个输出: >>> Input a sentence: I like to eat 7 potatoes at a time I like to eat 7 potatoes at a time >>> 所以我的问题是如何提取数值,然后将其加倍。我甚至不知道从哪里开始 任何反馈都是非常感谢的。谢谢大家! 在这里:

我的数据结构类中有一个赋值,我正在使用Python来解决它。我真的被巨蟒困住了,生锈了,所以请容忍我

问题 我的代码到目前为止。。。 这给了我这个输出:

>>> 
Input a sentence: I like to eat 7 potatoes at a time
I
like
to
eat
7
potatoes
at
a
time
>>> 
所以我的问题是如何提取数值,然后将其加倍。我甚至不知道从哪里开始

任何反馈都是非常感谢的。谢谢大家!

在这里:

print("\n".join(wordList))
您可以使用列表理解来确定单词是否为数字。可能是这样的:

print('\n'.join(str(int(i)*2) if i.isdigit() else i for i in wordList)
它通过使用查找似乎是整数的字符串,将其转换为整数,这样我们可以将其乘以2,然后将其转换回字符串


对于浮动,则此处的
try/except
结构很有用:

try:
    print('\n'.join(str(int(i)*2) if i.isdigit() else i for i in wordList)
except ValueError:
    print('\n'.join(str(float(i)*2) if i.isdigit() else i for i in wordList)

只需尝试将该值转换为浮点值。如果失败,则假定它不是浮点。:)


上面仍然会打印
7.0
,而不是严格来说不符合规范的7。您可以用一个简单的条件来解决这个问题,并且
是要浮点的整型方法。

您可以在Python中检查字符串是否是数字:正如他的示例所示,值可以是浮点<代码>“3.5”。isdigit()==False
。可能不适合一行,但是
try:num=float(s)\\除了:…
会更可靠。这也很棒!非常感谢。
print('\n'.join(str(int(i)*2) if i.isdigit() else i for i in wordList)
try:
    print('\n'.join(str(int(i)*2) if i.isdigit() else i for i in wordList)
except ValueError:
    print('\n'.join(str(float(i)*2) if i.isdigit() else i for i in wordList)
def main():
  for word in input("Input a sentence: ").split():
      try:
          print(2 * float(word))
      except ValueError:
          print(word)