2012-05-15 2 views
0

파이썬에서 초보자와 나는이 간단한 코드를 작성했지만 내가 확인할 수 없습니다 :(파이썬 버그 나 오류가

누군가가 나를 도울 수 제발 몇 가지 오류가?가

//initialization 
str = None 
var = None 

def setvar(val): 
""" Sets the global variable "var" to the value in 'val' """ 
if val: 
print "setting variable 'var' to '$val'" // we want to print the value of 'val' 
else: 
print "un-setting variable 'var'" 

var = val 
return 

if __name__ == 'main': 
    try: 
    setvar(" hello world! ") // use this function to set the 'var' variable 
    var.strip() // we want the leading and trailing spaces removed 
    print str(var) 
    except: 
    print "something went wrong" 
+3

어떤 종류의 오류가 발생하고 있습니까? 여기에 들여 쓰기 오류가있어이 코드가 즉시 유효하지 않게됩니다. 이러한 복사 및 붙여 넣기 오류가있는 경우 코드를 수정하고 코드를 다시 게시해야합니다. – larsks

+1

// python에서 주석이 아닙니다 # 주석에 사용되었습니다 –

+1

왜 // 사용할 수 있는지 (실제 코드에서 사용해야합니까) # – loki

답변

4

코드 샘플에 몇 가지 문제가 있습니다.

먼저 질문을 할 때 들여 쓰기가 충실하다고 가정하면 모두 틀립니다. setvar의 본문은 def에서 들여 쓰기되어야합니다. PEP 지침에 따라 각 들여 쓰기 수준에 4 개의 공백을 사용하십시오.

두 번째로, 파이썬의 주석 표시는 //이 아닌 #입니다.

다음으로 함수 내의 전역 변수에 영향을 주려면이를 표시해야합니다.

넷째, var.strip()은 새 값을 반환하지만 제자리에서 작동하지 않습니다. 이 스크립트를 실행하는 경우

또한, __name__의 값은 그 상황에서 __main__보다는 main을 할 것이다.

마지막으로 str을 null 변수로 설정하여 함수처럼 호출 할 수 없습니다.

다음 작품 잘 : 나 문제가되지 않을 수도 있습니다

# initialization 
var = None 

def setvar(val): 
    """ Sets the global variable "var" to the value in 'val' """ 
    global var 
    if val: 
     print "setting 'var' to '$val'" # we want to print the value of 'val' 
    else: 
     print "un-setting 'var'" 

    var = val 
    return 

if __name__ == '__main__': 
    try: 
     setvar(" hello world! ") # use this function to set the 'var' variable 
     var = var.strip() # we want the leading and trailing spaces removed 
     print str(var) 
    except: 
     print "something went wrong" 

한가지. val 인 첫 번째 print 문에 인쇄하려면 $val을 사용하지 마십시오. 대신, 같은 수 : 그래, 난 당신이 하나의 값 주위에하지 필요 괄호을 알고,

print "setting variable 'var' to '%s'"%(val) 

을 그리고, 그게 내가 기억해야 내 코딩 스타일, 한 적은 것입니다 :

print ("setting variable 'var' to '%s'" % val) # we want to print the value of 'val' 

을 그리고 '#'로 시작 논평 : - 당신은 펄 또는 PHP에서처럼 example.You 이렇게 할 경우)

+0

나는 해냈어. 그리고 그것은 잘보다는 잘 작동한다 !!: D 감사합니다 남자 :) – slimoss

1

당신은 파이썬에서 문자열 내부 변수 이름을 사용할 수 없습니다.

+0

안녕하세요 @ 세라믹 냄비, 나는 당신이 말한 것을했는데 나는 여전히이 오류가 있습니다 : 13 행의 5 열에서 "인쇄"가 발생했습니다 : "" – slimoss

+0

코드의 들여 쓰기가 잘못되었습니다. paxdiablo의 대답을보십시오. –