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")
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++中的空类默认包含哪些类成员函数

    C++中的空类默认包含哪些类成员函数

    2021年3月12日
    139
  • sql数据库回滚操作_sql回滚语句 rollback

    sql数据库回滚操作_sql回滚语句 rollbackcreatetable testtable(idnvchart(50)primkey,namenvchart(50),remarknvchart(50))select*fromtesttable go BEGINTRY –SQLServer需要显示的定义开始一个事务.BEGINTRANSACTION;–插入2条同样的数据

    2022年8月30日
    3
  • ES6转ES5_es5与es6的区别

    ES6转ES5_es5与es6的区别es6转码es5一.Babel在线转码二.谷歌的Traceur在线转码三.es6console在线转码并运行四.Traceur在页面中引入使用//加载Traceur文件<scriptsrc=”https://google.github.io/traceur-compiler/bin/traceur.js”></script>//这两个是将上…

    2022年9月24日
    2
  • Django学习笔记一初识Django

    Django学习笔记一初识DjangoDjango学习笔记,入门Django框架

    2022年9月1日
    7
  • Android抽象布局——include、merge 、ViewStub[通俗易懂]

    Android抽象布局——include、merge 、ViewStub[通俗易懂]在布局优化中,Androi的官方提到了这三种布局,并介绍了这三种布局各有的优势,布局重用,减少视图层级,需要时加载。

    2022年6月28日
    26
  • PDF转Word提示页数太多转换失败怎么办?

    PDF转Word提示页数太多转换失败怎么办?将PDF转换成Word是我们日常工作中经常会用到的,但有些时候转换时却提示页数太多无法转换,强行转换也总是失败,这是怎么回事呢?要怎么才能转换呢?一般普通的文档只有几十页多一些几百页,但是也有少部分文档比如一些数据统计、文献资料等可能多达几千页,而市面上一般超过500页的PDF文档转换就会报错,那么我们只能将PDF拆分成很多个再转换吗?转换后的Word合并也很难操作吧。所以我们需要更换其他更强大的转换工具,下面分享2个对于文档转换页数没有限制的工具以及各自的使用方法和优缺点。工具一:极速PDF转Wor

    2022年6月9日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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