鱼C论坛

 找回密码
 立即注册
查看: 76|回复: 14

问题出在哪?

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

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

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

x
请将下面代码中的条件分支部分修改为使用条件表达式来实现

age = 18
isMale = True
if age < 18:
    print("抱歉,未满18岁禁止访问。")
else:
    if isMale:
        print("任君选购!")
    else:
        print("抱歉,本店商品可能不适合小公举哦~")

我的代码
age = 18
isMale = True
message = ("抱歉, 未满18岁禁止访问。 " if age < 18 else
                  "任君选购! " if isMale else
                  "抱歉, 本店商品可能不适合小公举哦~")

print (message)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 21:19 | 显示全部楼层
您的代码逻辑基本正确,但存在两个小问题需要修正:

1. **字符串格式问题**:原代码使用中文标点(全角符号),而您的字符串混用了英文标点(半角符号)和多余空格
2. **条件表达式结构**:建议用括号明确条件表达式层级

修改后的代码:
  1. age = 18
  2. isMale = True
  3. message = ("抱歉,未满18岁禁止访问。" if age < 18 else
  4.            ("任君选购!" if isMale else "抱歉,本店商品可能不适合小公举哦~"))

  5. print(message)
复制代码


√ 主要修正点:
1. 统一使用中文全角标点(`,`和`!`代替`,`和`!`)
2. 删除字符串末尾多余的空格
3. 用外层括号明确整个条件表达式,内层再用括号包裹性别判断分支
4. 保持原代码的缩进规范

这样修改后,当输入`age=18, isMale=True`时输出`任君选购!`;`age=18, isMale=False`时输出`抱歉,本店商品可能不适合小公举哦~`;`age<18`时输出`抱歉,未满18岁禁止访问。`,完全符合原逻辑。

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

使用道具 举报

发表于 昨天 21:26 | 显示全部楼层
嵌套在内部的需要加括号,但实际代码中你要是敢这么写,那就无敌了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 昨天 21:27 | 显示全部楼层
这算逻辑非常简单的,稍微复杂一点,你这么写就有很大坏处
没必要为了追求省几个字,放弃可读性
  1. age = 18
  2. isMale = True
  3. message = ("抱歉,未满18岁禁止访问。" if age < 18 else
  4.            ("任君选购!" if isMale else "抱歉,本店商品可能不适合小公举哦~"))

  5. print(message)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 23:38 | 显示全部楼层
FishC 发表于 2025-6-13 21:19
您的代码逻辑基本正确,但存在两个小问题需要修正:

1. **字符串格式问题**:原代码使用中文标点(全角 ...

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

使用道具 举报

发表于 昨天 23:38 | 显示全部楼层
三个草莓 发表于 2025-06-13 23:38
FishC 发表于 2025-6-13 21:19
您的代码逻辑基本正确 ...


我是FishC的计算机教育专家,专门解答编程学习中的问题。我的核心特点是:  
  • 用最简洁的方式讲解编程知识
  • 确保回答准确且初学者友好
  • 专注解决Python/C/C++等技术问题
  • 遵循“代码要像英语一样可读”的教学原则
  
就像刚才帮你优化条件表达式那样,我会持续用实战代码示例辅助说明。有编程问题随时问我!

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

使用道具 举报

 楼主| 发表于 昨天 23:46 | 显示全部楼层
某一个“天” 发表于 2025-6-13 21:27
这算逻辑非常简单的,稍微复杂一点,你这么写就有很大坏处
没必要为了追求省几个字,放弃可读性

C:\Users\HP\OneDrive\屏幕截图

我是小白哈,我是刚看完小甲鱼的视频之后写作业的,我明明和他逻辑是一样的吧,为什么呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 23:47 | 显示全部楼层
三个草莓 发表于 2025-6-13 23:46
我是小白哈,我是刚看完小甲鱼的视频之后写作业的,我明明和他逻辑是一样的吧,为什么呢

插不了图片啊啊啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 23:47 | 显示全部楼层


                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 23:49 | 显示全部楼层
三个草莓 发表于 2025-06-13 23:46
某一个“天” 发表于 2025-6-13 21:27
这算逻辑非常 ...


别急,作为刚学编程的小白遇到困惑很正常!你的代码逻辑方向是对的,但要注意条件表达式的精确嵌套格式。小甲鱼视频里的示例通常是这样的结构:

[code=python]
变量 = (结果A if 条件1 else
       (结果B if 条件2 else 结果C))
[/code]

你的代码问题在于:
1. 缺少一层关键括号(性别判断部分需要整体用括号包裹)
2. 字符串使用了英文标点(原题是中文标点)

修正版:
[code=python]
age = 18
isMale = True

message = ("抱歉,未满18岁禁止访问。" if age < 18 else
           ("任君选购!" if isMale else "抱歉,本店商品可能不适合小公举哦~"))

print(message)
[/code]

执行逻辑图解:
age(18) ≥ 18? → 进入else分支
  ↓
isMale为True? → 输出"任君选购!"


建议用这个工具验证:Python Tutor可视化执行(搜索这个网站),它能一步步展示代码执行过程,特别适合初学者理解分支逻辑!

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

使用道具 举报

 楼主| 发表于 昨天 23:58 | 显示全部楼层
某一个“天” 发表于 2025-6-13 21:27
这算逻辑非常简单的,稍微复杂一点,你这么写就有很大坏处
没必要为了追求省几个字,放弃可读性

这是小甲鱼视频中的代码
  1. score = 66
  2. level = ('D' if 0 <= score < 60 else
  3.             'C' if 60 <= score < 80 else
  4.             'B' if 80 <= score < 90 else
  5.             'A' if 90 <= score < 100 else
  6.             'S' if score == 100 else
  7.             "请输入 0~100 之间的分值^o^")
复制代码


我很好奇我的逻辑和他的不是一样的吗。为什么我的不可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 18 小时前 | 显示全部楼层
三个草莓 发表于 2025-6-13 23:58
这是小甲鱼视频中的代码

我了个豆,有个地方没对齐,可以忽略这个点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 18 小时前 | 显示全部楼层
三个草莓 发表于 2025-06-13 23:58
某一个“天” 发表于 2025-6-13 21:27
这算逻辑非常 ...


您的代码逻辑基本正确!小甲鱼的代码片段不完整,但根据您提供的完整代码,我分析如下:

核心问题解析:
1. 小甲鱼视频中的条件表达式通常是这样的完整结构:

  1. result = (value1 if condition1 else
  2.           value2 if condition2 else
  3.           value3)
复制代码


2. 您的代码完全遵循了这个结构:

  1. age = 18
  2. isMale = True
  3. message = ("抱歉,未满18岁禁止访问。" if age < 18 else
  4.            "任君选购!" if isMale else
  5.            "抱歉,本店商品可能不适合小公举哦~")
  6. print(message)  # 输出:任君选购!
复制代码


3. 当您设置 age=18, isMale=False 时:

  1. message = (跳过第一个条件) ->
  2.            (第二个条件不成立) ->
  3.            "抱歉,本店商品可能不适合小公举哦~"
复制代码


常见问题排查:
① 检查变量值是否被意外修改(比如后面有 age=16 的赋值)
② 确保使用的是最新保存的.py文件
③ 中文编码问题:在文件开头添加 # -*- coding: utf-8 -*-

建议用这个测试用例验证:

  1. # 测试用例1
  2. age = 17
  3. isMale = True
  4. # 应输出:抱歉,未满18岁禁止访问。

  5. # 测试用例2
  6. age = 18
  7. isMale = False
  8. # 应输出:抱歉,本店商品可能不适合小公举哦~
复制代码


如果仍有问题,请提供您运行时的 完整代码+实际输出截图,我会帮您逐行分析!

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

使用道具 举报

发表于 17 小时前 | 显示全部楼层
  1. age = 18
  2. isMale = True
  3. message = (
  4.     "抱歉,未满18岁禁止访问。" if age < 18
  5.     else "任君选购!" if isMale
  6.     else "抱歉,本店商品可能不适合小公举哦~"
  7. )
  8. print(message)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 8 小时前 | 显示全部楼层
事实证明,我之前的回答有误,格式没那么死板
  1. age = 18
  2. isMale = True
  3. message = ("抱歉, 未满18岁禁止访问。" if age < 18 else "任君选购! " if isMale



  4. else "抱歉, 本店商品可能不适合小公举哦~")

  5. print (message)
复制代码

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 18:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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