2017-09-08 2 views
-4

Je suis en train de faire un programme récemment. Avant d'entrer dans les détails, je vais être honnête, je ne connais fondamentalement aucun code; J'essaie d'apprendre :)Débutant Python: Invoquer méthode de correspondance en Python

Ok donc, ce que j'essaie de faire est: Concevoir un programme qui demande un nombre, il prend alors ce nombre et imprime un mot différent qui est fixé ce nombre de fois .

Aussi j'ai essayé de faire en sorte qu'il accepte que des chiffres 0-5 Je ne sais pas comment le faire correctement, mais oui.

C'est ce que j'ai jusqu'à présent:

import re 
f=True 
while f == True: 
name = input("Type number for paste: ") 
valid = re.match("[0-5]") 
if valid: 
    print("sample-word"*name) 
    f = False 
else: 
    print("The characters you have input seem to be wrong.") 

La première partie fonctionne très bien, il imprime le numéro de type pour la pâte, etc. Mais une fois que je fais, il dit ceci dans le journal des erreurs:

TypeError: match() missing 1 required positional argument: 'string' 

Je n'ai aucune idée de ce que cela signifie. Et pour être honnête, je suis coincé. Toute aide serait grandement appréciée; et encore désolé si tout cela est complètement faux, je suis très nouveau pour Python et le codage en général. :)

+0

're.match ("[0-5]", nom)' bien sûr –

+0

L'erreur est assez claire. Il y a deux arguments requis pour 'match' - l'expression régulière et la chaîne à essayer de faire correspondre. Vous pouvez le dire par le message, qui dit que vous êtes ** manquant 1 requis ... argument **. Combien passez-vous à 'match'? Essayez en fait de lire les mots dans le message d'erreur, puis lisez la documentation pour voir si vous pouvez comprendre ce que cela signifie. C'est un truc assez simple. (Et ne mettez pas * S'il vous plaît aider * de toute nature dans votre titre ou poste. Ce n'est pas une question, et il est évident que vous avez besoin d'aide ou que vous ne poseriez pas une question ici.) –

+0

vrai, désolé. En outre, j'ai lu le message d'erreur Je ne sais pas quel est l'argument 1 manquant. –

Répondre

0

re.match(pattern, string, flags=0) prend deux arguments de position: pattern qui est votre modèle de regex ([0-5]) et string, qui est la chaîne que vous souhaitez rechercher le motif donné. Vous devez faire valid = re.match("[0-5]", name) et cela fonctionnera.

+0

remplacé valide = re.match (« [0-5] ») avec votre version et une erreur (TypeError: ne peut pas multiplier par séquence non-int de type « str ») est venu de ne pas être en mesure de multiplier par un caractère non-int. Je me suis assuré que lorsque je l'ai exécuté, j'ai mis un chiffre entre 0 et 5 et cela a été dit. Comment pourrais-je en faire l'entrée int? –