Python命令行乘法运算失效问题求助
乘法运算参数异常的原因与解决办法
问题原因
你遇到的问题是Shell通配符扩展导致的:在类Unix系统的Shell环境中,*是特殊通配符,会被自动替换为当前目录下所有非隐藏的文件和目录名称。当你执行./100-my_calculator.py 10 * 2时,Shell在启动Python脚本前就把*替换成了当前目录的文件列表,所以脚本的sys.argv接收到的不是*,而是这些文件名,最终出现不符合预期的输出。
而+、-、/不属于Shell通配符,不会被自动扩展,所以其他运算能正常工作。
解决办法
有两种方式可以避免Shell扩展*:
- 用单引号或双引号包裹
*,让Shell把它当作普通字符串处理:./100-my_calculator.py 10 '*' 2 # 或者 ./100-my_calculator.py 10 "*" 2 - 用反斜杠
\对*进行转义,屏蔽其通配符特性:./100-my_calculator.py 10 \* 2
执行上述任意一种命令后,脚本的sys.argv就能正确获取到*作为运算符参数,乘法运算即可正常执行。
内容的提问来源于stack exchange,提问作者MefDev
相关产品推荐
相关产品推荐

