Python map() 函数遍历 'None' 元素
Python map() function iterates over 'None' element
我编写了一个简单的 map() 函数,它遍历一个列表并打印列表中尽可能多的“*”。我发现我的代码有一个小问题,我在输出中看到一个额外的 'None'
。有人可以帮我调试这个问题吗?
Problem Statement:
-----------------
Define a procedure histogram() that takes a list of integers and prints a
histogram to the screen. For example, histogram([4, 9, 7]) should print the
following:
****
*********
*******
源代码
def print_asterisks(num):
print ''.join('*' for i in xrange(num))
def histogram(s):
map(print_asterisks, s)
def main():
# Test inputs
print histogram([4,7,5])
if __name__ == "__main__":
import sys
sys.exit(main())
输出
****
*******
*****
None
这一行:
print histogram([4,7,5])
您正在打印 histogram
函数的 return 值,即 None
。你只需要调用函数:
histogram([4,7,5])
因为函数 histogram
没有返回任何东西。 print histogram([4,7,5])
打印 None
.
def print_asterisks(num):
print ''.join('*' for i in xrange(num))
def histogram(s):
map(print_asterisks, s)
def main():
# Test inputs
histogram([4,7,5])
if __name__ == "__main__":
import sys
sys.exit(main())
输出:
****
*******
*****
替换
def main():
# Test inputs
print histogram([4,7,5])
和
def main():
# Test inputs
histogram([4,7,5])
注意:函数 histogram
没有任何 return 语句。
写直方图([4,7,5]) 打印直方图([4,7,5])
def print_asterisks(num):
print ''.join('*' for i in xrange(num))
def histogram(s):
map(print_asterisks, s)
def main():
# Test inputs
histogram([4,7,5])
if __name__ == "__main__":
import sys
sys.exit(main())
我编写了一个简单的 map() 函数,它遍历一个列表并打印列表中尽可能多的“*”。我发现我的代码有一个小问题,我在输出中看到一个额外的 'None'
。有人可以帮我调试这个问题吗?
Problem Statement:
-----------------
Define a procedure histogram() that takes a list of integers and prints a
histogram to the screen. For example, histogram([4, 9, 7]) should print the
following:
****
*********
*******
源代码
def print_asterisks(num):
print ''.join('*' for i in xrange(num))
def histogram(s):
map(print_asterisks, s)
def main():
# Test inputs
print histogram([4,7,5])
if __name__ == "__main__":
import sys
sys.exit(main())
输出
****
*******
*****
None
这一行:
print histogram([4,7,5])
您正在打印 histogram
函数的 return 值,即 None
。你只需要调用函数:
histogram([4,7,5])
因为函数 histogram
没有返回任何东西。 print histogram([4,7,5])
打印 None
.
def print_asterisks(num):
print ''.join('*' for i in xrange(num))
def histogram(s):
map(print_asterisks, s)
def main():
# Test inputs
histogram([4,7,5])
if __name__ == "__main__":
import sys
sys.exit(main())
输出:
****
*******
*****
替换
def main():
# Test inputs
print histogram([4,7,5])
和
def main():
# Test inputs
histogram([4,7,5])
注意:函数 histogram
没有任何 return 语句。
写直方图([4,7,5]) 打印直方图([4,7,5])
def print_asterisks(num):
print ''.join('*' for i in xrange(num))
def histogram(s):
map(print_asterisks, s)
def main():
# Test inputs
histogram([4,7,5])
if __name__ == "__main__":
import sys
sys.exit(main())