Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
涉及Python浮点的未知代码错误(sys.argv[1])_Python_Ubuntu_Python 3.x_Arguments_Sys - Fatal编程技术网

涉及Python浮点的未知代码错误(sys.argv[1])

涉及Python浮点的未知代码错误(sys.argv[1]),python,ubuntu,python-3.x,arguments,sys,Python,Ubuntu,Python 3.x,Arguments,Sys,我正在用Python 3开发一个Farenheht摄氏度转换器。我有一些示例代码给了我,但它不起作用,但我不知道为什么。这是我的密码: #!home/andres/Documents/Executables import sys f = int(sys.argv[1]) print (f, "degrees farenheit is equal to", ) print (5.0/9*(f - 32), "degrees Celsius.") 当然,我得到一个语法错误,如下所示: Traceb

我正在用Python 3开发一个Farenheht摄氏度转换器。我有一些示例代码给了我,但它不起作用,但我不知道为什么。这是我的密码:

#!home/andres/Documents/Executables
import sys
f = int(sys.argv[1])
print (f, "degrees farenheit is equal to", )
print (5.0/9*(f - 32), "degrees Celsius.")
当然,我得到一个语法错误,如下所示:

Traceback (most recent call last):
  File "/home/andres/Documents/Executables/f2c.py", line 3, in <module>
    f = int(sys.argv[1])
IndexError: list index out of range
>>> 

我相信您正在解释器中运行代码,可以使用IDE或python提示符。这将不起作用,因为sys.argv依赖于从终端命令行调用程序。 当我这样做时,您的代码工作正常

[myself@localhost ~]$ python f2c.py 12
12 degrees farenheit is equal to -11.1111111111 degrees Celsius.
要将其作为./f2c.py运行,需要做两件事

编辑代码,使其类似于以下内容

#!/usr/bin/env python

import sys
f = int(sys.argv[1])
print (f, "degrees farenheit is equal to", )
print (5.0/9*(f - 32), "degrees Celsius.")
这是一个命令,用于像bash这样的linux shell调用'env'程序,并告诉它我们需要使用python来运行它

第二,我们需要使文件可执行,这是按照

chmod +x f2c.py
现在您可以按如下方式调用

[myself@localhost ~]$ ./f2c.py 12
12 degrees farenheit is equal to -11.1111111111 degrees Celsius.

顺便说一句,正确的拼写是Fahrenheit。

我相信您正在解释器中运行代码,使用IDE或python提示符。这将不起作用,因为sys.argv依赖于从终端命令行调用程序。 当我这样做时,您的代码工作正常

[myself@localhost ~]$ python f2c.py 12
12 degrees farenheit is equal to -11.1111111111 degrees Celsius.
要将其作为./f2c.py运行,需要做两件事

编辑代码,使其类似于以下内容

#!/usr/bin/env python

import sys
f = int(sys.argv[1])
print (f, "degrees farenheit is equal to", )
print (5.0/9*(f - 32), "degrees Celsius.")
这是一个命令,用于像bash这样的linux shell调用'env'程序,并告诉它我们需要使用python来运行它

第二,我们需要使文件可执行,这是按照

chmod +x f2c.py
现在您可以按如下方式调用

[myself@localhost ~]$ ./f2c.py 12
12 degrees farenheit is equal to -11.1111111111 degrees Celsius.

顺便说一句,正确的拼写是Fahrenheit。

在交互式解释器中使用sys.argv没有什么意义。只有按照指示运行脚本才有意义,因为sys.argv包含来自shell的命令行指令!home/andres/Documents/Executables没有多大意义。在交互式解释器中使用sys.argv没有多大意义。只有按照指示运行脚本才有意义,因为sys.argv包含来自shell的命令行指令!home/andres/Documents/Executables没有多大意义。请注意,在Windows上,您已经可以将其作为./f2c.py运行,而无需任何一个步骤,前提是您让Python安装程序安装启动器并正确连接,我认为这至少是Python.org中的CPython 3.3和3.4中的默认设置。我知道OP使用的是Ubuntu,我只是想在这里发表评论,以防有任何Windows用户出现同样的问题,并想知道为什么chmod会给他们错误,为什么shebang没有效果等等…andres@Beta:~/Documents/Executables$./f2c.py bash:./f2c.py:/bin/env:bad解释器:没有这样的文件或目录andres@Beta:~/Documents/Executables$chmod+xf2c.pyandres@Beta:~/Documents/Executables$./f2c.py 12 bash:./f2c.py:/bin/env:bad解释器:没有这样的文件或目录andres@Beta:~/Documents/Executables$@Qu0rk不确定这是如何发生的。我认为问题可能在于如何运行python。“whichpython”命令为您显示了什么?您是如何安装和运行python的?你是从windows复制文件的吗?那也会搞砸的/bin/env python。我将整个脚本粘贴在我的澄清答案中,使用sudo apt get install python3 minimal安装python。我还从Ubuntu商店安装了python IDLE。我从我正在学习的那本书的.pdf中复制了这个文件。谢谢你的帮助。应该是/usr/bin/env吗?我不运行Ubuntu,但它在Debian和OS X上是/usr/bin/env。请注意,在Windows上,您已经可以将其作为./f2c.py运行,而不需要这些步骤,前提是您让Python安装程序安装启动器并正确连接,我认为这是Python.org中至少在CPython 3.3和3.4中的默认设置。我知道OP使用的是Ubuntu,我只是想在这里发表评论,以防有任何Windows用户出现同样的问题,并想知道为什么chmod会给他们错误,为什么shebang没有效果等等…andres@Beta:~/Documents/Executables$./f2c.py bash:./f2c.py:/bin/env:bad解释器:没有这样的文件或目录andres@Beta:~/Documents/Executables$chmod+xf2c.pyandres@Beta:~/Documents/Executables$./f2c.py 12 bash:./f2c.py:/bin/env:bad解释器:没有这样的文件或目录andres@Beta:~/Documents/Executables$@Qu0rk不确定这是如何发生的。我认为问题可能在于如何运行python。“whichpython”命令为您显示了什么?您是如何安装和运行python的?你是从windows复制文件的吗?那也会搞砸的/bin/env python。我将整个脚本粘贴在我的澄清答案中,使用sudo apt get install python3 minimal安装python。我还从Ubuntu商店安装了python IDLE。我从我正在学习的那本书的.pdf中复制了这个文件。谢谢你的帮助。应该是/usr/bin/env吗?我不运行Ubuntu,但它在Debian和OS X上是/usr/bin/env。。。