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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 什么是实例化[通俗易懂]

    创建对象的过程就叫实例化,因此有时候我们也将对象叫做一个类的实例。例如:“Demo demo = new Demo();”。

    2022年1月16日
    69
  • python中如何输入派_用phython语言求圆周率

    python中如何输入派_用phython语言求圆周率关于完全弹性碰撞和圆周率的关系所设计的易语言程序.版本2.程序集窗口程序集_启动窗口.程序集变量n,整数型.程序集变量m1,整数型.程序集变量m2,整数型.程序集变量v1,小数型.程序集变量v2,小数型.程序集变量v11,小数型.程序集变量v22,小数型.子程序_按钮1_被单击n=0m1=到数值(编辑框1.内容)m2=1v1=-1v2=0.判…

    2025年9月2日
    3
  • jaxen.jar下载地址

    jaxen.jar下载地址最近在写XML文件的时候需要用到这个jar包,但是在网上下载的时候贼慢,于是在csdn上找但是都要收费,最后终于找到了,现在分享给你们。不要谢,请叫我雷锋!《jaxen》jar包下载地址…

    2022年7月26日
    28
  • RewriteCond 详解

    RewriteCond 详解RewriteCond重写规则执行条件语法:RewriteCondTestStringCondPattern生效域:serverconfig,virtualhost,directory,.htaccess特别的上面的TestString,可提供反向引用.引用模式为:%N其中N为(0<=N<=9),引用当前若干Rew…

    2022年6月14日
    30
  • 2019最新三年php 面试题[通俗易懂]

    2019最新三年php 面试题[通俗易懂]什么是composer?以及composer是干什么用的?工作原理 PHP如何实现静态化 你了解设计模式吗?说下你最常用的设计模式 观察者模式是如何实现的?工厂模式是如何实现的?适配器模式是如何实现的?…… PHP的优化方案 说下你了解的session和cookie 如何实现不基于session和cookie的用户认证。 说下你目前框架所用到的核心概念 什么是CSRF攻击,X…

    2022年8月27日
    3
  • CentOS 系统创建网卡bond0「建议收藏」

    1、进入系统,查看网络配置用root进行登录以后,用ipa指令查看网络以及网卡的光口名。从下图可以发现一共有5个口的信息,其中eno1和eno2是主板的板载网口,目前多是千兆网口,剩下两个则是我们需要的网络光口名。2、查看到这些信息后需要进入配置设置cd/etc/sysconfig/network-scripts/#进入系统网络配置的文件夹ls#查看有哪些文件通常是会有两个ifcfg-光口名这样…

    2022年4月12日
    133

发表回复

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

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