1
00:00:00,180 --> 00:00:04,740
All right, guys, are you ready for another challenge? In this challenge,

2
00:00:04,770 --> 00:00:07,980
you are going to be building a Pizza Order program.

3
00:00:08,430 --> 00:00:12,690
So we're going to ask the user what size pizza they want, small, medium,

4
00:00:12,690 --> 00:00:16,770
or large, whether if they want to add pepperoni to it and whether

5
00:00:16,770 --> 00:00:18,120
if they want extra cheese.

6
00:00:18,660 --> 00:00:23,660
So based on the user's input for each of these variables, and the inputs going to

7
00:00:24,990 --> 00:00:29,400
come in the form of a single capital letter, S, M, or L, Y or N.

8
00:00:30,240 --> 00:00:31,350
Based on their input,

9
00:00:31,380 --> 00:00:34,710
we're going to try and figure out what the final bill is going to come to.

10
00:00:35,400 --> 00:00:37,920
And you can take a look at the prices over here.

11
00:00:38,430 --> 00:00:42,600
So, if you want to add pepperoni for a small pizza, it's a $2, medium,

12
00:00:42,600 --> 00:00:47,340
or large pizza is $3, and an extra cheese is $1 for any size.

13
00:00:47,820 --> 00:00:51,690
So you're going to use what you've learned about multiple if statements,

14
00:00:51,780 --> 00:00:56,250
as well as everything from previously in order to be able to create this so that

15
00:00:56,280 --> 00:00:59,490
if the user types in, for example, this input,

16
00:00:59,880 --> 00:01:04,880
large, pepperoni with no extra cheese, then it should print out

17
00:01:05,070 --> 00:01:10,020
Your final bill is $28. Have a look at the examples and the hints

18
00:01:10,350 --> 00:01:13,530
and go ahead and solve this coding challenge.

19
00:01:16,650 --> 00:01:16,950
All right,

20
00:01:16,950 --> 00:01:21,390
so this one shouldn't be too hard and we're going to start off by creating our

21
00:01:21,390 --> 00:01:25,560
first if statement where we're going to check out what is the size of the pizza

22
00:01:25,560 --> 00:01:29,190
that they chose so we can assign the price to that pizza.

23
00:01:29,940 --> 00:01:34,940
If the size is equal to S, that means they ordered a small pizza,

24
00:01:36,780 --> 00:01:41,460
well in this case, the price should be $15, right? Now,

25
00:01:41,490 --> 00:01:45,990
we're going to create a variable up here before the if statement so that we can

26
00:01:45,990 --> 00:01:47,580
keep track of the bill.

27
00:01:48,150 --> 00:01:53,150
So size S, the bill is going to be increased by $15.

28
00:01:54,450 --> 00:01:58,650
Now you can, of course, simply just set the bill to $15 in this case,

29
00:01:59,070 --> 00:02:01,740
but because we've got a lot of things that can change the bill,

30
00:02:02,040 --> 00:02:07,040
it's easier to simply just add 15 to what it is currently using the plus equal

31
00:02:07,230 --> 00:02:08,310
sign that you learned about.

32
00:02:09,150 --> 00:02:12,240
Then we're going to check with an elif. Elif

33
00:02:12,240 --> 00:02:16,410
the size is equal to M, so if they chose a medium pizza instead,

34
00:02:16,830 --> 00:02:20,400
then the bill is going to increase by $20 instead.

35
00:02:20,940 --> 00:02:24,660
And finally, for all other cases, namely,

36
00:02:24,660 --> 00:02:26,340
if they'd got a large size pizza,

37
00:02:26,760 --> 00:02:30,810
then we're going to increase the bill by, um,

38
00:02:30,840 --> 00:02:33,360
$25. Now,

39
00:02:33,390 --> 00:02:38,390
notice how here you could have also used an elif and said elif size equal

40
00:02:38,580 --> 00:02:41,220
to L, um, well, in that case,

41
00:02:41,220 --> 00:02:46,220
the bill increases by $25 and you don't actually need an else statement.

42
00:02:46,830 --> 00:02:48,420
It's not required.

43
00:02:48,600 --> 00:02:53,600
If you feel like it's easier to read like this, small,

44
00:02:53,670 --> 00:02:56,760
medium, large, and what should happen for each case,

45
00:02:57,090 --> 00:03:00,280
then you can just leave it like this. But of course,

46
00:03:00,280 --> 00:03:03,970
there is an argument to be made that the user might have typed something wrong,

47
00:03:03,970 --> 00:03:06,610
right? They might've typed a lowercase letter,

48
00:03:06,610 --> 00:03:10,540
they might've typed a completely different letter. So in future lessons,

49
00:03:10,600 --> 00:03:14,590
we're going to show you how you can catch these cases and how you can deal with

50
00:03:14,590 --> 00:03:18,550
it. But for now, let's just keep our program as simple as possible.

51
00:03:19,060 --> 00:03:22,330
If they type the wrong letter, instead of S, M, or L,

52
00:03:22,330 --> 00:03:24,040
then we're just going to overcharge them.

53
00:03:24,490 --> 00:03:28,240
So now that we've established what the basic price for their pizza is,

54
00:03:28,540 --> 00:03:30,640
we're going to look through the ad-ons.

55
00:03:30,670 --> 00:03:33,490
We're going to see if they said they wanted to add pepperoni.

56
00:03:33,520 --> 00:03:38,260
So if add pepperoni is equal to Y, well,

57
00:03:38,260 --> 00:03:39,310
in that case,

58
00:03:39,340 --> 00:03:43,060
we're going to need to check if they have a small pizza or a medium,

59
00:03:43,060 --> 00:03:46,390
or large pizza, 'cause the price is different.

60
00:03:46,660 --> 00:03:49,630
So we're going to have a nested, if function in here.

61
00:03:50,110 --> 00:03:53,170
We're going to say if add pepperoni is equal to Y,

62
00:03:54,910 --> 00:03:59,910
and then if the size is equal to S, well,

63
00:04:00,250 --> 00:04:04,180
in this case, we're only going to add, um, $2 to the bill.

64
00:04:05,050 --> 00:04:08,860
But if the size was any other size, basically medium or large,

65
00:04:09,100 --> 00:04:11,620
so we can catch that using just an L statement

66
00:04:11,680 --> 00:04:16,600
instead of creating three separate, if sizes S, if sizes M, et cetera.

67
00:04:17,230 --> 00:04:20,500
And in this case, we're going to add $3 to the bill.

68
00:04:21,790 --> 00:04:25,150
So now we've got this case covered.

69
00:04:25,270 --> 00:04:29,350
The final thing is whether if they said they wanted extra cheese or not.

70
00:04:29,920 --> 00:04:32,980
So if they did, in fact, want extra cheese,

71
00:04:35,110 --> 00:04:35,380
well,

72
00:04:35,380 --> 00:04:39,670
in that case, all we have to do is just add $1 to the bill.

73
00:04:40,480 --> 00:04:45,100
So these are three separate sets of if statements;

74
00:04:45,460 --> 00:04:47,530
this one, this one, and this one.

75
00:04:47,980 --> 00:04:51,400
And by the end of all of these if statements,

76
00:04:51,730 --> 00:04:54,160
as long as we're at the right indentation level

77
00:04:54,190 --> 00:04:56,230
namely right next to the gutter here,

78
00:04:56,530 --> 00:05:00,880
then we can go ahead and calculate their bill and print it out for them.

79
00:05:01,270 --> 00:05:02,740
So we can say print,

80
00:05:02,800 --> 00:05:06,700
and I'm going to use an f-string to insert the bill in here, print

81
00:05:06,880 --> 00:05:09,910
Your final bill is,

82
00:05:10,150 --> 00:05:14,350
and then I'm going to add a dollar sign, and then inside the curly braces,

83
00:05:14,410 --> 00:05:19,060
I'm going to put it in the current value of the bill after all of these

84
00:05:19,060 --> 00:05:22,060
calculations. So did you manage to get it right?

85
00:05:22,210 --> 00:05:27,210
Did you manage to use a combination of if statements and elif statements,

86
00:05:28,840 --> 00:05:32,470
um, nested if statements, or did you do it in a different way?

87
00:05:32,500 --> 00:05:36,250
And it's totally cool if you did. As long as it does what it's supposed to do,

88
00:05:36,640 --> 00:05:39,970
then it doesn't really matter whichever format of your code

89
00:05:40,000 --> 00:05:42,550
you decide to go for it. And as a matter of fact,

90
00:05:42,550 --> 00:05:46,030
there's loads of ways that you could have written this code to get this

91
00:05:46,030 --> 00:05:49,270
functionality. Some of them will be slightly more readable,

92
00:05:49,570 --> 00:05:51,430
some of them will be slightly less readable.

93
00:05:51,610 --> 00:05:56,470
So, it's a case of you making a good judgment on that and choosing the code that

94
00:05:56,470 --> 00:06:00,200
makes the most sense to you. Now in the next lesson,

95
00:06:00,590 --> 00:06:05,590
I want to talk a little bit about combining different conditions so that we can

96
00:06:05,960 --> 00:06:10,960
use something called a logical operator to check for multiple conditions in the

97
00:06:11,390 --> 00:06:16,280
same line of code. So, for all of that and more, I'll see you on the next lesson,

