我最近下载了一个python程序,看看它到底是如何工作的。这是一个简单的文本程序,你输入一些文本,它会输出随机的文本/数字/符号,直到演变成你输入的文本。这个程序已经被创建来工作了,这就是问题所在,它没有,我也不知道为什么。下面是程序:
#-----------------------------------------------------
# Python 'Evolution of Text' Program
# More programs at: usingpython.com/programs
#-----------------------------------------------------
import string
import random
import time
possibleCharacters = string.ascii_lowercase + string.digits + string.ascii_uppercase + ' .,!?;:'
target = input("Enter your target text: ")
attemptThis = ''.join(random.choice(possibleCharacters) for i in range(len(target)))
attemptNext = ''
completed = False
generation = 0
while completed == False:
print(attemptThis)
attemptNext = ''
completed = True
for i in range(len(target)):
if attemptThis[i] != target[i]:
completed = False
attemptNext += random.choice(possibleCharacters)
else:
attemptNext += target[i]
generation += 1
attemptThis = attemptNext
time.sleep(0.1)
print("Target matched! That took " + str(generation) + " generation(s)")所以,我在Python Canopy中运行了这个程序几次,下面是它给我的错误:
Welcome to Canopy's interactive data-analysis environment!
with pylab-backend set to: qt
Type '?' for more information.
In [1]: %run "c:\users\phillip\appdata\local\temp\tmpxe9get.py"
Enter your target text: Hellow World!
File "<string>", line 1
Hellow World!
^
SyntaxError: invalid syntax
In [2]: %run "c:\users\phillip\appdata\local\temp\tmpvj64ac.py"
Enter your target text: HellowWorld
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
c:\users\phillip\appdata\local\temp\tmpvj64ac.py in <module>()
10 possibleCharacters = string.ascii_lowercase + string.digits + string.ascii_uppercase + ' .,!?;:'
11
---> 12 target = input("Enter your target text: ")
13 attemptThis = ''.join(random.choice(possibleCharacters) for i in range(len(target)))
14 attemptNext = ''
C:\Users\Phillip\AppData\Local\Enthought\Canopy\App\appdata\canopy- 1.5.1.2730.win-x86_64\lib\site-packages\IPython\kernel\zmq\ipkernel.pyc in <lambda>(prompt)
362 if content.get('allow_stdin', False):
363 raw_input = lambda prompt='': self._raw_input(prompt, ident, parent)
--> 364 input = lambda prompt='': eval(raw_input(prompt))
365 else:
366 raw_input = input = lambda prompt='' : self._no_raw_input()
C:\Users\Phillip\AppData\Local\Enthought\Canopy\App\appdata\canopy 1.5.1.2730.win-x86_64\lib\site-packages\IPython\kernel\zmq\ipkernel.pyc in <module>()
NameError: name 'HellowWorld' is not defined
In [3]: %run "c:\users\phillip\appdata\local\temp\tmpulqoxo.py"
Enter your target text: What is wrong with this stupid program?
File "<string>", line 1
What is wrong with this stupid program?
^
SyntaxError: invalid syntax我不确定我只是输入了错误的文本,还是程序本身有问题。当单词之间有空格时,它会抛出随机字母(看起来是小写)的无效语法。当输入一个字母或单词或一组没有空格的单词时,它会抛出一个名称错误,就像它试图定义输入的文本一样。我真的不理解这些错误,所以任何帮助都将不胜感激。
发布于 2016-01-31 10:25:08
它是raw_input而不是输入
https://stackoverflow.com/questions/32104283
复制相似问题