Pythonで、args と argvの利用方法がわからなくなる時があります。違いとは何でしょうか?
どんな時ですか?
args と argv が何を指しているのか他の人には伝わりません。
ただ
> args と argvの利用方法がわからなくなる時があります
だと"普段は分かっている"ということなはずなので、それぞれのコードを示したらいいと思います。
お世話様です。実際に引っかかってしまった問題ですが、
Q) コマンドライン上で「python3 script.py one two three four five」を実行したときに、以下の結果を得たい。コード2行目の【A】に入るものとして正しいものはどれか。
[ 実行結果 ]
['script.py', 'one', 'two']
[ script.pyのコード ]
import sys
print(【A】)
下の中のどれでしょうか?
sys.argv[0:2]
sys.argv[0:3]
sys.argv[1:3]
sys.args[1:3]
sys.args[1:4]
なのでsys.argsなのか、sys.argvなのか、迷っております。。。
$ python3
Python 3.10.4 (main, Apr 2 2022, 09:04:19) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> help(sys.args)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'sys' has no attribute 'args'. Did you mean: 'argv'?
sys.args は引っ掛け問題なのでは?エラーメッセージにあるように sys.args という属性は存在していないようです。
> AttributeError: module 'sys' has no attribute 'args'. Did you mean: 'argv'?
AttributeError:モジュール'sys'には属性'args'がありません。 もしかして:'argv' ?
御返信有難う御座います。
えっ、「sys.args という属性は存在していない」のですか?
早速試してみました。
おっしゃる通りmodule 'sys' has no attribute 'args'. でした。
また sys.argvを試したら、説明文が出てきました。
且つ回答を見てみたら、sys.argv[0:3] が正しい回答でした。
でもなぜ [0:3] なのでしょうか?
わたしはてっきり [1:3] が正しいと思っていました。。。
質問は質問を編集して書いてください。
> でもなぜ [0:3] なのでしょうか?
は、直截には「問題で要求されている結果にならないから」以外の回答はないですよね??
> わたしはてっきり [1:3] が正しいと思っていました。。。
何故そう思ったのでしょうか?
問題文章の中で、「python3 script.py one two three four five」とあり、
期待している実行結果が、['script.py', 'one', 'two'] なので
python3 →0
script.py →1
one →2
two →3
three →4
four →5
five →6
と数えました。
なので、['script.py', 'one', 'two'] は [1:3] と思いました。

回答1件
あなたの回答
tips
プレビュー