我写了这个简单的函数来检查给定的字符串是否是回文
from math import ceil
p=0
def pal(s):
y=0
p=0
for x in range(int(ceil(len(s)/2))):
if s[x]==s[-x-1]:
y+=1
print y
if y==int(ceil(len(s)/2)):
print "Palindrome"
else:
print "Not Palindrome"
这很好用。但是,如果找到回文,我想将找到的变量更改为1。否则为0。通过其他一些我想检查的功能
if found==0:
do_something
else:
do_something
我变量未定义错误。我该如何解决这个问题?
答案 0 :(得分:0)
首先,让我们定义一个函数,如果它的参数是回文,则返回1,否则返回0:
def palindrome(s):
return int(s == s[::-1])
现在,我们可以将回文函数的结果分配给变量found
并对其执行某些操作,例如print:
found = palindrome('abba')
if found == 1:
print "Palindrome"
else:
print "Not Palindrome"
也可以使用全局变量从函数返回信息:
def palindrome(s):
global found
found = int(s == s[::-1])
palindrome('abccba')
if found == 1:
print "Palindrome"
else:
print "Not Palindrome"
但是,使用全局变量时,代码通常更难以调试和维护。因此,不鼓励大多数使用全局变量。举例来说,谷歌的python风格指南在标题"Avoid global variables."下更详细地讨论了这个问题。