我正在学习一些字符串操作python,正如您在下面尝试插入字符时所看到的,但运行了一段时间后失败了。你能解释一下原因吗
phone_num = str("+1-202-555--+0143+")
wrng = ['+','-']
for a in phone_num:
if a in wrng:
b = phone_num.find(a)
c = phone_num.rfind(a)
if type(b)!= int or float:
phone_num = phone_num[:b]+'0'+phone_num[b:]
print(phone_num)
elif type(c) != int or float:
phone_num = phone_num[:c]+'0'+phone_num[c:]
else:
print("Wrong")
还试图添加结尾,但失败了
0+1-202-555--+0143+
0+10-202-555--+0143+
0+100-202-555--+0143+
0+1000-202-555--+0143+
0+10000-202-555--+0143+
00+10000-202-555--+0143+
000+10000-202-555--+0143+
预期为0+1-202-555-0-0+0143+0
我将解释您的代码的作用,并希望它对进一步的步骤有所帮助
它执行七次,因为您有七个符号,因此您有七行输出
第一个条件
type(a)!= int
的第一部分总是求值为true,因为只有当a是+
或-
时,您才能到达那里。布尔检查的float
部分将始终计算为true,因此您可以删除它,并且在单个字符中也不会有浮点每当它是
+
时,b将是最左边+的索引,函数将在它前面添加一个0
。如果它是a-
,b将是最左边的-
的索引,并在前面添加a0
相关问题 更多 >
编程相关推荐