2015-03-28 1 views
0

Bonjour, Je suis en train d'écrire un jeu en python et à un moment donné, il met le nom de l'utilisateur dans un nom, mais j'ai rencontré un problème.Module de création de tags de nom

par exemple.

def name_tag(name): 
printf("____________") 
printf("|## {} ##|".format(name)) 
printf("|__________|") 

En supposant qu'il fonctionne

___________ 
|##Sarah##| 
|_________| 

Il ne fonctionnera pas pour un mot qui a une longueur plus ou moins que "Sara"

___________ 
|##Joshua##| 
|_________| 

En effet, le supplément/moins les lettres poussent la frontière dedans et dehors. Est-ce que quelqu'un sait comment réparer ceci?

+0

Pouvez-vous ajouter le code associé? – belwood

Répondre

1

Vous pouvez simplement ajuster la longueur des lignes supérieure et inférieure, comme suit. Juste pour éliminer une possible série de problèmes, j'ai aussi écrêté la longueur maximale du nom à 80.

def name_tag(name): 
    name_len = min(len(name), 80) 
    print '-' * (name_len + 8) 
    print '|## {} ## |'.format(name[:name_len]) 
    print '-' * (name_len + 8) 


>>> name_tag('Sarah') 
------------- 
|## Sarah ## | 
------------- 
>>> name_tag('JT') 
---------- 
|## JT ## | 
---------- 
>>> name_tag('An improbably long name for an example') 
---------------------------------------------- 
|## An improbably long name for an example ## | 
---------------------------------------------- 

Modifier: adapter ci-dessus pour correspondre à la mise en forme dans le code affiché:

def name_tag(name): 
    name_len = min(len(name), 80) 
    print '_' * (name_len + 8) 
    print '|## {} ## |'.format(name[:name_len]) 
    print '|{}|'.format('_' * (name_len + 6))