cpj0036 发表于 2021-1-16 11:58:52

python一个单独的数字是一条语句吗,或者说是什么?

在python3.7中
当使用shell输入了例如0.3,结果会返回一个0.3.
但是当创立了文本之后输入0.3按下f5编译,似乎什么也没有发生。
谁能告诉我为什么不会返回一个0.3?

qiuyouzhi 发表于 2021-1-16 12:05:51

因为你没有print呀
在Shell里面会自动返回这段代码的运行结果,而在文件里不会

hrp 发表于 2021-1-16 12:10:17

本帖最后由 hrp 于 2021-1-16 12:47 编辑

shell会自动调__repr__方法

jackz007 发表于 2021-1-16 12:21:36

本帖最后由 jackz007 于 2021-1-16 12:26 编辑

      在 shell 环境,输入一个变量(或常量),会被认为是在查询其内容,于是 ,shell 会通过 print() 函数,自动输出其内容作为响应,但是,作为脚本语句,单独书写一个变量或常量没有任何意义,如果想知道其内容,你得自己动用 print() 函数,把它打印出来。

wp231957 发表于 2021-1-16 12:23:40

单独的一个数字在任何语言里都没有意义
会被编译器当垃圾干掉

kogawananari 发表于 2021-1-16 12:42:45

本帖最后由 kogawananari 于 2021-1-16 12:44 编辑

Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec7 2020, 17:08:21) on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> eval('1')
1
>>> exec('1')
>>> exec('a=1')
>>> eval('a=1')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
    a=1
   ^
SyntaxError: invalid syntax
>>> exec('(a:=1)')
>>> eval('(a:=1)')
1
python里有语句和表达式的区别
exec()把字符串当成语句执行 但是不会有返回值
eval()把字符串当成表达式执行 传入赋值等操作会报错
运行python文件是逐行执行exec() 故而什么也不显示
而行首有【>>> 】的交互式里面 是执行的exec(compile(input('>>> '),'','single')) 这个可以把表达式和语句都执行如果非None就返回结果
{:10_253:}

cpj0036 发表于 2021-1-16 20:27:20

666
页: [1]
查看完整版本: python一个单独的数字是一条语句吗,或者说是什么?