python判断输入的是否为回连文
小甲鱼19讲里面的课后作业,我的代码报错了,但是不知道错在哪里,鱼油们帮忙看一下把def huiwen(list1):
result = 1
for i in range(0,len(list1)/2):
if list1 != list1:
result = 0
return result
str1 = input("请输入一个文本,判断它是否为回连文")
list2 = list(str1)
if huiwen(list2):
print("是回连文")
else:
print("不是回连文")
报错的内容如下
{:10_243:}
哈哈 先给你看看 其实这样就好,然后我去看你代码
def huiwen(list1):
if list1 == list1[::-1]:
print("是回连文")
else:
print("不是回连文") 这个是标准答案
##方法一:
def huiwen(string):
length = len(string)
last = length - 1
length //= 2
flag = 1
for each in range(length):
if string != string:
flag = 0
last -= 1
if flag == 1:
return 1
else:
return 0
string = input('请输入一句话:')
if huiwen(string) == 1:
print('是回文联')
else:
print('不是回文联')
##方法二:
def huiwen(string):
list1 = list(string)
list2 = reversed(list1)
if list1 == list(list2):
return '是'
else:
return '不是'
print(huiwen('上海自来水来自海上'))
---------------------
Twilight6 发表于 2020-6-16 17:52
哈哈 先给你看看 其实这样就好,然后我去看你代码
懒惰成就聪明优秀的程序员{:10_256:} 把/2改成//2 小甲鱼的铁粉 发表于 2020-6-16 17:54
懒惰成就聪明优秀的程序员
错误两个地方,第一个:
range 是生成一个可迭代的一个整数列表,而Python 除法返回的是 浮点数,不能用 len / 2 来当range 的参数
第二个len是列表长度 开始时候 i = 0 而 len - 0 还是 列表长度,超出了索引范围所以报错:
正确代码:
def huiwen(list1):
result = 1
for i in range(0,len(list1)//2):
if list1 != list1:
return 0
return result
str1 = input("请输入一个文本,判断它是否为回连文")
list2 = list(str1)
if huiwen(list2):
print("是回连文")
else:
print("不是回连文")
Twilight6 发表于 2020-6-16 17:58
错误两个地方,第一个:
range 是生成一个可迭代的一个整数列表,而Python 除法返回的是 浮点数,不能 ...
{:10_275:} qiuyouzhi 发表于 2020-6-16 17:54
把/2改成//2
对,float,谢谢{:10_275:} Twilight6 发表于 2020-6-16 17:58
错误两个地方,第一个:
range 是生成一个可迭代的一个整数列表,而Python 除法返回的是 浮点数,不能 ...
##方法二:
def huiwen(string):
list1 = list(string)
list2 = reversed(list1)
if list1 == list(list2): if list1 == list(list2):
return '是'
else:
return '不是'
print(huiwen('上海自来水来自海上'))
这个代码 if list1 == list(list2):
为什么这个list2还需要用list函数格式转化一下呢?
在它之前的这个代码: list2 = reversed(list1)没有将它转化为列表吗? 小甲鱼的铁粉 发表于 2020-6-16 18:06
这个代码
为什么这个list2还需要用list函数格式转化一下呢?
在它之前的这个代码:没有将它转化为列 ...
因为 list2 = reversed(list1) 返回的是一个反向迭代器,而不是列表重新转为列表才是一个列表 Twilight6 发表于 2020-6-16 18:08
因为 list2 = reversed(list1) 返回的是一个反向迭代器,而不是列表重新转为列表才是一个列表
{:10_332:}明白了,python的细节好多 小甲鱼的铁粉 发表于 2020-6-16 18:08
明白了,python的细节好多
还好啦 哈哈 其他语言更头疼
页:
[1]