my'中的python语法无效;对于';环

my'中的python语法无效;对于';环,python,csv,syntax,Python,Csv,Syntax,函数citypop()返回一个dict,其中(城市,州)作为键,该城市(该州)的人口作为值 我一直遇到语法错误。。我是否没有正确理解csv模块 编辑:谢谢你们的帮助……这应该可以,但现在我突然发现了错误 def citypop(): import csv F = open("Top5000Population.txt") csvF = csv.reader(F) D = {} with

函数
citypop()
返回一个dict,其中
(城市,州)
作为键,该城市(该州)的人口作为值

我一直遇到语法错误。。我是否没有正确理解csv模块

编辑:谢谢你们的帮助……这应该可以,但现在我突然发现了错误

def citypop():
  import csv                                  
  F = open("Top5000Population.txt")           
  csvF = csv.reader(F)
  D = {}
  with csvF for row in csvF:
      city,state,population = row[0],row[1],row[2] 
      population = population.replace(',','') 
      population = int(population)
      city = city.upper()[:12]
      D[(city, state)] = population
  return D

当我运行测试用例时。。。。有什么建议吗?

我想你误解了Python的建议。制作第6行:

 for city, state, population in reader(F):       File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/encodings/ascii.py", line 26, in decode         return codecs.ascii_decode(input, self.errors[0]) UnicodeDecodeError: 'ascii' codec can't decode byte 0xa4 in position 7062: ordinal not in range(128)  
应该可以解决这个问题


作为参考,
with
语句与C#中的
use
语句基本相同;它声明了一个资源的作用域,当您使用它时,您需要卸载或释放它。

我认为您误解了Python的作用域。制作第6行:

 for city, state, population in reader(F):       File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/encodings/ascii.py", line 26, in decode         return codecs.ascii_decode(input, self.errors[0]) UnicodeDecodeError: 'ascii' codec can't decode byte 0xa4 in position 7062: ordinal not in range(128)  
应该可以解决这个问题


作为参考,
with
语句与C#中的
use
语句基本相同;它声明了一个资源的作用域,当您使用该资源时,您需要卸载或释放该资源。

当尝试使用with语句时,您的意思是这样的-在这种情况下,文件将在其下保留代码后立即关闭:

for row in csvF:
或:


当您尝试使用with语句时,您的意思是-在这种情况下,文件将在其下保留代码后立即关闭:

for row in csvF:
或:


解释器说语法错误在哪里?它突出显示了第6行中的“for”一词,您不需要在该行中使用csvF
。csvF:
中的行应该是
。您需要的是
将open(“Top5000Population.txt”)作为F:
。解释器说语法错误在哪里?它在第6行突出显示“for”一词,您不需要在该行中使用csvF
。对于csvF:中的行,它应该是
。您需要的是
将open(“Top5000Population.txt”)作为F: