написать функцию с 1 аргументом, которая возвращает два столбца из отсортированных целых чисел - PullRequest
0 голосов
/ 30 сентября 2019

напишите функцию 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):

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Простой пример кода, который вы описываете.

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])
0 голосов
/ 30 сентября 2019
  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])
...