我正在尝试为我正在联系的人编写程序。我在for循环中尝试做的是打印通过循环传递的变量以及变量值。出于某种原因,当我在第一个循环中为各个变量“打印str(item)”时,没有打印任何内容。 “未知”打印,但不是变量名称。
在另一个for循环中,当我尝试将列表名称作为字符串运行时,我收到一条错误消息“TypeError:无法连接'str'和'list'对象”。我怎么能绕过这个?
如果不清楚,我要做的是打印变量名称和值
List= [Name, Company, Email, Work, Cell, Address]
Name = "Last, First"
Company = ""
Email = ""
Work = ""
Cell = ""
Address = ""
Todo = ['Do this']
Done = ['Did this']
Follow = ['Follow up on this day']
for item in List:
if item == "":
print str(item)+ "unknown"
else:
print item
print " "
for item in List1:
if len(item) == 0:
pass
else:
print str(item) + item
答案 0 :(得分:0)
你需要搬家:
List= [Name, Company, Email, Work, Cell, Address]
下面:
Name = "Last, First"
Company = ""
Email = ""
Work = ""
Cell = ""
Address = ""
Todo = ['Do this']
Done = ['Did this']
Follow = ['Follow up on this day']
否则它不知道那些变量类型是什么。至于试图打印变量的名称;这有点复杂。这是因为在进行for循环时,它们在该范围内采用名称“item”。因此,即使您使用inspect模块获取变量的名称,您最终也会将所有变量名称都设置为item。您可能想要使用的是Dictionary(如果您关心订单,则为OrderedDict)。它看起来像这样:
List = {"Name": Name, "Company": Company, "Email": Email, "Work": Work, "Cell": Cell, "Address": Address}
然后你可以修改你的循环:
for item in List:
if List[item] == "":
print item + " unknown"
else:
print item
同样作为一般惯例,将变量命名为它们的类型永远不是一个好主意。避免调用像List,Int,String等变量的东西。这是一种不好的做法,只会导致将来混乱。
答案 1 :(得分:0)
将List
放在Follow
之后;在将这些组件放入列表