因?yàn)閜i是python,math函數(shù)庫(kù)中的一個(gè)內(nèi)建函數(shù)。
創(chuàng)新互聯(lián)公司-成都網(wǎng)站建設(shè)公司,專(zhuān)注成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣,域名注冊(cè),網(wǎng)頁(yè)空間,綿陽(yáng)服務(wù)器托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)公司。
import math
print "math.modf(100.12) : ", math.modf(100.12)
print "math.modf(100.72) : ", math.modf(100.72)
print "math.modf(119L) : ", math.modf(119L)
print "math.modf(math.pi) : ", math.modf(math.pi)
擴(kuò)展資料:
cmath是python中的標(biāo)準(zhǔn)庫(kù)函數(shù),用于做復(fù)雜的復(fù)數(shù)運(yùn)算,
Python cmath 模塊包含了一些用于復(fù)數(shù)運(yùn)算的函數(shù)。
cmath 模塊的函數(shù)跟 math 模塊函數(shù)基本一致,區(qū)別是 cmath 模塊運(yùn)算的是復(fù)數(shù),math模塊運(yùn)算的是數(shù)學(xué)運(yùn)算。
polar 函數(shù)對(duì)一個(gè)輸入的笛卡爾形勢(shì)的復(fù)數(shù)進(jìn)行計(jì)算,輸出為一個(gè)二元組,第一個(gè)值為Z的模值, 第二個(gè)為幅度值。 rect() 函數(shù)對(duì)輸入的模和幅度值進(jìn)行計(jì)算輸出笛卡爾表示。如果需要單獨(dú)對(duì)一個(gè)復(fù)數(shù)進(jìn)行幅度值的求解,可以調(diào)用 cmath.phrase(x) 函數(shù),返回幅度值。
參考資料來(lái)源:百度百科-pyhton cmath
你的語(yǔ)法有錯(cuò)誤。
內(nèi)置函數(shù)power(x, y[, z])中的x和y是必選參數(shù),z是可選參數(shù);如果使用了參數(shù)z,中括號(hào)必須去掉,即power(x,y,z),其結(jié)果是x的y次方再對(duì)z求余數(shù),但是這種方式比power(x,y) % z的執(zhí)行效率要高。
你可以使用power(2, 4)或者power(2,4,3)。
power(2,4)=2的4次方=16;
power(2,4,3)=2的4次方再模上3=16 % 3=1。
######python求標(biāo)準(zhǔn)的一元二次方程的解###############
a,b,c= map(float,input("請(qǐng)輸入aX^2+bX+c=0,函數(shù)中的三個(gè)參數(shù):(空格隔開(kāi))").split())
###使用公式b^2-4ac判定是否有解b^2-4ac####
i=b*b-4*a*c
if i0:
print("該方程無(wú)實(shí)數(shù)解!")
elif i==0:
print("該方程解為:%.2f"%((-1)*b/(2*a)))#有一個(gè)解
else:
print("該方程解為:%.2f或%.2f"%((((-1)*b+i**0.5)/(2*a)),(((-1)*b-i**0.5)/(2*a))))
該方法運(yùn)用是運(yùn)用公式求解,保留兩位小數(shù),只能求實(shí)數(shù)解,供參考,有問(wèn)題可追問(wèn)
題目:找出兩個(gè)字符串的最長(zhǎng)公共字串,例如字符串“abccade”與字符串“dgcadde”的最長(zhǎng)公共子串為“cad”。
分析:動(dòng)態(tài)規(guī)劃法。通過(guò)把中間的比較結(jié)果記錄下來(lái),從而可以避免字符的重復(fù)比較。:
首先定義二元函數(shù)(i,j):表示分別以s1[i],s2[j]結(jié)尾的公共子串的長(zhǎng)度,顯然,f(0, j) = 0 (j = 0),f(i, 0) = 0(i = 0),那么對(duì)于f(i +1, j + 1)而言,則有如下兩種取值:
(1) f(i + 1, j +1) = 0,當(dāng)str1[i + 1] != str2[j + 1]時(shí)
(2)f(i + 1, j +1) = f(i, j) + 1,當(dāng)str1[i + 1] == str2[j + 1]時(shí)
根據(jù)這個(gè)公式可以計(jì)算出f(i, j)(0= i=len(s1), 0 = j = len(s2),所有的值,從而可以找出最長(zhǎng)的子串。
def getMaxSubStr(str1, str2):
len1 = len(str1)
len2 = len(str2)
sb = ''
maxs = 0? # 用來(lái)記錄最長(zhǎng)公共子串的長(zhǎng)度
maxI = 0? # 用來(lái)記錄最長(zhǎng)公共字串最后一個(gè)字符的位置
# 申請(qǐng)新的空間來(lái)記錄公共字串長(zhǎng)度信息
M = [([None] * (len1 + 1)) for i in range(len2 + 1)]
i = 0
while i len1 + 1:
? ? M[i][0] = 0
? ? i += 1
j = 0
while j len2 + 1:
? ? M[0][j] = 0
? ? j += 1
# 通過(guò)利用遞歸公式填寫(xiě)新建得二維數(shù)組(公共字串得長(zhǎng)度信息)
i = 1
while i len1 + 1:
? ? j = 1
? ? while j len2 + 1:
? ? ? ? if list(str1)[i - 1] == list(str2)[j - 1]:
? ? ? ? ? ? M[i][j] = M[i - 1][j - 1] + 1
? ? ? ? ? ? if M[i][j] maxs:
? ? ? ? ? ? ? ? maxs = M[i][j]
? ? ? ? ? ? ? ? maxI = i
? ? ? ? else:
? ? ? ? ? ? M[i][j] = 0
? ? ? ? j += 1
? ? i += 1
i = maxI - maxs
while i maxI:
? ? sb = sb + list(str1)[i]
? ? i += 1
return sb
if __name__ == "__main__":
str1 = 'abccade'
str2 = 'dgcadde'
print(getMaxSubStr(str1, str2))
程序運(yùn)行結(jié)果:
cad
import numpy as np
def solve_quad(a,b,c):
if a == 0:
print('您輸入的不是二次方程!')
else:
delta = b*b-4*a*c
x = -b/(2*a)
if delta == 0:
print('方程有惟一解,X=%f'%(x))
return x
elif delta 0:
x1 = x-np.sqrt(delta)/(2*a)
x2 = x+np.sqrt(delta)/(2*a)
print('方程有兩個(gè)實(shí)根:X1=%f,X2=%f'%(x1,x2))
return x1,x2
else:
x1 = (-b+complex(0,1)*np.sqrt((-1)*delta))/(2*a)
x2 = (-b-complex(0,1)*np.sqrt((-1)*delta))/(2*a)
print(x1,x2)
return x1,x2
Python
是完全面向?qū)ο蟮恼Z(yǔ)言。函數(shù)、模塊、數(shù)字、字符串都是對(duì)象。并且完全支持繼承、重載、派生、多繼承,有益于增強(qiáng)源代碼的復(fù)用性。Python支持重載運(yùn)算符和動(dòng)態(tài)類(lèi)型。相對(duì)于Lisp這種傳統(tǒng)的函數(shù)式編程語(yǔ)言,Python對(duì)函數(shù)式設(shè)計(jì)只提供了有限的支持。有兩個(gè)標(biāo)準(zhǔn)庫(kù)(functools, itertools)提供了Haskell和Standard ML中久經(jīng)考驗(yàn)的函數(shù)式程序設(shè)計(jì)工具。
因?yàn)槎\(yùn)算符是作用在兩個(gè)元素上的,可以更好的層層遞進(jìn)。
比如+,-,*,\都是二元運(yùn)算符。
實(shí)現(xiàn)了減法的實(shí)際語(yǔ)義,可以找到binary_op1()函數(shù)。它提供了一種管理二元操作的通用方法。