使用空格作为分隔符作为分隔的基础将字符串分成两部分

问题描述 投票:0回答:5

我目前正在努力将字符串分成两部分,同时使用空格作为拆分的基础。

我正在编写一个程序,在该程序中,人们应该输入其名字和姓氏作为字符串。然后程序应从名字中取出前三个字母,从名字中取出前三个字母。将它们放在一起,然后将它们附加到创建电子邮件的域名中。例如“姓氏”将变为[email protected]。我知道我只需使用两个输入即可轻松解决问题,但我希望它仅是一个输入。

def create_email_address():
name = input("Please input your first and last name: ")
domain = "@aperturescience.com"


email_address = str.lower(name[:3]) + str.lower(name[10:13]) + domain
print(str(email_address))

这是我到目前为止所拥有的,虽然我尝试使用列表拆分和索引进行了尝试,但仍无法正常工作。使用我自己的名称作为示例名称时,可以使索引工作。但是,如果我输入的字符中包含的字符数量不相同,则不会达到我想要的效果。

我想用空格分隔姓氏和名字,以指示拆分的位置。这样,名称有多长短都无所谓,我总是可以在每个名称的前三个字母后进行索引。

这可能吗?如果是的话,有什么提示吗?

谢谢!

python python-3.x string split
5个回答
1
投票
def create_email_address():

  name = input("Please input your first and last name: ")
  domain = "@aperturescience.com"

  names=name.split()
  email_address = str.lower(names[0][:3]) + str.lower(names[1][:3]) + domain
  print(str(email_address))

上面的代码已被稍加修改以使用split-假定它由空格分隔,它将从您的输入字符串创建一个列表。


1
投票

这样,名字有多长短,我总是可以在每个名字的前三个字母后进行索引。

在这种情况下,根本不需要分割name字符串。即使用户在一行中输入名字和姓氏,给定的代码也有效,但仅当整个name字符串的长度恰好是13的长度时>]。

这是应纠正的代码部分:

1]如果您不知道字符串的长度正好是13个字符,则不能使用name[10:13]从姓氏中获取最后3个字符。请改用name[-3:]。否则,该程序仅在输入长度为13的字符串时才起作用。

2)最好使用name[:3].lower()代替str.lower(name[:3]),尽管两种情况下代码都可以正常工作。

3)不应使用print(str(...)),因为即使您未明确指定,print也会将结果转换为字符串。

所以,这是完整的固定代码:

name = input("Please input your first and last name: ")
domain = "@aperturescience.com"


email_address = name[:3].lower() + name[-3:].lower() + domain
print(email_address)

0
投票

您可以像这样使用str.split()


0
投票

最好的方法之一是使用正则表达式。请参考以下示例。


0
投票

虽然我们都在提供解决方案,但我只会给您一个不好的答案。一个衬里:

© www.soinside.com 2019 - 2024. All rights reserved.