I'm trying to create a python cards game (a Brazilian cards game). But when I try to print some values (the cards played) it returns the following error:

Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
play()
File "C:\Documents and Settings\Terminal\Desktop\Truco.py", line 71, in play
print "You played %a. The computer played %b and %c" % (player_card1, computer_card1, computer_card2)
ValueError: unsupported format character 'a' (0x61) at index 12

player_card1, computer_card1, computer_card2 are numbers from a list...

example:

from random import choice as rc
cards = [1, 2, ...]

player = []

player.append(rc(cards))
player.append(rc(cards))
player.append(rc(cards))

player_card1 = player[0]

Edited 6 Years Ago by Hawkeye Python: n/a

Use lowercase for your string formatting expression.

>>> print 'Hi this is a %s' % 'test'
Hi this is a test
>>> print 'Hi this is a %S' % 'test'
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
ValueError: unsupported format character 'S' (0x53) at index 14
>>>

I did so.

print "You played %a. The computer played %b and %c" % (player_card1, computer_card1, computer_card2)

What you want with %a format. You should have %s for strings, %f for floats, %i for integers %x for hexadecimal.

I never heard about %a , %b or %c formatting.

tonyjv and snippsat:

I've never heard about that. I'm just beginning with python coding, heh
thanks

Edited 6 Years Ago by Hawkeye Python: n/a

This question has already been answered. Start a new discussion instead.