2010-07-20 2 views
0

왜 파이썬에서 if 문으로 다중 할당을 할 수 없습니까? 누락 된 구문이 있습니까?'if'문에서 다중 할당

나는이하고 싶은 :

files = ["file1", "file2", "file3"] 

print "\nThe following files are available: \n" 

i = 0 
for file in files: 
    i = i + 1 
    print i, file 

choice = int(raw_input("\Enter a file number: ")) 

if choice ==1: 
    file = np.genfromtxt(files[0], usecols = (1,2,3), dtype = (float), delimiter = '\t') 
    time = np.genfromtxt(files[0], usecols = (0), dtype = (str), delimiter = '\t') 

print time 

시간이 내 if 문 밖에서 정의를이 같은 선택 변경을 변경하지 않도록 ... 도대체가?

+2

'time'과 같이해야합니다, 당신은 1 제외한 모든 다른 선택의 여지를 사용하지 않는 및 선택 1없는 경우는 오류를 줄 것이다는 이후 파이썬에서 가난한 변수 이름입니다 'time' 모듈의 그림자가 ... – ChristopheD

+0

입력과 출력은 무엇입니까? –

+0

사실 그것은 예제의 수단을 제공하는 것이지만 미리 알림을 보내 주셔서 감사합니다. – lollygagger

답변

1

변수 파일과 시간은 모두 if 문보다 높은 블록 레벨에서 정의해야합니다.

"시간"은 파이썬 모듈의 이름이므로주의하십시오. 이 이름의 변형을 사용해야합니다 (예 : time_).

0

당신이 코드는이

choice = int(raw_input("\Enter a file number: ")) 
choice -= 1 # array index is from 0 

if choice < 0 or > 2: 
    print "Enter correct choice" 
    sys.exit() 

file = np.genfromtxt(files[choice], usecols = (1,2,3), dtype = (float), delimiter = '\t') 
time = np.genfromtxt(files[choice], usecols = (0), dtype = (str), delimiter = '\t') 
+0

괜찮 았어, 그건 코드의 단 하나의 섹션 이었어 ... 나는 왜 if 문 아래에 하나 이상의 변수를 할당 할 수 없는지 알고 싶었다. – lollygagger