def ex(a,n):
s=0
for i in range(n+1):
x=int(str(a)*i)
s+=x
return s
a=int(input("请输入一个1-9的数:"))
n=int(input("请输入一个数:"))
print(ex(a,n))
这段代码会报错,然后把for i in range(n+1)改成for i in range(1,n+1)就可以正常运行了,这是为啥?两者有啥区别?
def ex(a,n):
s=0
for i in range(n+1):
x=int(str(a)*i)
s+=x
return s
a=int(input("请输入一个1-9的数:"))
n=int(input("请输入一个数:"))
print(ex(a,n))
这段代码会报错,然后把for i in range(n+1)改成for i in range(1,n+1)就可以正常运行了,这是为啥?两者有啥区别?
range(n+1)运行时是从0开始遍历的,而range(1,n+1)没有遍历0。字符串0的结果是一个空字符串,空字符串转化成整型时会报错,所以int(str(a)0)会报错。所以在遍历时不能把0遍历进去。