diff --git a/caeser-cipher.py b/caeser-cipher.py new file mode 100644 index 0000000..1f69055 --- /dev/null +++ b/caeser-cipher.py @@ -0,0 +1,56 @@ +import re # Import Regex tools +import string # Import string tools +ciphertext = input("Please type in your cipher text:") # Set variable cipertext to the input from user. +ciphertext = re.sub (r'([^a-zA-Z ]+?)', '', ciphertext) # Remove all non-letters. +ciphertext = ciphertext.lower() # Make it all lowercase. +letters = list(string.ascii_lowercase) # Use a list of lowercase letters. https://stackoverflow.com/questions/43918437/how-to-iterate-through-the-alphabet +letterCount = 0 # Set variable for keeping track of which letter in the ciphertext we're on. +letterPos = 0 # Set variable for keeping track of the letter's position in the alphabet. +answer = "" # The solution. +shiftNum = input("Please enter the shift used:") # Get input + +for c in ciphertext: # For every letter in the ciphertext + #Upletters = list(string.ascii_uppercase) + while letterPos < 26: # While the letter's position in the alphabet is less than + if ciphertext[letterCount] == letters[letterPos]: # Match the letter in the ciphertext to a letter in the alphabet and once they match, continue. + letter = int(letterPos) + int(shiftNum) # Take the position of the letter and the shift number. NOTE: catch spaces. + if letter > 25: + letter = letter - 26 + if letter < 0: + letter = letter + 26 + answer = answer + letters[letter] + + letterPos = letterPos + 1 + if letterPos > 25: + letterPos = letterPos - 26 + + letterCount = letterCount + 1 + +print("\nYour enciphered text is: " + answer) + +#alphabet = '"abcd","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"' #old alphabet string for an array in JS +#print(re.sub (r'([^a-zA-Z]+?)', '', alphabet)) # strip everything except letters + +''' +On line #4 +This feeds a regex to re.sub literally "If it doesn't match letters or spaces, convert it to nothing, process this variable." +Scrub extranous info or typos. +r marks it as a string literal (no escaping needed) +[] indicates a set of characters, special characters become normal. +^ = start of the string. In a set like this, it matches anything that is not in the string. +a-z matches lowercase letters. +Z-Z matches caps letters + matches a space ++? essential means "try to match this till you can't" +More info: https://docs.python.org/3/library/re.html +''' + +''' +### Stackoverflow thanks to: +First char of string: https://stackoverflow.com/questions/48973202/how-to-get-first-char-of-string-in-python +Length of string: https://stackoverflow.com/questions/4967580/how-to-get-the-size-of-a-string-in-python +Regex to scrub var of extranous info/symbols: https://stackoverflow.com/questions/44315941/regex-to-strip-all-numbers-and-special-characters-but-space-and-letters +Proper syntax for if blocks: https://stackoverflow.com/questions/37376516/python-check-if-multiple-variables-have-the-same-value +https://www.tutorialspoint.com/python/python_if_else.htm +Find substring in a string: https://stackoverflow.com/questions/3437059/does-python-have-a-string-contains-substring-method +''' diff --git a/ex10-breakallthngs.py b/ex10-breakallthngs.py new file mode 100644 index 0000000..5f87833 --- /dev/null +++ b/ex10-breakallthngs.py @@ -0,0 +1,21 @@ +tabby_cat "\tI'm tabbed in." +persian_cat "I'm split\non a line." +backslash_cat "I'm \\ a \\ cat." + +fat_cat = +I'll do a list: +\asdft* Cat food +\t* Fishes +\tasdf* Catnip\n\t* Grass +\asdt* Yo \adfsa Yasfoaa\azbcow\zznasabasbbdrwhat\kvcow +\U0001F60 + + +printtabby_cat) +printpersian_cat) +printbackslash_cat) +printfat_cat) + + 1. Got them on a study sheet minus hex, others not explained. + 2. don't know + 3. Done. See fat_cat diff --git a/ex10.py b/ex10.py new file mode 100644 index 0000000..3b5aeda --- /dev/null +++ b/ex10.py @@ -0,0 +1,21 @@ +tabby_cat = "\tI'm tabbed in." +persian_cat = "I'm split\non a line." +backslash_cat = "I'm \\ a \\ cat." + +fat_cat = ''' +I'll do a list: +\t* Cat food +\t* Fishes +\t* Catnip\n\t* Grass +\t* Yo \a Yo\bcow\rwhat\vcow +\U0001F60D +''' + +print(tabby_cat) +print(persian_cat) +print(backslash_cat) +print(fat_cat) + +# 1. Got them on a study sheet - hex, others not explained. +# 2. don't know +# 3. Done. See fat_cat diff --git a/ex11_Fun.py b/ex11_Fun.py new file mode 100644 index 0000000..f750697 --- /dev/null +++ b/ex11_Fun.py @@ -0,0 +1,34 @@ +# I had some fun with this one. + +shortInches = False # set shortInches to False + +#print("How old are you?", end=' ') +#age = input() +height = input("How tall are you? Please format your height like 5'9 :") +#print("How much do you weigh?", end=' ') +#weight = input() + +#print(f"So, you're {age} old, {height} tall and {weight} heavy.") +first = height[0] # Get first letter of the height variable. +second = height[1] # Get second letter of the height variable. +third = height[2] # Get third letter of the height variable. +last = height[-1] # Get last letter of the height variable. + +if height[2] == height[-1]: # If the third and last letters of height are the same, set shortInches to true. + shortInches = True + +#like = input("Do you like this?") +#print(like) +#1. Done. +#2 & #3 That was a lot of fun. + +if shortInches == True: # If shortInches is true, then print this + print("You are " + first + " feet " + third + " inches tall.") +else: # Otherwise, print this + print("You are " + first + " feet " + third + last + " inches tall.") + +if "\"" in height: # This is good fun. If the user uses inches instead of feet by accident, let them know sarcastically. + print("Wow! You are " + height[0] + " inches tall. That's SO TALL!") + +if not "\"" in height: # Otherwise, it's not that interesting. if not + print("A boring normal height.") diff --git a/ex7.py b/ex7.py deleted file mode 100644 index 7abc484..0000000 --- a/ex7.py +++ /dev/null @@ -1,29 +0,0 @@ -print("Mary had a little lamb.") # Print string -print("Its fleece was white as {}.".format('snow')) # Print string with format. -print("And everywhere that Mary went.") # Print string. - -with open('out.txt', 'w') as f: - print("." * 1000000000, file=f) # A little fun with a billion dots. - -end1 = "C" # Set variable to a string. -end2 = "h" # Set variable to a string. -end3 = "e" # Set variable to a string. -end4 = "e" # Set variable to a string. -end5 = "s" # Set variable to a string. -end6 = "e" # Set variable to a string. -end7 = "B" # Set variable to a string. -end8 = "u" # Set variable to a string. -end9 = "r" # Set variable to a string. -end10 = "g" # Set variable to a string. -end11 = "e" # Set variable to a string. -end12 = "r" # Set variable to a string. - - -# watch end = ' ' at the end. try removing it to see what happens. -print(end1 + end2 + end3 + end4 + end5 + end6, end=' ') # Print combined variables without a space in between on the same line as the next set of them with a space in between: -print(end7 + end8 + end9 + end10 + end11 + end12) # Print variables without spaces in between - -#1. Done -#2. Done - -# Break it. diff --git a/ex8.py b/ex8.py new file mode 100644 index 0000000..64d9cda --- /dev/null +++ b/ex8.py @@ -0,0 +1,14 @@ +formatter = "{} {} {} {} {}" # Create 4 slots to fill. + +print(formatter.format(1, 2, 3, 4, 5)) # Fill them with 1, 2, 3, 4 +print(formatter.format("one", "two", "three", "four", "five")) # Spell it out. +print(formatter.format(True, False, False, True, False)) # True, false, false, true +print(formatter.format(formatter, formatter, formatter, formatter, formatter)) # Print itself 4 times. +print(formatter.format( + + "Try your", + "Own text here", + "Maybe a poem", + "Or a song about fear", + "Or a song of redemption." +)) # One long string, don't forget the commas. diff --git a/ex9-mod.py b/ex9-mod.py new file mode 100644 index 0000000..19a732b --- /dev/null +++ b/ex9-mod.py @@ -0,0 +1,16 @@ +# Here's some new strange stuff, remember type it exactly. + +Cows = "Fred Mary Freddy Faith Freddy Jr. Felicity" +Dogs = "\n\nCharlie\nChocolate\nGeorge\nCharlie Jr.\nTerri\nFifi\nGoldie\nTimmy\nTabby" + +print("Here are the dogs: ", Dogs) +print("\nHere are the cows: ", Cows) + +print(""" + But who likes Stubbly Grass Nibbles? + + Why, Toby of course. + And Blueby is obsessed. The shopping is strong with this one. + Toby Jr. would rather invent a Stubbly Grass Generator. + Bubbles loves clothes, but refuses to go on the ridiculous shopping sprees \n of her mother. + """) diff --git a/ex9.py b/ex9.py new file mode 100644 index 0000000..d258dd6 --- /dev/null +++ b/ex9.py @@ -0,0 +1,14 @@ +# Here's some new strange stuff, remember type it exactly. + +days = "Mon Tue Wed Thu Fri Sat Sun" +months = "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug" + +print("Here are the days: ", days) +print("Here are the months: ", months) + +print(""" + There's something going on here. + With the three double-quotes. + We'll be able to type as much as we like. + Even 4 lines if we want, or 5, or 6. + """)