ling830 发表于 2026-7-21 22:03:12

修改这个程序:
name = 'World'
line = ''
for char in name:
    line = line + char
    print(line)

在三角形的每个字符后添加一个空格,使输出看起来像这样:
W
W o
W o r
W o r l
W o r l d

FishC 发表于 2026-7-21 22:03:21

ling830 发表于 2026-07-21 22:03
修改这个程序:
name = 'World'
line = ''
for cha ...

修改后的程序如下:


name = 'World'
line = ''
first = True
for char in name:
    if first:
      line = char
      first = False
    else:
      line = line + ' ' + char
    print(line)


输出结果:
W
W o
W o r
W o r l
W o r l d

解释:通过 first 标记是否为第一个字符,避免在开头添加空格。后续每个字符前添加一个空格,实现字符间的空格分隔。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:06:42

非常好!现在修改程序,使每一行都是反向的,像这样:
W
oW
roW
lroW
dlroW

FishC 发表于 2026-7-21 22:06:49

ling830 发表于 2026-07-21 22:06
非常好!现在修改程序,使每一行都是反向的,像这样: ...

修改后的程序如下:

name = 'World'
line = ''
for char in name:
    line = char + line
    print(line)

输出结果:
W
oW
roW
lroW
dlroW

解释:将每次获得的字符添加到 line 的前面,而非后面,从而实现反向累积。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:07:13

ling830 发表于 2026-7-21 22:06
非常好!现在修改程序,使每一行都是反向的,像这样:

name = 'World'
line = ''
test = True
for char in name:
    if test:
      line = char
      test = False
    else:
      line = line + " " + char
    print(line)

FishC 发表于 2026-7-21 22:07:20

ling830 发表于 2026-07-21 22:07
ling830 发表于 2026-7-21 22:06
非常好!现在修改程 ...

你提供的代码实现了在字符间添加空格的三角形,但这不是“每一行反向”的要求。反向是指每一行从右向左累积字符,输出如下:
W
oW
roW
lroW
dlroW

正确的程序是:

name = 'World'
line = ''
for char in name:
    line = char + line
    print(line)

你可以直接复制运行,观察输出结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:09:15

FishC 发表于 2026-7-21 22:07
你提供的代码实现了在字符间添加空格的三角形,但这不是“每一行反向”的要求。反向是指每一行从右向左 ...

name = 'World'
line = ''
test = True
for char in name:
    line += char
    print(line)

FishC 发表于 2026-7-21 22:09:23

ling830 发表于 2026-07-21 22:09
FishC 发表于 2026-7-21 22:07
你提供的代码实现了在 ...

你的代码是正向累积的(每行依次添加字符),而题目要求每一行都是反向的。正确的反向累积程序是:

name = 'World'
line = ''
for char in name:
    line = char + line
    print(line)

输出:
W
oW
roW
lroW
dlroW

你的代码输出为:
W
Wo
Wor
Worl
World

请将拼接顺序改为 char + line 即可实现反向。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:10:38

注意 line = char + line 没有简写。

现在使用 += 和 for 循环来编写自己的程序,打印出 '划线' 的 name,像这样
World
-----

FishC 发表于 2026-7-21 22:10:48

ling830 发表于 2026-07-21 22:10
注意 line = char + line 没有简写。

现在使用 +=...

根据您的要求,用 name 和 += 以及 for 循环打印出“划线”的 name,即先输出 name,再输出等长的横线。例如 name='World' 输出:

World
-----

程序如下:


name = 'World'
print(name)

line = ''
for char in name:
    line += '-'
print(line)


解释:
- 先打印原始字符串 name。
- 初始化空字符串 line。
- 循环遍历 name 中的每个字符(次数等于字符串长度),每次拼接一个 '-' 到 line。
- 循环结束后打印 line,即得到与 name 长度相同的短横线。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:11:36

FishC 发表于 2026-7-21 22:10
根据您的要求,用 name 和 += 以及 for 循环打印出“划线”的 name,即先输出 name,再输出等长的横线 ...

name = 'World'
print(name)
line = ''
for char in name:
    line += '-'
print(line)

FishC 发表于 2026-7-21 22:11:40

ling830 发表于 2026-07-21 22:11
FishC 发表于 2026-7-21 22:10
根据您的要求,用 nam ...

您已经给出了正确的程序,运行后输出:

World
-----

代码块如下:


name = 'World'
print(name)

line = ''
for char in name:
    line += '-'
print(line)


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:12:44

太棒了!
顺便说一下,当你不需要使用变量时,通常的约定是将该变量命名为 _(下划线),例如 for _ in name:。这不会改变程序的运行方式,但对读者很有帮助。
让我们把这个做得更花哨。扩展你的程序,在名字周围画一个框,像这样:
+-----+
|World|
+-----+

FishC 发表于 2026-7-21 22:12:51

ling830 发表于 2026-07-21 22:12
太棒了!
顺便说一下,当你不需要使用变量时,通常的 ...

根据您的要求,扩展程序画出包含名字的边框,输出应为:

+-----+
|World|
+-----+

程序如下:

name = 'World'
line = ''
for _ in name:
    line += '-'
print('+' + line + '+')
print('|' + name + '|')
print('+' + line + '+')

代码解释:
- 使用 for _ in name 循环,每次添加一个 '-' 到 line,形成与 name 等长的横线。
- 第一行和第三行拼接 '+' + line + '+' 作为边框。
- 第二行拼接 '|' + name + '|' 作为内容行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:17:03

FishC 发表于 2026-7-21 22:12
根据您的要求,扩展程序画出包含名字的边框,输出应为:

+-----+


name = 'World'
line = ''
for _ in name:
    line += '-'
print('+' + line + '+')
print('|' + name + '|')
print('+' + line + '+')

FishC 发表于 2026-7-21 22:17:09

ling830 发表于 2026-07-21 22:17
FishC 发表于 2026-7-21 22:12
根据您的要求,扩展程 ...

很好!你正确实现了画框程序:使用循环生成等长横线,并拼接边框与内容。运行结果正是预期的:

+-----+
|World|
+-----+

你已经掌握了用for循环构建字符串的核心技巧。接下来可以尝试改变name的值,程序会自动适应长度。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:17:45

你越来越棒了!看起来你需要更多的挑战……也许不把名字放在框里,而是让名字成为框?写一个程序,输出这个:
+World+
W   W
o   o
r   r
l   l
d   d
+World+

FishC 发表于 2026-7-21 22:17:57

ling830 发表于 2026-07-21 22:17
你越来越棒了!看起来你需要更多的挑战……也许不把名 ...

根据要求,输出如下图形:

+World+
W   W
o   o
r   r
l   l
d   d
+World+

程序如下:


name = 'World'
print('+' + name + '+')
for ch in name:
    print(ch + ' ' * len(name) + ch)
print('+' + name + '+')


解释:第一行和最后一行固定为 '+' + name + '+'。中间每行循环遍历 name 的每个字符,左右各输出该字符,中间填充 len(name) 个空格,使得整体宽度与第一行一致。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ling830 发表于 2026-7-21 22:22:01

FishC 发表于 2026-7-21 22:17
根据要求,输出如下图形:

+World+


name = 'World'
print('+' + name + '+')
for ch in name:
    print(ch + ' ' * len(name) + ch)
print('+' + name + '+')

FishC 发表于 2026-7-21 22:22:05

ling830 发表于 2026-07-21 22:22
FishC 发表于 2026-7-21 22:17
根据要求,输出如下图 ...

你写对了!这个程序完美地实现了“名字成为边框”的效果。运行后输出:

+World+
W   W
o   o
r   r
l   l
d   d
+World+

你的代码中:
- 第一行和最后一行用 '+' + name + '+' 组成边框。
- 中间每行用 `ch + ' ' * len(name) + ch` 使左右字符相同,中间填充与名字等长的空格,形成等宽空心效果。

你已经掌握了字符串拼接和循环生成重复字符的技巧。非常棒!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: 1 [2] 3
查看完整版本: 基础 for 循环练习