我试图创建一个为数组生成3个变量的函数,以便可以在将要创建的任何其他函数中调用它。
第一个代码是:
details = open('a.txt').readlines()
for x in details:
host = x.split()[0]
user = x.split()[1]
passwd = x.split()[2]
print host + " --> " + user + " --> " + passwd
所以输出是:
python b.py
192.168.1.1->用户->密码
192.168.1.2->用户->密码
现在,如果我创建多个函数,那么我必须使用与创建的所有函数相同的代码,对吗?然后,我决定创建函数以从a.txt加载这些详细信息
现在,将发生以下情况:
def load_data():
global details,host,user,passwd
details = open('a.txt').readlines()
host = [x.split()[0] for x in details]
user = [x.split()[1] for x in details]
passwd = [x.split()[2] for x in details]
太好了,现在让我们在另一个函数中调用load_data并执行实际的函数:
def execute():
load_data()
print host
输出:
python b.py
['192.168.1.1','192.168.1.2']
我不明白为什么如果我在另一个函数中调用它并执行它,foreach(如PHP中的)为什么不起作用?
输出必须是:
192.168.1.1
192.168.1.2
可以请人帮我吗?(我是Python的初学者,因此请慢一点。)
谢谢!
您可以通过在需要循环host
,username
和password
领域,以获得他们的每一个单独的值。您只是打印出一个数组。
例如
def execute():
load_data()
for i in host:
print host
这将在新行中输出主机中的每个值。
如果您希望获得与原始程序完全相同的输出,则可以执行以下操作:
def execute:
load_data()
for i in range(len(host)):
print str(host[i]) + "-->" + str(user[i]) + "-->" + str(passwd[i])
请记住,这个假设host
,user
以及passwd
所有具有相同的长度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句