【问题标题】:if function inside function returns true, do something (python 3)如果函数内部的函数返回 true,则执行某些操作(python 3)
【发布时间】:2020-08-07 03:43:03
【问题描述】:

有两个功能。第一个生成一个列表,第二个检查是否有重复项。如果有重复,则返回 True

所以我想从函数 1 调用函数 2,如果它返回 true,则执行某些操作 这是我的代码

import random

def x(list):
    for i in range(len(list)):
        count = 0
        for k in range(len(list)):
            if list[i] == list[k]:
                count += 1
            if count > 1:
                return True
    if count == 1:
        return False



def generated_list(N):
    list = []
    for i in range(N):
        list.append(random.randint(1, 365))
    x(list)


if generated_list(25) is True:
   print('is true')

【问题讨论】:

  • 1. generated_list 不返回任何内容 2. list 是一个非常糟糕的变量名 3. 请参阅 stackoverflow.com/questions/1541797/…
  • return x(list)
  • 顺便说一下,如果你想生成一个随机但唯一的列表,你可能想查看一个集合而不是一个列表。在 generate_list 中,你想返回 (x(list)

标签: python function if-statement return


【解决方案1】:

有一些逻辑错误,检查一下:

import random


def check_duplicate(numbers):
    for i in range(len(numbers)):
        count = 0
        for k in range(len(numbers)):
            if i == k:
                continue
            if numbers[i] == numbers[k]:
                count += 1
            if count > 1:
                return True
    return False


def generated_list(n):
    numbers = []
    for i in range(n):
        numbers.append(random.randint(1, 365))
    return check_duplicate(numbers)


if generated_list(25) is True:
    print('is true')

另外,避免使用保留关键字来命名变量。

【讨论】:

  • 我知道,但如果 x ( generated_list(n) ) 为真,我需要类似 ``` 的东西:做一些事情 ``
猜你喜欢
  • 1970-01-01
  • 2016-02-17
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-23
相关资源
最近更新 更多