Почему sys.argv с отрицательным индексом должен позволять печатать то же значение, что и sys.argv[0]? Это также позволяет это до количества переданных аргументов.
Итак, вызов hello.py на developer.google.com, например, приведенный ниже (с 3 аргументами, включая имя скрипта): python hello.py Sumit Test
позволит получить доступ к sys.argv[-1], [-2] и [-3], при этом все они будут печатать то же значение, что и argv[0], то есть hello.py, но argv[-4] выдаст ожидаемую ошибку:
Traceback (most recent call last):
File "hello.py", line 35, in <module>
main()
File "hello.py", line 31, in main
print (sys.argv[-4])
IndexError: list index out of range
Код:
import sys
# Define a main() function that prints a little greeting.
def main():
# Get the name from the command line, using 'World' as a fallback.
if len(sys.argv) >= 2:
name = sys.argv[1]
else:
name = 'World'
print ('Hello', name)
print (sys.argv[-3])
# This is the standard boilerplate that calls the main() function.
if __name__ == '__main__':
main()