打印输出时python shell中的较低函数无法正常工作

时间:2018-01-16 20:27:36

标签: python

我正在运行这个我写过的语法,但我在shell中遇到错误,说Attributeerror'NonType'对象没有属性'lower'

>>> test = "HELLO"
>>> print (test).lower()

2 个答案:

答案 0 :(得分:3)

我认为你做错了,因为:

de:
  activemodel/activerecord(depnding of what you use):
    models:
      customer:
        one: *german translation for one*
        other: *german translation for many*

>>> 'HELLO'.lower()
    'hello'

在python2.7中都可以正常工作

在python 3.6中(至少):

>>> test = 'HELLO'
>>> print (test).lower()
hello
>>> print test.lower()
hello

但是你试图执行较低的打印结果方法,即无。

>>> print (test.lower())
hello
>>> print ((test).lower())
hello

答案 1 :(得分:0)

运行你在shell中再次发布的内容并查看会发生什么。以下是我的观点:( Windows 7-64,Python 3.6.3,32位和64位):

>>> test = "HELLO"
>>> print(test).lower()
    HELLO
    Traceback (most recent call last):
    File "<pyshell#39>", line 1, in <module>
    print(test).lower()
    AttributeError: 'NoneType' object has no attribute 'lower'

您可以看到打印(测试)正在运行,并显示“HELLO”。 print函数总是返回NoneType,因此解释器的下一步是尝试运行NoneType.lower(),这会抛出错误。

另一种方法是:

>>>test = "HELLO"
>>>small = test.lower()
>>>print(small)
   hello

>>>print(test.lower())