使用Python镜像文本字符串
我正在尝试编写代码以在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') 我不确定这是否正确,但它会出现在文本的倒数第二行
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”