额外的价值 'None' 被打印出来,我不知道为什么
Extra value 'None' being printed out and I don't know why
我正在尝试使用两个函数来解析 XML 文档,一个用于解析 header,另一个用于解析数据。而且我在每个函数打印输出的末尾不断得到一个 'None' 值。我不知道为什么会这样。
如有任何帮助或建议,我们将不胜感激。谢谢。
XML 文件:
<datafile>
<header>
<name>header_name</name>
</header>
<game name="game_name">
</game>
</datafile>
代码:
import xml.etree.ElementTree as ET
def parse_header(file):
tree = ET.parse(file)
root = tree.getroot()
for header in root.iter('header'):
for name in header.iter('name'):
if name.text is not None:
print(name.text)
def parse_games(file):
tree = ET.parse(file)
root = tree.getroot()
for game in root.iter('game'):
for key, value in game.items():
if value is not None:
print(value)
print(parse_header('test.dat'))
print(parse_games('test.dat'))
输出:
header_name
None
game_name
None
在 Python 中没有显式 returning 值 return None
的函数,因此主程序中的两个 print
调用最终打印 None
s 因为他们正在打印 return None
s 隐含的功能。
变化:
print(parse_header('test.dat'))
print(parse_games('test.dat'))
至:
parse_header('test.dat')
parse_games('test.dat')
我正在尝试使用两个函数来解析 XML 文档,一个用于解析 header,另一个用于解析数据。而且我在每个函数打印输出的末尾不断得到一个 'None' 值。我不知道为什么会这样。
如有任何帮助或建议,我们将不胜感激。谢谢。
XML 文件:
<datafile>
<header>
<name>header_name</name>
</header>
<game name="game_name">
</game>
</datafile>
代码:
import xml.etree.ElementTree as ET
def parse_header(file):
tree = ET.parse(file)
root = tree.getroot()
for header in root.iter('header'):
for name in header.iter('name'):
if name.text is not None:
print(name.text)
def parse_games(file):
tree = ET.parse(file)
root = tree.getroot()
for game in root.iter('game'):
for key, value in game.items():
if value is not None:
print(value)
print(parse_header('test.dat'))
print(parse_games('test.dat'))
输出:
header_name
None
game_name
None
在 Python 中没有显式 returning 值 return None
的函数,因此主程序中的两个 print
调用最终打印 None
s 因为他们正在打印 return None
s 隐含的功能。
变化:
print(parse_header('test.dat'))
print(parse_games('test.dat'))
至:
parse_header('test.dat')
parse_games('test.dat')