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


相关推荐

  • 什么是51单片机最小系统?

    什么是51单片机最小系统?什么是单片机最小系统?说白了就是单片机能正常工作的最简单的电路。当然有些芯片自己上电就能工作,这里我们介绍的是51单片机的最小系统电路。通常51单片机的最小电路包括:单片机、晶振、复位电路。下面我们逐一介绍。一、单片机如上图所示,其各个引脚功能如下:1~8:P1对应的IO口(可编程输入输出口)。9:RST复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。10~17:P3对应的IO口。18:XTAL2晶振输出端。19:XTAL1晶振输入端。20:GND电源地。..

    2022年6月23日
    32
  • yum 安装vsftp_yum安装vsftp「建议收藏」

    yum 安装vsftp_yum安装vsftp「建议收藏」1、安装vsftp,本文采用yum安装:#yuminstallvsftpd2、安装后运行:#servicevsftpdrestartShuttingdownvsftpd:[OK]Startingvsftpdforvsftpd:[OK]3、新增加系统用户ftptest:#useradd-d/var/www-s/sbin/nologinftptest//增加新用…

    2025年12月4日
    7
  • qlistwidget用法_自定义字段实现

    qlistwidget用法_自定义字段实现效果如下:关键代码://添加itemvoidCListTestWgt::AddItem(MarkTypetype,intserialNum,constQString&content){CItemWidget*pItemWidget=newCItemWidget(this);pItemWidget->SetData(type,serialNum,content);QListWidgetItem*pItem=new

    2022年5月3日
    54
  • 一键锁定计算机快捷方式,还原win8系统创建一键锁定计算机的快捷方式的技巧…

    一键锁定计算机快捷方式,还原win8系统创建一键锁定计算机的快捷方式的技巧…今天和大家分享一下关于对win8系统创建一键锁定计算机的快捷方式设置的方法,在使用win8系统的过程中经常不知道如何去对win8系统创建一键锁定计算机的快捷方式进行设置,有什么好的办法去设置win8系统创建一键锁定计算机的快捷方式呢?在这里小编教你只需要1、首先在桌面上的空白处鼠标右击选择“新建–快捷方式”,然后在弹出来的创建快捷方式界面中,在“请键入对象的位置”框中输入:rundll32.ex…

    2022年7月21日
    16
  • 2020年5月份编程语言排行榜「建议收藏」

    2020年5月份编程语言排行榜「建议收藏」前言本文章中语言排名数据来自TIOBE排行榜和PYPL排行榜。这段时间一直在忙,都忘记更新这个排行榜了,今天重操旧业,给大家看一下5月份的编程语言排行榜TIOBE排行榜5月份数据2020年5月TIOBE指数以下是官方说明五月标题:编程语言C又回到了第一位Java和C在4月份已经非常接近了,但是这个月C再次超越了Java。上一次C排名第一是在2015年。我们只能猜测为什么C又是第一名。其中一个原因可能是冠状病毒。这听起来可能很傻,但有些编程语言确实从这种情况中受益。数据科学领域的例子有P

    2022年5月31日
    63
  • XXE注入漏洞

    XXE注入漏洞什么是XML要想清楚XXE漏洞,首先要了解XMLXML可扩展标记语言(EXtensibleMarkupLanguage)。它是一门用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型。XML很像HTML,但是标签没有被预定义,需要自行定义标签。它的文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。它的设计宗旨是传输数据,而不是显示数据。php版本大于5.4.45的默认不解析外部实体传参实体:有%一般实体:无%xxe漏洞与ssrf漏洞相似虽然场景不同,

    2022年5月24日
    33

发表回复

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

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