teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

edit

2018/03/15 11:03

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -37,14 +37,14 @@
37
37
  print('More Arguments!! $ python main.py argv')
38
38
  quit()
39
39
 
40
- if sys.argv[0] == 'b':
40
+ if sys.argv[1] == 'b':
41
41
  ....
42
42
  ```
43
43
 
44
44
  C(try~except)
45
45
  ```python
46
46
  try:
47
- if sys.argv[0] == 'b':
47
+ if sys.argv[1] == 'b':
48
48
  ....
49
49
  except IndexError:
50
50
  print('More Arguments!! $ python main.py argv')

1

edit

2018/03/15 11:03

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -13,9 +13,40 @@
13
13
  これはコマンドライン引数となっていて、十分の数のコマンドライン引数を与えていないことがエラーの原因だということがわかります。
14
14
 
15
15
  ここから先はどう直すかということですが、
16
- 1つは、コマンドライン引数の数を与えていないユーザーが悪い。この挙動は仕様である。
16
+ 1つは、コマンドライン引数の数を与えていないユーザーが悪い。この挙動は仕様である。→放置
17
17
  と考えるか、
18
- 2つは、足りない場合、デフォルトを与える。
18
+ 2つは、足りない場合、デフォルトを与える。→A
19
19
  か、
20
- 3つは、足りない場合、与えてもらえるように表示をする。
20
+ 3つは、足りない場合、与えてもらえるように表示をする。→B
21
- ということを検討しなければなりません。
21
+ ということを検討しなければなりません。
22
+
23
+ A
24
+ ```python
25
+ if len(sys.argv) <2:
26
+ input_argv = 'a'
27
+ else:
28
+ input_argv = sys.argv[1]
29
+
30
+ if input_argv == 'b':
31
+ ....
32
+ ```
33
+
34
+ B
35
+ ```python
36
+ if len(sys.argv) <2:
37
+ print('More Arguments!! $ python main.py argv')
38
+ quit()
39
+
40
+ if sys.argv[0] == 'b':
41
+ ....
42
+ ```
43
+
44
+ C(try~except)
45
+ ```python
46
+ try:
47
+ if sys.argv[0] == 'b':
48
+ ....
49
+ except IndexError:
50
+ print('More Arguments!! $ python main.py argv')
51
+ quit()
52
+ ```