首页 > 解决方案 > 如何让我的程序识别 item 是字符串还是整数?

问题描述

我正在做一些 python 挑战来取乐,我发现了一个挑战,它告诉我制作一个程序,该程序接受输入并打印消息中的数字。但是当我运行程序时,它只打印 [] 与消息中的字母相同的数字,并且它不识别字母是否实际上是数字,它只是将每个字母视为字符串并打印为空正方形。

这是代码:

WORDS = []
NUMBERS = []
Sentence = input()
for item in Sentence:
    if item == str():
        WORDS.append(item)
    if item == int():
        NUMBERS.append(item)

    print(('[%s]' % ', '.join(map(str, NUMBERS)))) 

有什么想法吗?

标签: python-3.x

解决方案


这可能是你的意思。您必须先拆分句子。所有生成的项目都将是字符串类型,因此isinstance无济于事。

str.isdigit()检查字符串是否仅包含数字。如果是数字,您可以使用 将其转换为整数int

WORDS = []
NUMBERS = []
Sentence = input()
for item in Sentence.split(): 
    if item.isdigit():
        NUMBERS.append(int(item))
    else:
        WORDS.append(item)

    print(('[%s]' % ', '.join(map(str, NUMBERS)))) 

如果您不先进行拆分,它也会起作用,但在 WORDS 列表中只给您单个字符,在 NUMBERS 列表中给您单个数字。


推荐阅读