Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中从字符串中提取字符_Python_Python 3.x - Fatal编程技术网

在Python中从字符串中提取字符

在Python中从字符串中提取字符,python,python-3.x,Python,Python 3.x,如何提取用户输入的名称的前半部分和后半部分?我已经拆分了名称,这样我就有了一个列表,并且设置了变量firstName和lastName。如果第一个名字的字母数为奇数,则不包括中间字母,但如果第二个名字的字母数为奇数,则包括中间字母。我怎样才能做到这一点 示例名称: 玛丽·莫尔斯->马尔斯 洛根·彼得斯->洛尔斯 梅根·赫夫纳->梅格纳 必须将每个名字和姓氏命名为字符串变量,并执行以下操作: first = 'Marie' last = 'Morse' first_index = len(fir

如何提取用户输入的名称的前半部分和后半部分?我已经拆分了名称,这样我就有了一个列表,并且设置了变量
firstName
lastName
。如果第一个名字的字母数为奇数,则不包括中间字母,但如果第二个名字的字母数为奇数,则包括中间字母。我怎样才能做到这一点

示例名称:

  • 玛丽·莫尔斯->马尔斯
  • 洛根·彼得斯->洛尔斯
  • 梅根·赫夫纳->梅格纳

必须将每个名字和姓氏命名为字符串变量,并执行以下操作:

first = 'Marie'
last = 'Morse'
first_index = len(first)/2 +1
last_index = len(last)/2
result = first[:first_index] + last[last_index+1:]
print result

这样的东西可能适合你:

>>> def concatenate(s):
        s1,s2 = s.split()
        i,j = len(s1)//2, len(s2)//2
        return s1[:i]+s2[j:]

>>> s = 'Meghan Hufner'
>>> concatenate(s)
'Megner'
>>> s = 'Helen Paige'
>>> concatenate(s)
'Heige'
>>> s = 'Marie Morse'
>>> concatenate(s)
'Marse'
>>> s = 'Logan Peters'
>>> concatenate(s)
'Loers'

实际上,您使用的是
地板
天花板
分区。要获取数字的
上限
,可以使用
math.ceil()
函数。下面是Python3的一个小技巧,但是我使用了
int(math.ceil…
,因为在Python2中,
math.ceil()
返回一个浮点。我还使用了
len(last)/2。
因为在Python2中,整数除以整数总是得到整数。(楼层分区)。以下内容假设已经定义了
firstName
lastName

import math

first_index = len(firstName) // 2               # floor division
last_index = int(math.ceil(len(lastName) / 2.)) # ceiling division

print(first[:first_index] + last[-last_index:])

一些反映您的尝试的代码如何?…用示例说明您的输入和预期输出?示例输入和输出将非常有用。@zondo示例在中编辑!如果两个名字都有奇数个字符怎么办?…您已经包括了一个例子,但是两个名字的中间名都是相同的字符..'另一个更好的例子是Helen Paige->HeigeThis工作!非常感谢你!!我只是需要把它加入到函数中,但它成功了@凯瑟琳。。。你可以通过接受这个答案向S.O.社区展示这一点。