【问题标题】:TypeError: an integer is required I cant figure it outTypeError:需要一个整数我无法弄清楚
【发布时间】:2017-05-17 02:20:46
【问题描述】:

我已经在这段代码上工作了一段时间,并且弹出了这个错误。而且我也不是很了解...

minimun = raw_input("Minimum length of any give word to be generated: ")
maximun = raw_input("Maximum length of any give word to be generated: ")
maximunWords = raw_input("Maximun number of words to be generated in the diccionary: ")
alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYX0123456789'
string = ""


create = open('wordlist.txt', 'w')
print "Creating..."
time.sleep(2)
print "Start Time: ", time.strftime('%H:%M:%S')

for i in xrange(0,maximunWords):
    for x in random.sample(alphabet,random.randint(minimun,maximun)):
        string+=x

create.write(string+'\n')
string = ""
create.close()
print "End Time: ", time.strftime('%H:%M:%S')

这个特定的块给了我这个错误

for i in xrange(0,maximunWords):
    for x in random.sample(alphabet,random.randint(minimun,maximun)):
        string+=x

错误是这样说的:

File "ACU-Tool.py", line 62, in <module>
    for i in xrange(0,maximunWords):
TypeError: an integer is required
enter code here

【问题讨论】:

  • 您可能需要阅读 raw_input() 的文档段落,并注意 type

标签: python for-loop integer typeerror


【解决方案1】:

您收到 TypeError 的原因是 maximunWords 不是整数类型,而是字符串类型。您需要一些整数作为 xrange 中的第二个参数,因为您需要一些整数来确定何时“停止”范围。

【讨论】:

    【解决方案2】:

    问题在于 maximunWords 不是整数;它是 raw_input() 返回的字符串。显然,xrange 函数需要整数参数,而不是字符串。

    更改代码以将用户输入转换为整数,代码会更好地工作:

    minimun = int(raw_input("Minimum length of any give word to be generated: "))
    maximun = int(raw_input("Maximum length of any give word to be generated: "))
    maximunWords = int(raw_input("Maximun number of words to be generated in the diccionary: "))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      相关资源
      最近更新 更多