2013-04-06 4 views
0

je besoin des conseils sur ce problème, cela est la sortie que je dois sortir avec:raw_input que capable de faire détecter entrées multiples

interact() 
Friends File: friends.csv 
Command: f John Cleese 
John Cleese: Ministry of Silly Walks, 5555421, 27 October 
Command: f Michael Palin 
Unknown friend Michael Palin 
Command: f 
Invalid Command: f 
Command: a Michael Palin 
Invalid Command: a Michael Palin 
Command: a John Cleese, Cheese Shop, 5552233, 5 May 
John Cleese is already a friend 
Command: a Michael Palin, Cheese Shop, 5552233, 5 May 
Command: f Michael Palin 
Michael Palin: Cheese Shop, 5552233, 5 May 
Command: e 
Saving changes... 
Exiting... 

Je suis nécessaire pour sortir avec une fonction pour faire mais je vais coincé, je pensais si est là de toute façon de diviser l'entrée de l'utilisateur par exemple, si le type d'utilisateur:

f John Cleese 

Je me demande si je pouvais diviser le F et John Cleese comme entrée séparée pour que je puisse traiter la sortie séparément. Et aussi est-il possible d'invoquer une fonction sans une fonction? voici mon code:

def interact(*arg): 
    open('friends.csv', 'rU') 
    print "Friends File: friends.csv" 
    resp = raw_input() 
    if "f" in resp: 
# display friend function 
     display_friends("resp",) 
     print "resp" 
    elif "a" in resp: 
# add friend function 
     add_friend("resp",) 

mon affichage de fonction amis que je veux invoquer dans la fonction

def display_friends(name, friends_list): 
Fname = name[0] 
for item in friends_list: 
    if item[0] == Fname: 
     print item 
     break 
    else: 
     print False 

vous remercier à l'avance

Répondre

1

D'abord, oui, vous pouvez placer la fonction appelle dans d'autres fonctions. Deuxièmement, si vous saisissez une entrée utilisateur, dans votre exemple "f John Cleese", vous pouvez simplement faire ce que vous voulez avec votre code. Par exemple:

s = raw_input("Please input something: ") 
# now I input "f John Cleese", so that is now the value of 's' 
# printing the value of 's' will let you see what it is exactly. 

command = s.split(' ', 1) 
# the above code will split the string 's' on a ' ' space, 
# and only do it once, and then create a list with the pieces 
# so the value of 'command' will be ['f', 'John Cleese'] for your example. 

# to access items in the command list use brackets [] 
command[0] # 'f' 
command[1] # 'John Cleese' 

Avec tous ces outils, que vous pouvez considérer comme des conseils, je vous offre la bonne chance!

+0

Merci, j'ai une autre question, après je fais la commande = s.split ('', 1) comment puis-je retirer F commande et l'utiliser pour une autre fonction? comme sage pour John Cleese. –

+0

J'ai édité ma réponse, vous y accédez avec des parenthèses '[]'. Apprenez s'il vous plaît Python avant de poser plus de questions, ce sont toutes des choses de base, et vous ferait économiser beaucoup de temps et d'énergie gaspillée si vous venez de lire le tutoriel de base, vous prendrait 2 heures au maximum. Il existe de nombreux tutoriels [ici] (http://stackoverflow.com/tags/python/info) –