python(idle) - 表单给定名称,如何输入用户名

时间:2017-10-05 03:41:50

标签: python

如何形成for循环?

例如,我希望在名称中有两个单词或三个单词时运行for循环。

我需要为不同数量的名称进行for循环。 例如,对于两个单词,saint christopher只能从s获取saint并获取christopher以获得schristopher的结果。

另一个示例kyrie andrew irving,我想从k获得kyrie,从aandrew获取irving以获取结果kairving

假设:

saint christopher
kyrie andrew irving

结果:

schristopher
kairving

我做了:

s = ("saint christopher", "kyrie andrew irving")
for s >= 2:
    first = s.split()
    separate = list(first[0])
    secondword = first[1]
    firstletter = separate[0]
    print(firstletter+secondword)

我应该在哪里修理?

3 个答案:

答案 0 :(得分:1)

def make_username(name):
    return ''.join(x[0].lower() if i != len(name.split()) - 1 else x.lower() for i, x in enumerate(name.split()))

>>> make_username('saint christopher')
'schristopher'
>>> make_username('kyrie andrew irving')
'kairving'
>>> make_username('holly mother of god')
'hmogod'

...这将为包含任意数量的子名称的名称创建用户名。它需要每个子名的第一个字母,除了最后一个以整个子名称为单位。

答案 1 :(得分:0)

您要完成的任务非常简单,即使您的for循环语法已关闭,您在问题的代码中也会非常接近它。这就是你需要的:

names = ['kyrie andrew irving', 'saint christopher']

for item in names:
    name_sep = item.split(' ')
    username = ""
    for i in name_sep[0:-1]:
        username += i[0]
    username += name_sep[-1]
    print(username)

让我一步一步地指导你:

  1. 从名单开始
  2. 迭代列表
  3. 将名称拆分为一个列表,使用空格来确定创建新元素的位置
  4. 将空字符串指定为我们的用户名
  5. 迭代除最后一个之外的所有分隔名称
  6. 将第一个字母添加到用户名
  7. 将分隔名称中的最后一项添加到用户名
  8. 打印用户名
  9. 我建议你阅读this。这是官方python文档本身的教程。它应该让您基本掌握语法以及如何使用python。

答案 2 :(得分:0)

谢谢你Steampunkery,你的评论帮了我很多!

我已将编码编辑为

for line in infile:
    first = line.lower().split()
    username=""
    for i in first[0:-1]:
        username+=i[0]
    newusername+= first[-1]
    lastname = newusername[:9]
    print(lastname)