J
John Salerno
Can someone tell me what's happening here. This is my code:
PUNCT_SPACE_SET = set(string.punctuation + string.whitespace)
def filter_letters(original):
return ''.join(set(original) - PUNCT_SPACE_SET)
'original' is a string. The above works as expected, but when I change
it to
return ''.join(set(original.upper()) - PUNCT_SPACE_SET)
it doesn't seem to work. The full code is below if it helps to understand.
import string
import random
import itertools
PUNCT_SPACE_SET = set(string.punctuation + string.whitespace)
def convert_quote(quote):
return encrypt_quote(quote).split('|')
def encrypt_quote(original):
original_letters = filter_letters(original)
new_letters = list(string.ascii_uppercase)
while True:
random.shuffle(new_letters)
trans_letters = ''.join(new_letters)[:len(original_letters)]
if test_code(original_letters, trans_letters):
trans_table = string.maketrans(original_letters, trans_letters)
break
return original.translate(trans_table)
def filter_letters(original):
return ''.join(set(original) - PUNCT_SPACE_SET)
#return ''.join(set(original.upper()) - PUNCT_SPACE_SET)
def test_code(original_letters, trans_letters):
for pair in itertools.izip(original_letters, trans_letters):
if pair[0] == pair[1]:
return False
return True
if __name__ == '__main__':
print convert_quote("The past is not dead. In fact, it's not even
past.|William Faulkner")
PUNCT_SPACE_SET = set(string.punctuation + string.whitespace)
def filter_letters(original):
return ''.join(set(original) - PUNCT_SPACE_SET)
'original' is a string. The above works as expected, but when I change
it to
return ''.join(set(original.upper()) - PUNCT_SPACE_SET)
it doesn't seem to work. The full code is below if it helps to understand.
import string
import random
import itertools
PUNCT_SPACE_SET = set(string.punctuation + string.whitespace)
def convert_quote(quote):
return encrypt_quote(quote).split('|')
def encrypt_quote(original):
original_letters = filter_letters(original)
new_letters = list(string.ascii_uppercase)
while True:
random.shuffle(new_letters)
trans_letters = ''.join(new_letters)[:len(original_letters)]
if test_code(original_letters, trans_letters):
trans_table = string.maketrans(original_letters, trans_letters)
break
return original.translate(trans_table)
def filter_letters(original):
return ''.join(set(original) - PUNCT_SPACE_SET)
#return ''.join(set(original.upper()) - PUNCT_SPACE_SET)
def test_code(original_letters, trans_letters):
for pair in itertools.izip(original_letters, trans_letters):
if pair[0] == pair[1]:
return False
return True
if __name__ == '__main__':
print convert_quote("The past is not dead. In fact, it's not even
past.|William Faulkner")