【发布时间】:2018-01-07 17:35:14
【问题描述】:
我正在尝试编写一个生成随机数字字符串的程序,其长度基于用户输入。我在 Sublime Text 中编写它,它与 SublimeREPL 完美配合,但我随后将它放入 IDLE 并尝试运行它,它抛出了一个无效的语法错误。
import string
import random
# Random Number Password Generator
def digit_password(length):
final = []
while length > 0:
final.append(random.choice(string.digits))
length -= 1
result = ''.join(final)
return result
length = int(raw_input("How long will this password be? "))
print digit_password(length)
当我调用函数时,它总是给我无效的语法错误,特别是“digit_password”名称。它在崇高的文本中工作,但在 IDLE 中它不会工作。有谁知道为什么会这样?
如果相关,我正在使用 python 3.6.4 shell。
【问题讨论】:
-
有什么理由在函数之外有
return? -
您正在使用 print 语句,在 python 3 中它被更改为一个函数,因此需要括号才能在 python 3 中正常工作。我假设它在 sublime 文本中工作,因为它正在使用 python2
-
以上 cmets 应该可以解决您的问题。仅供参考:您应该始终在问题正文中发布确切的错误消息。
标签: python python-3.x sublimetext sublimerepl