【问题标题】:Can someone help me understand how this Python code works有人可以帮我理解这段 Python 代码是如何工作的吗
【发布时间】:2013-01-05 16:18:01
【问题描述】:

这是我在学校课堂上上的一节课的代码,我对列表的打印方式感到困惑,因为它一直以“无”结尾...

def printlist(myList, pointer):
    print("The List is: ", myList)
    print("Pointer length: ", pointer)
    print("The List length is: ", len(myList))
    print("The List printed properly:")
    print(printlistproperly(myList))

def printlistproperly(myList):
    thelength = len(myList)
    for i in range(thelength):
        print(i, " ", myList[i])

def popin(myList,pointer):
    myList.append(input("Enter a value: "))
    pointer = len(myList)-1
    return myList, pointer

def main():
    myList = ["Ford","Toyota","Mustang"]
    pointer = len(myList)-1
    myList,pointer = popin(myList,pointer)
    printlist(myList, pointer)

结果是:

>>> main()
Enter a value: Dodge
The List is:  ['Ford', 'Toyota', 'Mustang', 'Dodge']
Pointer length:  3
The List length is:  4
The List printed properly:
0   Ford
1   Toyota
2   Mustang
3   Dodge
None

我真正的问题是......最后的 None 是什么?它从何而来?我该如何解决?

【问题讨论】:

  • Alex 已正确回答。只是我的两分钱:在 python 中,你几乎不需要遍历range(len(lst))。在您的情况下(在printlistpropertly 内),您可以简单地写:for i, e in enumerate(MyList): print (i, ' ', e)
  • popin() 应该做什么? pointer 变量的原因是什么?

标签: python python-3.x


【解决方案1】:

在函数printlist 中打印函数printlistproperly 的结果,它什么也不返回。因此你得到None。解决方案:只需调用printlistproperly(myList)(不带print)。

def printlist(myList, pointer):
    print("The List is: ", myList)
    print("Pointer length: ", pointer)
    print("The List length is: ", len(myList))
    print("The List printed properly:")
    printlistproperly(myList)

【讨论】:

  • “打印函数”,不,他打印函数的结果。那是完全不同的。
  • 我的 +1。如果一个函数不包含return something 命令或如果它包含不带参数的return,则它的行为方式与以return None 结尾的方式相同。
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 2015-12-06
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多