Larryeric 发表于 2023-4-14 16:05:19

求助

# -*- coding: utf-8 -*-
'''
请只在 "
##########start 下面可以改动

##########end 上面可以改动 "

中间部分作答,作答行数自由调整


题目
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

示例 1:
输入:
输出: true

示例 2:
输入:
输出: false

示例3:
输入:
输出: true


'''

def TEST_DO_NOT_CHANGE(nums):
    print(nums)
    factorial = None
    ##########start下面可以改动
    for i in nums:
      if nums.count(i)>1:
            print("true")
      else:
            print("false")



    ##########end 上面可以改动 "
    return factorial

if __name__ == "__main__":
    print(TEST_DO_NOT_CHANGE())
    print(TEST_DO_NOT_CHANGE())
    print(TEST_DO_NOT_CHANGE())
代码如何小幅度修改实现修正

jackz007 发表于 2023-4-14 16:17:05

本帖最后由 jackz007 于 2023-4-14 16:19 编辑

def TEST_DO_NOT_CHANGE(nums):
    print(nums)
    factorial = None
    ##########start下面可以改动
    factorial = len(nums) != len(set(nums))
    ##########end 上面可以改动 "
    return factorial

Larryeric 发表于 2023-4-14 16:30:08

jackz007 发表于 2023-4-14 16:17


set是什么意思

jackz007 发表于 2023-4-14 16:47:07

本帖最后由 jackz007 于 2023-4-14 16:49 编辑

Larryeric 发表于 2023-4-14 16:30
set是什么意思

      set() 是 Python 的 BIF,用途是把序列对象转化为集合,集合有一个性质,不允许有重复元素存在,如果把一个序列对象转换为集合后,其元素数量没有发生减少,那就说明其中不含重复元素。所以,可以根据转换前后,序列对象中元素数量是否减少来判定是否存在重复元素。

isdkz 发表于 2023-4-14 17:21:10

本帖最后由 isdkz 于 2023-4-14 18:53 编辑

您的代码逻辑有一些错误,您应该在找到重复元素时返回 True,否则在循环结束后返回 False。

此外,函数的返回值应该是布尔值,而不是 None。这是修改后的代码:

# -*- coding: utf-8 -*-
'''
请只在 "
##########start 下面可以改动

##########end 上面可以改动 "

中间部分作答,作答行数自由调整


题目
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

示例 1:
输入:
输出: true

示例 2:
输入:
输出: false

示例3:
输入:
输出: true


'''

def TEST_DO_NOT_CHANGE(nums):
    ##########start下面可以改动
    for i in nums:
      if nums.count(i) > 1:
            return "true"
    return "false"
    ##########end 上面可以改动

if __name__ == "__main__":
    print(TEST_DO_NOT_CHANGE())
    print(TEST_DO_NOT_CHANGE())
    print(TEST_DO_NOT_CHANGE())

这个代码现在可以正确地判断给定整数数组中是否存在重复元素。

jackz007 发表于 2023-4-14 18:32:36

本帖最后由 jackz007 于 2023-4-14 18:42 编辑

isdkz 发表于 2023-4-14 17:21
您的代码逻辑有一些错误,您应该在找到重复元素时返回 True,否则在循环结束后返回 False。

此外, ...

      什么“逻辑错误",纯属危言耸听!!!
D:\\Python>python x.py

True

False

True

D:\\Python>
         这是我的代码的运行结果,你试过没有就在那里下断言,如果说存在问题,可能是这个函数应该返回字符串对象,而我让它直接返回了布尔对象。反映在运行结果上,那就是题目要求 true / false 全小写,而我的代码会把首字母大写而已。
         你的代码完美,函数的 return 语句怎么被废弃了?

         拜托你回答问题只要针对题目就好了,不要借机踩踏别人!!!

isdkz 发表于 2023-4-14 18:53:21

jackz007 发表于 2023-4-14 18:32
什么“逻辑错误",纯属危言耸听!!!

         这是我的代码的运行结果,你试过没有就在那 ...

我去,我是回复点错地方了{:10_277:}

isdkz 发表于 2023-4-14 18:56:39

jackz007 发表于 2023-4-14 18:32
什么“逻辑错误",纯属危言耸听!!!

         这是我的代码的运行结果,你试过没有就在那 ...

老哥,实在不好意思,我是想回复楼主的,点错地方了,抱歉抱歉{:10_277:}
页: [1]
查看完整版本: 求助