2013-09-13 5 views
2
while index < len(diecount): 
    print(index) 
    for number in range(diecount[index]): 
     print('*') 

    index+=1 
    print("") 

На данный момент я получаюКак правильно использовать функцию печати

1 
** 
2 
3 
** 

я хочу выход быть

1 ** 
2 
3 ** 
+0

Совет: вы можете отказаться от этих резервных скобок. в то время как индекс devsaw

+0

Скобки необходимы в Python 3.x, так как 'print' - это функция, а не инструкция. – chepner

+0

@chepner: посмотрите историю изменений и содержание комментария – njzk2

ответ

5

Более Pythonic способ написать это:

for index, count in enumerate(diecount[1:], start=1): 
    print(index, '*' * count) 

(Ручное управление индексов цикла в while, как правило, знак, который вы пытаетесь написать C-код в Python).

+0

согласен. но при использовании этого кода я изменил начало на 0, потому что когда в 1 «*» не было на той же строке, это должно было быть. Как я могу закодировать его таким образом, чтобы я хотел, чтобы он отображал вывод из 1 вместо 0? – user2775042

+0

@ user2775042: как выглядит объект 'diecount', который вы хотите создать вывод, который вы показываете? – geoffspear

+0

diecount - это список , это diecount [0,0,0,0,0,0,0,0,0,0,0}, который обновляется каждый раз, когда возвращается значение, например, если я получаю 1 и 2, список изменится на [0,1,1,0,0,0,0,0,0,0,0] – user2775042

4

Каждая функция печати добавляет символ новой строки в конце любой он в настоящее время печатает. Вы можете добавить пробел вместо новой строки после первой печати с использованием 2-й аргумент:

print(index, end = " ") 
+0

спасибо за это. Но когда я добавляю end = "", числа, которые не имеют **, записываются в одну строку. – user2775042

+0

Тогда вам не нужно их использовать; или используйте вызов 'print()' без аргументов для печати новой строки. – Thomas

+0

, если я использую печать ("") ни с чем, я получаю тот же результат, что и раньше – user2775042

Смежные вопросы