所以我正在创建一个程序来显示数字系统,但是我在第一个障碍时遇到了问题.该程序将从用户那里获取一个数字,然后在整个程序中使用该数字,以便解释几个计算机科学概念.
在解释我的第一部分编号系统时,程序会说出它是什么类型的编号.我这样做是通过将字符串转换为浮点数来实现的.如果浮点数后面只有".0",那么它将它转换为整数.
目前我正在使用此代码
while CorrectNumber == False:
try:
Number = float(NumberString) - 0
print (Number)
except:
print ("Error! Not a number!")
Run Code Online (Sandbox Code Playgroud)
这很有用,因为它显示用户是否输入了数字.但是,我不确定如何检查小数位后的值,以检查是否应将其转换为整数.有小费吗?
当使用optparse我希望在一个选项后得到整个字符串,但我只能将它的一部分放到第一个空格.
例如:
python myprog.py --executable python someOtherProg.py
Run Code Online (Sandbox Code Playgroud)
我在'可执行'中得到的只是'python'.
是否可以使用optparse解析这些行,或者您是否必须使用argparse来执行此操作?
€:我已经尝试将其封装在"s中.但是在深入研究代码之后,我发现子进程调用无法处理参数.
带有命令行的字符串被塞入列表'args'.
args = [self.getExecutable()] + self.getArgs().split()
Run Code Online (Sandbox Code Playgroud)
就像是
"[python D:\\\workspace\\\myprog\\\src\\\myprog.py]"
Run Code Online (Sandbox Code Playgroud)
这给了我系统找不到文件异常.我用的时候
args[0]
Run Code Online (Sandbox Code Playgroud)
有用.但我放弃了可执行文件的参数.
如果第一个地方没有获得字符串,则子进程模块会从列表中构建cmdline,因此我暂时无法解释该行为.