鱼C论坛

 找回密码
 立即注册
查看: 599|回复: 1

[技术交流] Python课后作业:第004讲第0题 vs 第003讲动动手第1题

[复制链接]
发表于 2023-12-11 16:23:56 | 显示全部楼层 |阅读模式

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

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

x
以下是004讲第0题

0. 请问下面代码有没有毛病,为什么?

>>> input = "I love FishC.com"
>>> print(input)
I love FishC.com

答:有毛病。
解析:大家看着 input 这个英文单词是不是有点眼熟?
没错啦,这是一个内置函数(BIF)来着。
给变量命名,要避免与 Python 内部使用的名字冲突,不然这个内置函数就废掉了。
不信?我们接着调用 input() 函数,Python 直接就报错了:

>>> name = input("请输入你的名字:")
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    name = input("请输入你的名字:")
TypeError: 'str' object is not callable

以下是003讲 动动手第1题
1. 请编写代码:使用 input() 函数让用户录入姓名,然后将名字保存到变量(name)中,最后使用 print() 函数打印出来。
答案:
>>> name = input("请输入您的名字:")
请输入您的名字:小甲鱼
>>> print("你好", name, sep=",", end="!")
你好,小甲鱼!

Question:为什么都是input函数,在003讲的题(编辑器模式)和004讲的题(IDLE模式)中反映不一样呢?一个可以正常运行,一个报错?

刚学两天的小白,求助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-11 16:24:43 | 显示全部楼层
你好!首先,两个问题之所以出现不同的结果是因为它们分别在不同的环境下运行。

在003讲动动手第1题中,你使用的是编辑器模式,这意味着代码将逐行执行。在这种情况下,当你调用`input()`函数时,它会等待用户输入,并将输入保存到变量`name`中。然后,`print()`函数将`name`的值打印出来。这种方式在编辑器模式下是有效的。

而在004讲第0题中,你使用的是IDLE模式,这是一个交互式环境。在这种环境下,IDLE已经预先定义了一个名为`input`的变量,它指向了一个字符串对象。因此,当你尝试调用`input()`函数时,实际上是在尝试调用一个字符串对象,这会引发`TypeError`异常。

为了避免冲突,我们应该避免使用与Python内置函数或关键字相同的名称作为变量。在编程中,选取合适的名称是非常重要的。如果你想使用`input`作为变量名称,可以尝试使用类似`user_input`这样的名称。

希望能帮助到你!如果还有其他问题,请随时提问。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 03:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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