19讲第一题 ,return有问题
本帖最后由 猪猪虾 于 2020-3-19 14:14 编辑# 编写一个函数,判断传入的字符串参数是否为“回文联”
#(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
def judge(str2):
if len(str2)%2==0 : #判断是奇数还是偶数个字
for i in range(len(str2)//2) : #,取除数,对半分
if str2!=str2:
return('no')
break
else:
continue
return ('yes')
else:
for i in range((len(str2)-1)//2): #此时是奇数个字,取除数,对半分
if str2!=str2:
return('no')
break
else:
continue
return ('yes')
str1=input('enter your list:')
me=judge(str1)
print(me)
return 是个语句,不是函数啊。。。 qiuyouzhi 发表于 2020-3-19 14:18
return 是个语句,不是函数啊。。。
一个函数里面不可以多次使用return吗 猪猪虾 发表于 2020-3-19 14:20
一个函数里面不可以多次使用return吗
可以,但是只有一个return会返回值 猪猪虾 发表于 2020-3-19 14:20
一个函数里面不可以多次使用return吗
然而真正执行的只有一个 本帖最后由 jackz007 于 2020-3-19 15:16 编辑
判断回文联写如此长代码有些夸张,即便是按楼主的思路,也可以大幅度精简!
def judge(str2):
for i in range(len(str2) // 2) :
if str2 != str2[-1 - i] : return 'no'
return 'yes'
print(judge(input('enter your string : ')))
字符串长度奇偶数判断及分开处理纯属多余!return 语句的后续语句都是废话,for 语句块中作为最后一条语句存在的 continue 也属废话,统统可以直接割掉。
如果是我写:
s = input('enter your string : ')
if s == s[:: -1] : print('yes')
else : print('no') 猪猪虾 发表于 2020-3-19 14:20
一个函数里面不可以多次使用return吗
蟹蟹
页:
[1]