鱼C论坛

 找回密码
 立即注册
查看: 59|回复: 43

[技术交流] 基础 for 循环练习

[复制链接]
发表于 昨天 21:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
该进行一些练习了!修改这个程序:
  1. name = 'World'

  2. for character in name:
  3.     print(character)
  4.     print('---')
复制代码


使其输出:
  1. ---W
  2. ---o
  3. ---r
  4. ---l
  5. ---d
复制代码


答案:
  1. name = 'World'

  2. for character in name:
  3.     print('---'+ character)
  4.    
复制代码


现在写一个程序,使其为 name 中的每个字符打印一次 name。
对于 name = 'World',它应该输出:
  1. World
  2. World
  3. World
  4. World
  5. World
复制代码


答案:
  1. name = 'World'

  2. for i in name:
  3.     print(name)
  4.    
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 21:48 | 显示全部楼层
题目要求写一个程序,使得对于 name = 'World',输出结果为:

  1. World
  2. World
  3. World
  4. World
  5. World
复制代码


答案如下:

  1. name = 'World'

  2. for i in name:
  3.     print(name)
复制代码


这里循环变量 i 虽然未被使用,但循环体执行了 len(name) 次,因此 print(name) 会打印5次,得到所需输出。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:49 | 显示全部楼层
在我们查看更多循环之前,我们需要快速学习另一个概念。看看这个程序:
  1. hello = 'Hello'
  2. print(hello)
  3. hello = hello + '!'
  4. print(hello)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:49 | 显示全部楼层
ling830 发表于 2026-07-21 21:49
在我们查看更多循环之前,我们需要快速学习另一个概念 ...


该程序演示了字符串拼接和重新赋值的过程。

程序分析:  
      
  • 首先,hello = 'Hello' 将字符串 'Hello' 赋值给变量 hello。  
  • 执行 print(hello) 输出:Hello。  
  • 然后 hello = hello + '!',将原字符串 'Hello''!' 拼接成新字符串 'Hello!',并重新赋值给 hello。  
  • 最后 print(hello) 输出:Hello!  
  

输出结果:  
  1. Hello  
  2. Hello!
复制代码


这里的关键是字符串虽不可变,但可以通过赋值操作让变量指向新的字符串对象。这个技巧在循环中常用于逐步构建字符串。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:50 | 显示全部楼层
你觉得hello = hello + '!'这一行做了什么?运行程序来找出答案。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:50 | 显示全部楼层
ling830 发表于 2026-07-21 21:50
你觉得hello = hello + '!'这一行做了什么?运行程序 ...


这行代码 hello = hello + '!' 执行了两个操作:  

1. 拼接字符串:将变量 hello 当前的值('Hello')与字符串 '!' 连接,形成新字符串 'Hello!'。  
2. 重新赋值:将新字符串 'Hello!' 存储回变量 hello,覆盖原来的值。  

运行程序后,先输出 Hello,再输出 Hello!。  

这种写法常用于循环中逐步构建字符串,比如累积字符。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:52 | 显示全部楼层
FishC 发表于 2026-7-21 21:50
这行代码 hello = hello + '!' 执行了两个操作:  

1. 拼接字符串:将变量 hello 当前的值('Hello' ...
  1. Hello
  2. Hello!
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:52 | 显示全部楼层
ling830 发表于 2026-07-21 21:52
FishC 发表于 2026-7-21 21:50
这行代码 hello = hel ...


是的,运行程序后的输出正是:  

  1. Hello  
  2. Hello!
复制代码


第一行 print(hello) 输出初始值 Hello。  
第二行 hello = hello + '!' 将字符串拼接成 Hello! 并重新赋值,因此第二次 print(hello) 输出 Hello!。  

这样你就理解了拼接与重新赋值的原理。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:53 | 显示全部楼层
Python并不在乎hello在=的左右两边,
它只是像处理不同变量一样处理:它计算hello + '!',此时是'Hello' + '!',
结果是'Hello!',这就成为了hello的新值。如果有帮助的话,你可以将这一行想象成分成两个步骤:
  1. temp = hello + '!'
  2. hello = temp
复制代码

或者:
  1. temp = hello
  2. hello = temp + '!'
复制代码


这在循环中非常有用。尝试这个程序:
  1. name = 'World'
  2. line = '-'
  3. for char in name:
  4.     line = line + char
  5.     print(line)
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:53 | 显示全部楼层
ling830 发表于 2026-07-21 21:53
Python并不在乎hello在=的左右两边,
它只是像处理不 ...


该程序演示了在循环中通过拼接逐步构建字符串的过程。

程序运行结果:  
-  
-W  
-Wo  
-Wor  
-Worl  
-World  

解释:  
1. 初始 line = '-'  
2. 循环遍历 name 的每个字符 'W','o','r','l','d'  
   - 第一次:line = '-' + 'W' → '-W',打印 '-W'  
   - 第二次:line = '-W' + 'o' → '-Wo',打印 '-Wo'  
   - 以此类推  
3. 最终 line 变成 '-World',打印后循环结束  

这种逐步拼接的技巧常用于生成前缀或后缀。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:55 | 显示全部楼层
花点时间确保你完全理解这个程序。它做的事情类似于:
  1. line = '-'

  2. char = 'W'
  3. line = line + char
  4.      = '-'  + 'W'
  5.      = '-W'
  6. print('-W')

  7. char = 'o'
  8. line = line  + char
  9.      = '-W'  + 'o'
  10.      = '-Wo'
  11. print('-Wo')

  12. char = 'r'
  13. line = line  + char
  14.      = '-Wo' + 'r'
  15.      = '-Wor'
  16. print('-Wor')

  17. ...
复制代码

  1. name = 'World'
  2. line = '-'
  3. for char in name:
  4.     print(line)
  5.     line = line + char
复制代码

细节很重要。如果你交换最后两行并运行这个程序,会发生什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:55 | 显示全部楼层
ling830 发表于 2026-07-21 21:55
花点时间确保你完全理解这个程序。它做的事情类似于: ...


交换最后两行后的程序:  
  1.   
  2. name = 'World'  
  3. line = '-'  
  4. for char in name:  
  5.     print(line)  
  6.     line = line + char  
复制代码


运行结果:  
-  
-W  
-Wo  
-Wor  
-Worl  

解释:  
循环每次先打印当前 line 的值,再拼接新字符。因此:  
      
  • 第一次循环(char='W'):打印初始 line='-',然后 line 变成 '-W'。  
  • 第二次循环(char='o'):打印 '-W',然后 line 变成 '-Wo'。  
  • 第三次循环(char='r'):打印 '-Wo',然后 line 变成 '-Wor'。  
  • 第四次循环(char='l'):打印 '-Wor',然后 line 变成 '-Worl'。  
  • 第五次循环(char='d'):打印 '-Worl',然后 line 变成 '-World',但循环结束,不再打印最终结果。  
  
所以输出共五行,缺少原程序最后的 '-World'。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:56 | 显示全部楼层
name中的最后一个字符只有在循环结束时才会被添加到line中,而此时print(line)已经最后一次运行过了。因此,该字符和完整的name永远不会在三角形的底部打印出来。如果你感到困惑,可以尝试将print(line)放在line = line + char之前和之后。

让我们去掉输出中的那些-字符。你可能已经能够猜到怎么做了。

一个空字符串是一个完全不包含任何字符的字符串。 它的写法就是一对没有内容的引号:''。 它就像字符串的零。 将它添加到另一个字符串中,只会得到另一个字符串,保持不变, 就像0 + 5只是5一样。

在shell中尝试这个:

  1. '' + '' + ''
复制代码

会出现什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:56 | 显示全部楼层
ling830 发表于 2026-07-21 21:56
name中的最后一个字符只有在循环结束时才会被添加到li ...


在shell中执行 '' + '' + '' 的结果是 ''(空字符串)。因为空字符串拼接空字符串仍然为空,就像 0 + 0 + 0 的结果是0一样。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:57 | 显示全部楼层
不要将空字符串与' '混淆,后者是一个包含一个字符(空格)的非空字符串。
现在修复原始程序,去掉输出中的那些行,这样对于name = 'World'它将打印:
  1. W
  2. Wo
  3. Wor
  4. Worl
  5. World
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:57 | 显示全部楼层
ling830 发表于 2026-07-21 21:57
不要将空字符串与' '混淆,后者是一个包含一个字符( ...


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

输出:
W
Wo
Wor
Worl
World

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:59 | 显示全部楼层
FishC 发表于 2026-7-21 21:57
修改后的程序:
name = 'World'
line = ''
  1. name = 'World'
  2. line = ''
  3. for char in name:
  4.     line = line + char
  5.     print(line)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:59 | 显示全部楼层
ling830 发表于 2026-07-21 21:59
FishC 发表于 2026-7-21 21:57
修改后的程序:
name ...


是的,这个程序已经正确实现了要求。

它从空字符串开始,循环中逐个字符拼接并打印,因此输出为:

W  
Wo  
Wor  
Worl  
World  

这正是我们想要的结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 22:00 | 显示全部楼层
漂亮!
从空开始并通过for循环逐步构建的模式是非常常见的 ,你将会有很多练习机会。一些初始的空值是 ''、0和[] - 一个空列表,你很快就会看到它。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 22:00 | 显示全部楼层
ling830 发表于 2026-07-21 22:00
漂亮!
从空开始并通过for循环逐步构建的模式是非常常 ...


漂亮!你已经掌握了这个核心模式:从空值开始,在循环中逐步构建。这种模式在编程中非常常见,无论是字符串拼接、数字累加还是列表添加。

例如:
- 字符串:''
- 数字:0
- 列表:[]

接下来,你可以尝试用这个模式实现更多练习,比如累加数字或收集字符。准备好了吗?

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-7-22 00:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表