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


相关推荐

  • html5div居中属性,html怎样让div居中

    html5div居中属性,html怎样让div居中html让div居中的方法:1、通过加“内容”标签让div居中;2、在div中加入“margin:0auto属性;”自动调节居中。本文操作环境:windows7系统、HTML5&&CSS3版、DellG3电脑。DIV居中提供两个方法:1、简单快捷方法就是加内容标签。示例:center居中我要居中啦2、div中加入margin:0auto属性;自动调节居中。示例2:margin…

    2025年5月25日
    0
  • win32 – RegisterRawInputDevices 和 GetRawInputData

    win32 – RegisterRawInputDevices 和 GetRawInputData RegisterRawInputDevices 可以注册鼠标或者键盘等输入的信息,然后GetRawInputData可以获取传来的WM_INPUT消息中的输入信息。代码参考:#inclu

    2022年7月4日
    26
  • 物联网架构概述_物联网9大应用领域

    物联网架构概述_物联网9大应用领域——物联网(TheInternetofThings,简称IOT)其核心组成就是物联设备、网关和云端。物联网网络架构从下到上依次为感知层、网络层和应用层。感知层:识别物体,采集信息;网络层:主要实现信息的传递;应用层:提供丰富的基于物联网的应用;举例:在智能电网中的远程电力抄表应用:安置于用户家中的读表器就是感知层中的传感器,这些传感器在收集到用户用电的信息后,通过网络发…

    2022年9月18日
    0
  • linux系统卸载程序命令行,Linux系统中完全卸载删除程序的命令[通俗易懂]

    linux系统卸载程序命令行,Linux系统中完全卸载删除程序的命令[通俗易懂]如果您在数据中心服务器或本地服务器中使用Ubuntu或任何其他基于debian的发行版系统,您可能会遇到需要卸载软件的情况。一般情况下,您会登录并运行命令:sudoapt-getremovepackagename(其中packagename是要删除的程序名称)。但是,这样做会留下一些问题,比如安装依赖项和配置文件。这些分散的应用程序和文件不仅占用空间,而且可能导致安全问题。要完全删除的话怎么…

    2022年9月8日
    0
  • 最新安卓JAVA模拟器_安卓java模拟器完美版下载-安卓java模拟器直装最新版下载v1.4.6 – 欧普软件园…

    最新安卓JAVA模拟器_安卓java模拟器完美版下载-安卓java模拟器直装最新版下载v1.4.6 – 欧普软件园…安卓java模拟器是一款十分好用的游戏模拟器,在这款软件里面你能够看到海量的游戏内容,各种2D、3D的游戏玩,无需你下载,直接在模拟器里面就可以开启你的游戏模式了。虚拟按键的设置也是十分简单的,快来下载享受游戏带来的快乐吧!安卓java模拟器软件介绍J2ME模拟器Android版J2MELoader是一个Android版的J2ME(Java2MicroEdition)模拟器。它支持大多数的…

    2022年7月7日
    33
  • mysql经纬度查范围内_sql语句查询经纬度范围「建议收藏」

    mysql经纬度查范围内_sql语句查询经纬度范围「建议收藏」最近在做查询指定经纬度范围的数据;问题不知如何下手,于是网上找了点资料,其中有些不懂的地方希望大家能给点想法!问题是这样的:sql语句查询经纬度范围指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据。经度:113.914619纬度:22.50128范围:2kmlongitude为数据表经度字段latitude为数据表纬度字段SQL在mysql下测试通过,其他数据库可能需…

    2022年10月24日
    0

发表回复

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

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