day32
数值(序列化倒序)
对一个整数n,取从右端数的第4-7位数
分析
1.整数必须要大于7位,转为字符串便于处理
2.通过 x in [‘0’,‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’]判断是否为合法数字。
3.通过字符串反向遍历,输出4-7位。
4.也可通过翻转字符串,输出4-7位。
编码实现
1.编码实现(传统遍历方法实现)
ns=input("请输入一个不少于7位数的整数:")
while 1:
flag=True
if len(ns)<7:
flag=False
print("错误,位数不够!")
for num in ns:
#if eval(num) not in list(range(10)):
if num not in [str(i) for i in range(10)]:
flag=False
if flag:
break
else:
ns = input("请输入一个不少于7位数的整数:")
n=len(ns)
subn=""
for i in range(-1,-n-1,-1):
if i<=-4 and i>=-7:
subn=subn+ns[i]
print(eval(subn))
运行结果
请输入一个少于7位数的整数:5647281
7465
2.编码实现(利用字符串的切片特性实现)
ns=input("请输入一个少于7位数的整数:")
while 1:
flag=True
if len(ns)<7:
flag=False
print("错误,位数不够!")
for num in ns:
#if eval(num) not in list(range(10)):
if num not in [str(i) for i in range(10)]:
flag=False
if flag:
break
else:
ns = input("请输入一个少于7位数的整数:")
n=len(ns)
subn=ns[::-1][3:7]
print(eval(subn))
运行结果
请输入一个少于7位数的整数:5647281
7465