Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,580 --> 00:00:01,960
Now up to this point,
2
00:00:01,990 --> 00:00:06,640
we've only been using for loops in association with lists.
3
00:00:07,030 --> 00:00:11,830
So we've been looping through the list and getting hold of each of the items in
4
00:00:11,830 --> 00:00:14,200
the list and then doing something with it, right?
5
00:00:14,740 --> 00:00:18,940
But we're not always going to be working with lists and using for loops.
6
00:00:19,390 --> 00:00:23,920
Sometimes we might want to use a loop completely independent of a list.
7
00:00:24,640 --> 00:00:29,080
And a good example of this is when Carl Gauss the German
8
00:00:29,080 --> 00:00:32,380
mathematician was just a child when he was 10 years old,
9
00:00:32,710 --> 00:00:36,790
his math teacher gave him an exercise that she probably thought would tie him up
10
00:00:36,790 --> 00:00:37,623
for it a little while.
11
00:00:38,080 --> 00:00:43,080
And the idea was to get him to add all of the numbers from 1 to 100.
12
00:00:43,990 --> 00:00:47,470
So 1 + 2 + 3 + 4 + 5, et cetera,
13
00:00:47,710 --> 00:00:49,660
all the way until a hundred.
14
00:00:50,500 --> 00:00:54,010
And even though she thought this would keep him busy for an hour or so getting
15
00:00:54,010 --> 00:00:58,000
this young child to add up these numbers and I can have some peace and quiet
16
00:00:58,000 --> 00:00:59,020
scrolling on Facebook,
17
00:00:59,440 --> 00:01:03,160
but unfortunately he came back to her within two minutes and gave her the
18
00:01:03,160 --> 00:01:06,880
answer. So how did he work it out? Well,
19
00:01:06,910 --> 00:01:11,140
here's actually a really smart kid and he figured out that if you flip the
20
00:01:11,140 --> 00:01:14,560
numbers around, so 100 + 99 + 98,
21
00:01:14,950 --> 00:01:17,650
and you'll look at both of these two lines,
22
00:01:17,980 --> 00:01:21,700
you can see that 1 + 100 = 101, 2
23
00:01:21,700 --> 00:01:26,410
+ 99 = 101, 3 + 98 = 101, basically,
24
00:01:26,410 --> 00:01:28,450
if you tie all of these numbers together,
25
00:01:28,720 --> 00:01:31,690
there's actually 50 pairs of 101.
26
00:01:31,960 --> 00:01:36,960
So he could simply just do 50 multiplied by 101 which is 5,050.
27
00:01:38,080 --> 00:01:39,790
And that's how he figured out the answer.
28
00:01:40,450 --> 00:01:45,450
But we can actually outshine Gaus because we can do this calculation in less
29
00:01:45,670 --> 00:01:50,230
than a minute, just by writing a few lines of code. But in order to do this,
30
00:01:50,380 --> 00:01:55,380
we first have to learn about using for loops with the range function.
31
00:01:56,770 --> 00:02:00,460
Now the range function is something that is really, really helpful
32
00:02:00,760 --> 00:02:04,510
if you want to generate a range of numbers to loop through.
33
00:02:05,290 --> 00:02:08,230
And the syntax looks something like this.
34
00:02:08,410 --> 00:02:12,940
So we've still got our for and our in keywords highlighted in blue,
35
00:02:13,570 --> 00:02:16,540
but instead of looping through a list,
36
00:02:17,050 --> 00:02:21,910
we define how our loop is going to work by creating a range.
37
00:02:22,300 --> 00:02:23,050
So in this case,
38
00:02:23,050 --> 00:02:28,050
I'm creating a range between a and b and then I'm going to get hold of each
39
00:02:29,050 --> 00:02:32,320
number in that range and do something with that number.
40
00:02:33,700 --> 00:02:38,200
So for example, if I wrote for number in range,
41
00:02:38,560 --> 00:02:42,130
and then my range is going to be 1, 10.
42
00:02:42,520 --> 00:02:46,510
So this is going to be the range that I'm going to create between 1 and 10
43
00:02:46,870 --> 00:02:50,470
and then I want to get hold of each of the numbers inside that range.
44
00:02:50,980 --> 00:02:55,810
And this is going to be between 1 and 10 and not including 10.
45
00:02:56,170 --> 00:03:00,340
So if I go ahead and print out the number that I create from my for loop,
46
00:03:00,820 --> 00:03:05,800
then you'll see that what happens is it prints 1 2 3 4 5
47
00:03:05,800 --> 00:03:10,210
6 7 8 9, but not the last digit, which I've included here.
48
00:03:10,660 --> 00:03:14,680
So if I wanted all of the numbers from 1 to 10,
49
00:03:15,010 --> 00:03:17,920
I actually have to set a range between 1 and 11.
50
00:03:18,610 --> 00:03:20,230
And now when you run the code,
51
00:03:20,290 --> 00:03:23,050
you can see that it goes from 1 all the way up to 10.
52
00:03:24,580 --> 00:03:26,320
Now by default,
53
00:03:26,380 --> 00:03:31,380
the range function will step through all the numbers from the start to the end,
54
00:03:32,710 --> 00:03:35,170
and it will increase by 1. Now,
55
00:03:35,170 --> 00:03:37,870
if you want it to increase by any other number,
56
00:03:38,020 --> 00:03:43,020
then you have to add another comma to the end of it and specify how large you
57
00:03:44,140 --> 00:03:48,910
want the step to be. So let's say we changed the step size to three.
58
00:03:49,390 --> 00:03:51,610
Now, if I rerun the same code,
59
00:03:51,850 --> 00:03:55,930
you'll see that it goes from one and then it steps by three to four and then it
60
00:03:55,930 --> 00:03:59,260
steps by three. And then it steps by three, finally to 10.
61
00:04:01,000 --> 00:04:04,180
Now let's come back to the problem that I mentioned at the beginning of this
62
00:04:04,180 --> 00:04:05,013
lesson.
63
00:04:05,170 --> 00:04:10,170
How can we add up all of the numbers from 1 to 100 by using code?
64
00:04:10,720 --> 00:04:11,020
Well,
65
00:04:11,020 --> 00:04:14,590
it's going to involve a for loop and it's going to involve the range function
66
00:04:15,070 --> 00:04:20,070
because we're going to get hold of every number in the range between 1 and
67
00:04:20,770 --> 00:04:21,490
100,
68
00:04:21,490 --> 00:04:26,050
so we need to write 101. Once we've got hold of all of these numbers,
69
00:04:26,110 --> 00:04:29,830
it's as simple as using a accumulator,
70
00:04:29,860 --> 00:04:34,810
so let's say a total = 0. And then inside the for loop,
71
00:04:34,810 --> 00:04:36,100
so that means indented,
72
00:04:36,370 --> 00:04:41,370
we're going to say total += number.
73
00:04:43,090 --> 00:04:48,090
So now it's going to add every number in this range to the total starting from
74
00:04:48,790 --> 00:04:49,623
zero.
75
00:04:49,900 --> 00:04:54,760
And this is basically going to give us the sum of every number from 1 to 100.
76
00:04:55,150 --> 00:04:59,770
So let's go ahead and print it out and see if it matches Gauss's value.
77
00:05:01,690 --> 00:05:04,570
And there you have it 5,050.
78
00:05:05,440 --> 00:05:09,160
So now that we've beaten Gauss at his own game of math using programming,
79
00:05:09,430 --> 00:05:13,240
let's head over to the next lesson and try to complete a challenge using the
80
00:05:13,240 --> 00:05:17,770
range function to see if you managed to internalize and understand everything we
81
00:05:17,770 --> 00:05:21,760
talked about in this lesson. So for all of that and more, I'll see you there.
7780
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.