本帖最后由 阿奇_o 于 2021-8-16 11:27 编辑
IDLE和Anaconda的区别,我就懒得说了。。
个人观点,不要用Anacxxxx; IDLE新手了解一下,用一下;主力编辑器VScode,首选。
然后,说一下,os.system('calc') 返回的是什么东西。
其实是你调用的系统shell(cmd.exe) 执行了 calc 这条命令的 执行状态结果 —— 正常成功执行了,就返回 0 ;没成功执行,就返回 1
Linux,Unix 系统,也是这样的特殊变量(用 $? 表示)。
这个 0, 1 属于 命令执行的 "exit status" 退出状态值 , 就好比 你叫小孩子 写一页字,它写完了,就大声告诉你 "我写完了" (exit status == 0) >>> os.system('echo hello')
0
>>> os.system('xxx') # 并没有 叫 xxx 的可执行命令;故报错,exit code == 1
1
其次,还有一个 "signal num" 信号数? 属于某些程序的执行信号传递(我也不太好描述,这应该是针对进程线程级别的程序,而不是单条的命令)
比如 os.system('cmd') 的情况,其实是 系统执行了 cmd.exe , 打开了命令行终端,但你点了 关闭退出窗口,它就返回了一个 signal num >>> os.system('cmd') # 点击关闭终端窗口(或从任务管理器里"结束任务",注意要是对应的窗口进程) 这样的关闭操作,返回的信号
-1073741510
>>> os.system('cmd') # 从任务管理器里 对 不是cmd窗口的线程进行 结束任务(这样应该算是意外中断, 故返回了 1)
1
>>> os.system('cmd') # 在打开的cmd窗口,输入 exit 正常退出,返回 0 (正常成功执行并退出)
0
可以自己试试~
参考:
https://stackoverflow.com/questions/6466711/what-is-the-return-value-of-os-system-in-python
|