Python不使用int()函数把字符串转换为数字「建议收藏」

Python不使用int()函数把字符串转换为数字「建议收藏」Python不使用int()函数把字符串转换为数字2018年05月21日14:18:45边缘ob边缘ob阅读数:1035https://blog.csdn.net/qq_33192555/a

大家好,又见面了,我是你们的朋友全栈君。

Python不使用int()函数把字符串转换为数字

方法一:利用str函数

既然不能用int函数,那我们就反其道而行,用str函数找出每一位字符表示的数字大写。

 

def atoi(s): s = s[::-1] num = 0  for i, v in enumerate(s): for j in range(0, 10): if v == str(j): num += j * (10 ** i) return num

方法二:利用ord函数

利用ord求出每一位字符的ASCII码再减去字符0的ASCII码求出每位表示的数字大写。
def atoi(s): s = s[::-1] num = 0  for i, v in enumerate(s): offset = ord(v) - ord('0') num += offset * (10 ** i) return num

方法三:利用eval函数

eval的功能是将字符串str当成有效的表达式来求值并返回计算结果。我们利用这特点可以利用每位字符构造成和1相乘的表达式,再用eval算出该表达式的返回值就表示数字大写。
def atoi(s): s = s[::-1] num = 0  for i, v in enumerate(s): t = '%s * 1' % v n = eval(t) num += n * (10 ** i) return num
 

例题如下:

编写一个函数,实现:将字符串’12345’转换为[1, 2, 3, 4, 5], 再将列表值转换为整数12345,不使用内置的int(), str()函数。

# string conbersion intager
 lst = [] def Conversion(s): s = s[::-1] num = 0  for i, v in enumerate(s): offset = ord(v) - ord('0') num += offset * (10 ** i) lst.append(offset) # lst conbersion intager  number=0  for k, v in enumerate(lst): number += v * (10**k) lst.reverse() print("string conbersion intager: \n ",lst,"\nlst conbersion intager: \n ",number) Conversion("12345")
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156099.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 欢欣雀跃还是欢呼雀跃_极空间 docker

    欢欣雀跃还是欢呼雀跃_极空间 dockerAnaconda清华镜像已经恢复使用!目录1.Anaconda清华源终于活了!2.配置命令:2.1添加清华anaconda镜像:2.1Conda附加库:conda-forgemsys2biocondamenpopytorch1.Anaconda清华源终于活了!2.配置命令:2.1添加清华anaconda镜像:condaconfig–addchannelsh…

    2022年10月26日
  • spss中进行单因素方差分析的操作步骤是_双因素方差分析交互作用判断

    spss中进行单因素方差分析的操作步骤是_双因素方差分析交互作用判断方差分析是检验多个总体均值是否相等的统计方法,本质上研究的是分类型自变量对数值型因变量的影响。一:分析-比较均值-单因素方差分析;二、对比-多项式;在此对话框是用于对组间平方和进行分解并确定均值的

  • Buck的振铃实验与分析

    Buck的振铃实验与分析上上期我们提到了buck电路的开关的振铃波形,本质原因是LC的阻尼振荡。文章偏理论,那BUCK到底是怎么产生尖峰振荡呢?要想把这个问题搞清楚,也很是不容易,所以文章有点长,请直接点赞转发加收藏。问题本期主要分析以下这两个问题:1、死区时间是什么?这里有个小台阶是什么情况?2、上下尖峰振荡是如何产生的?跟哪些因素有关?理想的BUCK的SW波形我们由浅入深,一步一步来,先看理想的开关SW波形—没有尖峰电压的波形。为了能更好的看buck电路各个点的电压电流情况.

    2022年10月23日
  • 三号伴唱※414

    三号伴唱※414这个名字还有点古怪,但是知道内幕的就不难理解了~先说三号伴唱,这个有点苦笑不得,或者叫自作自受,嗨,没办法,似乎我总是该不了这个幻想的习惯 ~所以教训是,当你没有看清face的时候,你有两个选择:1,继续保持这种朦胧美,不要有see的desire(ok,但是这一点比较难做到)2,请以一颗平常心,你看的就是你看到的,不要有任何臆想和推断,否则下一个吐血的就是你~ok,该能推断的出的就已

  • 基于SRS的视频直播服务器搭建

    基于SRS的视频直播服务器搭建srs提供的一个demo实例,包括实时流的rtmp播放,hls播放,视频会议,ffmpeg视频变换,jwplayer播放,OSMF播放,vlc播放等等功能.

  • git取消文件跟踪

    git取消文件跟踪

    2021年10月20日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号