# String Concatenationname = "John"age = 25print("Hello, my name is " + name + " and I am " + str(age) + " years old.")# String Interpolationname = "John"age = 25print(f"Hello, my name is {name} and I am {age} years old.")# String Interpolation with format()name = "John"age = 25print("Hello, my name is {} and I am {} years old.".format(name, age))# String Interpolation with format() and positional argumentsname = "John"age = 25print("Hello, my name is {0} and I am {1} years old.".format(name, age))# String Interpolation with format() and keyword argumentsname = "John"age = 25print("Hello, my name is {name} and I am {age} years old.".format(name=name, age=age))# String Interpolation with format() and mixed argumentsname = "John"age = 25print("Hello, my name is {0} and I am {age} years old.".format(name, age=age))
# for loops# About for loops# for loops are used to iterate over a sequence (list, tuple, string) or other # iterable objects.# Syntax# for variable in sequence:# code block# Examples# Iterate over a list# A list is a collection which is ordered and changeable.print("\nIterate over a list")fruits = ["apple", "banana", "cherry"]for fruit in fruits:print(fruit)# Output# apple# banana# cherry# Iterate over a string# A string is a sequence of charactersprint("\nIterate over a string")for letter in"apple":print(letter)# Output# a# p# p# l# e# Iterate over a range# A range is a sequence of numbers, starting from 0 by default, and incrementsprint("\nIterate over a range")for i inrange(5):print(i)# Output# 0# 1# 2# 3# 4# Note: The range() function returns a sequence of numbers, starting from 0 # by default, and increments by 1 (by default), and stops before a # specified number.# Iterate over a tuple# A tuple is a collection which is ordered and unchangeable.print("\nIterate over a tuple")colors = ("red", "green", "blue")for color in colors:print(color)# Output# red# green# blue# Iterate over a dictionary# A dictionary is a collection which is unordered, changeable and indexed.print("\nIterate over a dictionary")person = {"name": "Alice","age": 25,"is_active": True}for key in person:print(key, person[key])# Output# name Alice# age 25# is_active True# Note: The for loop iterates over the keys of the dictionary.# Iterate over a dictionary using items() method# The items() method returns a view object that displays a list of a given# dictionary's key-value tuple pair.print("\nIterate over a dictionary using items() method")for key, value in person.items():print(key, value)# Output# name Alice# age 25# is_active True# Note: The for loop iterates over the key-value pairs of the dictionary.if key == "age"and value >= 18:print(person["name"], "is an adult.")# Iterate over a dictionary using values() method# The values() method returns a view object that displays a list of all the# values in the dictionary.print("\nIterate over a dictionary using values() method")for value in person.values():print(value)# Output# Alice# 25# True# Note: The for loop iterates over the values of the dictionary.# Iterate over a dictionary using keys() method# The keys() method returns a view object that displays a list of all the keys# in the dictionary.print("\nIterate over a dictionary using keys() method")for key in person.keys():print(key)# Output# name# age# is_active# Note: The for loop iterates over the keys of the dictionary.# Iterate over a dictionary using get() method# The get() method returns the value of the specified key.print("\nIterate over a dictionary using get() method")print(person.get("name"))# Nested for loops# clientsclients = [ {"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Charlie", "age": 35}]# productsproducts = ["apple", "banana", "cherry"]inventory = {"apple": 10,"banana": 20,"cherry": 30}# ordersorders = [ {"client": "Alice", "product": "apple"}, {"client": "Bob", "product": "banana"}, {"client": "Charlie", "product": "cherry"}]# Iterate over clientsprint("\nIterate over clients")for client in clients:print(client["name"], client["age"])# Output# Alice 25# Bob 30# Charlie 35# Iterate over productsprint("\nIterate over products")for product in products:print(product)# Output# apple# banana# cherry# Iterate over ordersprint("\nIterate over orders")for order in orders:print(order["client"], order["product"])# Output# Alice apple# Bob banana# Charlie cherry# Iterate over orders and products and update inventoryprint("\nIterate over orders and products and update inventory")for order in orders:for product in products:if order["product"] == product: inventory[product] -= 1print(order["client"], "ordered", order["product"])print("Inventory of", product, "is", inventory[product])# Output# Alice ordered apple# Inventory of apple is 9# Bob ordered banana# Inventory of banana is 19# Charlie ordered cherry# Inventory of cherry is 29# Note: The nested for loop iterates over the orders and products and updates# the inventory of the products.