用户输入一个小于10的正整数,求1 + 12 + 123 + 1234 + …… 的前n项的和,当输入大于或等于10时,输出“data error!”
输入格式
一个小于10的正整数
输出格式
数列的前 n 项和或“data error!”
解析
- 有一个整数输入
 - 求和问题,需要有一个初值为0的空容器
 - 后面一项是前面一项乘10加当前数,例如010+1,110+2,12*10+3…
 学了字符串后,可用字符串的切片获取:
num = '123456789'for x in range(1,10):n = num[:x]print(n) # 此时n为字符串,放在这里输出是给你们演示每次获得的字符串是什么,不是让你们照着抄!!!!112123123412345123456123456712345678123456789
输入大于或等于10时结果不同单独处理
- sum()可对多个对象求和,也可以对一个对象中的多个元素求和
 学完列表后,可以用列表推导式完成
print(sum(map(int, ['123456789'[:x] for x in range(1, 10)])))
常见问题
输出语句缺少print()

n=int(input())if n<=9:a=0b=0for i in range(1,n+1):a=a*10+ib=b+aprint(b)else:("data error!") # 输出语句缺少print()
- sum()参数不能是一个整数,可以是多个整数,或是可迭代对象
```python
n=int(input())
H=1
if n<10:
 for i in range(n+1):
print(sum(H)) # TypeError: ‘int’ object is not iterableH=i*10+H
 
if n>=10: print(“data error!”)
```pythona = int(input())if a in range(1,10):print(sum(a)) # TypeError: 'int' object is not iterableelse:print('data error')
n = int(input())if n < 10:s = '123456789'sum = 0for x in range(1,10):print(sum(map(int,['123456789'[:x]for x in range(1,10)])))else:print('date error!')
输出字符串与题目不符
n=abs(int(input())) if n<10: s='123456789' a=0 for i in range(n): a=a+int(s[:i+1]) print(a) elif n>=10: print('“data error!”') # 输出 “data error!”,多一层引号计算公式错
n=int(input()) n>0 s=0 if n<10: for i in range(1,n+1): s=s+s*10+i # 计算公式错 print(s) if n>=10: print('data error!')n = int(input()) s = 0 if n >= 10: print('data error') else: for i in range(n): m = s * 10 + i + 1 # 公式错 s = s + m print(s)n = int(input()) if 0 < n < 10: my_sum = 0 for i in range(1, n): my_sum = 1*(10 ** (n-1)) + 2*(10 ** (n-2)) + my_sum # 公式错 print(my_sum) # 输出位置错 if n >= 10: print("data error!")输出位置错,循环中输出会输出很多个数
num = '123456789' for x in range(1,10): n = num[:x] print(n) # 此时会输出10个数,且缺少求和n = int(input()) if 0 < n < 10: my_sum = 0 for i in range(1, n): my_sum = 1*(10 ** (n-1)) + 2*(10 ** (n-2)) + my_sum # 公式错 print(my_sum) # 输出位置错 if n >= 10: print("data error!")n=int(input()) if n>=10: print('data error!') s='123456789' sum=0 for i in range(n): sum=sum+int(s[:i+1]) print(sum) # 循环中输出会输出很多个格式错误,不缩进的行对齐,同一层次的缩进对齐

 n=int(input())  # 未顶格
 if n>=10:       # 未顶格
    print('data error!')
s='123456789'
sum=0  # 不建议用sum做变量名
for i in range(n):
    sum=sum+int(s[:i+1])
    print(sum) # 不应该在循环里输出
                    