python如何定義坐標?

def coordinate(x,y):
if x&>0:
if y&>0:
a = 1
else:
a = 2
else:
if y&>0:
a = 3
else:
a = 4

print 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就行了-&>_-&>


推薦閱讀:

1.3從零開始學Scrapy爬蟲之python編碼問題
pandas操作——合併數據集

TAG:Python | 函數式編程 | Python入門 |