鱼C论坛

 找回密码
 立即注册
查看: 152|回复: 11

求助

[复制链接]
发表于 2024-7-27 10:51:07 | 显示全部楼层 |阅读模式

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

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

x
为什么这行代码交互器可以实现,编辑器却无法实现呢?

x = input('酒精检测:')


print('不构成饮酒') if 0 <= x < 20 else ('酒后驾驶' if 20 <= x < 80 else
                                   '醉酒驾驶')



请问是哪里出问题了呢? 为什么会这样呢?
d486d6fdd9d06d7dd8a807b8f1d58c1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-27 10:51:18 | 显示全部楼层
您好!首先,我们要明白“交互器”和“编辑器”这两者的区别。

在 Python 的交互器中,您可以逐行输入代码并立刻看到结果。就像在聊天时,你问我一个问题,我立刻回答你。这种方式很灵活,可以即时反馈。

而编辑器则是让你写好一大段代码,然后一次性运行。这就像你写了一篇文章,再给我看,我才能告诉你对不对。如果你的文章中有语法错误,我可就没办法了。所以,代码中的问题就显得尤为重要。

回到你的代码:
x = input('酒精检测:')

print('不构成饮酒') if 0
这里的 `print('不构成饮酒') if 0` 是一个三元表达式,但后面没有完整的语句(比如缺少 `else` 部分),这样就导致了一个语法错误。在交互器中,如果你直接输入这行代码,不会立即产生错误,因为它是逐行执行的。但当你把它放进编辑器中时,整个文件的语法会被检查,因此就会报错。

简而言之,交互器就像是一位耐心的老师,能容忍你的一些小错误,而编辑器就像是一位要求严格的教授,一眼就看到你的语法错误并提醒你。

要解决这个问题,可以将代码改为有效的形式,比如添加 `else` 部分,或者直接使用常规的 `if` 语句:
x = input('酒精检测:')

if 0:
    print('不构成饮酒')
else:
    print('需要重新检测')

这样就能在编辑器中顺利运行啦!希望这个解释对您有帮助,也希望您继续享受编程带来的乐趣!如果还有问题,随时问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-27 10:56:41 | 显示全部楼层
不要一行流。。。忠告。
将if else分行写,如下
if 0 <= x < 20:
    print("不构成饮酒")
else if 20 <= x <80:
    print("酒后驾驶")
else:
    print("醉酒驾驶")

评分

参与人数 1鱼币 +5 收起 理由
wangv + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-7-27 11:45:57 | 显示全部楼层
FishC 发表于 2024-7-27 10:51
您好!首先,我们要明白“交互器”和“编辑器”这两者的区别。

在 Python 的交互器中,您可以逐行输入代 ...

小鱼,为什么你发的代码是这个样子的,很整洁,标识清晰,怎么发你这样的代码出来,是不是不能直接复制粘贴呀,有什么办法能发出来这种一格一格的代码啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-27 11:49:04 | 显示全部楼层
wangv 发表于 2024-07-27 11:45
小鱼,为什么你发的代码是这个样子的,很整洁,标识清 ...


哈哈,小鱼很高兴你喜欢我发的代码样式!其实将代码整齐地展示出来是有一些小技巧的。你可以使用“代码块”来格式化你的代码,让它看起来更清晰。下面是一些方法,帮助你在不同的平台上显示整洁的代码:

### 在Markdown或聊天工具中:
如果你在支持 Markdown 的地方(像 GitHub、Discord、一些论坛等),可以使用三个反引号(`
`)来创建代码块。比如:
markdown
x = input('酒精检测:')
if 0:
    print('不构成饮酒')
else:
    print('需要重新检测')
这样发送之后,它就会显示成如下的格式:
python
x = input('酒精检测:')
if 0:
    print('不构成饮酒')
else:
    print('需要重新检测')
```

### 在社交媒体上:
很多社交媒体平台支持的是简单的文本格式,你可以手动在每行前面加上空格(通常四个空格),但要注意,有些社交平台可能没有太多的格式选项。

### 在其他编辑器或文档中:
如果你是在 Word 或者其他文本编辑器里,你可以使用“代码样式”或者“预格式化文本”功能,这样代码就能保持缩进和样式了。

### 另外的小提示:
1. **缩进**:Python 非常依赖缩进,所以确保你在代码中使用一致的空格或 TAB。
2. **注释**:使用 `#` 来给代码添加注释,这样可以让别人更容易理解你的代码意图。

希望这些小技巧对你有帮助!下次发代码时,你也可以试试看,大家一定会对你的整洁代码赞不绝口的!如果还有什么问题,尽管问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-27 12:15:15 | 显示全部楼层
本帖最后由 liuhongrun2022 于 2024-7-27 12:19 编辑

input和括号的问题
x = int(input('酒精检测:'))
print('不构成饮酒' if 0 <= x < 20 else ('酒后驾驶' if 20 <= x < 80 else '醉酒驾驶'))

评分

参与人数 1鱼币 +5 收起 理由
wangv + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2024-7-27 14:02:01 | 显示全部楼层

压行的代码可读性是真的差,代码多的话压行很要命的
现在写c++算法部分根本不敢压行,把我虐爆了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2024-7-27 17:44:27 | 显示全部楼层
print('不构成饮酒') if 0 <= x < 20 else ('酒后驾驶' if 20 <= x < 80 else '醉酒驾驶')
本质上是一个三元表达式,返回一个值,就像加减乘除一样
1. 0 <= x < 20 时执行 print 函数并计算结果(结果是 print 的返回值 None)。导致“不构成饮酒”被 print 打印了出来。在交互器中表达式的结果会立即显示(None 除外),导致最终输出了“不构成饮酒”
2. 20 <= x < 80 时表达式计算得到的结果是'酒后驾驶'。在交互器中表达式的结果会立即显示,使得'酒后驾驶'显示了出来。而在编辑器中,没有显示表达式结果的功能,所以什么也不会输出
3. '醉酒驾驶'同理
说白了,就是在交互器中输入 1+2 ,它会返回 3 。在编辑器中,你要 print 整个 1+2 才会得到 3 。

除此之外,input 返回字符串,需要转换成整数
x = int(input('酒精检测:'))
b = '不构成饮酒' if 0 <= x < 20 else ('酒后驾驶' if 20 <= x < 80 else '醉酒驾驶')
print(b)

评分

参与人数 1鱼币 +5 收起 理由
wangv + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-27 17:47:32 | 显示全部楼层
wangv 发表于 2024-7-27 11:45
小鱼,为什么你发的代码是这个样子的,很整洁,标识清晰,怎么发你这样的代码出来,是不是不能直接复制粘 ...

把要发的代码两端加上【code】【/code】,要用英文中括号,因为要发出来怎么写才用的中文的中括号
或者看这篇教程

评分

参与人数 1鱼币 +5 收起 理由
wangv + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2024-7-27 21:43:25 | 显示全部楼层
学习编程中的Ben 发表于 2024-7-27 14:02
压行的代码可读性是真的差,代码多的话压行很要命的
现在写c++算法部分根本不敢压行,把我虐爆了。。。

Python if单行等于三目,很方便,而且py不等于c艹
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-29 09:48:37 | 显示全部楼层
歌者文明清理员 发表于 2024-7-27 21:43
Python if单行等于三目,很方便,而且py不等于c艹

c++也有三元操作符。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-30 12:50:04 | 显示全部楼层
x = int(input('酒精检测:'))
print(x*2)

if 0 <= x < 20:
    print('不构成饮酒')
elif 20 <= x < 80:
    print('醉酒驾驶')
else:
    print("输入有误")

前面的代码错误在没有转整数,默认的input得到的是文本,数值比较不行的。
代码写的太高难度,看不懂,要不尽量写的清晰点比较好。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-8 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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