# Strings: ordered, immutable, text representation
my_string = "Hello World"
char = my_string[0]
print(char)
substring = my_string[1:5]
print(substring)
# Concatenation of two strings
greeting = "Hello"
name = "Tom"
sentence = greeting + " " + name
print(sentence)
for i in greeting:
print(i)
if 'e' in greeting:
print("yes")
else:
print("no")
my_string = ' Hello World '
print(my_string)
my_string = my_string.strip()
print(my_string)
# Operations on a string
my_string = "Hello World"
print(my_string.upper())
print(my_string.lower())
print(my_string.startswith('H'))
print(my_string.endswith('H'))
print(my_string.find('o'))
print(my_string.count('o'))
print(my_string.replace('World', 'Universe'))
# Converting a string to a list
my_string = 'how are you doing'
my_list = my_string.split(" ")
print(my_list)
my_string = 'how,are,you,doing'
my_list = my_string.split(",")
print(my_list)
# Converting a string into a list
new_string = ' '.join(my_list)
print(new_string)
# String formatting, %, format(), f-string
var = "Tom"
my_string = "the variable is %s" % var
print(my_string)
var = 3
my_string = "the variable is %d" % var
print(my_string)
var = 3.989898
my_string = "the variable is %.2f" % var
print(my_string)
# old formatting style
# new method
var = 3.989898
var2 = 6
my_string = "the variable is {}".format(var)
print(my_string)
my_string = "the variable is {:.2f}".format(var)
print(my_string)
my_string = "the variable is {:.2f} and {}".format(var, var2)
print(my_string)
# Newest method
my_string = f"the variable is {var} and {var2}"
print(my_string)
my_string = f"the variable is {var*2} and {var2+1}"
print(my_string)