2017-01-05 1 views
1

Я искал и искал пока не нашел ничего для моего приложенияКак получить отдельные части строки, когда вы не знаете, количество деталей там будет

def getInput(): 
    command = input("What would you like to do now? ").split() 
    verb_word = command[0] 

    if verb_word in verbDict: 
     verb = verbDict[verb_word] 
    else:  
     print('Unknown command: "{}"'.format(verb_word)) 
     print("The commands are:")   
     for i in len(verb_dict): 
      print(verbDict[i])  

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

+0

Этот вопрос не особенно ясно. Чего вы хотите, чтобы результат был? – Metropolis

+0

@Metropolis Я пытаюсь вызвать функцию, используя отдельные части строки ie. спам (var1, var2, var3) или spam2 (var4) –

+0

есть проблема с форматированием/отступом – RomanPerekhrest

ответ

0

Я предполагаю, что вы принимаете материалы, которые выглядят что-то вроде

command parameter another_parameter 

и вы хотите, чтобы в конечном итоге с чем-то вроде

verb_dict['command']('parameter', 'another_parameter') 

Вы можете использовать упаковку питона и распаковка, чтобы сделать это

command, *parameters = input("What would you like to do now? ").split() 

У вас тогда есть command = 'command' и parameters = ['parameter', 'another_parameter']

Вы можете посмотреть функцию в словаре, а затем распаковать список в вызове функции

verb_dict['command'](*parameters) 
+1

Это работает только с Python 3 (для '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. Для Python 2 вы хотите 'command, paramers = command [0], command [1:]' –

+2

@brunodesthuilliers Я предположил из использования 'input' и' print' функцию, что это был python 3 –

+1

, мы часто видим python beginners (mis) с помощью 'input()' (вместо 'raw_input()' и добавления parens к 'print' при использовании python2 - либо из-за незнания, либо потому, что они видели это в python 3 учебниках ;-) –