【问题标题】:write a function that has 1 argument, that returns two columns oftof sorted integers编写一个有 1 个参数的函数,它返回两列排序整数
【发布时间】:2020-01-29 22:18:44
【问题描述】:

编写函数oddEven(num),它有1个参数num,一个不大于100的正整数。这个函数返回两列,一列是正整数,一列是负整数 我不确定在最后一行代码之后该怎么做才能获得两列。 随机导入

def oddEven(num):
    x=num
    a,b=[],[]
    for i in range(x):
        o= b.append(random.randomint(-50,50))
        if o % 2 == 0:
            a.append(o)
        else:
            b.append(o)
    a.sort()
    b.sort()
    return a,b

def main():
    y=eval(input('What # of integers would you like in this list?:'))
    list1, list2 = oddeven(y)
    print('even','odd')
    for i in range (min(len(odd),len(even)):
            print(odd[i],even[i])            
    if len(odd) != len(even):

【问题讨论】:

  • 这两个列表与参数num有什么关系?
  • edit该问题有一个反映问题的标题
  • 欢迎来到 Stack Overflow!您发布的代码有很多问题,因此您需要edit 并澄清您到底遇到了什么困难。请阅读How to Askminimal reproducible example

标签: python function iteration user-defined


【解决方案1】:
  1. 你需要的函数是random.randint而不是random.randomint

  2. 您需要对 代码 逻辑进行重大修改:

    • 为奇数和偶数创建 2 个列表
    • 将相应的值附加到相应的列表中
    • 如果您在循环内返回,它将只运行一次

我的代码:

import random

def oddEven(num):
    x = num
    a, b = [], []
    for i in range(x):
      o = random.randint(-50,50)
      if o % 2 == 0:
        a.append(o)
      else:
        b.append(o)
    a.sort
    b.sort()
    return a,b
print(oddEven(45))

输出:

([14, 48, -10, -6, 10, 36, 26, 34, -6, 8, -26, 
16, 22, -42, -40, 38, -32, -44, 14, -46, 36, 20, 30, 10, -42], 
[-47, -41, -35, -21, -15, -15, -9, -3, -3, -1, 
5, 7, 9, 11, 17, 21, 25, 27, 33, 49])

【讨论】:

    【解决方案2】:

    您描述的代码的简单示例。

    import random
    
    def oddEven(num):
        # create list of random numbers from -50 to 50 of length num
        l = [random.randint(-50, 50) for i in range(num)]
    
        # Split list l into even and odd elements
        odd = [x for x in l if x % 2 == 1]
        even = [x for x in l if x % 2 == 0]
    
        return odd, even
    
    # Test
    print(oddEven(20)) # ([-47, -45, -25, -25, 27, -45, 39, -19, -3, -33], [-18, -46, -8, -10, -28, -12, -30, -12, 0, -10])
    

    【讨论】:

    • 可能需要检查一下 x 是否不是 0,因为 0 可以被除自身以外的所有数字整除,它既不是偶数也不是奇数
    • @incapaz 根据维基百科,零是偶数 Parity of Zero
    • 好吧,看来我犯了一个错误,我只是假设因为它可以被除 0 以外的所有东西整除
    • @incapaz 没问题。如您所见,这只是数字取模 2 的问题。
    猜你喜欢
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多