Q:

How can I make this more Pythonic?

I'm working on a function to find a string in a set that best matches a given date.  I've decided to do it with a scoring system kind of like CSS selectors because it has the same concept of specificity.
One part is to figure out the min score.  If I'm looking for a date (year month day), then the min score is 100.  If I'm looking for a month (just month and year), then it's 10, and if I only have a year, then it's 1:
minscore = 1
if month: minscore = 10
if day: minscore = 100

I'm pretty new to Python, so I don't know all the tricks.  How can I make this more (the most) Pythonic?

A:

Stick to easily-readable code:
if day:
    minscore = 100
elif month:
    minscore = 10
else:
    minscore = 1

A:

Sparse is better than dense ;)
minscore = 1
if month:
    minscore = 10
elif day:
    minscore = 100

This is also quoted in the PEP 8:

Compound statements (multiple statements on the same line) are
  generally discouraged.
Yes:

if foo == 'blah':
    do_blah_thing() do_one() do_two() do_three() 

Rather not:

if foo == 'blah': do_blah_thing() do_one(); do_two(); do_three()

I guess a conditional statement (i.e the ternary expression) is probably the way to go for the "most pythonic", but I thought a quote from the Zen of Python would be nice.

A:

You can use a ternary expression:
minscore = 100 if day else 10 if month else 1

From pep-308(Conditional expression):

The motivating use case was the prevalance of error-prone attempts
      to achieve the same effect using "and" and "or".

