前言

python判断字符串是否为整数的方法:首先可以根据字符串的第一个字符确定整数的正负;然后对字符串从右向左遍历,例如111,可以看成【1110+1】,而11又可以看成【110+1】。

本教程操作环境:windows7系统、python3.9版,DELLG3电脑。

python判断字符串是否为整数的方法:

方法一:递归法

对于整数而言,例如111,可以看成1110+1,而11又可以看成110+1。而-111可以看成(-11)*10-1,-11可以看成(-1)*10-1.根据这个特点可以采用递归的方法求解,可以先根据字符串的第一个字符确定整数的正负,接着对字符串从右向左遍历.

class Test:def __init__(self):self.flag = Nonedef getFlag(self):return self.flag# 判断c是否是数字,如果是返回数字,且设置flag=True,否则返回Falsedef isNumber(self, c):return c >= '0' and c <= '9'# 判断str是否是数字def strtoint(self, strs, length):if length > 1:if not self.isNumber(list(strs)[length - 1]):# 不是数字print("不是数字")self.flag = Falsereturn -1if list(strs)[0] == '-':return self.strtoint(strs, length - 1) * 10 - (ord(list[length - 1]) - ord('0'))else:return self.strtoint(strs, length - 1) * 10 + ord(list(strs)[length - 1]) - ord('0')else:if list(strs)[0] == '-':return 0else:if not self.isNumber(list(strs)[0]):print("不是数字")self.flag = Falsereturn -1return ord(list(strs)[0]) - ord('0')def strToint(self, s):self.flag = Trueif s == None or len(s) <= 0 or (list(s)[0] == '-' and len(s) == 1):print("不是数字")self.flag = Falsereturn -1if list(s)[0] == '+':return self.strToint(s[1:len(s)], len(s) - 1)else:return self.strToint(s, len(s))

方法二:非递归法

首先通过一个字符的值确定整数的正负性,然后去掉符号位,把后面的字符串当做正数来处理,处理完成后再根据正负性返回正确的结果。实现方法为从左向右遍历字符串计算整数的值,以“123”为例,遍历到’2’的时候结果为110+2=12,遍历到‘3’的时候结果为1210+3=123。

class Test:def __init__(self):self.flag = Nonedef getFlag(self):return self.flag# 判断c是否是数字,如果是返回True,否则返回Falsedef isNumber(self, c):return c >= "0" and c <= "9"def strToint(self, strs):if strs == None:self.flag = Falseprint("不是数字")return -1self.flag = Trueres = 0i = 0minus = False  # 是否是负数if list(strs)[i] == '-':  # 结果是负数minus = Truei += 1if list(strs)[i] == '+':  # 结果是正数i += 1while i < len(strs):if self.isNumber(list(strs)[i]):res = res * 10 + ord(list(strs)[i]) - ord('0')else:self.flag = Falseprint("不是数字")return -1i += 1return -res if minus else resif __name__ == "__main__":t = Test()s = "-543"print(t.strToint(s))s = "543"print(t.strToint(s))s = "+543"print(t.strToint(s))s = "++43"result = t.strToint(s)if t.getFlag():print(result)

少儿编程100讲轻松学python(九)-python如何判断字符串是否为整数相关推荐

  1. 少儿编程100讲轻松学python(十一)-python如何保留小数点位数

    前言 python保留小数点位数的方法:首先新建py文件,输入[a=('%.2f'%a)]即可保留2位小数:然后如果输入[a=('%.4f'%a)],就保留4位小数:最后也可以输入[a=format( ...

  2. 少儿编程100讲轻松学python(十二)-python如何将数据写入txt

    前言 python将数据写入txt文本文件: 首先打开txt文件: 然后向文件写入数据,代码为[file_handle.write('helloword你好 '):file_handle.writel ...

  3. 少儿编程100讲轻松学python(十七)-pycharm如何配置python环境

    前言 pycharm配置python环境的方法:首先指定可写的模式,代码为[f1.write('helloboy!')]:然后关闭相关文件即可将缓存中的数据写入到文件中,代码为[[root@node1 ...

  4. 少儿编程100讲轻松学python(四)-python如何判断是否为数字字符串

    前言 python判断是否为数字字符串的方法: 1.通过创建自定义函数[is_number()]方法来判断字符串是否为数字: 2.可以使用内嵌if语句来实现. python判断是否为数字字符串的方法: ...

  5. 少儿编程100讲轻松学python(三)-python如何重命名文件

    前言 python重命名文件的方法:首先打开pycharm,找到要重命名的文件:然后依次选择[Refactor-Rename],在重命名窗口输入新的名称:然后点击[Refactor]按钮即可. 本教程 ...

  6. 少儿编程100讲轻松学python(二)-python cv2模块怎么安装

    前言 安装方法:1.配置python环境:2.打开cmd命令窗口,执行"python"命令检查环境是否配置好:3.如果配置成功,则执行"exit()"命令:4. ...

  7. 少儿编程100讲轻松学python(一)-python怎么打开

    前言 python的打开方法:首先按下[win+R]键,打开运行:然后搜索输入[cmd]:**后在cmd上面直接输入[python],就可以打开python软件了. 本教程操作环境:windows7系 ...

  8. 少儿编程100讲轻松学python(七)-pycharm怎么删除项目

    前言 pycharm删除项目的方法:1.打开pycharm软件,点击"File",在下拉菜单栏中选择"CloseProject":2.在弹出的界面中,点击需要删 ...

  9. 少儿编程100讲轻松学python(六)-pycharm怎么汉化?

    前言 pycharm汉化的方法: 首先下载pycharm汉化包,并找到[resource_zh.jar]文件: 然后打开pycharm安装目录的lib文件夹,将汉化包放入pycharm安装目录lib文 ...

最新文章

  1. java object转int_Java字节码文件解析
  2. 创建水印文字_推荐免费物业现场品质管理新工具—马克水印相机
  3. Study Linux --- Shell Script
  4. 内推 | 腾讯视觉感知算法全职实习生
  5. awk if 不包含_linux三剑客之awk
  6. 开源呼叫中心软件 GOautodial 存在两个漏洞,可导致RCE
  7. HTLM5 小知识点的汇集
  8. ORACLE 10G RAC 10.2.0.5 删除节点
  9. python自动轨迹绘制七边形_断面法计算土方步骤及其技巧
  10. 【编译原理】简明自底向上分析算法总结:LR(0),SLR,LR(1),LALR分析算法
  11. 【Call Me Maybe】MMD镜头+动作打包下载.zip
  12. Linux学习6 脚本登录主机 数组 排序 系统负载查询命令 定期备份
  13. php composer 安装报错 Package fxp/composer-asset-plugin has a PHP requirement incompatible with your PHP
  14. 基于Android Studio的安卓课程设计(Keep运动软件)
  15. 十个前端程序员必备的网站
  16. 3.2 Hadoop简介
  17. linux安装jdk及配置
  18. 单片机指令MOV、MOVC、MOVX的区别与联系
  19. 【无线通信协议笔记】蓝牙篇:BLE HID协议
  20. 计算机word图文混编实训报告,实训五 Word 图文混排

热门文章

  1. 工业级PoE交换机是如何进行工作的?使用中要注意什么?
  2. [渝粤教育] 苏州工艺美术职业技术学院 手机人像摄影 参考 资料
  3. 【渝粤题库】广东开放大学 婚姻家庭法 形成性考核
  4. 【渝粤题库】陕西师范大学164108 网络营销与策划 作业 (高起专)
  5. c语言构造报文,构造一个缓冲区溢出的C语言的例子
  6. vba执行linux命令,如何使用vba的shell()运行参数的.exe?
  7. jwt私钥和公钥怎么获取_jwt 用rsa公钥私钥进行验证(python发送,java接受)
  8. Php数组面包屑导航,php可应用于面包屑导航的迭代寻找家谱树实现方法
  9. 【BCH码2】BCH码的快速BM迭代译码原理详解及MATLAB实现(不使用MATLAB库函数-代码见CSDN同名资源)
  10. RabbiqMQ快速入门