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,879 large, pepperoni with no extra cheese, then it should print out 17 00:01:05,069 --> 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,