Python for in循环

打的代码如图,不知道哪错了,可以帮忙指出错误吗?要求的图在下面

img

语法问题1:第一行末尾的右括号是中文右括号,第一行倒数第二个字符是中文单引号。
修改方案:将这两个标点分别改为英文右括号和英文单引号。

#修改前的错误语句
m = input('请输入行数:’)

#修改后的正确语句
m = input('请输入行数:')

语法问题2:第四行的print函数的第二个位置参数(即 \n)的数据格式错误,非字符串型。
解决方案:在 \n 前后添加英文单或双引号,使其被识别为字符串。如下所示。

#修改前的错误语句
print(s,\n)

#修改后的正确语句
print(s,'\n')

逻辑问题1:
如果要实现如问题配图所示的效果,那么不需要在第四行的print函数中添加转义字符“\n”,因为print函数默认的end参数(即每一次输出内容后面会追加的字符)值为“\n”,本来就已经可以达到“执行一次就换行输出”的效果,此时再额外输出表示换行的转义字符,就会在每一次使用第四行的print函数输出时,多换一行。
修改方案:
将第四行的语句改为

    print(s)
#注意缩进

即删除额外的转义字符。

PS:
(1)range函数参数没有问题。
(2)最后两行可以直接写为如下所示的语句,即else可省略。

print('循环结束')
#注意,使用这种写法,缩进等级应与for同级。此脚本中,即顶格写。

附修改后的代码:

m=input('请输入行数:')
for k in range(1,int(m)+1):
    s='*'*k
    print(s)
print('循环结束')

其实,也可以稍微梳理代码,培养清晰的书写风格与函数意识:

def func():
    num = input('请输入行数:')
    for i in range(1, int(num) + 1):
        s = '*' * i
        print(s)
    print('循环结束')
func()

貌似你第一句input()里的右边引号和括号使用的是中文,必须换成英文半角符号

没看出什么错误,是少了一行么?那么循环条件里面+2即可。