1
scorematch_A = [0,1,2,3,4,5,6,7,8]
import random
random.shuffle(scorematch_A)
current = scorematch_A.pop()

score = current
print('Результат матча: %d ' %score )

com1 = open('text.txt', 'w')
text.write('%d', %current )
  • Можно score = random.choose(scorematch_A) вместо shuffle()+.pop() использовать – jfs Apr 26 '16 at 11:54

1 Answers1

3
  1. Вы неправильно используете % для передачи значения переменной в функцию.

    Согласно PEP8:

    Для форматирования строк можно использовать и операцию %. Она интерпретирует левый операнд как строку форматирования в стиле sprintf, которую следует применить к правому операнду, и возвращает строку, получившуюся в результате этого преобразования.

    Еще подробней про это в ответе на ruSO.

    В вашем случае правильно будет print('Результат матча: %d ' % score ) и text.write('%d' % current ) .

  2. А также неправильно записываете данные в файл.Вместо

    com1 = open('text.txt', 'w')
    text.write('%d', %current )
    

    правильно будет:

    with open('text.txt', 'w') as file:
        file.write('%d' % current )
    

Но вообще, как правильно упомянули в комментарии, почитайте еще руководств по Python и побольше тренируйтесь, чтобы понимать, что происходит в коде.

  • Traceback (most recent call last): File "C:\Users\SAMURAI\Desktop\122.py", line 10, in text.write('%d' % current ) NameError: name 'text' is not defined – ADDO BOSS Apr 26 '16 at 07:20
  • @ADDOBOSS вы и правда не создали такую переменную. – andreymal Apr 26 '16 at 07:21
  • Так это же не переменная, а название текстового файла – ADDO BOSS Apr 26 '16 at 07:23
  • @ADDOBOSS тогда вы не понимаете сути программирования и переменных, и остаётся только посоветовать перечитать какой-нибудь учебник по питону. Вы в последней строке программы пытаетесь обратиться именно к переменной text, которую нигде не создали. – andreymal Apr 26 '16 at 07:24
  • А всё понял. Ошибка была тут com1 = open('text.txt', 'w') com1.write('%d' % current ) – ADDO BOSS Apr 26 '16 at 07:26
  • Но файл всё равно не сохраняется – ADDO BOSS Apr 26 '16 at 07:28
  • @ADDOBOSS отредактировал свой ответ, проверьте. – approximatenumber Apr 26 '16 at 07:30
  • Спасибо за помощь. Заработало! – ADDO BOSS Apr 26 '16 at 07:34
  • @ADDOBOSS Пожалуйста, если ответ решил вашу проблему, то отметьте его правильным. – approximatenumber Apr 26 '16 at 07:35
  • 1
    Можно ещё использовать file.write(str(score)) или print('Результат матча:' , score, file=file) вместо '%d' % score – jfs Apr 26 '16 at 11:58