检查回文时处理尾随换行符
Dealing with trailing newline when checking for palindromes
我试图从以前编写的代码中导入回文函数。回文码一开始是可以正常使用的,但是我导入后,它没有显示正确答案。
import re
def check(string):
if (string==string[::-1]):
print ("{} is palindorme".format(string))
else:
print ("{} is not palindorme".format(string))
def palindrome(text):
c=re.sub('["?",",",".","/","@","#","%","&","*","!"," "]',"",text)
check(c)
这是我正在使用的功能:
from pal_func import palindrome
f=open("C:\Users\hp\Desktop\test file.txt",'r')
c=f.readline().lower()
print(c)
palindrome(c)
输出应该是:
was it a cat i saw?
wasitacatisaw is palindrome
但是显示:
was it a cat i saw?
wasitacatisaw
is not palindorme
简述
删除尾随的换行符:
c=f.readline().lower().strip()
详情
您的问题似乎不是来自代码,而是来自您阅读文件的方式。
函数 readline
从文件中读取一行,但 不会删除尾随的换行符 。提示是答案
wasitacatisaw
is not palindrom
有一个不是你自己写的换行符
所以函数检查得到字符串wasitacatisaw<newline>
,这不是回文。
最后一句话 : 下次请同时提供您正在处理的文件(当然不要提供任何个人信息和密码),以便 SO 用户可以复制错误:)
我试图从以前编写的代码中导入回文函数。回文码一开始是可以正常使用的,但是我导入后,它没有显示正确答案。
import re
def check(string):
if (string==string[::-1]):
print ("{} is palindorme".format(string))
else:
print ("{} is not palindorme".format(string))
def palindrome(text):
c=re.sub('["?",",",".","/","@","#","%","&","*","!"," "]',"",text)
check(c)
这是我正在使用的功能:
from pal_func import palindrome
f=open("C:\Users\hp\Desktop\test file.txt",'r')
c=f.readline().lower()
print(c)
palindrome(c)
输出应该是:
was it a cat i saw?
wasitacatisaw is palindrome
但是显示:
was it a cat i saw?
wasitacatisaw
is not palindorme
简述
删除尾随的换行符:
c=f.readline().lower().strip()
详情
您的问题似乎不是来自代码,而是来自您阅读文件的方式。
函数 readline
从文件中读取一行,但 不会删除尾随的换行符 。提示是答案
wasitacatisaw
is not palindrom
有一个不是你自己写的换行符
所以函数检查得到字符串wasitacatisaw<newline>
,这不是回文。
最后一句话 : 下次请同时提供您正在处理的文件(当然不要提供任何个人信息和密码),以便 SO 用户可以复制错误:)