我试图用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定义为整数
答案 0 :(得分:0)
您需要将输入n
强制转换为始终存储为字符串的整数:
for i in range(1, int(n)+1, 2):
您也可以直接在声明中强制转换:
n = int(input("Enter a positive odd number"))