在Python中使用空格字符作为分隔符将句子拆分为单词
我的数据结构类中有一个赋值,我正在使用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 >>> 所以我的问题是如何提取数值,然后将其加倍。我甚至不知道从哪里开始 任何反馈都是非常感谢的。谢谢大家! 在这里:
>>>
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)