python-3.x - 如何让我的程序识别 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))))
有什么想法吗?
解决方案
这可能是你的意思。您必须先拆分句子。所有生成的项目都将是字符串类型,因此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 列表中给您单个数字。
推荐阅读
- calculated-columns - Spotfire - 基于 Spotfire 中另一列中的值计算的列
- python-3.x - ModuleNotFoundError 没有名为 onetimepad 的模块?
- c# - 当控件已经获得焦点时触发屏幕阅读器
- angular - NGXS 和 Angular:取消以前对 http 调用的请求
- python - 如何获取 sklearn.impute.IterativeImputer 中使用的回归器的属性?
- powershell - Powershell,获取共享文件的访问权限,格式化输出?
- loops - 在观察 SAS 中将单个观察从数据集发送到用户电子邮件
- java - 相对路径 Java
- python - 如何在循环中从列表中弹出随机项目
- android - JobScheduler 如何知道作业是否已失败以使其重试?