python中的argv无法使用windows可执行cmdline

Afa*_*mar 3 python argv

在Windows中:我希望这个程序在命令行上运行.但是,我收到了一个错误.我究竟做错了什么?

# create a method that append the letter stored in variable letter, ntimes.

import sys
def appender(letter,ntimes, sentence):
    print sentence+(letter*ntimes)


appender(str(sys.argv[1]),sys.argv[2], str(sys.argv[3]))
Run Code Online (Sandbox Code Playgroud)

以下是我从Windows命令行获得的错误

C:\Users\QamarAli\Documents\afaq's stuff>appender.py "F" 10 "Hello this is sent"

Traceback (most recent call last):
  File "C:\Users\QamarAli\Documents\afaq's stuff\appender.py", line 8, in <modul
e>
    appender(str(sys.argv[1]),sys.argv[2], str(sys.argv[3]))
  File "C:\Users\QamarAli\Documents\afaq's stuff\appender.py", line 5, in append
er
    print sentence+(letter*ntimes)
TypeError: can't multiply sequence by non-int of type 'str'

C:\Users\QamarAli\Documents\afaq's stuff>
Run Code Online (Sandbox Code Playgroud)

Ble*_*der 5

错误很明显:

TypeError: can't multiply sequence by non-int of type 'str'
Run Code Online (Sandbox Code Playgroud)

您试图将序列(在本例中为字符串)乘以不是数字的东西.将您的参数转换为整数:

appender(sys.argv[1], int(sys.argv[2]), sys.argv[3])
Run Code Online (Sandbox Code Playgroud)

此外,sys.argv默认情况下,参数是字符串,因此无需再次显式转换它们.