2017-06-29 1 views
0

C'est la tâche que j'ai donné:séquences d'échappement Détection en Python 3

Programme: quote_me() Fonction quote_me prend un argument de chaîne et renvoie une chaîne qui affiche entourée de guillemets doubles ajoutés si elle est imprimée vérifier si la chaîne passée commence par un double guillemet ("\" "), puis entourer la chaîne de guillemets simples si la chaîne passée commence par guillemets simples, ou si elle ne commence pas par un guillemet, entourer de guillemets le code de fonction en passant la chaîne de caractères en tant qu'argument à quote_me()

Ceci est mon code -

def quote_me(phrase): 
    if phrase.startswith("\""): 
     print('\' + phrase + \'') 
    if phrase.startswith('\''): 
     print("\" + phrase + \"") 
    else: 
     print("use quotations in your input for phrase") 

quote_me("\"game\"") 

sortie:

'+ phrase +' citations d'utilisation dans votre entrée pour la phrase

sortie souhaitée: 'jeu'

Je ne sais pas ce que je suis faire mal et comment je peux y remédier. Merci d'avance.

Répondre

0

Utiliser [] pour accéder à la 1ère chose dans la chaîne rend plus simple l'OMI

def quote_me(phrase): 
    if phrase[0] == "\"": 
     print('dq') 
     print('\'', phrase[1:-1] ,'\'') 
    elif phrase[0] == ('\''): 
     print('sq') 
     print("\"", phrase[1:-1], "\"") 
    else: 
     print("use quotations in your input for phrase") 

quote_me("\"game\"") 
1

Vous avez oublié des guillemets dans votre code. Devrait être:

def quote_me(phrase): 
    if phrase.startswith("\""): 
     print('\'' + phrase + '\'') 
    if phrase.startswith('\''): 
     print("\"" + phrase + "\"") 
    else: 
     print("use quotations in your input for phrase") 

quote_me("\"game\"") 
# Output: '"game"' 

De plus, votre sortie désirée ne correspond pas à votre description pour deux parties. D'abord, votre sortie désirée semble remplacer les guillemets simples par des guillemets simples. Si vous voulez faire le remplacement au lieu d'ajouter des citations et vous êtes sûr le dernier caractère de votre chaîne ont des citations correspondant, vous pouvez le faire:

def quote_me(phrase): 
    if phrase.startswith("\""): 
     print('\'' + phrase[1:-1] + '\'') 
    if phrase.startswith('\''): 
     print("\"" + phrase[1:-1] + "\"") 
    else: 
     print("use quotations in your input for phrase") 

quote_me("\"game\"") 
# output: 'game' 

Deuxièmement, votre impression en fait un message d'avertissement au lieu de " ou si elle ne commence pas par un guillemet, entourez les guillemets ". Il semble que le problème que vous avez voulu juste ajouter des citations appropriées (c'est-à-dire ajouter des citations et éviter le type de citations qui sont déjà là). Pour cela, vous pouvez:

def quote_me(phrase): 
    if phrase.startswith("\""): 
     print('\'' + phrase + '\'') 
    else: 
     print("\"" + phrase + "\"") 

quote_me("\"game\"") 
# Output: '"game"'