Как решить проблему с TypeError: неподдерживаемая строка формата, переданная в numpy .ndarray .__ format__ - PullRequest
0 голосов
/ 08 февраля 2020

У меня следующий код, но вывод выдаёт мне ошибку.

possible_rolls = arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])
roll_result = np.random.choice(possible_rolls,1,replace=True)
modified_result = roll_result + 11
action_succeeded = modified_result > 15

print("On a modified roll of {:d}, Alice's action {}.".format(modified_result, "succeeded" if action_succeeded else "failed"))

TypeError: неподдерживаемая строка формата передана в numpy .ndarray. format

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

вы можете просто использовать f-строку и получить доступ к значению массива 1x1:

print(f"On a modified roll of {modified_result.item()}, Alice's action {'succeeded' if action_succeeded else 'failed'}.")

пример вывода:

On a modified roll of 13, Alice's action failed.
0 голосов
/ 08 февраля 2020

Это потому, что modified_result - это массив, а не число:

possible_rolls = arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])
roll_result = np.random.choice(possible_rolls,1,replace=True)
modified_result = roll_result + 11
action_succeeded = modified_result > 15

print(type(modified_result))
>>> <class 'numpy.ndarray'>

Это решит проблему:

print("On a modified roll of {:d}, Alice's action {}.".format(modified_result[0], "succeeded" if action_succeeded else "failed"))

>>> On a modified roll of 13, Alice's action failed.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...