L2 - StackingFlowing/CTProgramming GitHub Wiki
2.1 Some len()gthy stuff
print(len("My name is Douglas"))
#output 18
len() is short for length. As the name suggests, it finds the length of a string.
print(len("Hello")) # This will print 5
print(len("No")) # This will print 2
In the code that you saw at the top, we used len(dictionary) to find the length of the string "abcdefghijklmnopqrstuvwxyz". What value is it equal to?
2.2 What is % and how to sit the correct exam
We know that 7 / 3 = 2.333...
Is the same as saying 7 / 3 = 2 remainder 1
We can also write this as 7 % 3 = 1
In everyday context, % is a symbol to show a percentage.
In Python, % has nothing to do with percentage. % stands for modulo, which is just another way of saying:
What is the remainder if I divide something by something else?
Imagine that we want to equally split students into different groups. There is a total of 100 students, and each person will receive a number from 1 to 100. If we want to put them into 3 groups, we can let
- Student #1 go to group 1 because
1 % 7 = 1; - Student #2 go to group 2 because
2 % 7 = 2; - Student #3 go to group 0 because
3 % 3 = 0; - Student #4 go to group 1 because
4 % 3 = 1; - ...
- Student #100 go to group 1 because
100 % 3 = 1.
(If you find the name "group 0" confusing, you can rename it to "group 3". We cannot get 3 as remainder because 3 can be divided by itself again.)
You might wonder, Why don't we just divide by 3?
You will be right. But division only shows how many students will be in a group. Modulo shows you which group a chosen student will go to.
During an exam, aparticipants go to different rooms. They can know their room number by the following rule:
room number = participant ID number % total amount of rooms
Which room should the participant go if:
a) their ID is 5001 and there are 51 rooms
b) their ID is 1680 and there are 111 rooms
You can solve the above problem using a calculator or use Python to type in print(5001 % 51) and print(1680 % 111). Participant in a) should go to room #3 and b) goes to room #15.