powpython
1. python中的pow函數
#pow()方法返回 xy(x的 y次方)的值。
import math
print(math.pow( 2, 8 ))
# 256.0
2. Python問題 pow(x,y)和math pow(x,y的區別
在兩個浮點參數的情況下,Python的內置pow(x, y)(沒有第三個參數)和返回的值返回的結果是否有差異。
因為math.pow()暗示pow(x, y)(例如x**y)在本質上是一樣的math.pow(x, y):
math.pow(x,y)返回x上升到冪y。特殊情況盡可能遵循C99標準的附錄'F'。特別是,即使x為零或NaN,pow(1.0,x)和pow(x,0.0)也總是返回1.0。如果x和y都是有限的,x是負的,y不是整數,則pow(x,y)是未定義的,並引發ValueError。
1. 內置函數pow()
>>> help(pow)
Help on built-in function pow in mole __builtin__:
pow(...)
pow(x, y[, z]) -> number
With two arguments, equivalent to x**y. With three arguments,
equivalent to (x**y) % z, but may be more efficient (e.g. for longs).
>>>
>>> pow(3,2) # 3**2
9
>>> pow(3,2,4)# (3**2)%4
1
2. math.pow()
>>> import math
>>> help(math.pow)
Help on built-in function pow in mole math:
pow(...)
pow(x, y)
Return x**y (x to the power of y).
>>> math.pow(3,2)
9.0
>>>
詳解如上,希望我的回答可以幫助到你
3. python中pow(x,y[,z])函數怎麼使用
你的語法有錯誤。
內置函數power(x, y[, z])中的x和y是必選參數,z是可選參數;如果使用了參數z,中括弧必須去掉,即power(x,y,z),其結果是x的y次方再對z求余數,但是這種方式比power(x,y) % z的執行效率要高。
你可以使用power(2, 4)或者power(2,4,3)。
power(2,4)=2的4次方=16;
power(2,4,3)=2的4次方再模上3=16 % 3=1。
4. python編寫用pow()函數計算球的體積
使用鍵盤輸入值並不是編輯表中值的唯一方式。在某些情況下,為了設置欄位值,可能要對單條記錄甚至是所有記錄執行數學計算。您可以對所有記錄或選中記錄執行簡單計算和高級計算。此外,還可以在屬性表中的欄位上計算面積、長度、周長和其他幾何屬性。以下各部分包括使用欄位計算器的若干示例。使用 Python、SQL 和 Arcade 執行計算。
本主題著重於基於 Python 的計算欄位示例。要了解有關 Arcade 表達式的詳細信息,請參閱 ArcGIS Arcade 指南。要了解有關 SQL 表達式的詳細信息,請參閱計算欄位。
註:
Python 強制將縮進作為語法的一部分。請使用兩個或四個空格來定義每個邏輯級別。將語句塊的開頭和結尾對齊並且保持一致。
Python 計算表達式欄位將使用驚嘆號 (!!) 括起。
命名變數時,請注意 Python 區分大小寫,因此 value 不同於 Value。
輸入語句後,如果想將其寫入文件,請單擊導出。導入按鈕將提示您查找和選擇一個現有的計算文件。
在表達式中應用任意 Python 函數。
訪問地理處理函數和對象。
訪問要素幾何的屬性。
訪問新的隨機值運算符。
使用 if-then-else 邏輯對值進行重分類。
面積測量單位關鍵字:
ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | SQUAREMAPUNITS | UNKNOWN
線性測量單位關鍵字:
CENTIMETERS | DECIMALDEGREES | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | POINTS | UNKNOWN | YARDS
簡單計算
僅通過一個短表達式就可以計算出多種計算結果。
簡單字元串示例
一系列 Python 字元串函數均支持使用字元串,包括 capitalize、rstrip 和 replace。
將 CITY_NAME 欄位中字元串的首字母大寫。
!CITY_NAME!.capitalize()
去掉 CITY_NAME 欄位中自字元串結尾起的所有空白區。
!CITY_NAME!.rstrip()
將 STATE_NAME 欄位中的「california」全部替換為「California」。
!STATE_NAME!.replace("california", "California")
在 Python 中,字元串欄位中的字元可以通過索引和分割操作進行訪問。索引操作將在索引位置提取字元,而分割操作則會提取一組字元。在下表中,假設 !fieldname! 是值為 "abcde" 的字元串欄位。
示例
說明
結果
!fieldname![0]
第一個字元
"a"
!fieldname![-2]
倒數第二個字元
"d"
!fieldname![1:4]
第二、三和四個字元
"bcd"
Python 也支持使用 format() 方法的字元串格式。
將合並後的 FieldA 和 FieldB 以冒號分隔開。
"{}:{}".format(!FieldA!, !FieldB!)
常見 Python 字元串操作
簡單數學示例
Python 提供了處理數字的工具。Python 也支持一些數值和數學函數,包括 math、cmath、decimal、random、itertools、functools 和 operator。
運算符
說明
示例
結果
x + y
x 加上 y
1.5 + 2.5
4.0
x - y
x 減去 y
3.3 - 2.2
1.1
x * y
x 乘以 y
2.0 * 2.2
4.4
x / y
x 除以 y
4.0 / 1.25
3.2
x // y
x 除以 y(向下取整除法)
4.0 // 1.25
3.0
x % y
x 模 y
8 % 3
2
-x
x 的負數表達式
x = 5
-x
-5
+x
x 不變
x = 5
+x
5
x ** y
以 x 為底,以 y 為指數的冪
2 ** 3
8
乘
!Rank! * 2
根據給定的半徑欄位計算球體的體積。
4.0 / 3.0 * math.pi * !Radius! ** 3
舊版本:
在 ArcGIS Pro 中,使用的是 Python 3,在 ArcGIS Desktop 中,使用的 Python 2。Python 2 使用的是整型數學計算,這就意味著兩個整型值相除將始終生成整型值 (3 / 2 = 1)。在 Python 3 中,兩個整型值相除將生成浮點型值 (3 / 2 = 1.5)。
Python 內置函數
Python 包含多個可用的內置函數,包括 max、min、round 和 sum。
Python 內置函數
通過欄位列表計算每條記錄的最大值。
max([!field1!, !field2!, !field3!])
通過欄位列表計算每條記錄的總和。
sum([!field1!, !field2!, !field3!])使用代碼塊
通過 Python 表達式和代碼塊參數可執行以下操作:
表達式類型
代碼塊
Python 3
支持 Python 功能。使用 Python 函數 (def) 表示代碼塊。在適當的情況下,幾何屬性將通過地理處理對象表示(如點對象)。
Arcade
支持 Arcade 功能。
SQL
支持 SQL 表達式。
執行 SQL 表達式可以更好地支持使用要素服務和企業級地理資料庫的計算,尤其是在性能方面。使用該表達式可以將單次請求設置為要素服務或資料庫,而不必一次執行一個要素或一行的計算。
舊版本:
在 ArcGIS Desktop 中,計算欄位工具支持 VB、PYTHON 和 PYTHON_9.3 表達式類型。VB 表達式類型,在某些產品中受支持,但在 64 位產品中不受支持,其中包括 ArcGIS Pro。
出於相後兼容性考量,ArcGIS Pro 中仍然支持 PYTHON 和 PYTHON_9.3 關鍵字,但是不會作為選擇列出。使用這些關鍵字的 Python 腳本將可繼續使用。
Python 3 表達式類型與舊版 PYTHON_9.3 關鍵字的唯一區別在於 Python 3 會將日期欄位中的值作為 Python datetime 對象返回。
註:
Python 3 表達式類型與隨 ArcGIS Pro 安裝的 Python 版本無關。這只是歷史上的第三個 Python 相關關鍵字(繼 PYTHON 和 PYTHON_9.3 之後。
各 Python 函數可通過 def 關鍵字定義,關鍵字後為函數名稱及函數的輸入參數。可編寫 Python 函數,使 Python 函數能夠接受任何數量的輸入參數(也可以沒有任何參數)。函數將通過 return 語句返回值。函數名稱可由您自行選取(不得使用空格,也不得以數字開頭)。
註:
如果函數未通過 return 語句顯式返回值,則函數將返回 None。
註:
請牢記,Python 強制要求將縮進作為語法的一部分。請使用四個空格來定義每個邏輯級別。將語句塊的開頭和結尾對齊並且保持一致。
代碼示例 - 數學
在使用以下數學示例時,請假設表達式類型為 Python 3。
將欄位的值四捨五入為保留兩位小數。
表達式:
round(!area!, 2)
通過 math 模塊將米轉換成英尺。以轉換值為底,以 2 為指數進行冪運算,然後再乘以 area。
表達式:
MetersToFeet((float(!shape.area!)))
代碼塊:
import math
def MetersToFeet(area):
return math.pow(3.2808, 2) * area通過 Python 邏輯計算欄位
可以使用 if、else 和 elif 語句將邏輯模式包含在代碼塊中。
按照欄位值進行分類。
表達式:
Reclass(!WELL_YIELD!)
代碼塊:
def Reclass(WellYield):
if (WellYield >= 0 and WellYield <= 10):
return 1
elif (WellYield > 10 and WellYield <= 20):
return 2
elif (WellYield > 20 and WellYield <= 30):
return 3
elif (WellYield > 30):
return 4代碼實例 - 幾何
除以下代碼示例外,請參閱下方的「幾何單位轉換」部分,以了解有關轉換幾何單位的詳細信息。
計算某要素的面積。
表達式:
!shape.area!
計算某要素的最大 x 坐標。
表達式:
!shape.extent.XMax!
計算某要素中的折點數。
表達式:
MySub(!shape!)
代碼塊:
def MySub(feat):
partnum = 0
# Count the number of points in the current multipart feature
partcount = feat.partCount
pntcount = 0
# Enter while loop for each part in the feature (if a singlepart
# feature, this will occur only once)
while partnum < partcount:
part = feat.getPart(partnum)
pnt = part.next()
# Enter while loop for each vertex
while pnt:
pntcount += 1
pnt = part.next()
# If pnt is null, either the part is finished or there
# is an interior ring
if not pnt:
pnt = part.next()
partnum += 1
return pntcount
將點要素類中每個點的 x 坐標平移 100。
表達式:
shiftXCoordinate(!SHAPE!)
代碼塊:
def shiftXCoordinate(shape):
shiftValue = 100
point = shape.getPart(0)
point.X += shiftValue
return point幾何單位轉換
幾何欄位的面積和長度屬性可通過用 @ 符號表示的單位類型進行修改。
註:
如果數據存儲在地理坐標系中且具有線性單位(例如英尺),則會通過測地線演算法轉換長度計算的結果。
警告:
轉換地理坐標系中數據的面積單位會生成不正確的結果,這是由於沿 globe 的十進制度並不一致。
計算某要素的長度(以碼為單位)。
表達式:
!shape.length@yards!
計算某要素的面積(以英畝為單位)。
表達式:
!shape.area@acres!
測地線面積和長度也可以通過帶 @(後跟測量單位關鍵字)的 geodesicArea 和 geodesicLength 屬性進行計算。
計算某要素的測地線長度(以碼為單位)。
表達式:
!shape.geodesicLength@yards!
計算某要素的測地線面積(以英畝為單位)。
表達式:
!shape.geodesicArea@acres!代碼實例 - 日期
日期和時間可使用 datetime 和 time 模塊進行計算。
計算當前日期。
表達式:
time.strftime("%d/%m/%Y")
計算當前日期和時間。
表達式:
datetime.datetime.now()
計算的日期為 2000 年 12 月 31 日。
表達式:
datetime.datetime(2000, 12, 31)
計算當前日期和欄位中的值之間的天數。
表達式:
(datetime.datetime.now() - !field1!).days
通過向欄位中的日期值添加 100 天來計算日期。
表達式:
!field1! + datetime.timedelta(days=100)
計算欄位中的日期值為一周中的周幾(例如,星期天)。
表達式:
!field1!.strftime('%A')代碼實例 - 字元串
可以使用多種 Python 編碼模式來完成字元串計算。
返回最右側三個字元。
表達式:
!SUB_REGION![-3:]
將所有大寫字母 P 替換為小寫字母 p。
表達式:
!STATE_NAME!.replace("P","p")
通過空格分隔符串連兩個欄位。
表達式:
!SUB_REGION! + " " + !STATE_ABBR!轉換為正確的大小寫形式
下列各例顯示的是轉換單詞的不同方法,這些方法可使每個單詞的首字母變為大寫、其餘字母變為小寫。
表達式:
' '.join([i.capitalize() for i in !STATE_NAME!.split(' ')])表達式:
!STATE_NAME!.title()正則表達式
Python 的 re 模塊提供了正則表達式匹配操作,可用於對字元串執行復雜的模式匹配和替換規則。
re - 正則表達式運算正則表達式的用法
使用單詞 Street 替換 St 或 St.,在字元串的末尾生成一個新單詞。
表達式:
update_street(!ADDRESS!)
代碼塊:
import re
def update_street(street_name):
return re.sub(r"""(St|St.)""",
'Street',
street_name)累加計算和順序計算
可以使用全局變數來進行累加計算和順序計算。
根據某間隔值計算順序 ID 或數字。
表達式:
autoIncrement()
代碼塊:
rec=0
def autoIncrement():
global rec
pStart = 1 # adjust start value, if req'd
pInterval = 1 # adjust interval value, if req'd
if (rec == 0):
rec = pStart
else:
rec = rec + pInterval
return rec
計算數值型欄位的累加值。
表達式:
accumulate(!FieldA!)
代碼塊:
total = 0
def accumulate(increment):
global total
if total:
total += increment
else:
total = increment
return total
計算數值型欄位的百分比增量。
表達式:
percentIncrease(float(!FieldA!))
代碼塊:
lastValue = 0
def percentIncrease(newValue):
global lastValue
if lastValue:
percentage = ((newValue - lastValue) / lastValue) * 100
else:
percentage = 0
lastValue = newValue
return percentage隨機值
可以使用 random 模塊來計算隨機值。
通過 numpy 站點包來計算 0.0 和 1.0 之間的隨機浮點值。
表達式:
getRandomValue()
代碼塊:
import numpy
def getRandomValue():
return numpy.random.random()
使用隨機模塊來計算 0 與 10 之間的隨機整數。
表達式:
random.randint(0, 10)
代碼塊:
import random計算空值
在 Python 表達式中,可通過 Python None 來計算空值。
註:
僅當該欄位為空時,才可以進行以下計算。
使用 Python None 計算空值。
表達式:
None相關主題
有關欄位計算的基礎知識
授權轉載:gisoracle
網課學習 + 權威結業證書
我們精心匯總了一些相對簡單
培訓考核通過便可獲取的證書
自然資源部職鑒中心發證
可用於招投標、資質系統
等
測繪師繼續教育20學時
中國測繪網新媒體中心
商務合作/微信 214979525
5. Python的pow函數
你的語法有錯誤。內置函數power(x, y[, z])中的x和y是必選參數,z是可選參數;如果使用了參數z,中括弧必須去掉,即power(x,y,z),其結果是x的y次方再對z求余數,但是這種方式比power(x,y) % z的執行效率要高。你可以使用power(2, 4)或者power(2,4,3)。 power(2,4)=2的4次方=16; power(2,4,3)=2的4次方再模上3=16 % 3=1。
6. python裡面pow()函數作用是什麼
pow()函數,是Python的內置函數,它計算並返回x的y次方的值。
import math
math.pow( x, y )
這個函數還有一個用法:
pow(x, y, z)
函數是計算 x 的 y 次方,如果 z 在存在,則再對結果進行取模,其結果等效於 pow(x,y) %z。
7. python中的pow函數不能用的
格式錯了,pow(x,y)含有兩個參數:
1.
如果要求解2的3次方,則pow(2,
3);
2.
而pow(2.2),只有一個參數2.2,如果是求解2的2次方,那麼用pow(2,
2);
3.
pow()函數也可以直接用**這個符號來表示,如2的3次方表示為2**3。
8. python中pow(x,y[,z])函數的使用
你的語法有錯誤。
內置函數power(x, y[, z])中的x和y是必選參數,z是可選參數;如果使用了參數z,中括弧必須去掉,即power(x,y,z),其結果是x的y次方再對z求余數,但是這種方式比power(x,y) % z的執行效率要高。
你可以使用power(2, 4)或者power(2,4,3)。
power(2,4)=2的4次方=16;
power(2,4,3)=2的4次方再模上3=16 % 3=1。
9. 2的n次方python代碼是什麼
Python中的n次方用pow()方法來表示。
語法:math.pow( x, y )。
內置的 pow() 方法pow(x, y[, z])。
函數是計算x的y次方,如果z在存在,則再對結果進行取模,其結果等效於pow(x,y) %z。
注意:pow() 通過內置的方法直接調用,內置方法會把參數作為整型,而 math 模塊則會把參數轉換為 float。
語言特點
1、優點:
簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠專注於解決問題而不是去搞明白語言本身。
易學:Python極其容易上手,因為Python有極其簡單的說明文檔 。
易讀、易維護:風格清晰劃一、強制縮進、用途廣泛
速度快:Python 的底層是用 C 語言寫的,很多標准庫和第三方庫也都是用 C 寫的,運行速度非常快。
免費、開源:Python是FLOSS(自由/開放源碼軟體)之一。使用者可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。
高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
可移植性:由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。
2、缺點:
單行語句和命令行輸出問題:很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序寫入一個py文件。
給初學者帶來困惑:獨特的語法,這也許不應該被稱為局限,但是它用縮進來區分語句關系的方式還是給很多初學者帶來了困惑。即便是很有經驗的Python程序員,也可能陷入陷阱當中。
運行速度慢:這里是指與C和C++相比。Python開發人員盡量避開不成熟或者不重要的優化。一些針對非重要部位的加快運行速度的補丁通常不會被合並到Python內。
所以很多人認為Python很慢。不過,根據二八定律,大多數程序對速度要求不高。在某些對運行速度要求很高的情況,Python設計師傾向於使用JIT技術,或者用使用C/C++語言改寫這部分程序。可用的JIT技術是PyPy。
以上內容參考網路-python