首页 > 解决方案 > 为什么 sep='.' 不在此代码中工作?

问题描述

我试图将用户输入的全名输入其首字母,然后将首字母打印到屏幕上。我们必须使用循环和列表。

我在网上搜索过,找不到特定于我正在尝试做的事情的答案。

fullName = input('Please enter your full name: ')

name = []

for i in fullName:
    if i.isupper():
        name.append(i)

for i in name:
    print(i, sep='.', end='')

我希望打印输出为A.B.C. 我目前正在获取ABC.

我做错了什么或没有看到?

标签: python

解决方案


让我们将代码简化为一个最小的示例。输入和预处理步骤无关紧要:

name = list('ABC')
for i in name:
    print(i, sep='.', end='')

这相当于调用

print ('A', sep='.', end='')
print ('B', sep='.', end='')
print ('C', sep='.', end='')

希望您可以看到每个打印语句都在打印一件事,这意味着它sep永远不会发挥作用。您可能希望将列表(或字符串)的元素拆分为单独的参数,以便print.

最简单的方法是使用星形扩展:

print(*name, sep='.')

或者,您可以自己进行格式化:

print('.'.join(name))

推荐阅读