2013-05-30 5 views
0

Так, ниже я получил: return century == year // 100 + 1 or century == year/100Python 3 булевы

Однако, я не удовлетворяющих последний:

>>>in_century(2013, 20) 
False 

Как сделать так, что это только Истина, если век точно равна году, деленному на 100? Кроме того, является ли формат выражения более или менее правильным?

Спасибо!

Вот вопрос:

def in_century(year, century): 
    '''(int, int) -> bool 

    Return True iff year is in century. 

    Remember, for example, that 1900 is the last year of the 19th century, 
    not the beginning of the 20th. 

    year will be at least 1. 

    >>> in_century(1994, 20) 
    True 
    >>> in_century(1900, 19) 
    True 
    >>> in_century(2013, 20) 
    False 
    ''' 
+0

(год - 1) // 100 + 1 – cerkiewny

ответ

1

Итак, ваш код это?

def in_century(year, century): 
    return century == year // 100 + 1 or century == year/100 

Вы, вероятно, не хотят or здесь.

>>> in_century(2000, 20) 
True 
>>> in_century(2000, 21) 
True 

Пробуйте вычислять век за год непосредственно, а затем сравнивать.

def century_from_year(year): 
    return (year - 1) // 100 + 1 

def in_century(year, century): 
    return century_from_year(year) == century 
+0

Благодарим за помощь! – user2425814

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