-1
votes

Comment utiliser REC () au lieu de BackQuotes dans Python 3

Je cherche un moyen de déclarer une chaîne contenant des guillemets doubles et une citation unique. En JavaScript, je ferais

let str = `"," '`


11 commentaires

Utilisez l'échappement: s = '\', "'


Utilisez la syntaxe correcte pour Python (ne faites pas de choses en place car il est vu dans une autre langue; aussi, le `Trick" fonctionne "dans JS UP jusqu'à ce que les caractères liés à l'interpolation soient impliqués, ceux-ci doivent alors être échappés). Les littéraux de chaîne pris en charge en Python sont couverts dans docs.pytHon.org/3/reference/lexical_analyse .html et didacticiels et ressources associés.


Le titre est un hareng rouge complet, comme on peut la voir rapidement par recherche pour REC dans la documentation Python (il "ne s'applique pas" à la tâche). Ensuite, il existe une question plus pertinente une fois que les hypothèses sont mises à jour: par exemple. "Comment écrire une chaîne en python contenant des citations simples et doubles [avec un effort minimal]?"


@ user2864740 La question n'est pas Comment écrire une chaîne en python contenant des citations simples et doubles !!! La question est que l'IDE dit utiliser REC () chaud est-ce que je l'utilise si elle prend en conséquence une documentation officielle qu'il prend objet


Dans Python, vous ne pouvez pas faire cela sans escapade. REC fait automatiquement une chaîne évasée pouvant être utilisée dans la source. Mais vous devez fournir une chaîne valide pour la REP, donc c'est une sorte de contrat de poulet et d'œuf. Le message IDE est déroutant.


@SergeyProkov veuillez consulter la documentation pour REC . Le message IDE serait correct si et uniquement si le code était à l'origine correct (pour une signification sémantique) pour utiliser des backticks comme tels dans python . L'hypothèse initiale est fausse et le message IDE ne s'applique pas. Re: "Je cherche un moyen de déclarer une chaîne contenant des citations doubles et une citation unique."


@ user2864740 Vos commentaires sont Red-Herring. Je n'insiste pas d'utiliser des backuotes. La question est de savoir comment utiliser REC () pour atteindre l'équivalent de JS ``


@SergeyPleshakov La syntaxe `str` sur JavaScript (A Littéral à chaîne avec interpolation ) est pas servant le même but / rôle que REC (ceci est Fonction, et n'a rien à voir avec la construction de littéraux de chaîne de code source utilisés pour fournir des valeurs) en Python, quel que soit la manière dont le message IDE est étant [incorrect] interprété. Pas même près. Merci de lire les exemples de documentation et de conseil pour le moment.


@ user2864740 Oui si la prise en compte Les caractères liés à l'interpolation que je n'ai pas dans ma chaîne


@SergeyPleshakov Ce message apparaît car les backtstics ont été utilisés dans Python 2 comme raccourci vers un REC () appel pour convertir des objets en chaînes. Ce n'est pas exactement la même chose que les backtstics de JS.


@ user2864740 mec, tout d'abord, je suis nouveau à Python, pas de maîtrise en informatique non plus, à venir ici pour obtenir de l'aide, car je veux avoir comment quelque chose fonctionne. Quel est le problème avec ça? Vous réinterprétez ma question et commencez à expliquer pourquoi `` n'est pas la même que REC () que je n'ai jamais posées. Merci pour votre temps, mais j'ai plus de soutien des autres


3 Réponses :


2
votes

La raison pour laquelle le message d'erreur dit ce qu'il fait est parce que les backuotes ont jamais utilisé dans Python pour faire ce que vous voulez. Au lieu de cela, ils étaient un raccourci pour utiliser la fonction REC , qui n'est plus pris en charge.

Selon la documentation, il faut un objet

Tout est un objet dans Python, il n'y a donc pas de problème là-bas. Mais il y a un problème dans la fonction REC ne fait pas ce que vous voulez .

Nous devons retourner à la question initiale à la place: < / p>

Je cherche un moyen de déclarer une chaîne contenant des guillemets doubles et une citation unique.

en Python, vous pouvez échapper soit celui quel que soit celui qui soit celui que vous avez utilisé pour la chaîne, par exemple: xxx

ou vous pouvez utiliser la soi-disant Triple citations: xxx

mais attention à ce que cela ne fonctionne pas si vous avez le même type de citation à la fin de la chaîne: xxx

dans chaque cas, '"", "\' ' est le formulaire que Python utilisera pour signaler la chaîne de retour à vous. < / p>


1 commentaires

Triple citations est plutôt la réponse! Merci



2
votes

Le message dans l'EDI fait référence à l'utilisation de backticks autour d'un nom de variable ou d'une autre expression. Dans Python 2, `quelquevar` était un raccourci pour REC (quelquevar) .

Mais ce n'est pas vraiment ce que vous essayez de faire. Le message est simplement codé dur pour toute utilisation des backtsks.

Il vous suffit d'échapper aux guillemets identiques que le délimiteur de chaîne. xxx


0 commentaires

0
votes

Je pensais que sur

si littéralement tout ce que je devais faire était celui-ci xxx

la partie qui me confondue était que je n'étais pas sûr comment passer l'argument vers la fonction depuis selon Documentation J'aurais dû réussir un objet, pas une chaîne ou une liste de chaîne. Jusqu'à ce que je réalise qu'une chaîne est un objet aussi

Quelques exemples qui m'ont aidé à comprendre cela dans les détails xxx


2 commentaires

Je n'ai jamais supposé ça! @ Juanpa.arrivillaga


Oui, par exemple avec les backtsticks qui font quelque chose de totalement différent dans Python. Et vous continuez à doubler lorsque d'autres ont essayé de vous expliquer ce que vous ne comprenez pas.