鱼C论坛

 找回密码
 立即注册
查看: 1677|回复: 14

[已解决]sos

[复制链接]
发表于 2019-10-26 09:53:11 | 显示全部楼层 |阅读模式

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

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

x
str1=input("请输入目标值:")
str2=','.join(str1)              #,隔开
str3=str2.split(sep=",")            #将str3转换为列表
str4=str3.reverse()                     #将列表3顺序反一下
if (str3)==(str4):
    print("这是一幅回文联")
else:
    print("这不是一幅回文联")



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


我这哪里错了啊,不管写什么答案都是("这不是一幅回文联"),为啥啊
最佳答案
2019-10-26 12:23:43
1394116864 发表于 2019-10-26 12:19
哇哇哇,又粗心了,不加[:]的话str2会随str1改变

这样可以了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-26 10:11:18 | 显示全部楼层
str3.reverse()   没有返回值,肯定不等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 10:24:22 | 显示全部楼层
list.reverse() 没有返回值,应该这样改:

  1. str1 = input("请输入目标值:")
  2. str2 = list(str1)
  3. str2.reverse()
  4. str2 = "".join(str2)
  5. if str1 == str2:
  6.     print("这是一幅回文联")
  7. else:
  8.     print("这不是一幅回文联")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 11:50:59 | 显示全部楼层
zltzlt 发表于 2019-10-26 10:24
list.reverse() 没有返回值,应该这样改:

str2.reverse()
str2 = "".join(str2)

3.4行这里,为啥要
str2 = "".join(str2)
啊,目的是什么啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 11:56:28 | 显示全部楼层
1394116864 发表于 2019-10-26 11:50
str2.reverse()
str2 = "".join(str2)

str2 是列表,要让它变成字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 11:58:31 | 显示全部楼层
塔利班 发表于 2019-10-26 10:11
str3.reverse()   没有返回值,肯定不等

什么是返回值啊,好迷茫啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 12:01:53 | 显示全部楼层
1394116864 发表于 2019-10-26 11:58
什么是返回值啊,好迷茫啊

str3.reverse() 只是一个操作,并没有返回的东西,所以 str4=str3.reverse() 是无效的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 12:09:17 | 显示全部楼层
zltzlt 发表于 2019-10-26 12:01
str3.reverse() 只是一个操作,并没有返回的东西,所以 str4=str3.reverse() 是无效的

那把if后面的str4改为str3可以吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 12:10:38 | 显示全部楼层
1394116864 发表于 2019-10-26 12:09
那把if后面的str4改为str3可以吗

不可以,你想 str3 == str3?这是绝对相等的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 12:15:17 | 显示全部楼层
zltzlt 发表于 2019-10-26 12:10
不可以,你想 str3 == str3?这是绝对相等的

str1=list(input("请输入目标值:"))
str2=str1              
str2.reverse()                  
if (str1)==(str2):
    print("这是一幅回文联")
else:
    print("这不是一幅回文联")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 12:16:56 | 显示全部楼层
zltzlt 发表于 2019-10-26 12:10
不可以,你想 str3 == str3?这是绝对相等的

这样应该可以了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 12:16:58 | 显示全部楼层
1394116864 发表于 2019-10-26 12:15
str1=list(input("请输入目标值:"))
str2=str1              
str2.reverse()                  

需要这样:
str1=list(input("请输入目标值:"))
str2=str1[:]            
str2.reverse()                  
if (str1)==(str2):
    print("这是一幅回文联")
else:
    print("这不是一幅回文联")

str2 = str1[:] 代表拷贝 str1 的副本,如果这样,修改 str2,str1 不会受到影响。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 12:19:04 | 显示全部楼层
zltzlt 发表于 2019-10-26 12:16
需要这样:
str1=list(input("请输入目标值:"))
str2=str1[:]            

哇哇哇,又粗心了,不加[:]的话str2会随str1改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 12:23:43 | 显示全部楼层    本楼为最佳答案   
1394116864 发表于 2019-10-26 12:19
哇哇哇,又粗心了,不加[:]的话str2会随str1改变

这样可以了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 12:34:48 | 显示全部楼层
1394116864 发表于 2019-10-26 11:58
什么是返回值啊,好迷茫啊

你看到函数没,可以先看看什么是,而且这些可以百度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 09:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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