我对编程很新,并一直在寻找答案,但我想我在搜索中一直在问错误的问题。
基本上,我试图将.csv文件中的字符串解释为变量以用作参数。
无论如何,我有以下代码:
a = libtcod.Color(0, 176, 240)
b = libtcod.Color(100, 155, 200)
c = libtcod.Color(80, 055, 100)
def create_room(x, y, color):
pass
y = 1
with open('Map.txt') as csvfile:
readCSV = csv.reader(csvfile, delimiter = ',')
for row in readCSV:
x = 1
for column in row:
create_room(x, y, color)
x += 1
y += 1
通过.csv文件运行,并为文件中的每个x和y值提供列字符串。
因此,如果.csv文件读取' a,b,c',我想调用create_room(1,1,a),create_room(2,1,b)和create_room(3) ,1,c)。
相反,我认为我正在调用create_room(1,1,' a'),create_room(2,1,' b')和create_room(3,1,&# 39; c'),它没有给我我想要的东西。
这看起来应该很容易解决,但我要么找不到答案,要么找不到答案但是没有意识到这一点,嘿嘿(再次,我对蟒蛇和一般编程。)
任何帮助将不胜感激!
答案 0 :(得分:0)
您应该创建一个字典,而不是名为a
,b
和c
的三个变量。这样,您可以查找字符串'a'
,'b'
和'c'
以获取各自的值:
#Initialize a dictionary with the appropriate values
color_lookup = {
'a': libtcod.Color(0, 176, 240),
'b': libtcod.Color(100, 155, 200),
'c': libtcod.Color(80, 055, 100)
}
#Then call create_room like this
create_room(x, y, color_lookup[color])