python的絕對值
① python中,怎樣對列表中每一項求絕對值
可以使用map函數,map函數會對列表的每一個元素執行函數操作後返回一個新的函數。
map函數的一個參數是需要對每一個元素執行的操作,對於本問題就是求絕對值,可以通過內置abs()函數實現,第二個參數是列表。示常式序如下:
myList=[-1,2,-3,4,-5,6]
absList=map(abs,myList)#對於Python3.x需要用list函數對map的返回值轉換為列表
print(absList)
#[1,2,3,4,5,6]
② 用python輸入一個浮點數,討論該數為正數和負數兩種情況下絕對值的演算法
在Python中,我們可以使用內置的abs()函數來求浮點數的絕對值。但如果您希望了解正數和負數兩種情況下的演算法,我們可以分別討論。
首先,讓我們創建一個簡單的輸入,要求用戶輸入一個浮點數,並將其存儲在一個變數中:
pythonCopy codenumber = float(input("請輸入一個浮點數:"))
接下來,我們可以根據輸入的浮點數是正數還是負數來計算其絕對值。
當輸入的浮點數為正數時,絕對值等於該數本身。算遲困談法如下:
- pythonCopy codeif number >= 0:
- abs_value = number
當輸入的浮點數為負數時,絕對值等於該數的相反數。演算法如下:
- pythonCopy codeif number < 0:
- abs_value = -number
- pythonCopy codenumber = float(input("請輸入一個浮點碼碰數:"))if number >= 0:
- abs_value = numberelse:
- abs_value = -numberprint("該浮點數的絕對值為:", abs_value)
將上述代碼整合在一起,完整的Python程序如下:
此程序將接收用戶輸入的浮點數,判斷其正尺納負,然後計算其絕對值,並將結果輸出到屏幕上。
③ python中如何求一個數的絕對值
a=-12。
按照從左至右結合性和優先順序順序,先計算a-=a*a,最後a結果為a=a-a*a,a=3-3*3=-6;
再計算a+=-6,因為此時a的值已經變成了-6,所以計算過程是a=a+(-6)=-6-6=-12。
或:
a+=a-=a*a;
復合賦值表達式,從右到左運行,可以分拆成:
a-=a*a;
a+=a;
a的原值為3
a-=a*a;
相當於
a=a-a*a=3-3*3=-6;
再運行
a+=a;
自然就成了-12
(3)python的絕對值擴展閱讀:
任務的優先順序等級與相對截止期、空閑時間之間的層次關系可以用一種線性關系來描述,比如,
di+ksj=g
其中,k為線性關系的斜率,g 可以看成是優先順序等級。對於確定的斜率k,g 越小,優先順序等級越高。比如,對於g1<g2,滿足di+ksj=g1的任務優先順序要高於滿足di+ksj=g2的任務優先順序。圖中帶箭頭的斜向上直線表示一種不同等級的排序,越往左上,等級越高。
④ 【python】數組中絕對值最小的數
題目:有一個升序的數組,數組中可能有正數、負數或者0,求數組中元素的絕對值最小的數。例如,數組[-10, -5, -2, 7, 15, 50],該數組中絕對值最小的數是-2。
分析:二分法。該題可分為以下三種情況:
(1)如果數組第一個元素為非負數,那麼minNum = arr[0]
(2)如果數組最後一個值為負數,那麼minNum = arr[-1]。
(3)如果數組中既有正數又有負數,首先找到正數與負數的分界點,如果分界點恰好為0,那麼0為最小值。否則通過比較分界點左右的正數與負數的絕對值來確定最小數。
如何查找正數與負數的分界點呢?採用二分法,主要思路:取數組中間位置的值a[mid],並將它與0值比較,比較結果分為如下三種情況:
(1)如果a[mid] == 0,那麼這個數就是絕對值最小的數。
(2)如果a[mid] > 0,a[mid - 1] < 0,那麼通過比較a[mid]與a[mid - 1]的絕對值就可以找到數組中絕對值最小的數;如果a[mid - 1] == 0, 那麼a[mid - 1]就是要找的數;否則接著在數組的左半部分查找。
(3)如果a[mid] < 0,a[mid + 1] > 0,那麼通過比較a[mid]與a[mid +1]的絕對值就可以找到數組中絕對值最小的數;如果a[mid + 1] == 0, 那麼a[mid + 1]就是要找的數;否則接著在數組的右半部分查找。
code:
def findMinNum(arr):
if arr is None or len(arr) <= 0:
return
# [1] 數組中沒有負數
if arr[0] >= 0:
return arr[0]
# [2] 數組中沒有正數
if arr[-1] <= 0:
return arr[-1]
# [3] 數組中既有正數又又負數
mid = None
absMin = None
begin = 0
end = len(arr) - 1
while begin < end:
mid = begin + (end - begin) >> 1
# 如果arr[mid] == 0,則是絕對值最小的數
if arr[mid] == 0:
return 0
# 如果大於0, 正負數的分界點在左側
elif arr[mid] > 0:
# 繼續在數組的左半部分查找
if arr[mid - 1] > 0:
end = mid - 1
elif arr[mid - 1] == 0:
return 0
# 找到正負數的分界點
else:
break # 如果小於0, 在數組右半部分查找
else:
# 在數組的右半部分繼續查找
if arr[mid + 1] < 0:
begin = mid + 1
elif arr[mid + 1] == 0:
return 0
else:
break
# 獲取正負數分界點處絕對值最小的值
if (arr[mid] > 0):
if arr[mid] < abs(arr[mid - 1]):
absMin = arr[mid]
else:
absMin = arr[mid - 1]
else:
if abs(arr[mid]) < abs(arr[mid + 1]):
absMin = arr[mid]
else:
absMin = arr[mid + 1]
return absMin
if __name__ == "__main__":
arr = [-10, -5, -2, 7, 15, 50]
print(findMinNum(arr))
⑤ python 3.x編程求實數x的絕對值
參數,x--數值表達式,返回值,函數返回x(數字)的絕對值。
Python的3.0版本,常被稱為Python3000,或簡稱Py3k相對於Python的早期版本,這是一個較大的升級為了不帶入過多的累贅,Python3在設計的時候沒有考慮向下相容許多針對早期Python版本設計的程式都無法在Python3上正常執行。
Python2默認編碼是ASCII,在使用Python2的過程中經常會遇到編碼問題,當時因為Python語言還沒使用Unicode,所以使用ASCII作為默認編碼Python3默認編碼是Unicode(utf-8),也就不需要在文件頭部寫#coding=utf-8。
⑥ Python 輸入兩個整數a和b,求a-b的絕對值
#!envpython
#-*-coding:utf-8-*-
a=input("a:")
b=input("b:")
print(abs(int(a)-int(b)))
運行結果: