2012-02-01 5 views
1

가능한 중복 변수 값을 지정 : 같은 기본적인 질문에 대해
Is there any way to do variable assignments directly inside a while(<here>) loop in Python?는 IF 또는 잠시 문에

죄송합니다. 나는 파이썬을 배우려고 노력하고 있지만 실제로 이것에 대한 답을 찾지 못했습니다.

파이썬에서 while 또는 if 문에 변수에 값을 할당 할 수 있습니까? 그렇다면 어떻게?

예를 들면. 나는이해야 할 일을했을 :

line_list = [] 
while True: 
    line = raw_input(">>> ") 
    if not line: break 
    line_list.append(line) 
print line_list 

을하지만이 일을하고 싶습니다 : 내가 찾고 있어요 튜토리얼이 어떤 식 으로든 언급하지 않는

line_list = [] 
while line = raw_input(">>> "): 
    line_list.append(line) 
print line_list 

, 그러나 이것은이다 다른 대부분의 언어에서 일반적인 구조.

+4

이 작업을 수행 할 수 없습니다. 그리고 당신이 검색하면, 당신이 처음 물어 보는 사람이 아니라는 것을 알게 될 것입니다. "대부분의 다른 언어에서 일반적인 구조"는 거짓입니다. C, C++ 및 C와 유사한 기능을 위해 특별히 고안된 언어에서는 일반적입니다. 그것은 * 대부분 * 아닙니다. –

답변

6

, 그러나 당신이 기본적으로 수행 할 수있는 변수는 A while 또는 if에 할당하는 것은 불가능 기능/감시 호출 형식 iter()를 사용하여 같은 일 :

for line in iter(lambda: raw_input(">>>"), ""): 
    line_list.append(line) 
+0

니스, 나는이 구조에 대해 몰랐다! – kindall

7

그건 불가능합니다. Python의 Assignments은 표현식이 아닌 명령문입니다.

다른 언어에서 일반적으로 사용되는 것처럼 할당 된 값으로 평가하지 않으며 할당 된 개체에 대한 참조도 반환하지 않습니다.

프레데릭의 대답에서 알 수 있듯이
0

당신 돈 while 루프를 사용하고 싶지 않습니다! 일부 입력이 입력되고 "입력"을 누르면 목록에 무한히 추가됩니다.

물론
while 1: 
    line = raw_input(">>> ") 
    if line: 
     line_list.append(line) 

는이 같은 일이 아니지만, 지금까지 내가 말할 수있는, 당신이 원하는 것을 위해 작동합니다

이 작동합니다.