使用Python镜像文本字符串

使用Python镜像文本字符串,python,string,mirror,Python,String,Mirror,我正在尝试编写代码以在python中镜像字符串。我认为这类似于镜像图像或声音,但我无法通过循环。输入和输出都应该是字符串 def mirror(text): mirrorPoint=(len(text)/2) for i in range(0,mirrorPoint): text=text[mirrorPoint] return text+''.join(string(text)) print mirror('text') 我不确定这是否正确,但它会出现在文本的倒数第二行

我正在尝试编写代码以在python中镜像字符串。我认为这类似于镜像图像或声音,但我无法通过循环。输入和输出都应该是字符串

def mirror(text):
  mirrorPoint=(len(text)/2)
  for i in range(0,mirrorPoint):
    text=text[mirrorPoint]
  return text+''.join(string(text))
print mirror('text')
我不确定这是否正确,但它会出现在文本的倒数第二行


如果输入为“abcd”,则输出应为“abba”。

如果我理解正确:

def mirror(text):
    mirror_point = int(len(text)/2)
    res = text[:mirror_point] # Get Slice of Text
    return res + res[::-1] # Add Slice Plus Reverse of the Slice
print mirror( 'abcd')
在您的代码中:

mirrorPoint=(len(text)/2)
将是一个浮点,因此当传递到range时,它将不起作用,因为
range
需要一个整数

'.join(string(text))
,如果您要强制转换为
str
,但text已经是字符串,因此无需强制转换,则可以使用
str(text)

text=text[mirrorPoint]
不断更改
text
的值,因此您将得到一个
索引错误
,如果您想在循环外存储字符串变量,如
res=”“
,则可以使用
res+=text[i]
其中
text[i]
是您要添加的每个字符

使用您自己的代码:

def mirror(text):
    res = ""
    mirrorPoint = int(len(text)/2)
    for i in range(mirrorPoint):
        res += text[i]
    return text[:mirrorPoint] + res[::-1]
要处理长度不均匀的字符串,我们需要将
1
添加到
mirror\u point
中,如果字符串是奇数长度:

def mirror(text):
    mirror_point = int(len(text) / 2)
    if mirror_point % 2 == 0:
        res = text[:mirror_point]
    else:
        res = text[:mirror_point+1]
    return res + res[::-1]

如果我理解正确:

def mirror(text):
    mirror_point = int(len(text)/2)
    res = text[:mirror_point] # Get Slice of Text
    return res + res[::-1] # Add Slice Plus Reverse of the Slice
print mirror( 'abcd')
在您的代码中:

mirrorPoint=(len(text)/2)
将是一个浮点,因此当传递到range时,它将不起作用,因为
range
需要一个整数

'.join(string(text))
,如果您要强制转换为
str
,但text已经是字符串,因此无需强制转换,则可以使用
str(text)

text=text[mirrorPoint]
不断更改
text
的值,因此您将得到一个
索引错误
,如果您想在循环外存储字符串变量,如
res=”“
,则可以使用
res+=text[i]
其中
text[i]
是您要添加的每个字符

使用您自己的代码:

def mirror(text):
    res = ""
    mirrorPoint = int(len(text)/2)
    for i in range(mirrorPoint):
        res += text[i]
    return text[:mirrorPoint] + res[::-1]
要处理长度不均匀的字符串,我们需要将
1
添加到
mirror\u point
中,如果字符串是奇数长度:

def mirror(text):
    mirror_point = int(len(text) / 2)
    if mirror_point % 2 == 0:
        res = text[:mirror_point]
    else:
        res = text[:mirror_point+1]
    return res + res[::-1]

以下命令反转任何数组

any_string[::-1]
使用这个函数,下面将得到字符串的中间点,得到字符串的前半部分,然后将其与字符串的同半部分连接起来

my_string       = "hello"
middle_point    = int(len(my_string/2)) 
mirror_string   = my_string[0:middle_point]+my_string[0:middle_point][::-1]

以下命令反转任何数组

any_string[::-1]
使用这个函数,下面将得到字符串的中间点,得到字符串的前半部分,然后将其与字符串的同半部分连接起来

my_string       = "hello"
middle_point    = int(len(my_string/2)) 
mirror_string   = my_string[0:middle_point]+my_string[0:middle_point][::-1]


什么是
string(text))
?提示:如果在循环中
return
,那么它将不会继续循环。string我认为应该反转,但是我无法使它在pythontypo中工作,return应该在外部为什么不直接使用
reversed
函数?什么是
string(text))
?提示:如果在循环中
返回
,则它将不会继续循环。我认为应该反转字符串,但我无法使它在pythontypo中工作,返回应该在外部,为什么不直接使用
反向
功能呢?您的初始切片应该上升到
镜像点+1
,或者您将缩短奇数长度字符串的中间字母-“tweet”应该返回“tweewt”。谢谢,这很有效。但是,为了将来的参考,它不需要循环?@ddbg,我只是在编辑,您自己的代码有一些问题,我将解释。我认为will是正确的,但是使用
mirrorPoint+1
在输出中添加一个字母,使其比应该的更长be@ddbg可以这样做:
res=text[:mirrorPoint+len(text)%2]
然后
返回文本[:mirrorPoint]+res[::-1]
你的初始片段应该上升到
mirrorPoint+1
或者你会删掉奇数长度字符串的中间字母-“tweet”应该返回“tweewt”。谢谢,这很有效。但是,为了将来的参考,它不需要循环?@ddbg,我只是在编辑,您自己的代码有一些问题,我将解释。我认为will是正确的,但是使用
mirrorPoint+1
在输出中添加一个字母,使其比应该的更长be@ddbg可以这样做:
res=text[:mirrorPoint+len(text)%2]
然后
返回文本[:mirrorPoint]+res[::-1]
从问题中,他们的意思似乎是镜像关于它的中间字符的字符串,从
镜像(“abcd”)
给出
“abba”
从问题中,他们的意思似乎是镜像关于它的中间字符的字符串,从
镜像(“abba”)
给出
“abba”