Python: Как мне преобразовать переменную NonType в строку? - PullRequest
1 голос
/ 11 сентября 2009

У меня есть следующая функция:

>>> def rule(x):
...     rule = bin(x)[2:].zfill(8)
...     rule = str(rule)
...     print rule

Я пытаюсь преобразовать правило в строку, но когда я запускаю следующую команду, вот что я получаю:

>>> type(rule(20))
00010100
<type 'NoneType'>

Что такое переменная NoneType и как я могу преобразовать эту переменную в строку?

Спасибо,

Ответы [ 2 ]

5 голосов
/ 11 сентября 2009

вам нужно сделать:

def rule(x):
    return bin(x)[2:].zfill(8)

Все функции возвращают None неявно, если во время выполнения функции не было найдено оператора return (как в вашем случае).

1 голос
/ 11 сентября 2009

Ваша функция правил ничего не возвращает - она ​​только печатает. Таким образом, правило (20) возвращает None - объект python, представляющий 'no value'. Вы не можете превратить это в строку, по крайней мере, не так, как вы ожидаете.

Вам нужно определить правило для возврата чего-либо, например:

>>> def rule(x):
...    rule=bin(x)[2:].zfill(8)
...    rule=str(rule)
...    return rule

Тогда он вернет строковый объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...