我的代碼不工作,請幫忙!我在編程中有一個項目,我無法弄清楚。它給了我這個錯誤:Python代碼給出錯誤
Traceback (most recent call last):
File "C:/Python27/breakingcodeccc.py", line 258, in <module>
decodeorencode()
File "C:/Python27/breakingcodeccc.py", line 14, in decodeorencode
encode()
File "C:/Python27/breakingcodeccc.py", line 61, in encode
for letters in secretmessage:
TypeError: 'bool' is not interable
我試過一切都得到這個工作。當我推動解碼它只是重複,當我編碼它甚至不會編碼。順便說一句,我是個新手。
print "Hey there user"
global message
def decodeorencode():
valid_answer = False
while valid_answer == False:
message = str(raw_input('would you like to encode or decode? '))
if message.lower() == "encode" :
encode()
elif message.lower() == "decode":
print "We will now decode your message!"
response = str(raw_input('do you know the key? '))
if response in (['yes', 'Yes', 'y', 'Y']):
decode()
elif response in (['no', 'No', 'n', 'N']):
random_decode()
alphabetupper = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z']
alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
dmessage = []
emessage = []
rdmessage = []
def encode():
print "We will now encode your message!"
secretmessage = str(raw_input("Please enter your message now."))
valid_anwser = True
keyy = int(raw_input("Please pick a key between 1 to 26"))
secretmessage = secretmessage.isupper()
for letters in secretmessage:
one_letter = letters
if one_letter.isalpha() == True:
number = alphabetupper.index(one_letter) + keyy
if number <= 26:
letter = alphabetupper[number]
emessage.append(letter)
break
else:
letter = number % 26
letter = alphabetupper[letter]
emessage.append(letter)
break
elif letters.isalpha == False:
emessage.append(letters)
break
return emessage
def decode():
valid_answer = True
secretmessage = str(raw_input("Please enter your message now."))
keyy = int(raw_input("Please pick a key between 1 to 26"))
keyy = - keyy
for letters in secretmessage:
if letters.isalpha()== True and letters.isupper() == True:
number = alphabetupper.index(letters)+ keyy
if number <= 26:
letter = alphabetupper[number]
dmessage.append(letter)
break
else:
letter = number%26
letter = alphabetupper[letter]
dmessage.append(letter)
break
elif letters.isalpha() == True and letters.islower() == True:
number = alphabet.index(letters) + keyy
if number <= 26:
letter = number
letter = alphabet [letter]
dmessage.append(letter)
break
else:
letter = number % 26
letter = alphabet[letter]
dmessage.append(letter)
break
elif letters.isalpha == False:
rdmessage.append(letter)
return dmessage
def random_decode():
valid_answer = True
secretmessage = str(raw_input("Please enter your message now."))
valid_answer = False
keyy = 1
while valid_answer == False:
keyy = - keyy
for letters in secretmessage:
if letters.isalpha() == True and letters.isupper() == True:
number = alphabetupper.index(letters)+ keyy
if number <= 26:
letter = number
rdmessage.append(letter)
key += 1
break
else:
letter = number % 26
letter = alphabetupper[letter]
rdmessage.append(letter)
key += 1
break
elif letters.isalpha() == True and letters.islower() == True:
number = alphabet.index(letters)+ keyy
if number <= 26:
letter = number
rdmessage.append(letter)
key += 1
break
else:
letter = number % 26
letter = alphabet[letter]
rdmessage.append(letter)
key += 1
break
elif letters.isalpha == False:
rdmessage.append(letters)
return rdmessage
decodeorencode()
實際上是'isupper()',而不是'isUpper()' –
@brunodesthuilliers - 哎呀 - 被抓住 - 你是非常正確的。 :) – MinimalMaximizer
非常感謝你! – user3298288