鱼C论坛

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

[已解决]萌新求助!第十九讲题目

[复制链接]
发表于 2021-2-8 00:36:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 KAKA学python 于 2021-2-8 00:38 编辑

  编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
程序执行结果如图:
204101wn8nvw26bu2inr2u.png


  1. def judge():
  2.     temp = input('请输入一句话:',)
  3.     q = [temp]
  4.     length = len(temp)
  5.     for x in range (length):
  6.         for y in range (length):
  7.             if x+y == (length)-1:
  8.                 if q[x] == q[y]:
  9.                     print('是回文联')
  10.                 else:
  11.                     print('不是回文联')   
  12. judge()
复制代码


想知道我个程序运行的时候为什么会报错,该如何修改。
最佳答案
2021-2-8 08:32:15
鉴于python的一些特性
回文判断  使用切片是最优方案
temp = input('请输入一句话:')
if temp==temp[::-1]:
   print("回文")
else:
   print("非")   
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 06:58:26 From FishC Mobile | 显示全部楼层
逻辑混乱,不知道你这些代码放在一起想表达啥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-8 08:32:15 | 显示全部楼层    本楼为最佳答案   
鉴于python的一些特性
回文判断  使用切片是最优方案
temp = input('请输入一句话:')
if temp==temp[::-1]:
   print("回文")
else:
   print("非")   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-8 08:39:02 | 显示全部楼层
如果非要用函数的话,也不建议再函数体内使用输入输出语句
比如:
  1. def judge(sstr):
  2.     b=0
  3.     e = len(sstr)-1
  4.     flag=1
  5.     while b<=e:
  6.       if temp[b]!=temp[e]:
  7.          flag=0
  8.          break
  9.       b+=1
  10.       e-=1
  11.     return flag


  12. temp = input('请输入一句话:')
  13. if judge(temp):
  14.    print("回文")
  15. else:
  16.    print("非")   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-2-8 08:47:23 | 显示全部楼层
如果一定要按你的思路可以这样写:

  1. def judge():
  2.     temp = input('请输入一句话:')
  3.     #q = [temp]  #没有意义的语句 可以去掉
  4.     length = len(temp)
  5.     flag=1  #设置标志位 是一定的
  6.     for x in range (length//2+1):
  7.       if temp[x] !=temp[length-1-x]:
  8.          flag=0
  9.          break
  10.     if flag  :
  11.        print("回文")
  12.     else:
  13.        print("非")   

  14. judge()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-8 10:59:23 | 显示全部楼层
wp231957 发表于 2021-2-8 08:47
如果一定要按你的思路可以这样写:

好的好的理解了!!非常感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-23 11:49:14 | 显示全部楼层
wp231957 发表于 2021-2-8 08:47
如果一定要按你的思路可以这样写:

这也太帅了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 13:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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