当前位置: 首页 > 面试题库 >

“ sys.argv”是什么意思?

水品
2023-03-14
问题内容

我正在从代码中学习,我对其代码行之一感到困惑,这是:

things = [float(arg) for arg in sys.argv[1:]]
Omega_a, Omega_b, Delta_a, Delta_b, \
init_pop_a, init_pop_b, tstep, tfinal = things

我已经在网上搜索并试图了解sys.arg含义,这是我的理解:

所以sys.argv[0]是文件名,并且sys.argv[1:]是应该由用户给出的参数的其余部分。我不确定我是否理解正确,如果正确,那么我不明白为什么会这样:

Omega_a = input() 
Omega_b = input()
etc...

这两种提供参数的方式有什么区别?

另外,如果我运行代码(按F5),Python shell会给我类似以下错误:

Traceback (most recent call last):

File "C:\Users\testcode.py", line 55, in <module>
init_pop_a, init_pop_b, tstep, tfinal = things
ValueError: need more than 0 values to unpack

sys.argv[1:]在给我一个错误之前,我什至没有机会给出参数()。所以我在网上搜索。看来我需要在cmd中运行此代码,这使我更加困惑,为什么要这么做,以及如何将其放入cmd中才能运行它?


问题答案:

区别在于,sys.argv(命令行)参数是在程序运行之前(启动时)给出的:

python testcode.py arg1 arg2 arg3 arg4 and so on ...

这将导致您的变量为:

Omega_a = 'arg1'
Omega_b = 'arg2'
Delta_a = 'arg3'
Delta_b = 'arg4'
init_pop_a = 'and'
init_pop_b = 'so'
tstep = 'on'
tfinal = '...'

input()s在运行程序时给出。

由于您没有使用参数启动程序,因此会出现错误,因为没有足够(完全为0)个参数要解压缩到变量中。



 类似资料:
  • 问题内容: 在java int,float等中,是原始类型。如果我们需要将其与泛型一起使用,则使用包装器类。但是,以下声明在Java中仍然有效, 即使它是原始类型,如何调用? 问题答案: 原始对象成为对象 对于基元,在相应的包装器类中有一些名为TYPE的常量的Class对象可用-即,int.class更改为java.lang.Integer.TYPE。对于其他类型,编译器在正在编译的类中创建一个私

  • 问题内容: 我目前正在(恢复)使用EJB的速度,而当我离开时,它发生了巨大的变化(到目前为止更好)。但是,我遇到了一个我正在苦苦挣扎的概念,并且想更好地理解它,因为它似乎在我们的代码中使用了(我工作的地方,而不是我和我所有的声音)。 这是我在一本书中找到的示例。这是显示如何使用注释的示例的一部分: 的类是一个相当简单的类来定义对:和。 哦,我从Rubinger&Burke的O’Reilly的Ent

  • 问题内容: 什么是POSIX?我已阅读Wikipedia文章,并且每次遇到该术语时都会阅读。事实是我从来没有真正了解过它是什么。 有人可以通过解释“ POSIX的需求”来向我解释吗? 问题答案: POSIX是IEEE指定的一系列标准,用于阐明和统一Unix- y操作系统提供的应用程序编程接口(以及附属问题,例如命令行外壳实用程序)。当您编写依赖于POSIX标准的程序时,可以肯定地将它们轻松移植到大

  • 本文向大家介绍NULL是什么意思?相关面试题,主要包含被问及NULL是什么意思?时的应答技巧和注意事项,需要的朋友参考一下 NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。 对NULL这个值的任何比较都会生产一个NULL值。 您不能把任何值与一个 NULL值进行比较,并在逻辑上希望获得一个答案。 使用IS NULL来进行NULL判断

  • 问题内容: 我是接口的新手,并尝试通过github执行SOAP请求 我不明白 在此代码中: 我已经观察到相同的语法 但不知道通过什么实现 问题答案: 您可以参考文章“ 如何在Go中使用接口 ”(基于“ Russ Cox对接口的描述 ”): 什么 是 接口? 接口是两件事: 这是一组方法, 但这也是一种 该 类型的 空接口 是没有方法的接口。 由于没有Implements关键字,所有类型都至少实现了

  • 问题内容: 这是什么意思? 问题答案: 在jQuery中,属性只是该属性的别名。 标识符(或)只是一个 构造函数 ,使用该标识符创建的所有实例都从构造函数的原型继承。 一个简单的构造函数: 一个类似于jQuery体系结构的简单结构: