最近学习Python中对字符处理和条件循环有所心得,特来举例和大家分享,首先相对我的逻辑设定做个简介:
由于对百家号输入格式搞的不是很清楚,所以用图片展示代码好了,这样大家不至于看得太累.其中#为注释符号后面语句不会执行;:号后面的语句一定要开头多4个空格,这是python的固定格式,
最后为了大家能够减少输入代码工作量,我付上代码,但是由于我对百家号格式搞得不是很清楚,因此下面这段代码仅仅是内容正确,格式需要读者自己调整,还请理解,欢迎指正!
(以下仅仅内容正确,但格式不对!!!正确格式见上面图片!!!)
a=input("输入数值:")#提示输入字符
a1=a.split()#拆分输入字符串,包含空格
a2=""#双引号中间不能有空格
a1=a2.join(a1)#重新连接所有单个字符,去掉所有空格
#负数判断开始
if(a1[0]=="-"anda1.count(".")1):#如果是负数且小数点大于1个报警
print("输入格式错误:小数点2个")
elif(a1[0]=="-"anda1.count(".")==1):#负数且小数点等于1个进入判断
a3=a1.find(".")#找到小数点
小数点左=a1[1:a3]#去掉负号,提取小数点左边字符,方便以后判断
小数点右=a1[a3:]#去掉负号,提取小数点右边字符,这时是含有小数点的
a4=a3+1
小数点右判断=a1[a4:]#去掉负号,提取小数点右边字符,不包括小数点
#print(小数点右,小数点右判断)
if小数点右判断=="":#小数点后面是空格情况处理:例如:9.
print("输入格式错误:请输入完整数字")
else:
if(小数点左.isdigit()and小数点右判断.isdigit()):#小数点左边和右边进行数字判断
a5=float(a1)#转为浮点型数据类型
a5=round(a5,3)#保留小数点后三位
print("为修正后的负小数:",a5)
else:#小数点左边和右边,任意一边不是数字组成都为假,判定为不符合条件
print("输入格式错误:不是数字")
elifa1[0]=="-":#负整数判断开始
a6=a1[1:]#去掉负号
ifa6.isdigit():#判断是否由数字组成
print("为负数:",a1)
else:
print("输入格式错误:不是数字")
else:#正数判断开始
ifa1.count(".")1:#小数点大于1个报警
print("输入格式错误:小数点2个")
elifa1.count(".")==1:
a7=a1.find(".")
正小数点左=a1[0:a7]
正小数点右=a1[a7:]
a8=a7+1
正小数点右判断=a1[a8:]#不包括小数点
#print(正小数点右,正小数点右判断)
if正小数点右判断=="":#小数点后面是空格情况处理:例如:9.
print("输入格式错误:请输入完整数字")
else:
if(正小数点左.isdigit()and正小数点右判断.isdigit()):
a9=float(a1)#转为浮点型数据类型
a9=round(a9,3)#保留小数点后三位
print("为修正后的正小数:",a9)
else:
print("输入格式错误:不是数字")
else:#正数且没有小数点了
ifa1.isdigit():
print("为正数:",a1)
else:
print("输入格式错误:不是数字")