如何获取字符串的第一个字符?

时间:2018-12-10 15:36:52

标签: python python-3.x python-2.7

我需要帮助以查看我的代码有什么问题;我得到不正确的输出。

我需要输出以打印名字的名字和姓氏(在名字的首字母前加上句号.),例如:"Anna Lockswell"应该打印为"A. Lockswell"

到目前为止,我有:

firstName = input("What is your first name? ") 
lastName = input("What is your last name? ")
str(print(firstname[0:-1], +lastname))

3 个答案:

答案 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)

以下几件事需要注意:

  1. 当您编写└≤ ␌⎺⎺┌ ⎻⎼⎺└⎻├$ ⎼␊⎽␊├ (..screen clears..) my cool prompt$ 时,它将返回 firstname[a:b]从字符a到字符b。
    所以当您的firstnamefirstname,然后输入"anna",您将得到firstname[1:3]。在这种情况下,
    减一等于最后一个字符的索引3。因此,{{ 1}}将返回'nn'。在您的情况下,应将其更改为firstname[0:-1]
  2. 最后一行中的
  3. "ann"完全没有必要。 firstname[0]用于将其他类型转换为字符串。例如str返回str
  4. 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