目前正在做一些学校的编程,我对这里出错的地方感到困惑:
#declaring array names.
longitude=[]; latitude=[]; messagetext=[];encryptions=[];
input_file = open('messages.txt', 'r')
lines_in_file_array = input_file.read().splitlines()
input_file.close()
#appending the lines in a select file to select records.
for line in lines_in_file_array:
record_array = line.split(',')
longitude.append(record_array[0])
latitude.append(record_array[1])
messagetext.append(record_array[2])
def encrypt():
for index in range(len(messagetext)):
x=messagetext[index]
x=([ord(character)+2 for character in x])
#the character under this seems to not like being defined. I'm confused?
codedx=str.join(chr(character),'','','','')
encoded_text.append(codedx)
print(codedx)
encrypt()
print(messagetext)
我不断收到错误"字符"没有定义。我已经在内部评论中帮助您确定原因。
答案 0 :(得分:0)
x=([ord(character)+2 for character in x])
character
是列表推导的局部变量。它在外面是不确定的。
很容易看到一些简单的例子:
[i for i in range(10)]
print(i) # NameError: name 'i' is not defined
答案 1 :(得分:0)
您遇到的问题是关于范围。字符变量只存在于您在列表推导中创建的伪for循环中。要解决这个问题,你需要1)访问X或2中的字符。创建一个将存在charachter的for循环
示例:
#declaring array names.
longitude=[]; latitude=[]; messagetext=[];encryptions=[];
input_file = open('messages.txt', 'r')
lines_in_file_array = input_file.read().splitlines()
input_file.close()
#appending the lines in a select file to select records.
for line in lines_in_file_array:
record_array = line.split(',')
longitude.append(record_array[0])
latitude.append(record_array[1])
messagetext.append(record_array[2])
def encrypt():
for index in range(len(messagetext)):
x=messagetext[index]
for y in x:
charachter = ord(y)+2
#the character under this seems to not like being defined. I'm confused?
codedx=str.join(chr(character),'','','','')
encoded_text.append(codedx)
print(codedx)
encrypt()
print(messagetext)