鱼C论坛

 找回密码
 立即注册
查看: 1954|回复: 6

[已解决]19讲第一题 ,return有问题

[复制链接]
发表于 2020-3-19 14:12:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 猪猪虾 于 2020-3-19 14:14 编辑

# 编写一个函数,判断传入的字符串参数是否为“回文联”
#(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
def judge(str2):
    if len(str2)%2==0 :                    #判断是奇数还是偶数个字
       for i in range(len(str2)//2) :    #,取除数,对半分
           if str2[i]!=str2[i+(len(str2)//2)]:
               return('no')
               break   
           else:
               continue
        return ('yes')
   
    else:
        for i in range((len(str2)-1)//2):   #此时是奇数个字,取除数,对半分
           if str2[i]!=str2[i+(len(str2))-1)//2)]:
               return('no')
               break
            else:
               continue
        return ('yes')


str1=input('enter your list:')
me=judge(str1)
print(me)
最佳答案
2020-3-19 15:08:41
本帖最后由 jackz007 于 2020-3-19 15:16 编辑

        判断回文联写如此长代码有些夸张,即便是按楼主的思路,也可以大幅度精简!
def judge(str2):
    for i in range(len(str2) // 2) :
        if str2[i] != 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')       
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 14:18:51 | 显示全部楼层
return 是个语句,不是函数啊。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-19 14:20:15 | 显示全部楼层
qiuyouzhi 发表于 2020-3-19 14:18
return 是个语句,不是函数啊。。。

一个函数里面不可以多次使用return吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 14:20:54 | 显示全部楼层
猪猪虾 发表于 2020-3-19 14:20
一个函数里面不可以多次使用return吗

可以,但是只有一个return会返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 15:01:16 | 显示全部楼层
猪猪虾 发表于 2020-3-19 14:20
一个函数里面不可以多次使用return吗

然而真正执行的只有一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 15:08:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-3-19 15:16 编辑

        判断回文联写如此长代码有些夸张,即便是按楼主的思路,也可以大幅度精简!
def judge(str2):
    for i in range(len(str2) // 2) :
        if str2[i] != 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')       
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-19 17:11:37 | 显示全部楼层
猪猪虾 发表于 2020-3-19 14:20
一个函数里面不可以多次使用return吗

蟹蟹
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 01:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表