鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: ling830

[技术交流] 介绍 if 语句

[复制链接]
 楼主| 发表于 4 小时前 | 显示全部楼层
该挑战开始了!

写一个程序,给定一个字符串 sentence,打印一个修改后的版本, 其中第一个字母大写,其余字母小写。 例如,无论输入 sentence = 'hello world' 还是 'HELLO WORLD',输出都应该是 Hello world。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 小时前 | 显示全部楼层
ling830 发表于 2026-07-24 16:57
该挑战开始了!

写一个程序,给定一个字符串 sente ...


给你一个直接可用的程序,它会将字符串的第一个字母转为大写,其余字母全部转为小写。即使输入 `'HELLO WORLD'` 也能正确输出 `'Hello world'`。


  1. sentence = 'hello world'
  2. first = sentence[0].upper()
  3. rest = sentence[1:].lower()
  4. new_sentence = first + rest
  5. print(new_sentence)
复制代码


运行结果:

  1. Hello world
复制代码


原理:`sentence[0]` 取第一个字符,`.upper()` 转为大写;`sentence[1:]` 取从第二个字符开始到末尾的子串,`.lower()` 转为小写。最后用 `+` 拼接即可。注意如果字符串为空,访问 `sentence[0]` 会报错,但题目未涉及空字符串,暂不考虑。

——FishC计算机教育专家

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

使用道具 举报

 楼主| 发表于 4 小时前 | 显示全部楼层
FishC 发表于 2026-7-24 16:55
修复方案:添加 `else` 分支,使 `excited` 为 `False` 时,`char` 赋值为句号。这样变量 `char` 在所 ...
  1. sentence = 'Hello World'
  2. excited = False
  3. if excited:
  4.     char = '!'
  5. else:
  6.         char = '.'
  7. sentence += char
  8. print(sentence)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 小时前 | 显示全部楼层
ling830 发表于 2026-07-24 16:58
FishC 发表于 2026-7-24 16:55
修复方案:添加 `else ...


你贴出的代码中 `else` 下面的 `char = '.'` 多缩进了4个空格(变成8个)。Python要求 `else` 分支的代码与 `if` 分支的代码**缩进级别相同**(通常都是4个空格)。当前写法会导致 `IndentationError`。

**正确写法**(保持统一的4空格缩进):  

    sentence = 'Hello World'  
    excited = False  
    if excited:  
        char = '!'  
    else:  
        char = '.'  
    sentence += char  
    print(sentence)  

运行后输出 `Hello World.`。注意 `else` 与 `if` 对齐,内部代码块再缩进4个空格。  

——FishC计算机教育专家

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

使用道具 举报

 楼主| 发表于 4 小时前 | 显示全部楼层
FishC 发表于 2026-7-24 16:58
你贴出的代码中 `else` 下面的 `char = '.'` 多缩进了4个空格(变成8个)。Python要求 `else` 分支的代 ...
  1. sentence = 'HELLO WORLD'
  2. first = sentence[0].upper()
  3. rest = sentence[1:].lower()
  4. new_sentence = first + rest
  5. print(new_sentence)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 小时前 | 显示全部楼层
ling830 发表于 2026-07-24 16:59
FishC 发表于 2026-7-24 16:58
你贴出的代码中 `else ...


你的代码中 `first = sentence.upper()` 会把整个字符串都转成大写,而不是第一个字母。同理 `rest = sentence.lower()` 是整个字符串小写,结果会变成 `HELLO WORLDhello world`,不符合要求。

正确的做法是:用索引取第一个字符 `sentence[0]` 转大写,取剩余部分 `sentence[1:]` 转小写,然后拼接。

修正后的程序:


sentence = 'HELLO WORLD'
first_char = sentence[0].upper()
rest = sentence[1:].lower()
new_sentence = first_char + rest
print(new_sentence)


输出:`Hello world`

注意:如果字符串为空(本题未涉及),访问 `sentence[0]` 会报错,但题目没有要求处理空字符串。

——FishC计算机教育专家

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

使用道具 举报

 楼主| 发表于 4 小时前 | 显示全部楼层
太棒了!!!

再来一个练习,然后你就可以放松了。

写一个程序,以嘲讽的方式打印 sentence,例如:
  1. OnE MoRe eXeRcIsE, aNd tHeN YoU CaN ReLaX.
复制代码


每隔一个字符应该是小写,其余的应该是大写。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 小时前 | 显示全部楼层
ling830 发表于 2026-07-24 17:00
太棒了!!!

再来一个练习,然后你就可以放松了。 ...


完成!下面是实现嘲讽格式输出的程序。它遍历字符串的每个字符,根据索引的奇偶性分别转为大写或小写,非字母字符保持不变。


  1. sentence = input("请输入句子: ")
  2. result = ""
  3. for i, char in enumerate(sentence):
  4.     if i % 2 == 0:
  5.         result += char.upper()
  6.     else:
  7.         result += char.lower()
  8. print(result)
复制代码


例如输入 `One more exercise, and then you can relax.` 输出即为 `OnE MoRe eXeRcIsE, aNd tHeN YoU CaN ReLaX.`

——FishC计算机教育专家

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-24 21:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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