Возвращаемое значение используется в другой функции - Python - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу написать 2 функции. Одна функция, которая принимает данные от пользователя и добавляет их в список. Вторая функция берет список, возвращенный первой функцией, и распечатывает каждый элемент через пробел. Я думаю, что я близко, но что-то не так. Ввод -999 не останавливает цикл, и я не могу сказать, правильно ли я вызываю функции ...

Есть идеи?

def listFunc():
    num = 0
    list1 = []
    while num != -999:
        x = int(input('Enter a number, -999 to quit: '))
        list1.append(x)
    return list1


def formatFunc(y):
    final = str(y)
    ' '.join(final)
    print(final)


formatFunc(listFunc())

Ответы [ 3 ]

0 голосов
/ 04 ноября 2018
x = int(input('Enter a number, -999 to quit: '))
list1.append(x)    
num=x

будет работать!

0 голосов
/ 04 ноября 2018

Вы вызываете функции правильно, если намереваетесь распечатать ввод списка listfunc. Однако входные данные не будут сохранены в переменной в глобальной области видимости и, следовательно, будут заблокированы от любого использования в будущем.

Кроме того, listfunc в настоящее время не проверяет ввод. Можно вводить любые строки на входе. Цикл while не заканчивается, потому что условие while никогда не выполняется. Переписав его в соответствии с вашими условиями, вы получите:

def listfunc():
        someList = []
        while True:
                x = input("Enter a number, exit to quit")
                if 'exit' in x.lower():
                    break
                elif x.isdigit():
                    someList.append(x)
                else:
                    print("Input not recognized try again")
        return someList

def formatFunc(v):
        print(''.join(str(i) + ' ' for i in v)

Вы понимаете, почему это работает?

0 голосов
/ 04 ноября 2018

Это должна быть та же переменная, что и в цикле while.

num = int(input('Enter a number, -999 to quit: '))
if num != -999:
     list1.append(num)

и

# final = str(y) This is not required, why cast list as str
final = ' '.join(final)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...