我正在尝试获取要写入文本文件的列表,添加到文件中的代码是这样的:
text_file = open("tim's diner menu.txt", "w")
menu = (["all day breakfast large, £5.50", "all day breafast small, £3.50", "hot dog, £3.00", "burger, £4.00", "cheese burger, £4.25", "chicken goujons, £3.50", "fries, £1.75", "salad, £2.20", "milkshake, £2.20", "soft drinks, £1.30", "still water, £0.90", "sparkling water, £0.90"])
def menu_rewrite():
for i in menu:
text_file.write (menu[i])
运行此函数时,出现错误:
TypeError: list indices must be integers or slices, not str
我想不出什么坏了,已经尝试了我能想到的一切来使它起作用,但是它没有起作用,你们能帮我吗?
答案 0 :(得分:0)
检查语法参考。 for
在这里不使用索引,括号()
用于元组...
menu = ["all day breakfast large, £5.50", "all day breafast small, £3.50", "hot dog, £3.00", "burger, £4.00", "cheese burger, £4.25", "chicken goujons, £3.50", "fries, £1.75", "salad, £2.20", "milkshake, £2.20", "soft drinks, £1.30", "still water, £0.90", "sparkling water, £0.90"]
def menu_rewrite():
for item in menu:
text_file.write(item)
答案 1 :(得分:0)
如果您写for i in menu
,则i
将menu
的所有值一个接一个,而不是它们的索引,因此您需要写text_file.write(i)
而不是{ {1}}。
答案 2 :(得分:0)
在您的代码中i
是str
更改为:
def menu_rewrite():
for i in menu:
text_file.write(i)
或
def menu_rewrite():
for i in range(len(menu)):
text_file.write(menu[i])
答案 3 :(得分:0)
我尝试了其中一些建议,但我认为它们做了一些事情,但现在又出现了另一个错误。感谢您对发布解决方案的所有人的帮助