为什么我在循环中尝试却没有显示此错误?

时间:2019-02-23 21:06:54

标签: python

我试图用python编写一个简单的程序:

此代码有效。它在4个空格后输出为3个星号

j=4
i=3
print(' '*j,'*'*i)

但是当我尝试如下使用for循环时,同样的事情:

print ('Enter a positive odd number')
n = input ()
for i in range(1,n+1,2):
  j= int(n/2)
  print(' '*j,'*'*i)
  j=j-1

我遇到以下错误:

  

“ C:/用户/ NIKHIL / AppData /本地/程序/ Python / Python37-32 /星号   pattern.py”,第3行,在       对于范围(1,n + 1,2)中的i:TypeError:只能将str(而不是“ int”)连接到str

有人可以让我知道为什么串联错误仅在for循环中出现吗?,早期的代码也将i和j定义为整数

1 个答案:

答案 0 :(得分:0)

您需要将输入n强制转换为始终存储为字符串的整数:

for i in range(1, int(n)+1, 2):

您也可以直接在声明中强制转换:

n = int(input("Enter a positive odd number"))