0

List index out of range int(sys.argv[1])

Hi! I try to run this simple code but have an error in this line: int(sys.argv[1]) Error: List index out of range How can i fix that? Anyone can help me? import sys import random stake = int(sys.argv[1]) goal = int(sys.argv[2]) trials = int(sys.argv[3]) bets = 0 wins = 0 for t in range(trials): # Run one experiment. cash = stake while cash > 0 and cash < goal: # Simulate one bet. bets += 1 if random.randrange(0, 2) == 0: cash += 1 else: cash -= 1 if cash == goal: wins += 1 Print(str(100 * wins//trials) + '% wins') Print('Avg # bets: ' + str(bets//trials))

10th Apr 2021, 5:57 AM
AmirHossein RahmanParvar
5 Antworten
+ 3
Try to check length of `sys.argv` before proceeding with <stake>, <goal>, and <trials>. It would be better if you also verify whether those values were convertible to `int` after checking for their availabilty..
10th Apr 2021, 6:23 AM
Ipang
0
How should I do that? (Im beginner)
10th Apr 2021, 6:52 AM
AmirHossein RahmanParvar
0
`len( sys.argv )` should return number of elements in `sys.argv`
10th Apr 2021, 7:18 AM
Ipang
0
It still has problem Can you write corrected line of those parts? I really confused
10th Apr 2021, 10:52 AM
AmirHossein RahmanParvar
0
stake, goal, trials = 0, 0, 0 if len(sys.argv) > 2: if sys.argv[1].isdigit(): stake = int(sys.argv[1]) if sys.argv[2].isdigit(): goal = int(sys.argv[2]) if sys.argv[3].isdigit(): trials = int(sys.argv[3]) # perform additional validation for <stake>, <goal>, <trials> # as necessary
10th Apr 2021, 11:12 AM
Ipang