首页 > 编程知识 正文

python字符转换为数字,python转数字类型

时间:2023-05-05 15:38:59 阅读:11976 作者:4844

In the question referenced above,asolutionwasfoundforturninganumbeintoaname.thisquestionasksjusttheopposite.howcanyouconvert

导入字符串

head _ char=' '.join (sorted (string.ascii _ letters ' _ ' )

tail _ char=' '.join (sorted (string.digits head _ char ) )

HEAD_BASE,tail_base=len(head_char ),len (tail _ char ) )。

efnumber_to_name(number ) :

' convertanumberintoavalididentifier.'

if number HEAD_BASE:

return HEAD_CHAR[number]

q,r=divmod(number-head_base,TAIL_BASE ) ) ) ) ) ) ) )。

返回number _ to _ name (q ) TAIL_CHAR[r]

[number_to_name(n ) forninrange ) 117]

[a ',b ',c ',d ',e ',f ',g ',h ',j ',k ',l ',m ',n ',o ',p] 「d”,“f”,“g”,“h A5、A6、A7、A8、A9、AA、AB、AC、AE、AG、AH、AI。 AU、AV、AW、AX、AY、AZ、A_、Ab、Ac、Ae、Af、Ag。 ' As '、' At '、' Au '、' Av '、' Aw '、' Ax '、' Ay '、' Az '、' B0']

efname_to_number(name ) :

assert name,' Name must exist!'

head,*tail=name

number=head_char.index(head ) ) ) )。

for position,字符识别(tail ) :

if位置:

number *=TAIL_BASE

else:

number =HEAD_BASE

number=tail_char.index(char ) )。

返回编号

[ name _ to _ number (number _ to _ name (n ) ]forninrange ) 117]

[0、1、2、3、4、5、6、7、8、9、10、12、13、14、15、16、17、18、19、20、23、24、25、26 64、66 7、78、79、80、81、82、83、84、85、86、87、88、90、91、92、93、95、97、98、99、100、101

thefunctionnumber _ to _ nameworksperfectly,andname _ to _ numberworksupuntilitgetstonumber 116.athatpoint,thefuncting

solutionbasedonrecursive ' s answer :

导入字符串

head _ char=' '.join (sorted (string.ascii _ letters ' _ ' )

tail _ char=' '.join (sorted (string.digits head _ char ) )

HEAD_BASE,tail_base=len(head_char ),len (tail _ char ) )。

efname_to_number(name ) :

if not name.isidentifier () :

raisevalueerror (' namemustbeapythonidentifier!' )

head,*tail=name

number=head_char.index(head ) ) ) )。

for char in tail:

number *=TAIL_BASE

number=tail_char.index(char ) )。

returnnumbersum (head _ base * tail _ base * * pforpinrange (len ) tail ) )

解决方案

统一编号,theseidentifiersdon ' tyieldtotraditionalconstantbaseencodingtechniques.for example ' a ' actslikeazero, but leading ' a ' schangethevalue.innormalnumbersystemsleadingzeroesdonot.therecouldbemultipleapproaches,butisetledononeales

efname_to_number(name ) :

assert name,' Name must exist!'

skipped=sum (head _ base * tail _ base * * iforiinrange (len (name )- 1 ) )

val=reduce (

lambda a,b : a * tail _ base tail _ char.index (b,

name[1:],

head_char.index(name[0] )

返回val skipped

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。