вам нужно написать скрытое или видимое свойство вместо отображения none или block.
У Вас есть константа в строковом названном модуле ascii_lowercase
, испытайте это:
>>> from string import ascii_lowercase
Затем можно выполнить итерации по символам в той строке.
>>> for i in ascii_lowercase :
... f(i)
Для Вашего вопроса о панграмме существует очень простой способ узнать, содержит ли строка все буквы алфавита. Используя ascii_lowercase как прежде,
>>> def pangram(str) :
... return set(ascii_lowercase).issubset(set(str))
Итерацией константы со всеми символами, в которых Вы нуждаетесь, является очень Pythonic. Однако, если Вы не хотите импортировать что-нибудь и только работаете в Unicode, используйте созданный-ins порядок () и его инверсия chr ().
for code in range(ord('a'), ord('z') + 1):
print chr(code)
Необходимо оставить измы Паскаля и изучить Python со свежей перспективой.
>>> ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> def pangram( source ):
return all(c in source for c in ascii_lowercase)
>>> pangram('hi mom')
False
>>> pangram(ascii_lowercase)
True
Путем ограничения себя тем, что предлагаемый Паскаль, Вы пропускаете вещи предложения Python.
И... старайтесь избегать reduce
. Это часто приводит к ужасным проблемам производительности.
Править. Вот другая формулировка; эти реализации устанавливают пересечение.
>>> def pangram( source ):
>>> notused= [ c for c in ascii_lowercase if c not in source ]
>>> return len(notused) == 0
Этот дает Вам часть диагностической информации для определения, что буквы пропускают от панграммы кандидата.
Я записал бы функцию, подобную Python range
def alpha_range(*args):
if len(args) == 1:
start, end, step = ord('a'), ord(args[0]), 1
elif len(args) == 2:
start, end, step = ord(args[0]), ord(args[1]), 1
else:
start, end, step = ord(args[0]), ord(args[1]), args[2]
return (chr(i) for i in xrange(start, end, step))