txt = "this is a wild string"
print(txt.replace("i", "x")) # print string with all i characters replaced with x
print(txt.replace("i", "x", 2)) # print string with first two i characters found with x
print(txt.upper()) # print string in all uppercase letters
print(txt.lower()) # print string in all uppercase letters
print(ord('A')) # print the ordinal value of a character
print(chr(95)) # print character from its ordinal value
print('Yes' * 5) # print string Yes 5 times
# Reference strings by index
print(txt[0]) # print first letter of string from starting index
print(txt[0:2]) # print first two letters from starting index
print(txt[1:]) # print all characters except the first letter
print(txt[0::2]) # print every second character
print(txt[::-1]) # print string in reverse
print(txt[-1]) # print the last character in a string
print(txt[-2:]) # print the last who characters in a string
# check if a wild is found in txt
if "wild" in txt:
print("wild is found in txt")
# check if a blah is not found in txt
if "blah" not in txt:
print("is not found in txt")
# Check if txt starts with this
if txt.startswith("this"):
print("Starts with this")
# check if txt ends with ing
if txt.endswith("ing"):
print("Ends with ing")
# Split a string into a tuple when the delimiter is first encountered
txt = 'random-data'
data_split = txt.partition('-')
print(data_split)
# output ('random', '-', 'data')
len(txt) # Return length of string
# loop through each character in string
for char in txt:
print(char)
# Display price with commas and 2 digit precision
price = 9749000
display_price = f"My price {price:,.2f}"
print(display_price)
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
fruits.count('apple') # count number of apples found in list
# output 2
fruits.count('tangerine') # count number of tangerines in list
# output 0
fruits.index('banana') # find the first index of banana
# output 3
fruits.index('banana', 4) # Find next banana starting a position 4
# output 6
fruits.reverse() # reverse fruits array
fruits
# output ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
fruits.append('grape') # append grape at the end of array
fruits
# output ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']
fruits.sort()
fruits
# output ['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']
len(fruits) # length of fruits array
# output 8
# loop and print each fruit
for fruit in fruits:
print(fruit)
empty_set = set()
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) # show that duplicates have been removed
# output {'orange', 'banana', 'pear', 'apple'}
# check if orange is in basket set
print('orange' in basket)
# output true
# convert a string to a set of letters - sets contains no duplicates
set_a = set('abcd')
set_b = set('bcde')
# the operations below returns new sets
# print letters in set_a but not in set_b - difference
print(set_a - set_b)
# output {'a'}
# print set letters that is in either set a or b - union
print(set_a | set_b)
# output {'a', 'c', 'e', 'b', 'd'}
# print letters that are in both set_a and set_b - intersection
print(set_a & set_b)
# output {'c', 'd', 'b'}
# print letters that are in set_a and set_b when the letters are found in a set but no the other set - symmetric_difference()
print(set_a ^ set_b)
# output {'a', 'e'}
# Creating dictionaries
dict1 = {'color': 'blue', 'shape': 'square', 'volume': 40}
dict2 = {'color': 'red', 'edges': 4, 'perimeter': 15}
# Creating new pairs and updating old ones
dict1['area'] = 25 # {'color': 'blue', 'shape': 'square', 'volume': 40, 'area': 25}
dict2['perimeter'] = 20 # {'color': 'red', 'edges': 4, 'perimeter': 20}
# Accessing values through keys - an KeyError will occur if the key does not exists
print(dict1['shape'])
# You can also use get, which doesn't cause an exception when the key is not found
dict1.get('false_key') # returns None
dict1.get('false_key', "key not found") # returns the custom message that you wrote
# Delete item key and return the value if the key does not exists a KeyError occurs
print(dict1.pop('volume'))
# Merging two dictionaries
dict1.update(dict2) # if a key exists in both, it takes the value of the second dict
dict1 # {'color': 'red', 'shape': 'square', 'area': 25, 'edges': 4, 'perimeter': 20}
# Getting only the values, keys or both (can be used in loops)
dict1.values() # dict_values(['red', 'square', 25, 4, 20])
dict1.keys() # dict_keys(['color', 'shape', 'area', 'edges', 'perimeter'])
dict1.items()
# dict_items([('color', 'red'), ('shape', 'square'), ('area', 25), ('edges', 4), ('perimeter', 20)])
# create a shallow copy of dict1
dict3 = dict1.copy()
# dict3 = {'color': 'red', 'shape': 'square', 'area': 25, 'edges': 4, 'perimeter': 20}