真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

FE函數(shù)Python fe百度百科

python怎么判斷中文字符編碼

#!/usr/bin/env python

成都創(chuàng)新互聯(lián)是一家以成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、seo優(yōu)化排名、小程序App開(kāi)發(fā)等移動(dòng)開(kāi)發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為成都混凝土攪拌罐等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開(kāi)發(fā)服務(wù)。

# -*- coding:GBK -*-

"""漢字處理的工具:

判斷unicode是否是漢字,數(shù)字,英文,或者其他字符。

全角符號(hào)轉(zhuǎn)半角符號(hào)。"""

__author__="internetsweeper zhengbin0713@gmail.com"

__date__="2007-08-04"

def is_chinese(uchar):

"""判斷一個(gè)unicode是否是漢字"""

if uchar = u'\u4e00' and uchar=u'\u9fa5':

return True

else:

return False

def is_number(uchar):

"""判斷一個(gè)unicode是否是數(shù)字"""

if uchar = u'\u0030' and uchar=u'\u0039':

return True

else:

return False

def is_alphabet(uchar):

"""判斷一個(gè)unicode是否是英文字母"""

if (uchar = u'\u0041' and uchar=u'\u005a') or (uchar = u'\u0061' and uchar=u'\u007a'):

return True

else:

return False

def is_other(uchar):

"""判斷是否非漢字,數(shù)字和英文字符"""

if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):

return True

else:

return False

def B2Q(uchar):

"""半角轉(zhuǎn)全角"""

inside_code=ord(uchar)

if inside_code0x0020 or inside_code0x7e: #不是半角字符就返回原來(lái)的字符

return uchar

if inside_code==0x0020: #除了空格其他的全角半角的公式為:半角=全角-0xfee0

inside_code=0x3000

else:

inside_code+=0xfee0

return unichr(inside_code)

def Q2B(uchar):

"""全角轉(zhuǎn)半角"""

inside_code=ord(uchar)

if inside_code==0x3000:

inside_code=0x0020

else:

inside_code-=0xfee0

if inside_code0x0020 or inside_code0x7e: #轉(zhuǎn)完之后不是半角字符返回原來(lái)的字符

return uchar

return unichr(inside_code)

def stringQ2B(ustring):

"""把字符串全角轉(zhuǎn)半角"""

return "".join([Q2B(uchar) for uchar in ustring])

def uniform(ustring):

"""格式化字符串,完成全角轉(zhuǎn)半角,大寫(xiě)轉(zhuǎn)小寫(xiě)的工作"""

return stringQ2B(ustring).lower()

def string2List(ustring):

"""將ustring按照中文,字母,數(shù)字分開(kāi)"""

retList=[]

utmp=[]

for uchar in ustring:

if is_other(uchar):

if len(utmp)==0:

continue

else:

retList.append("".join(utmp))

utmp=[]

else:

utmp.append(uchar)

if len(utmp)!=0:

retList.append("".join(utmp))

return retList

if __name__=="__main__":

#test Q2B and B2Q

for i in range(0x0020,0x007F):

print Q2B(B2Q(unichr(i))),B2Q(unichr(i))

#test uniform

ustring=u'中國(guó) 人名a高頻A'

ustring=uniform(ustring)

ret=string2List(ustring)

print ret

以上轉(zhuǎn)自

這個(gè)問(wèn)題是做 MkIV 預(yù)處理程序時(shí)搞定的,就是把一個(gè)混合了中英文混合字串分離為英文與中文的子字串,譬如,將 ”我的 English 學(xué)的不好“ 分離為 “我的"、" English ” 與 "學(xué)的不好" 三個(gè)子字串。

1. 中英文混合字串的統(tǒng)一編碼表示中英文混合字串處理最省力的辦法就是把它們的編碼都轉(zhuǎn)成 Unicode,讓一個(gè)漢字與一個(gè)英文字母的內(nèi)存位寬都是相等的。這個(gè)工作用 Python 來(lái)做,比較合適,因?yàn)?Python 內(nèi)碼采用的是 Unicode,并且為了支持 Unicode 字串的操作,Python 做了一個(gè) Unicode 內(nèi)建模塊,把 string 對(duì)象的全部方法重新實(shí)現(xiàn)了一遍,另外提供了 Codecs 對(duì)象,解決各種編碼類型的字符串解碼與編碼問(wèn)題。

譬如下面的 Python 代碼,可實(shí)現(xiàn) UTF-8 編碼的中英文混合字串向 Unicode 編碼的轉(zhuǎn)換:# -*-

coding:utf-8 -*-

a = "我的 English 學(xué)的不好"

print type(a),len (a), a

b = unicode (a, "utf-8")

print type(b), len (b), b字符串 a 是 utf-8 編碼,使用 python 的內(nèi)建對(duì)象 unicode 可將其轉(zhuǎn)換為 Unicode 編碼的字符串 b。上述代碼執(zhí)行后的輸出結(jié)果如下所示,比較字串 a 與字串 b 的長(zhǎng)度,顯然 len (b) 的輸出結(jié)果是合理的。type 'str' 27 我的 English 學(xué)的不好

type 'unicode' 15 我的 English 學(xué)的不好要注意的一個(gè)問(wèn)題是 Unicode 雖然號(hào)稱是“統(tǒng)一碼”,不過(guò)也是存在著兩種形式,即:

UCS-2:為 16 位碼,具有 2^16 = 65536 個(gè)碼位; UCS-4:為 32 位碼,目前的規(guī)定是其首字節(jié)的首位為 0,因此具有 2^31 = 2147483648 個(gè)碼位,不過(guò)現(xiàn)在的只使用了 0x00000000 - 0x0010FFFF 之間的碼位,共 1114112 個(gè)。

使用Python sys 模塊提供的一個(gè)變量 maxunicode 的值可以判斷當(dāng)前 Python 所使用的 Unicode 類型是 UCS-2 的還是 UCS-4 的。import sys

print sys.maxunicode若 sys.maxunicode 的值為 1114111,即為 UCS-4;若為 65535,則為 UCS-2。

2. 中英文混合字串的分離一旦中英文字串的編碼獲得統(tǒng)一,那么對(duì)它們進(jìn)行分裂就是很簡(jiǎn)單的事情了。首先要為中文字串與英文字串分別準(zhǔn)備一個(gè)收集器,使用兩個(gè)空的字串對(duì)象即可,譬如 zh_gather 與 en_gather;然后要準(zhǔn)備一個(gè)列表對(duì)象,負(fù)責(zé)按分離次序存儲(chǔ) zh_gather 與 en_gather 的值。下面這個(gè) Python 函數(shù)接受一個(gè)中英文混合的 Unicode 字串,并返回存儲(chǔ)中英文子字串的列表。def split_zh_en (zh_en_str):

zh_en_group = []

zh_gather = ""

en_gather = ""

zh_status = False

for c in zh_en_str:

if not zh_status and is_zh (c):

zh_status = True

if en_gather != "":

zh_en_group.append ([mark["en"],en_gather])

en_gather = ""

elif not is_zh (c) and zh_status:

zh_status = False

if zh_gather != "":

zh_en_group.append ([mark["zh"], zh_gather])

if zh_status:

zh_gather += c

else:

en_gather += c

zh_gather = ""

if en_gather != "":

zh_en_group.append ([mark["en"],en_gather])

elif zh_gather != "":

zh_en_group.append ([mark["zh"],zh_gather])

return zh_en_group上述代碼所實(shí)現(xiàn)的功能細(xì)節(jié)是:對(duì)中英文混合字串 zh_en_str 的遍歷過(guò)程中進(jìn)行逐字識(shí)別,若當(dāng)前字符為中文,則將其添加到 zh_gather 中;若當(dāng)前字符為英文,則將其添加到 en_gather 中。zh_status 表示中英文字符的切換狀態(tài),當(dāng) zh_status 的值發(fā)生突變時(shí),就將所收集的中文子字串或英文子字串添加到 zh_en_group 中去。

判斷字串 zh_en_str 中是否包含中文字符的條件語(yǔ)句中出現(xiàn)了一個(gè) is_zh () 函數(shù),它的實(shí)現(xiàn)如下:def is_zh (c):

x = ord (c)

# Punct Radicals

if x = 0x2e80 and x = 0x33ff:

return True

# Fullwidth Latin Characters

elif x = 0xff00 and x = 0xffef:

return True

# CJK Unified Ideographs

# CJK Unified Ideographs Extension A

elif x = 0x4e00 and x = 0x9fbb:

return True

# CJK Compatibility Ideographs

elif x = 0xf900 and x = 0xfad9:

return True

# CJK Unified Ideographs Extension B

elif x = 0x20000 and x = 0x2a6d6:

return True

# CJK Compatibility Supplement

elif x = 0x2f800 and x = 0x2fa1d:

return True

else:

return False這段代碼來(lái)自 jjgod 寫(xiě)的 XeTeX 預(yù)處理程序。

對(duì)于分離出來(lái)的中文子字串與英文子字串,為了使用方便,在將它們存入 zh_en_group 列表時(shí),我對(duì)它們分別做了標(biāo)記,即 mark["zh"] 與 mark["en"]。mark 是一個(gè) dict 對(duì)象,其定義如下:mark = {"en":1, "zh":2}如果要對(duì) zh_en_group 中的英文字串或中文字串進(jìn)行處理時(shí),標(biāo)記的意義在于快速判定字串是中文的,還是英文的,譬如:for str in zh_en_group:

if str[0] = mark["en"]:

do somthing

else:

do somthing

有誰(shuí)知道python怎么調(diào)用c#的dll

1、首選運(yùn)行工具 makepy.py。

2、這樣就可以查看 C# dll的 com導(dǎo)出的 py文件了。

Python編程makepy.py代碼如下:

#?-*-?coding:?mbcs?-*-

#?Created?by?makepy.py?version?0.5.00

#?By?python?version?2.5.4?(r254:67916,?Dec?23?2008,?15:10:54)?[MSC?v.1310?32?bit?(Intel)]

#?From?type?library?'XGSharpLib.tlb'

""""""

makepy_version?=?'0.5.00'

python_version?=?0x20504f0

import?win32com.client.CLSIDToClass,?pythoncom,?pywintypes

import?win32com.client.util

from?pywintypes?import?IID

from?win32com.client?import?Dispatch

#?The?following?3?lines?may?need?tweaking?for?the?particular?server

#?Candidates?are?pythoncom.Missing,?.Empty?and?.ArgNotFound

defaultNamedOptArg=pythoncom.Empty

defaultNamedNotOptArg=pythoncom.Empty

defaultUnnamedArg=pythoncom.Empty

CLSID?=?IID('{B38EF2FA-4639-40BC-B97C-7908CED04FF9}')

MajorVersion?=?1

MinorVersion?=?0

LibraryFlags?=?8

LCID?=?0x0

from?win32com.client?import?DispatchBaseClass

class?IComXGSharpLib(DispatchBaseClass):

CLSID?=?IID('{D1965A94-0271-4C48-8AF6-2A56E256808B}')

coclass_clsid?=?IID('{2302D874-18FE-4281-B329-9517F1BC8311}')

def?EncryptMd5(self,?orignPwd=defaultNamedNotOptArg):

#?Result?is?a?Unicode?object

return?self._oleobj_.InvokeTypes(2,?LCID,?1,?(8,?0),?((8,?1),),orignPwd

)

def?EncryptSHA1(self,?orignPwd=defaultNamedNotOptArg):

#?Result?is?a?Unicode?object

return?self._oleobj_.InvokeTypes(1,?LCID,?1,?(8,?0),?((8,?1),),orignPwd

)

_prop_map_get_?=?{

}

_prop_map_put_?=?{

}

class?_Object(DispatchBaseClass):

CLSID?=?IID('{65074F7F-63C0-304E-AF0A-D51741CB4A8D}')

coclass_clsid?=?IID('{2302D874-18FE-4281-B329-9517F1BC8311}')

def?Equals(self,?obj=defaultNamedNotOptArg):

return?self._oleobj_.InvokeTypes(1610743809,?LCID,?1,?(11,?0),?((12,?1),),obj

)

def?GetHashCode(self):

return?self._oleobj_.InvokeTypes(1610743810,?LCID,?1,?(3,?0),?(),)

#?Result?is?of?type?_Type

def?GetType(self):

ret?=?self._oleobj_.InvokeTypes(1610743811,?LCID,?1,?(13,?0),?(),)

if?ret?is?not?None:

#?See?if?this?IUnknown?is?really?an?IDispatch

try:

ret?=?ret.QueryInterface(pythoncom.IID_IDispatch)

except?pythoncom.error:

return?ret

ret?=?Dispatch(ret,?u'GetType',?'{BCA8B44D-AAD6-3A86-8AB7-03349F4F2DA2}')

return?ret

_prop_map_get_?=?{

"ToString":?(0,?2,?(8,?0),?(),?"ToString",?None),

}

_prop_map_put_?=?{

}

#?Default?property?for?this?class?is?'ToString'

def?__call__(self):

return?self._ApplyTypes_(*(0,?2,?(8,?0),?(),?"ToString",?None))

def?__unicode__(self,?*args):

try:

return?unicode(self.__call__(*args))

except?pythoncom.com_error:

return?repr(self)

def?__str__(self,?*args):

return?str(self.__unicode__(*args))

def?__int__(self,?*args):

return?int(self.__call__(*args))

from?win32com.client?import?CoClassBaseClass

#?This?CoClass?is?known?by?the?name?'XGSharpLib.Security'

class?Security(CoClassBaseClass):?#?A?CoClass

CLSID?=?IID('{2302D874-18FE-4281-B329-9517F1BC8311}')

coclass_sources?=?[

]

coclass_interfaces?=?[

IComXGSharpLib,

_Object,

]

default_interface?=?IComXGSharpLib

IComXGSharpLib_vtables_dispatch_?=?1

IComXGSharpLib_vtables_?=?[

((?u'EncryptSHA1'?,?u'orignPwd'?,?u'pRetVal'?,?),?1,?(1,?(),?[?(8,?1,?None,?None)?,?

(16392,?10,?None,?None)?,?],?1?,?1?,?4?,?0?,?28?,?(3,?0,?None,?None)?,?0?,?)),

((?u'EncryptMd5'?,?u'orignPwd'?,?u'pRetVal'?,?),?2,?(2,?(),?[?(8,?1,?None,?None)?,?

(16392,?10,?None,?None)?,?],?1?,?1?,?4?,?0?,?32?,?(3,?0,?None,?None)?,?0?,?)),

]

_Object_vtables_dispatch_?=?1

_Object_vtables_?=?[

((?u'ToString'?,?u'pRetVal'?,?),?0,?(0,?(),?[?(16392,?10,?None,?None)?,?],?1?,?2?,?4?,?0?,?28?,?(3,?0,?None,?None)?,?0?,?)),

((?u'Equals'?,?u'obj'?,?u'pRetVal'?,?),?1610743809,?(1610743809,?(),?[?(12,?1,?None,?None)?,?

(16395,?10,?None,?None)?,?],?1?,?1?,?4?,?0?,?32?,?(3,?0,?None,?None)?,?0?,?)),

((?u'GetHashCode'?,?u'pRetVal'?,?),?1610743810,?(1610743810,?(),?[?(16387,?10,?None,?None)?,?],?1?,?1?,?4?,?0?,?36?,?(3,?0,?None,?None)?,?0?,?)),

((?u'GetType'?,?u'pRetVal'?,?),?1610743811,?(1610743811,?(),?[?(16397,?10,?None,?"IID('{BCA8B44D-AAD6-3A86-8AB7-03349F4F2DA2}')")?,?],?1?,?1?,?4?,?0?,?40?,?(3,?0,?None,?None)?,?0?,?)),

]

RecordMap?=?{

}

CLSIDToClassMap?=?{

'{D1965A94-0271-4C48-8AF6-2A56E256808B}'?:?IComXGSharpLib,

'{2302D874-18FE-4281-B329-9517F1BC8311}'?:?Security,

'{65074F7F-63C0-304E-AF0A-D51741CB4A8D}'?:?_Object,

}

CLSIDToPackageMap?=?{}

win32com.client.CLSIDToClass.RegisterCLSIDsFromDict(?CLSIDToClassMap?)

VTablesToPackageMap?=?{}

VTablesToClassMap?=?{

'{D1965A94-0271-4C48-8AF6-2A56E256808B}'?:?'IComXGSharpLib',

'{65074F7F-63C0-304E-AF0A-D51741CB4A8D}'?:?'_Object',

}

NamesToIIDMap?=?{

'_Object'?:?'{65074F7F-63C0-304E-AF0A-D51741CB4A8D}',

'IComXGSharpLib'?:?'{D1965A94-0271-4C48-8AF6-2A56E256808B}',

}

3、舉例:Python調(diào)用C# dll中的 MD5加密方法。

怎么把下面的Python代碼封裝成函數(shù)

Python:常用函數(shù)封裝:

def is_chinese(uchar):

"""判斷一個(gè)unicode是否是漢字"""

if uchar = u'\u4e00' and uchar=u'\u9fa5':

return True

else:

return False

def is_number(uchar):

"""判斷一個(gè)unicode是否是數(shù)字"""

if uchar = u'\u0030' and uchar=u'\u0039':

return True

else:

return False

def is_alphabet(uchar):

"""判斷一個(gè)unicode是否是英文字母"""

if (uchar = u'\u0041' and uchar=u'\u005a') or (uchar = u'\u0061' and uchar=u'\u007a'):

return True

else:

return False

def is_other(uchar):

"""判斷是否非漢字,數(shù)字和英文字符"""

if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):

return True

else:

return False

def B2Q(uchar):

"""半角轉(zhuǎn)全角"""

inside_code=ord(uchar)

if inside_code0x0020 or inside_code0x7e: #不是半角字符就返回原來(lái)的字符

return uchar

if inside_code==0x0020: #除了空格其他的全角半角的公式為:半角=全角-0xfee0

inside_code=0x3000

else:

inside_code+=0xfee0

return unichr(inside_code)

def Q2B(uchar):

"""全角轉(zhuǎn)半角"""

inside_code=ord(uchar)

if inside_code==0x3000:

inside_code=0x0020

else:

inside_code-=0xfee0

if inside_code0x0020 or inside_code0x7e: #轉(zhuǎn)完之后不是半角字符返回原來(lái)的字符

return uchar

return unichr(inside_code)

def stringQ2B(ustring):

"""把字符串全角轉(zhuǎn)半角"""

return "".join([Q2B(uchar) for uchar in ustring])

def uniform(ustring):

"""格式化字符串,完成全角轉(zhuǎn)半角,大寫(xiě)轉(zhuǎn)小寫(xiě)的工作"""

return stringQ2B(ustring).lower()

def string2List(ustring):

"""將ustring按照中文,字母,數(shù)字分開(kāi)"""

retList=[]

utmp=[]

for uchar in ustring:

if is_other(uchar):

if len(utmp)==0:

continue

else:

retList.append("".join(utmp))

utmp=[]

else:

utmp.append(uchar)

if len(utmp)!=0:

retList.append("".join(utmp))

return retList

求利用python來(lái)科學(xué)計(jì)算網(wǎng)絡(luò)邊的(介數(shù))的編程語(yǔ)句

#encoding=utf-8

import?time

from?collections?import?defaultdict

from?operator?import?itemgetter

#?Data?in?BC.txt:

#?a b

#?a h

#?b c

#?b h

#?h i

#?h g

#?g i

#?g f

#?c f

#?c i

#?c d

#?d f

#?d e

#?f e

class?Graph:

def?__init__(self):

self.Graph?=?defaultdict(set)

self.NodesNum?=?0

def?MakeLink(self,filename,separator):

with?open(filename,'r')?as?graphfile:

for?line?in?graphfile:

nodeA,nodeB?=?line.strip().split(separator)

self.Graph[nodeA].add(nodeB)

self.Graph[nodeB].add(nodeA)

self.NodesNum?=?len(self.Graph)

def?BetweennessCentrality(self):

betweenness?=?dict.fromkeys(self.Graph,0.0)

for?s?in?self.Graph:

#?1.?compute?the?length?and?number?of?shortest?paths?from?node?s

S?=?[]

P?=?{}

for?v?in?self.Graph:

P[v]=[]

Sigma?=?dict.fromkeys(self.Graph,0.0)

Sigma[s]?=?1.0

D?=?{}

D[s]?=?0

Q?=?[s]

#?use?BFS?to?find?single?source?shortest?paths

while?Q:

v?=?Q.pop(0)

S.append(v)

Dv?=?D[v]

for?w?in?self.Graph[v]:

#?w?found?for?the?first?time?

if?w?not?in?D:

Q.append(w)

D[w]?=?D[v]?+?1

#?shortest?path?to?w?via?v

if?D[w]?==?D[v]?+?1:

Sigma[w]?+=?Sigma[v]

P[w].append(v)

#?2.?sum?all?pair-dependencies?of?node?s

delta?=?dict.fromkeys(self.Graph,0.0)

#?S?returns?vertices?in?order?of?non-increasing?distance?from?s

while?S:

w?=?S.pop()

coeff?=?(1.0+delta[w])/Sigma[w]

for?v?in?P[w]:

delta[v]?+=?Sigma[v]*coeff

if?w?!=?s:

betweenness[w]?+=?delta[w]

scale?=?1.0/((self.NodesNum-1)*(self.NodesNum-2))

for?v?in?betweenness:

betweenness[v]?*=?scale

betweenness?=?[(node,bc)?for?node,bc?in?betweenness.iteritems()]

betweenness?=?sorted(betweenness,key=itemgetter(1),reverse=True)

return?betweenness

if?__name__=='__main__':

separator?=?'\t'

file?=?'C:\\Users\\Administrator\\Desktop\\BC.txt'

begin?=?time.time()

myGraph?=?Graph()

myGraph.MakeLink(file,separator)

print?myGraph.BetweennessCentrality()

print?'Time:',time.time()-begin,'?seconds'


網(wǎng)頁(yè)標(biāo)題:FE函數(shù)Python fe百度百科
文章出自:http://weahome.cn/article/heheos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部