我需要帮助以查看我的代码有什么问题;我得到不正确的输出。
我需要输出以打印名字的名字和姓氏(在名字的首字母前加上句号.
),例如:"Anna Lockswell"
应该打印为"A. Lockswell"
。
到目前为止,我有:
firstName = input("What is your first name? ")
lastName = input("What is your last name? ")
str(print(firstname[0:-1], +lastname))
答案 0 :(得分:2)
欢迎进行编程!您发布的内容存在一些问题。首先,让我们尝试获取firstname
的第一个字母:
firstname = input("What is your first name? ")
# firstname is a string, where each letter acts like an element in an array
# to get the first letter, do this:
first_initial = firstname[0]
按照Micha的建议,我使用firstname[0]
的原因是因为我 only 只想要第一个字母。切片firstname[0:-1]
将为您提供除最后一个字母以外的所有内容,这不是您想要的。
现在,您已经在lastName
旁边有print
。
您有str(print("thing to print"))
。这里的问题是print
是一个不返回任何内容的函数。通过将其包装在str
中,您将看到输出None
。要访问print
,只需致电print
:
print(first_initial + '.' + ' ' + lastName)
您将需要在打印输出中添加一个空格,以使名字和姓氏分开。有很多更高级的Python方式可以打印,但是我觉得这是一个足够的起点
答案 1 :(得分:1)
以下几件事需要注意:
└≤ ␌⎺⎺┌ ⎻⎼⎺└⎻├$ ⎼␊⎽␊├
(..screen clears..)
my cool prompt$
时,它将返回
firstname[a:b]
从字符a到字符b。firstname
是
firstname
,然后输入"anna"
,您将得到firstname[1:3]
。在这种情况下,'nn'
。在您的情况下,应将其更改为firstname[0:-1]
。"ann"
完全没有必要。 firstname[0]
用于将其他类型转换为字符串。例如str
返回str
。str(1)
将在假设'1'
和print(a,b)
的情况下打印2 3
,因此您需要使用a = 2
来获取b = 3
。 (有许多其他方法可以执行此操作。)答案 2 :(得分:0)
尝试以下任何一种方法
:>>> print('{}. {}'.format(firstname[0], lastname))
A. Lockswell
>>> print(firstname[0] + '. ' + lastname)
A. Lockswell
>>> print(f'{firstname[0]}. {lastname}')
A. Lockswell