⑴ 怎麼用python計算一元函數
寫個例子吧,需要安裝numpy數學庫
#!/usr/bin/python
import
numpy
as
np
#求解方程x^2+2x+1=0的根
#方程參數列表抽象成一下形式:
arg=[1,
2,
1]
#求解
np.roots(args)
運行即可求解了,如果沒有實根會給虛根的結果
⑵ 如何用Python編寫代碼在Word中實現帶公式計算過程的計算書
1、打開idle。點擊file,然後點擊new file 這是創建一個新的文件。新建...
答:1、打開idle。點擊file,然後點擊new file.這是創建一個新的文件。 新建一個文件之後,我們輸入第一行代碼,使用print函數,在屏幕上列印一句話,其中字元串要使用雙引號,輸入法要使用英文輸入法,如果符號使用中文輸入法輸入,就會出現錯誤。p...
2020-11-17回答者:環球青藤1個回答
pythonsympy中生成的公式怎麼粘到word里
答:右鍵選 show math as→mathML Code 全選復制,在word中右鍵以文本形式粘貼
2018-01-27回答者:夜歌在路上2個回答
如何使用python提取並處理word文檔中插入的mathtyp...
答:我沒做過,只能提供大概思路給你。這是mathtype的SDK:,裡面關於API的描述: MathType API Documentation The MathType API allows you to call functions used by the MathType Commands ForWord. On Windows, this API is split between MathP...
2017-10-03回答者:天天不看java1個回答
如何用python寫這個代碼
問:使用兩個參數定義一個名為dictionaryToListOfValues的函數。 此函數的第...
答:使用Python自帶的IDLE 在開始-->程序-->Python2.5(視你安裝的版本而不同)中找到IDLE(Python GUI)。 點擊後彈出如下窗體: 1,在>>>提示符後輸入代碼,回車,就可以執行此代碼。 IDLE支持語法高亮,支持自動縮進,支持方法提示,不過提示的很慢。...
2019-10-17回答者:司馬刀劍2個回答3
如何用python編寫計算器
答:我想你的需求應該是一個圖形界面的程序,而不是簡單的在命令行上輸入。 那麼,要做的第一件事就是選擇一個圖形界面套件。可以使用原生的TK,也可以用跨平台性能很好的wxPython,或者是整體結構很像MFC的PyWin32。至於pyGTK,pyQT,都是可選的,但...
2011-05-30回答者:碧藍右耳3個回答6
用Python編寫代碼1×2×3+4×5×6+7×8×9+++···99×100×1...
答:t=1 for i in range(1,102): t*=i print(t)
2020-04-05回答者:知道網友1個回答2
python如何識別docx中的公式
答:import fnmatch, os, sys, win32com.client readpath=r'D:123'wordapp = win32com.client.gencache.EnsureDispatch("Word.Application") try: for path, dirs, files in os.walk(readpath): for filename in files: if not fnmatch.fnmatch(fi...
2016-07-09回答者:知道網友1個回答2
如何用Python代碼運行Word中的VBA
問:請問有什麼好的辦法用Python代碼運行Word中的VBA嗎, 具體需要import哪...
答:安裝pypiwin32 import win32com.client app= win32com.client.Dispatch("word.Application") app.Workbooks.Open("宏代碼所在文件路徑") app.Application.Run("宏名稱") app.Application.Quit()
2019-08-31回答者:娘化的新世界1個回答
用Python寫一個,兩個數的加,減,乘,除的函數,...
答:我課程中的部分代碼(除沒寫): def f_add(a,b): return a+bdef f_mul(a,b): return a*bdef f_sub(a,b): return a-b def g1(f,a,b): return f(a,b)a,b,c,d = 1,2,3,4print g1(f_sub, g1(f_mul, g1(f_add,a,b), c), d), g1(f_mul, g1(f_add,a,b)...
2017-11-21回答者:黑板客1個回答4
python編寫2個函數代碼,實現求最小公倍數和最大公...
問:使用兩個函數實現,最小公倍數和最大公約數
答:def gcd(a, b): # 求最大公約數 x = a % b while (x != 0): a, b = b, x x = a % b return bdef lcm(a,b): # 求最小公倍數 return a*b//gcd(a,b) 程序縮進如圖所示
⑶ 用Python寫一個,兩個數的加,減,乘,除的函數,然後用這些函數,完成簡單的計算,怎麼寫
我課程中的部分代碼(除沒寫):
deff_add(a,b):
returna+b
deff_mul(a,b):
returna*b
deff_sub(a,b):
returna-b
defg1(f,a,b):
returnf(a,b)
a,b,c,d=1,2,3,4
printg1(f_sub,g1(f_mul,g1(f_add,a,b),c),d),g1(f_mul,g1(f_add,a,b),g1(f_sub,c,d))
對python感興趣可以到這里了解一下:
study.163.com/course/courseMain.htm?courseId=1000035
⑷ 怎麼用python寫出四個數的求和還有他們的平均值
如下:
s = [1, 2, 3, 4]
print(sum(s), sum(s)/len(s)) # 10 2.5
在 Python 標准庫中,有專門的數學統計函數,就在 statistics 模塊裡面。該模塊提供了用於計算數字 (Real-valued) 數據的數理統計量的函數。
此模塊並不是諸如 NumPy , SciPy 等第三方庫或者諸如 Minitab , SAS , Matlab 等針對專業統計學家的專有全功能統計軟體包的競品。此模塊針對圖形和科學計算器的水平。
當然,除了專業的第三方庫和 Python 標准庫,按照我們中小學時學的知識,加上 Python 的運算符知識也能使用 Python 寫出求和和平均值。
Python由荷蘭數學和計算機科學研究學會的Guido van Rossum於1990 年代初設計,作為一門叫做ABC語言的替代品。
Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。
Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。
Python 也可用於可定製化軟體中的擴展程序語言。Python豐富的標准庫,提供了適用於各個主要系統平台的源碼或機器碼。
2021年10月,語言流行指數的編譯器Tiobe將Python加冕為最受歡迎的編程語言,20年來首次將其置於Java、C和JavaScript之上。
⑸ 2 如何用Python進行數據計算
numpy計算平均數 標准差 相關系數等基本知識
NumPy 是python 語言的一個第三方庫,其支持大量高維度數組與矩陣運算。此外,NumPy 也針對數組運算提供大量的數學函數。
#導入Numpy庫,並命名為np
import numpy as np
#創建一維數組
a = np.array([1, 2, 3])
# NumPy可以很方便地創建連續數組,比如我使用arange或linspace函數進行創建:
b = np.arange(1,5,1) // 返回一個有終點和起點、固定步長的排列,如起點是1,終點是4,步長為1,即【1,2,3,4】,
c = np.linspace(1,9,5) 返回一個有終點和起點、元素個數的的排列,如起點是1,終點是9,元素個數為5,即【1,3,5,7,9】
#通過NumPy可以自由地創建等差數組,同時也可以進行加、減、乘、除、求n次方和取余數。
求和:np.sum(a)
求取平均值:np.mean(a)
求取中位數:np.median(a)
求取加權平均數:np.average(a)
求取方差:var() np.var(a)
求取最小值:np.amin(a)
求取最大值:np.amax(a)
將兩個數相加:np.add(x1, x2)
將兩個數相減:np.subtract(x1, x2)
將兩個數相乘:np.multiply(x1, x2)
將兩個數相除:np.divide(x1, x2)
立方:np.power(x1, x2)
除余:np.remainder(x1, x2)
相關系數計算:np.corrcoef(a1, a2) (a1、a2都是矩陣)
⑹ python中如何進行開方運算
1、python中使用pow函數求n的n方根。首先打開python的編輯器,新建一個python 3的文件:
⑺ python 基礎教程
運算
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c = a - b
print "2 - c 的值為:", c
c = a * b
print "3 - c 的值為:", c
c = a / b
print "4 - c 的值為:", c
c = a % b
print "5 - c 的值為:", c
a = 2
b = 3
c = a**b
print "6 - c 的值為:", c
a = 10
b = 5
c = a//b
print "7 - c 的值為:", c
python比較
a = 21
b = 10
c = 0
if ( a == b ):
print "1 - a 等於 b"
else:
print "1 - a 不等於 b"
if ( a != b ):
print "2 - a 不等於 b"
else:
print "2 - a 等於 b"
if ( a <> b ):
print "3 - a 不等於 b"
else:
print "3 - a 等於 b"
if ( a < b ):
print "4 - a 小於 b"
else:
print "4 - a 大於等於 b"
if ( a > b ):
print "5 - a 大於 b"
else:
print "5 - a 小於等於 b"
a = 5
b = 20
if ( a <= b ):
print "6 - a 小於等於 b"
else:
print "6 - a 大於 b"
if ( b >= a ):
print "7 - b 大於等於 a"
else:
print "7 - b 小於 a"
賦值
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c += a
print "2 - c 的值為:", c
c *= a
print "3 - c 的值為:", c
c /= a
print "4 - c 的值為:", c
c = 2
c %= a
print "5 - c 的值為:", c
c **= a
print "6 - c 的值為:", c
c //= a
print "7 - c 的值為:", c
邏輯運算符:
a = 10
b = 20
if ( a and b ):
print "1 - 變數 a 和 b 都為 true"
else:
print "1 - 變數 a 和 b 有一個不為 true"
if ( a or b ):
print "2 - 變數 a 和 b 都為 true,或其中一個變數為 true"
else:
print "2 - 變數 a 和 b 都不為 true"
a = 0
if ( a and b ):
print "3 - 變數 a 和 b 都為 true"
else:
print "3 - 變數 a 和 b 有一個不為 true"
if ( a or b ):
print "4 - 變數 a 和 b 都為 true,或其中一個變數為 true"
else:
print "4 - 變數 a 和 b 都不為 true"
if not( a and b ):
print "5 - 變數 a 和 b 都為 false,或其中一個變數為 false"
else:
print "5 - 變數 a 和 b 都為 true"
in,not in
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "1 - 變數 a 在給定的列表中 list 中"
else:
print "1 - 變數 a 不在給定的列表中 list 中"
if ( b not in list ):
print "2 - 變數 b 不在給定的列表中 list 中"
else:
print "2 - 變數 b 在給定的列表中 list 中"
a = 2
if ( a in list ):
print "3 - 變數 a 在給定的列表中 list 中"
else:
print "3 - 變數 a 不在給定的列表中 list 中"
條件
flag = False
name = 'luren'
if name == 'python': # 判斷變數否為'python'
flag = True # 條件成立時設置標志為真
print 'welcome boss' # 並輸出歡迎信息
else:
print name
num = 5
if num == 3: # 判斷num的值
print 'boss'
elif num == 2:
print 'user'
elif num == 1:
print 'worker'
elif num < 0: # 值小於零時輸出
print 'error'
else:
print 'roadman' # 條件均不成立時輸出
循環語句:
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
print "Good bye!"
i = 1
while i < 10:
i += 1
if i%2 > 0: # 非雙數時跳過輸出
continue
print i # 輸出雙數2、4、6、8、10
i = 1
while 1: # 循環條件為1必定成立
print i # 輸出1~10
i += 1
if i > 10: # 當i大於10時跳出循環
break
for letter in 'Python': # 第一個實例
print '當前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二個實例
print '當前水果 :', fruit
print "Good bye!"
獲取用戶輸入:raw_input
var = 1
while var == 1 : # 該條件永遠為true,循環將無限執行下去
num = raw_input("Enter a number :")
print "You entered: ", num
print "Good bye!"
range,len
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '當前水果 :', fruits[index]
print "Good bye!"
python數學函數:
abs,cell,cmp,exp,fabs,floor,log,log10,max,min,mod,pow,round,sqrt
randrange
訪問字元串的值
var1 = 'Hello World!'
var2 = "Python Runoob"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
轉義字元
格式化輸出
print "My name is %s and weight is %d kg!" % ('Zara', 21)
字元串函數:
添加元素
list = [] ## 空列表
list.append('Google') ## 使用 append() 添加元素
list.append('Runoob')
print list
刪除元素
list1 = ['physics', 'chemistry', 1997, 2000]
print list1
del list1[2]
print "After deleting value at index 2 : "
print list1
列表操作
列表方法
刪除字典
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
del dict['Name']; # 刪除鍵是'Name'的條目
dict.clear(); # 清空詞典所有條目
del dict ; # 刪除詞典
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
字典的函數:
當前時間戳:
import time
time.time()
格式化日期輸出
import time
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
獲取某個月日歷:calendar
import calendar
cal = calendar.month(2016, 1)
print "以下輸出2016年1月份的日歷:"
print cal
當前日期和時間
import datetime
i = datetime.datetime.now()
print ("當前的日期和時間是 %s" % i)
print ("ISO格式的日期和時間是 %s" % i.isoformat() )
print ("當前的年份是 %s" %i.year)
print ("當前的月份是 %s" %i.month)
print ("當前的日期是 %s" %i.day)
print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) )
print ("當前小時是 %s" %i.hour)
print ("當前分鍾是 %s" %i.minute)
print ("當前秒是 %s" %i.second)
不定長參數:*
lambda:匿名函數
def....
python模塊搜索路徑
獲取用戶輸入
str = raw_input("請輸入:")
print "你輸入的內容是: ", str
input可以接收表達式
open參數
write要自己添加換行符
讀取10個字元
重命名:os.rename
os.remove
os.mkdir os.chdir
os.getcwd
os.rmdir
open參數
file的方法
異常:
try:
fh = open("testfile", "w")
fh.write("這是一個測試文件,用於測試異常!!")
except IOError:
print "Error: 沒有找到文件或讀取文件失敗"
else:
print "內容寫入文件成功"
fh.close()
try:
fh = open("testfile", "w")
fh.write("這是一個測試文件,用於測試異常!!")
finally:
print "Error: 沒有找到文件或讀取文件失敗"
用戶自定義異常:
os 模塊提供了非常豐富的方法用來處理文件和目錄。常用的方法如下表所示:
| 序號 | 方法及描述 |
| 1 |
os.access(path, mode)
檢驗許可權模式 |
| 2 |
os.chdir(path)
改變當前工作目錄 |
| 3 |
os.chflags(path, flags)
設置路徑的標記為數字標記。 |
| 4 |
os.chmod(path, mode)
更改許可權 |
| 5 |
os.chown(path, uid, gid)
更改文件所有者 |
| 6 |
os.chroot(path)
改變當前進程的根目錄 |
| 7 |
os.close(fd)
關閉文件描述符 fd |
| 8 |
os.closerange(fd_low, fd_high)
關閉所有文件描述符,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略 |
| 9 |
os.p(fd)
復制文件描述符 fd |
| 10 |
os.p2(fd, fd2)
將一個文件描述符 fd 復制到另一個 fd2 |
| 11 |
os.fchdir(fd)
通過文件描述符改變當前工作目錄 |
| 12 |
os.fchmod(fd, mode)
改變一個文件的訪問許可權,該文件由參數fd指定,參數mode是Unix下的文件訪問許可權。 |
| 13 |
os.fchown(fd, uid, gid)
修改一個文件的所有權,這個函數修改一個文件的用戶ID和用戶組ID,該文件由文件描述符fd指定。 |
| 14 |
os.fdatasync(fd)
強制將文件寫入磁碟,該文件由文件描述符fd指定,但是不強制更新文件的狀態信息。 |
| 15 |
os.fdopen(fd[, mode[, bufsize]])
通過文件描述符 fd 創建一個文件對象,並返回這個文件對象 |
| 16 |
os.fpathconf(fd, name)
返回一個打開的文件的系統配置信息。name為檢索的系統配置的值,它也許是一個定義系統值的字元串,這些名字在很多標准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。 |
| 17 |
os.fstat(fd)
返迴文件描述符fd的狀態,像stat()。 |
| 18 |
os.fstatvfs(fd)
返回包含文件描述符fd的文件的文件系統的信息,像 statvfs() |
| 19 |
os.fsync(fd)
強制將文件描述符為fd的文件寫入硬碟。 |
| 20 |
os.ftruncate(fd, length)
裁剪文件描述符fd對應的文件, 所以它最大不能超過文件大小。 |
| 21 |
os.getcwd()
返回當前工作目錄 |
| 22 |
os.getcw()
返回一個當前工作目錄的Unicode對象 |
| 23 |
os.isatty(fd)
如果文件描述符fd是打開的,同時與tty(-like)設備相連,則返回true, 否則False。 |
| 24 |
os.lchflags(path, flags)
設置路徑的標記為數字標記,類似 chflags(),但是沒有軟鏈接 |
| 25 |
os.lchmod(path, mode)
修改連接文件許可權 |
| 26 |
os.lchown(path, uid, gid)
更改文件所有者,類似 chown,但是不追蹤鏈接。 |
| 27 |
os.link(src, dst)
創建硬鏈接,名為參數 dst,指向參數 src |
| 28 |
os.listdir(path)
返回path指定的文件夾包含的文件或文件夾的名字的列表。 |
| 29 |
os.lseek(fd, pos, how)
設置文件描述符 fd當前位置為pos, how方式修改: SEEK_SET 或者 0 設置從文件開始的計算的pos; SEEK_CUR或者 1 則從當前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效 |
| 30 |
os.lstat(path)
像stat(),但是沒有軟鏈接 |
| 31 |
os.major(device)
從原始的設備號中提取設備major號碼 (使用stat中的st_dev或者st_rdev field)。 |
| 32 |
os.makedev(major, minor)
以major和minor設備號組成一個原始設備號 |
| 33 |
os.makedirs(path[, mode])
遞歸文件夾創建函數。像mkdir(), 但創建的所有intermediate-level文件夾需要包含子文件夾。 |
| 34 |
os.minor(device)
從原始的設備號中提取設備minor號碼 (使用stat中的st_dev或者st_rdev field )。 |
| 35 |
os.mkdir(path[, mode])
以數字mode的mode創建一個名為path的文件夾.默認的 mode 是 0777 (八進制)。 |
| 36 |
os.mkfifo(path[, mode])
創建命名管道,mode 為數字,默認為 0666 (八進制) |
| 37 |
os.mknod(filename[, mode=0600, device])
創建一個名為filename文件系統節點(文件,設備特別文件或者命名pipe)。
|
| 38 |
os.open(file, flags[, mode])
打開一個文件,並且設置需要的打開選項,mode參數是可選的 |
| 39 |
os.openpty()
打開一個新的偽終端對。返回 pty 和 tty的文件描述符。 |
| 40 |
os.pathconf(path, name)
返回相關文件的系統配置信息。 |
| 41 |
os.pipe()
創建一個管道. 返回一對文件描述符(r, w) 分別為讀和寫 |
| 42 |
os.popen(command[, mode[, bufsize]])
從一個 command 打開一個管道 |
| 43 |
os.read(fd, n)
從文件描述符 fd 中讀取最多 n 個位元組,返回包含讀取位元組的字元串,文件描述符 fd對應文件已達到結尾, 返回一個空字元串。 |
| 44 |
os.readlink(path)
返回軟鏈接所指向的文件 |
| 45 |
os.remove(path)
刪除路徑為path的文件。如果path 是一個文件夾,將拋出OSError; 查看下面的rmdir()刪除一個 directory。 |
| 46 |
os.removedirs(path)
遞歸刪除目錄。 |
| 47 |
os.rename(src, dst)
重命名文件或目錄,從 src 到 dst |
| 48 |
os.renames(old, new)
遞歸地對目錄進行更名,也可以對文件進行更名。 |
| 49 |
os.rmdir(path)
刪除path指定的空目錄,如果目錄非空,則拋出一個OSError異常。 |
| 50 |
os.stat(path)
獲取path指定的路徑的信息,功能等同於C API中的stat()系統調用。 |
| 51 |
os.stat_float_times([newvalue])
決定stat_result是否以float對象顯示時間戳
|
| 52 |
os.statvfs(path)
獲取指定路徑的文件系統統計信息 |
| 53 |
os.symlink(src, dst)
創建一個軟鏈接 |
| 54 |
os.tcgetpgrp(fd)
返回與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組 |
| 55 |
os.tcsetpgrp(fd, pg)
設置與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組為pg。 |
| 56 |
os.tempnam([dir[, prefix]])
返回唯一的路徑名用於創建臨時文件。 |
| 57 |
os.tmpfile()
返回一個打開的模式為(w+b)的文件對象 .這文件對象沒有文件夾入口,沒有文件描述符,將會自動刪除。 |
| 58 |
os.tmpnam()
為創建一個臨時文件返回一個唯一的路徑 |
| 59 |
os.ttyname(fd)
返回一個字元串,它表示與文件描述符fd 關聯的終端設備。如果fd 沒有與終端設備關聯,則引發一個異常。 |
| 60 |
os.unlink(path)
刪除文件路徑 |
| 61 |
os.utime(path, times)
返回指定的path文件的訪問和修改的時間。 |
| 62 |
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
輸出在文件夾中的文件名通過在樹中遊走,向上或者向下。 |
| 63 |
os.write(fd, str)
寫入字元串到文件描述符 fd中. 返回實際寫入的字元串長度 |
⑻ python編寫用pow()函數計算球的體積
使用鍵盤輸入值並不是編輯表中值的唯一方式。在某些情況下,為了設置欄位值,可能要對單條記錄甚至是所有記錄執行數學計算。您可以對所有記錄或選中記錄執行簡單計算和高級計算。此外,還可以在屬性表中的欄位上計算面積、長度、周長和其他幾何屬性。以下各部分包括使用欄位計算器的若干示例。使用 Python、SQL 和 Arcade 執行計算。
本主題著重於基於 Python 的計算欄位示例。要了解有關 Arcade 表達式的詳細信息,請參閱 ArcGIS Arcade 指南。要了解有關 SQL 表達式的詳細信息,請參閱計算欄位。
註:
Python 強制將縮進作為語法的一部分。請使用兩個或四個空格來定義每個邏輯級別。將語句塊的開頭和結尾對齊並且保持一致。
Python 計算表達式欄位將使用驚嘆號 (!!) 括起。
命名變數時,請注意 Python 區分大小寫,因此 value 不同於 Value。
輸入語句後,如果想將其寫入文件,請單擊導出。導入按鈕將提示您查找和選擇一個現有的計算文件。
簡單計算
僅通過一個短表達式就可以計算出多種計算結果。
簡單字元串示例
一系列 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 函數。
訪問地理處理函數和對象。
訪問要素幾何的屬性。
訪問新的隨機值運算符。
使用 if-then-else 邏輯對值進行重分類。
表達式類型
代碼塊
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幾何單位轉換
幾何欄位的面積和長度屬性可通過用 @ 符號表示的單位類型進行修改。
面積測量單位關鍵字:
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
註:
如果數據存儲在地理坐標系中且具有線性單位(例如英尺),則會通過測地線演算法轉換長度計算的結果。
警告:
轉換地理坐標系中數據的面積單位會生成不正確的結果,這是由於沿 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
⑼ python可不可以直接調用函數庫,進行數學計算
python還有一個標准庫math庫,用來進行常用的數據計算。
python math模塊:http://hi..com/yinkeju/blog/item/5c5ab1def93f6c54cdbf1a79.html
我引用別人的文章來回答:
python-科學計算1:兩個基本的模塊的安裝與測試
在網上看到了一本《用Python做科學計算的》的書,感覺挺有趣的,就下載下來學習了一下。
但這本書一開始就講配置環境,Python(X,Y)等東西,我覺得這個反而增加了入門的難度,倒不如一開始就用一些原始的python IDE介紹,
使讀者不覺得那麼的難。我現在讀了25頁,要用到本書的例子,就安裝兩個模塊:NumPy,Scipy可以在http://www.scipy.org/ 找到他倆。
http://hi..com/billschen/blog/item/9677b708e64d35c562d986bf.html
⑽ python怎麼調用函數進行數學運算啊
樓下正解,return res 返回res的值 就可以運算了