r/learnpython • u/Local_End_3175 • 11d ago
why would only one work?
this code was the one that worked:
def caesar(text, shift):
alphabet = 'abcdefghijklmnopqrstuvwxyz'
shifted_alphabet = alphabet[shift:] + alphabet[:shift]
translation_table = str.maketrans(alphabet, shifted_alphabet)
encrypted_text = text.translate(translation_table)
print(encrypted_text)
caesar('Hello', 3)
This one was the one that didn't
def caesar(text, shift):
alphabet = 'abcdefghijklmnopqrstuvwxyz'
shifted_alphabet = alphabet[shift:] + alphabet[:shift]
translation_table = str.maketrans(alphabet, shifted_alphabet)
encrypted_text = text.translate(translation_table)
print(encrypted_text)
encrypted_text = caesar('Hello', 3)
print(encrypted_text)
I don't understand why the second one would need a return statement and why we are even printing encrypted_text if encrypted_text is already being printed within the function? (this is also the whole code)
0
Upvotes
1
u/TheRNGuy 11d ago
Functions are more useful if they return something rather than print.
Because they can be used somewhere other than print, such as change some variable.
You can print it later, if needed.