список не вызывается при попытке добавить в список из запущенной программы - PullRequest
1 голос
/ 18 июня 2019

Я пытаюсь создать функцию, в которой пользователь вводит что-то, и что то, что он набрал, добавляется в список.

Я пытался поместить [] в свой код, как сказал один человек. Но это не сработало.

def admin():
    running = False
    print('welcome to admin mode')
    adminOptions = ['Option 1', 'Option 2']
    print(adminOptions)
    selectOption = input('Please type in an option:')
    if selectOption == 'Option 1':
            adminOptions(1)

def adminOptions(opt):
    pcList1 = ['Home Basic PC - $900-$1199', 'Office Computer - $1200-$1499','Gaming PC - $1500-$2199','Studio PC - $2200+']
    if opt == 1:
         newItem = input('Please type in the new item, Admin. ')
         pcList1.append[newItem]
         print('Here is the new list')
         print(pcList1)  

#maincode
admin()

TypeError: объект 'list' не может быть вызван

Ответы [ 2 ]

1 голос
/ 18 июня 2019

вы используете имя adminOptions два раза, один раз для списка (строки 4 и 5), а затем для определения функции в строке 10.

Когда вы пытаетесь вызвать функцию adminOptions() внутри admin(), python видит, что уже существует локальная переменная с этим именем (список), и пытается вызвать ее, пока список не вызывается, вы получаете Ошибка типа, которую вы видели.

изменить имя локальной переменной внутри admin() на другое:

def admin():
    running = False
    print('welcome to admin mode')
    adminOptionsList = ['Option 1', 'Option 2']
    print(adminOptionsList)
    selectOption = input('Please type in an option:')
    if selectOption == 'Option 1':
        adminOptions(1)

def adminOptions(opt):
    pcList1 = ['Home Basic PC - $900-$1199', 'Office Computer - $1200-$1499','Gaming PC - $1500-$2199','Studio PC - $2200+']
    if opt == 1:
        newItem = input('Please type in the new item, Admin. ')
        pcList1.append(newItem)
        print('Here is the new list')
        print(pcList1)  

#maincode
admin()

надеюсь, это помогло.

0 голосов
/ 18 июня 2019

Помимо необходимости изменить adminOption, вы также сталкиваетесь с ошибкой при попытке добавить к pcList1:

def admin():
    running = False
    print('welcome to admin mode')
    adminOptionsList = ['Option 1', 'Option 2']
    print(adminOptionsList)
    selectOption = input('Please type in an option:')
    if selectOption == 'Option 1':
        AdminOptions(1)

def AdminOptions(opt):
    pcList1 = ['Home Basic PC - $900-$1199', 'Office Computer - $1200-$1499','Gaming PC - $1500-$2199','Studio PC - $2200+']
    if opt == 1:
        newItem = input('Please type in the new item, Admin. ')
        pcList1.append(newItem)   #Parentheses are needed, not brackets
        print('Here is the new list')
        print(pcList1)  

#maincode
admin()

append () - это метод, поэтому вам понадобятся скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...