2013-11-20 2 views
-1

Это код И. М. помощью попытаться добиться вывода «_ _ _ _» на основе количества букв в словеСоздание линии тире?

def maskLetters(mask,word): 
    index=0 
    while index<len(word): 
     print mask+mask 
     index=index+1 

ответ

6
def maskLetters(mask, word): 
    print mask * len(word) 

(я сделал несколько предположений о том, что вы имели в виду . ваш параметр mask)

+2

Во-первых, чтобы ответить, ясный ответ. +1. – aIKid

0

в Python, вы можете умножить str с помощью int и возвращает этот str повторил int раз:

def maskLetters(mask,word): 
    print len(word) * mask # length of the word * mask to repeat 

> maskLetters('_', 'cow') 
___ 
> maskLetters('f','stackoverflow') 
fffffffffffff 
+0

его будет в форме «_ _ _ _», если я введу слово «шар» – user3011583

1
>>> word = 'John' 
>>> print repr('_ ' * len(word)) 
'_ _ _ _' 
+0

да, его должно быть так, но в кавычках – user3011583

+0

Отредактировано для добавления ревью. –

1

Если вы хотите пробелов между

def maskLetters(mask, word): 
    return ' '.join(mask * len(word)) 

Также

def maskLetters(mask, word): 
    return ' '.join(word.translate(mask*256)) 
0

Другой способ:

>>> word='Ball' 
>>> ul='-' 
>>> print("'{}'\n'{:{fill}^{w}}'".format(word,ul,fill=ul,w=len(word))) 
'Ball' 
'----' 
Смежные вопросы