TypeError: неподдерживаемый тип операндов для%: 'NoneType' и 'str'

Поэтому я ОЧЕНЬ новичок в программировании, и я начал с Python 3. Я начал читать «Learn Python the Hard Way». Теперь я дошел до того, что у меня был этот код:

x = "There are %d types of people." % 10 binary = "binary" do_not = "don't" y = "Those who know %s and those who %s" % (binary, do_not) print(x) print(y) print("I said: %r") % x 

Я не знаю разницу между %r , %s и %d . Ошибка, которую я получаю, это TypeError: unsupported operand type(s) for %: 'NoneType' and 'str' Не знаю, что делать и как это исправить. Пожалуйста, объясните, как я могу заставить его работать и почему это не сработает. Кроме того, в чем разница между% r, d и s? Любые полезные ссылки? Заранее спасибо.

2 Solutions collect form web for “TypeError: неподдерживаемый тип операндов для%: 'NoneType' и 'str'”

Вместо этого вы хотите применить % к строке :

 print("I said: %r" % x) 

Ваш код применяет его к возвращаемому значению вызова print() , который возвращает None .

Кроме того, вы можете переключиться на использование str.format() :

 print("I said: {!r}".format(x)) 

Вы вызываете % вне функции print() . Это пытается увидеть, можно ли напечатать фактическую print функции как %r , а поскольку print ничего не возвращает, она пытается получить %r для значения None (следовательно, ошибка NoneType ). Измените его на:

 print("I said: %r" %(x)) 

Следующий код:

 #!/usr/local/bin/python3 x = "Hello" print ("Hello World! %s") %(x) 

Вызывает следующую ошибку:

 Hello World! %s Traceback (most recent call last): File "main.py", line 3, in print ("Hello World! %s") %(x) TypeError: unsupported operand type(s) for %: 'NoneType' and 'str' 

Изменение кода на следующие работы:

 #!/usr/local/bin/python3 x = "Hello" print ("Hello World! %s" %(x)) 

Вывод:

 Hello World! Hello 
  • Как преобразовать экранированные символы в Python?
  • truncate и pad с использованием спецификации формата mini
  • замена строки python с помощью символа% / ** kwargs weirdness
  • Как передать tuple1, если ... else tuple2 в str.format?
  • Отображать номер с ведущими нулями
  • Почему% s быстрее, чем% d для целочисленной замены в python?
  • Pythons много способов форматирования строк - являются ли старые (будут) устаревшими?
  • Python: используйте слово string.format ()
  •  
    Interesting Posts for Van-Lav

    Каррирование в обратном порядке в python

    Почему java / javascript / python принудительно использует () после имени метода, даже если он не принимает аргументов?

    sqlalchemy: почему я не могу обновить func.now (), но могу использовать 'now ()'?

    Тип ошибки Тип расщепления: set

    Количество поплавков между двумя поплавками

    GAE Python dev сервер прерывается с перерывами после обновления до версии 2.7

    Создание декораторов с дополнительными аргументами

    Каков диапазон значений, которые может иметь float в Python?

    Абсолютный путь файлового объекта

    Почему пробел был пропущен в первой строке, когда pandas.to_string?

    Исходный код Python для встроенного оператора «in»

    R, питон или октава: эмпирический квантиль (обратный cdf) с доверительными интервалами?

    при установке statsmodels, я получаю следующую ошибку: RuntimeError: словарь изменен размер во время итерации

    Python – POST с открытием urllib2

    Слияние ключей словаря, если значения одинаковы

    Python - лучший язык программирования в мире.