少儿编程100讲轻松学python(九)-python如何判断字符串是否为整数
前言
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如何判断字符串是否为整数相关推荐
- 少儿编程100讲轻松学python(十一)-python如何保留小数点位数
前言 python保留小数点位数的方法:首先新建py文件,输入[a=('%.2f'%a)]即可保留2位小数:然后如果输入[a=('%.4f'%a)],就保留4位小数:最后也可以输入[a=format( ...
- 少儿编程100讲轻松学python(十二)-python如何将数据写入txt
前言 python将数据写入txt文本文件: 首先打开txt文件: 然后向文件写入数据,代码为[file_handle.write('helloword你好 '):file_handle.writel ...
- 少儿编程100讲轻松学python(十七)-pycharm如何配置python环境
前言 pycharm配置python环境的方法:首先指定可写的模式,代码为[f1.write('helloboy!')]:然后关闭相关文件即可将缓存中的数据写入到文件中,代码为[[root@node1 ...
- 少儿编程100讲轻松学python(四)-python如何判断是否为数字字符串
前言 python判断是否为数字字符串的方法: 1.通过创建自定义函数[is_number()]方法来判断字符串是否为数字: 2.可以使用内嵌if语句来实现. python判断是否为数字字符串的方法: ...
- 少儿编程100讲轻松学python(三)-python如何重命名文件
前言 python重命名文件的方法:首先打开pycharm,找到要重命名的文件:然后依次选择[Refactor-Rename],在重命名窗口输入新的名称:然后点击[Refactor]按钮即可. 本教程 ...
- 少儿编程100讲轻松学python(二)-python cv2模块怎么安装
前言 安装方法:1.配置python环境:2.打开cmd命令窗口,执行"python"命令检查环境是否配置好:3.如果配置成功,则执行"exit()"命令:4. ...
- 少儿编程100讲轻松学python(一)-python怎么打开
前言 python的打开方法:首先按下[win+R]键,打开运行:然后搜索输入[cmd]:**后在cmd上面直接输入[python],就可以打开python软件了. 本教程操作环境:windows7系 ...
- 少儿编程100讲轻松学python(七)-pycharm怎么删除项目
前言 pycharm删除项目的方法:1.打开pycharm软件,点击"File",在下拉菜单栏中选择"CloseProject":2.在弹出的界面中,点击需要删 ...
- 少儿编程100讲轻松学python(六)-pycharm怎么汉化?
前言 pycharm汉化的方法: 首先下载pycharm汉化包,并找到[resource_zh.jar]文件: 然后打开pycharm安装目录的lib文件夹,将汉化包放入pycharm安装目录lib文 ...
最新文章
- java object转int_Java字节码文件解析
- 创建水印文字_推荐免费物业现场品质管理新工具—马克水印相机
- Study Linux --- Shell Script
- 内推 | 腾讯视觉感知算法全职实习生
- awk if 不包含_linux三剑客之awk
- 开源呼叫中心软件 GOautodial 存在两个漏洞,可导致RCE
- HTLM5 小知识点的汇集
- ORACLE 10G RAC 10.2.0.5 删除节点
- python自动轨迹绘制七边形_断面法计算土方步骤及其技巧
- 【编译原理】简明自底向上分析算法总结:LR(0),SLR,LR(1),LALR分析算法
- 【Call Me Maybe】MMD镜头+动作打包下载.zip
- Linux学习6 脚本登录主机 数组 排序 系统负载查询命令 定期备份
- php composer 安装报错 Package fxp/composer-asset-plugin has a PHP requirement incompatible with your PHP
- 基于Android Studio的安卓课程设计(Keep运动软件)
- 十个前端程序员必备的网站
- 3.2 Hadoop简介
- linux安装jdk及配置
- 单片机指令MOV、MOVC、MOVX的区别与联系
- 【无线通信协议笔记】蓝牙篇:BLE HID协议
- 计算机word图文混编实训报告,实训五 Word 图文混排
热门文章
- 工业级PoE交换机是如何进行工作的?使用中要注意什么?
- [渝粤教育] 苏州工艺美术职业技术学院 手机人像摄影 参考 资料
- 【渝粤题库】广东开放大学 婚姻家庭法 形成性考核
- 【渝粤题库】陕西师范大学164108 网络营销与策划 作业 (高起专)
- c语言构造报文,构造一个缓冲区溢出的C语言的例子
- vba执行linux命令,如何使用vba的shell()运行参数的.exe?
- jwt私钥和公钥怎么获取_jwt 用rsa公钥私钥进行验证(python发送,java接受)
- Php数组面包屑导航,php可应用于面包屑导航的迭代寻找家谱树实现方法
- 【BCH码2】BCH码的快速BM迭代译码原理详解及MATLAB实现(不使用MATLAB库函数-代码见CSDN同名资源)
- RabbiqMQ快速入门