python如何定義坐標?
def coordinate(x,y):
if x&>0:
if y&>0:
a = 1
else:
a = 2
else:
if y&>0:
a = 3
else:
a = 4print Please insert X,Y
print Please insert X
x = input()
print Please insert Y
y = input()
coordinate(x,y)
print a
思路簡述:我想創建一個關於坐標的函數,分別輸入X,Y後,判斷是第幾象限。
通過a來判斷a=1 則為第一象限以此類推 但是a卻沒被賦值,求大神指點
你的這個a是coordinate函數的局部變數,作用域僅限於函數體內,外邊訪問不到。可以在函數體內聲明global a來將a提升為全局變數。
不過你應該直接用coordinate函數的返回值指定象限。來個風騷版的。
def coordinate(x, y):
return {
(True, True ) : 1,
(True, False) : 2,
(False, True ) : 3,
(False, False) : 4
}[(x &> 0, y &> 0)]
if __name__ == "__main__":
print Please insert X,Y
x = input(Please insert X)
y = input(Please insert Y)
print coordinate(float(x), float(y))
題主的問題 你那個函數裡面的a是局部變數 你可以把a作為返回值直接返回,然後用a=coordinate(x,y)
或者把a聲明到全局去。。然後這個代碼可以變成這樣(跑)
c = lambda x,y: ((x&>0)^(y&>0))+((y小於0)小於小於1)+1知乎小於號和你多大仇
還有不要黑我們家BASIC,這明明是JavaScript的錯。
def coordinate(x, y):
return ((x &> 0 and y &> 0) and 1) or (int(x &> 0) - int(y &> 0) + 3)
(逃
可以改成這樣
def coordinate(x, y):
if x&>0:
if y&>0:
a = 1
else:
a = 2
else:
if y&>0:
a = 3
else:
a = 4
return a #根據x,y返回a
if __name__ == "__main":
print Please insert X,Y
x = input(Please insert X)
y = input(Please insert Y)
print coordinate(x,y)
把 a=x 的地方改成 return x
然後print coordinate(x,y)
在函數裡面盡量不要去修改全局變數用返回值來體現函數作用的結果別聽他們的,函數裡面加個 global a就行了-&>_-&>
推薦閱讀: