【python】4天初學者Python教學 #python #python教學 #python入門

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Hello everyone, I'm Xiaobai. This is a python teaching video from beginner to advanced. In this course, I will tell you all the python knowledge you should know. We will start with installation, then basic grammar to advanced content. There will be a lot of practice and a lot of quizzes interspersed in the middle , so that you can learn solidly, and there will be a lot of interesting projects to let you actually understand how to use this technology . The total duration of the whole course is about 19 hours. This video is The first half of the course If you think this way of teaching is what you like, you are very welcome to go to the link below to purchase the complete course . Well , let's start directly . Welcome to the first day of the course. Today we are going to do a self-introduction. In the process of making this generator, we will learn six concepts. From the beginning of the environment construction , that is, to set up the python environment , then print the text, debug, then annotate, get the input, and finally the variable ok, we will learn These six concepts, so let's take a look at the generator that we are going to do today, what does it look like You enter your name and we can enter it here. Suppose my name is Xiaobai. After entering it, press enter . Then he will ask you to enter your age. Suppose I am 23 years old. Then he will ask you to enter your interest. Suppose I like it. Swimming, it can be found that after we finished typing, he produced a self-introduction. Here is a self-introduction. I am 23 years old. I like swimming very much. It is a pleasure to meet you . The introduction generator will generate a self-introduction based on the user's input. Well , let's start directly. First, let's download python , search for python on the browser, and then click on the first web page, welcome to python . There is a row above. We find the download option and press it. Here it will display the latest python version. For example , the latest version is 3.10.2 , then it may not be this version when you click it. It doesn't matter , he is the latest version. Download him directly , click on it and start downloading, so wait for him ok, after downloading, install him directly and execute it. Pay special attention here. We can see that there is an option below, which is the option of add python to path to help me hook it up, ok special attention Tick ​​this option and then install it directly. Install now and he will start the installation. Just wait for him to be ok. Then our python is installed and close it. Then we have to install a software called pycharm pycharm what about this software it is an integrated development environment can help me We are writing python programs, which is faster and more convenient. We also search for pycharm on the browser and then directly click on the first one to go to his official website. There is a download button here, click on it, and you can see that it is divided into two Version One is professional and the other is community , then we use the community version. This version is free. Click download to download it . Okay , wait for it here . If you can make changes , then I will use his preset value. Next , there are four options here. I will tick the option in the upper left corner, so that after we install it, it will be displayed on the desktop. The next step is to install it directly . After he is ok and installed, we go to the desktop and open it . After opening it, we first see the left row . There is a customize option. Then we can adjust the color of this color theme. I personally like this color better. Okay , after choosing the color you like, go back to the project place. We will create a new project and a new project. You can give this project a name . I will name this project hello . While paying special attention , there is an option below where we can choose the version of python. What I just installed is 3.10.2 , so just choose the version you just installed . There is a 3.10 that I just installed here. Select him below . There is an option to "careat a main.py" . I don't want to tick it first. We will create this file manually. Okay, after we have selected it here and the project name has been selected, we will create it . ok, then our environment construction is completed here. First, let's download python , search for python on the browser, and then click on the first web page welcome to python . After clicking in, you can see that there is a row above and find the download point. Go down and the latest python version will be displayed here . For example, the latest version is 3.10.2 . When you click in, there may already be an updated version. It may be 3.11 or 3.12 , then we just download the latest version and click on it. It will start to download. Well , you need to wait for him . After downloading, install it directly. Continue. Continue to agree to install directly. Enter your password here . Just wait for him . We installed it and closed it. Then we have to download a software called pycharm . This software is an integrated development environment. It can help us to be more convenient and fast when writing python, just like we can search for pycharm ok directly on the browser, directly click on the first webpage to enter his official website, you can see that there is a download button here, click it directly He is divided into two versions, one is professional and the other is community , then we download the community version of this community version is free, we download him as download, wait for him to ok after downloading, install him, check it to continue, and then here we choose don't send ok wait for him to turn it on . Here we first see the left row . There is an option called customize . Here we can choose the color of the set. Personally, I prefer this color ok After choosing the color you like Well, back to the project above, we can directly create a new project and click on it to create a new project . You can give this project a name . I will call it hello . Well, we can see that there is a python project here . Options We have to choose the python version we just installed here. We just installed 3.10 3.10.2, so we find the version 3.10 we just installed, select it, and then see that there is an option to create a main.py here. Let's first Don't tick it off first uncheck it , wait for us to manually create the file ok, after unchecking it, the name of the project is also named, we can create it create ok so far So far, our environment construction is complete. First, let's create a python file. We can find new in the file in the upper left corner, then click on the python file and give him a name. Suppose I call it main . Then click python file , you can see that he created a main.py file for us. The extension .py means that this file is a python file, or you can say that it is a python program ok Next Well, we can write our code on the right side. If we tick the last option when we create the project, it will be preset when we create it. He will also help us create a python main.py You can see that the file is ok. By default , he created a main.py for us. There are also some default codes in this main.py. Here, I will delete it first. Ok , then we have this python file. Or you can say that the python program, after having this python program, How to execute it? We can go to the top to find run and then click run . You can see that a window pops up below . What is written in this window is the result of our python program. The execution information will be written in this In the window, we can see that a line of process finished with exit code 0 is written here . It means that our program has been executed and there is no problem. Ok now we have not written anything in it. There is nothing written in this program, so of course there will be no problems in execution ok. Fortunately, in the upper right corner of the window below, we can see that there is one - click it to close the window. We can click run on it. In addition to executing this program, you can also have a green triangle on the upper right corner, click it, it also means to execute this program, ok, let’s say now I type something in it, print hello , execute it again, you can find it below The two words hello are printed in the window of the window, and then the same is process finished with exit code 0 , which means that our program execution is over and there is no problem. Suppose I am typing in it, just randomly type it and execute it again. Hey , you can see In the window below, red words appear, and red words appear, indicating that our program is wrong. Finally, what he wrote is process finished with exit code 1. I don't know if you have noticed that it was all exit code 0 just now. If it becomes exit code 1 exit code 1, it means that the execution is over, but there is an error. If an error is found, ok , then let me clarify a concept with you first. We say python is a programming language ok is a language , just tell us the Chinese Just like the English we speak, it is a language . Since it is a language, it means that it is used for communication, but the programming language is used to communicate with the computer. So what we are learning is how to communicate with the computer, or you can Say how to ask the computer to do things for us ok like now I typed a bunch of random things here and then press execute , it's like I told you #$#%^&*^% You can understand what I'm doing What are you talking about? I definitely don't understand it . I typed a bunch of text randomly and pressed execute. The computer definitely couldn't understand what I was writing. So he sent me a string of red letters . This string of red letters means that there is a problem with my program. He can't understand what I'm writing ok what should I do like this What is the first sentence? The first sentence that most people learn is how to call mother , that is, mother Mom~ Mom~ This way , then we will learn about the mother in python right away, which is the first instruction we need to learn. He is to print first, then print, then a pair of parentheses , and then another pair of parentheses. Double quotation marks and then put the text you want to display inside the pair of double quotation marks. Suppose I type the two words hello in it . Well, I will execute it. You can see that he will print the two words hello. The command print means print means ok means print, so when the computer sees that we hit print and then a pair of parentheses and the parentheses say Hello and wrap it in a pair of double quotes, the computer will know that we want to If you print the two words hello, he will print hello ok. In fact, here you translate the English word print into Chinese , it means print, so the programming language is not as difficult as you think, ok, so let’s assume this Inside the double quotes, I typed the words Xiaobai. If I execute it again , it will print the words Xiaobai, ok because I now write Xiaobai inside the double quotes. If I type the print command twice in a row, the second time It says hello , execute it again, you can see that he will print Xiaobai first, and then print hello . Why? Because python is executed from top to bottom, so he first sees print Xiaobai and prints it After reading the words Xiaobai , I saw print hello, and then print the words hello again. If you think the text is too small, we can also adjust it. I will make it larger and we can go to the top. file In the upper left corner of the file , find the settings and then there is an editor here and then find the font . There is a size here. You can adjust it to the size you want. I will adjust it to 25. There is a font of the text here. You can also do it yourself. Choose ok to zoom in a bit so that everyone can see it more clearly. I can also print a graph here . I will print a triangle. Ok , triangle , wait for me. Execute once , and a triangle will be printed. You can also challenge to see what shape you can print. For example, you can print a Batman or something. What if we encounter an error when executing the program? For example , in this print , I may miss a parenthesis and then execute it. You can see that there is a red letter below. The red letter means there is an error . If there is an error, don’t worry too much. Here he will tell you which line it is on. Where is the error found? Here is the error found in the fourth line of line 4. Then we can come up and check it . This place in the fourth line is found to be missing a bracket, ok , but sometimes even if we have already I came back and checked, but I still don't know what's wrong. At this time, you can continue to look down. Here, he will tell you the reason for the error. What is written here is that the parentheses are not closed, that is, we missed the closed parenthesis ok, and if we execute it again, there will be no errors. It is good to assume that today I missed a double quotation mark and execute it again . If an error occurs, don’t worry . Where is the error found in the line ok, this place in the fourth line, then let's go up and check the fourth line, hey, I still don't know where the error is, continue to read the reason for the error he told you, hey, another embarrassing problem may occur at this time, that is If you don't understand what this means in English , it doesn't matter if you don't understand it. Copy it and translate it. Ok, translate it. Here he means unterminated string literals. It seems a bit difficult to understand. If you translate it , you can't read it. If you understand, you can copy the reason and paste it on the browser to see how everyone solved this problem. Then you can say it is still in English, but you still can’t understand it. We can have a tool here to put The language is limited to Chinese-only webpages, ok, then this will be Chinese-only webpages. Let’s see how you solve this problem, but here is a piece of advice to everyone. If you want to learn python well, you ca n’t avoid reading English. We have encountered an error and how to solve it. Next, I will introduce to you how to obtain the user's input so that we can interact with the user. For example , you may want to make a program today that allows the user to input his Account and password Then you do some verification , or you want the user to enter his name, age , email, etc. Well, we want to get the user's input, you can use the input function (function) Or you can say that the input command is ok . The way it is written is to type input input followed by a pair of parentheses. Then we have to write the input prompt ok in the parentheses. Suppose today I want the user to enter the input It's his name. I can type it when prompted. Please enter your name. Pay special attention here. Our prompt should be enclosed in a pair of quotation marks, just like when we use the print command . The text in the parentheses should be used . A pair of quotation marks to wrap it up, then let's execute it once. You can see that our program is not over yet. It's stuck here . Or exit code 1 means that our program is not over yet. Why is it not over? Because it is now waiting for our input. Suppose I enter Xiaobai here and press enter . You can see that exit code 0 appears. This paragraph appears to indicate that Our program ends successfully without any errors. Why does it end like this? Because now our code is only written in one line , and this line is to get the user's input, so of course, when the user inputs After entering, the program is over, because we have no other code below ok, let's say I now put please enter your name, change it to please enter your age, we will run it again, you can see the text printed here It has also changed to enter your age, so it can be seen that the prompt printed here is the text we typed in quotation marks. ok, he is stuck now, why because he is now waiting for the user's Enter ok, let's say I type 68 and press enter . This paragraph appears again, indicating that our program is over and there are no errors . You may have doubts about this. We enter these things for the user, and then what they lost goes back where is it ok this question is very good let 's do it again first he said please enter your age and then stuck because he is waiting for the user input if i enter 68 here and press enter the program ends but this 68 this Where does the user's input go? ok This user's input will overwrite our original input command This user 's input will overwrite our original input function , so this paragraph will directly become 68 ok If we are in The input of 80 here will directly cover it and it will become 80. What if you say it is overwritten? Can we match the print command we learned before and print it out? Here we can write it like this print and then write it in the parentheses. If we write 80 , it will print 80. But if we write an input command in the parentheses, the input prompt assumes that I type and say , please enter your name. ok, let's execute it once and see. He said please enter your name and then stuck waiting for the user's input. Suppose I enter Xiaobai here and press enter . You can see that he first printed Xiaobai, and then the program End Why is this happening? Don't worry, let's run it again and see. He said please enter your name. Suppose this time I entered Xiao Hei . Press enter and you can see that he has printed Xiao Hei again, and then the program ends , that is, He will print what we enter here, and then the program will end. Why is it like this? Where we see the code, when we press the execute button, the computer sees the print command , and he knows that it is about to print something . What to print _ Come out and let him know, please enter your name will be printed here and then it is stuck here waiting for the user's input, the user sees that he wants to enter a name , he enters Xiaohei and presses enter at the moment he presses enter His input user's input will overwrite the original input pointer. The command will overwrite the input function , so this side will become a black ok , and then the computer will know it ~ the user input is a black, and then print it out, and then there is no code below, so The program ends. If the user input here is Xiaobai, and the overwritten one here is Xiaobai, and then it prints Xiaobai. The program ends, ok . If you still don’t understand it well, it doesn’t matter. We can use a tool to Look at his decomposition action. This is the code we just wrote. When we press execute, the computer will first see a print command we wrote. Hey , he will know what to print now. What to print, he will go. Look at what is written in the parentheses. Now what is written in it is an input command , then the computer will know it. Before printing something, it must first obtain the user's input. To obtain the user's input, the user must be prompted , so then the computer will go Look at what is written in the parentheses of our input, that is, what is our input prompt. When he sees that it says please enter your name, he will print out please enter your name and then wait for the user's input. Suppose I am in Enter Xiaobai here, everyone pay attention . When I press enter, the input command here will be overwritten and overwritten with what we input. Then in the next step, the computer will know that the user input is a small Bai and then print it out for Xiaobai, ok, print it out for Xiaobai, and the program ends, ok, this is his complete decomposition action. This should be pretty clear. The tool we use is called thonny . You can search on the website. thonny then goes to his official website and performs the download action here. After the download is complete, paste our code directly over here. Then there is a button called debug here, and there is a button called step into. Pressing the button will disassemble our instructions step by step, disassemble our code, and show you how the computer works step by step. Now we can take the user's input and print it again. It came out once, then if we want to be more advanced and want to say hello to the user, assuming the name he entered is Xiaohe, here we will print Hello Xiaohe, assuming the name he entered is Xiaobai , it will be printed here Hello Xiaobai, what can I do to achieve such a function? Before explaining how to do it, let me introduce a usage to everyone. Ok , let’s delete all of them here. Our text can be added. How do I write it here? A print command, then write hello in it, and then write a little white in the back, and then add these two paragraphs of text. Our text can be added. Adding these two paragraphs of text together means that the two The paragraphs of text are connected together, so when we write like this, it is equivalent to writing like this. Ok , we write like this, it is equivalent to writing like this . If you don’t believe me, we execute Once, hey , sure enough, he printed out Hello Xiaobai, and he connected it together and turned it into a piece of text. If we execute it again, the result is exactly the same, ok , then this addition is not limited to the addition of only two. If we want to add more Add this Hello Xiaobai, the weather is so nice today, and then execute it, he will connect these three paragraphs together to become Hello Xiaobai, the weather is so nice today , after I understand the concept, let's go back to the function just now. I will first To restore it , please enter your name . The function we want now is that when the user enters Xiaobai here, the next thing to be printed is Hello Xiaobai . Can we make a text here? Add the text hello in front of it, and then add the following input command, because today when the user inputs Xiaobai, this paragraph will be overwritten and become Xiaobai , then the two paragraphs of text will be added. It means that these two texts are connected together, which is equivalent to this meaning, hello Xiaobai . Let's try it out . Execute. He said please enter your name. I typed Xiaobai and pressed enter. Bai looks like this program is interacting with you. You enter Xiaobai and he will greet you ok . If you don't understand it very well, we will copy this program directly and see his decomposition action . It is posted on the computer and he sees that we have written a print command . He will know that something is going to be printed now. Go in and see what is going to be printed in the parentheses. He first sees that there is a hello text written in it After adding an input command, he knows that he needs to get the user's input first. To get the user's input, he needs to give him a prompt first. So he goes to see what the prompt is. The prompt says please enter your name . Please enter your name. Here I type Xiaobai and press enter . The input command is overwritten and overwritten with our input Xiaobai . Well, he sees the addition of these two paragraphs of text , that is, the two paragraphs of text are connected together. Then print it out, Hello Xiaobai. Hey , it will print out Hello Xiaobai here. Then the program ends. This is his complete decomposition action . Well, we can add another one here. Suppose we add another one after this. The weather is so good today , please enter your name Xiao Hei and press enter , he said hello Xiao Hei, the weather is really nice today. This completes an interactive feeling. This is how to get the user's input and then follow him by the way. Let’s make a small interaction. Next , I will introduce to you how to make annotations in the program ok Make annotations in the program First of all, what are annotations? When you are in school, you should have experience in taking notes on textbooks. Taking notes on textbooks is equivalent to Make annotations in the program, so the simple understanding of annotation is the note ok , so why do we need to take notes in the program? Today, when our program is written bigger and longer, there may be a hundred thousand lines. At this time, you may I will forget what you wrote before. At this time, if there is a note next to it, it can remind you at the right time. Would n't it be good? Or maybe we are a team today with many people working on a program together , then you write The things you write may be seen by others , and others may not understand what you are writing. Well , if you take some notes and annotations at the right time, will it help others to understand what you are writing? This is why we need to take notes and make notes in the program . How to make notes in the program? It's very simple. We just need to write a hash mark and then we can write what we want to annotate later . The content is there. Suppose I want to make a comment here today to remind people who will see this code. This line will get the user's name, and then interact with him, ok, I can make a comment here and write The line below will get the user's name and make an interaction ok , so I can remind people who will see the code like this What does the line below mean what action he will do ok and the comment will not affect the program at all Let's execute it directly. He said, please enter your name. I typed Xiaobai and pressed enter. He said to me, hello Xiaobai. The weather is so nice today. I deleted the annotation and executed it again . He said, please enter your name. Enter Xiaobai and press enter . He said hello to me Xiaobai. The weather is very nice today. We can find that the operation of the program is the same regardless of whether this line of annotation is written or not. Well , we can also write this annotation. There are a lot of lines, we can also write a lot of comments. Suppose there is a small black print here , then I can make a comment here, a hash mark, and then I write that the line below will print a small black ok and execute it once , please Enter your name Xiaobai and press enter. Hello Xiaobai, the weather is so nice today, and then print out Xiaohei . You can also write as many comments as you want . Well , this is how we will make comments in the program. Take notes ok to test how you have learned so far I want you to make a program when we press execute he will ask you what is your name and wait for your input here Suppose I type the little white button Press enter and he will ask you how old are you this year. Suppose I enter 23 and press enter . He will greet you. Pause the video and try to do it first and see if you can do it. Please answer if you haven't done it yet. Don't give up in such a hurry and try again . We have learned that we can use it again in the print command. input command In this way , you can print what the user entered. The first input prompt here is to ask your name. I will copy it directly and paste it here . Okay, we I also learned that you can add words before. Let's take a look at what he printed below. The first half is Hello Xiaobai , that is, the text of Hello and the name entered by the user. So here we are Just in front, add the text of hello to the user's name , so far it is no different from what we have done before, but he also asks for a second input. He asked you, what is your year? How old are we going to get the second input? It is very simple to write the input command again. The second input prompt here is to ask how old are you this year . I will copy it and paste it directly. If you enter 23 here , then this A paragraph will be directly overwritten and it will look like 23. So let's take a look at what he finally printed out. Hello, Xiaobai, with a comma, you add the age entered by the user this year, and then an exclamation mark . The user input is 23 here, assuming that the user input is Xiaobai . If so, do we have to add another you ... Lu is not the first to put a blank, and then you add his age this year Finally , add an exclamation mark ok, so let's restore it here . What we need to write here is input plus the first prompt. May I ask your name to be this 23? It is also restored to input . The second input prompt is How old are you this year, please copy it over. Okay , this is the way to complete it Let's run it once and have a look . Your name is Xiaobai . I'm sorry. I'll run it again. You can press the red button to terminate the program. Let's run it again . Your name is Xiaobai. Press enter. How old are you? 23 Press enter , he will print out Hello Xiaobai. The comma is blank. You are 23 years old. Exclamation mark . I hope everyone understands. Next , I will introduce variables to you. Or you can call him variable. English is variable . Before we start introducing variables Let me ask you a question first . I wrote a 4-stroke code here , and they will print out information about Xiaobai. Among them , Xiaobai is 68 years old. When he woke up in the morning, Xiaobai ate a hamburger , and Xiaobai said the burger was delicious. Finally, Xiaobai has just Go to the toilet , ok, let's do it once, you can see that he has printed out the information about Xiaobai in these four lines, but if today Xiaobai suddenly wants to change his name and wants to change his name to Xiaohei , then we What should we do? Hey , do we have to follow the update? As long as the place where Xiaobai is written, we have to update it to Xiaohe, because Xiaobai has changed his name to Xiaohe , so we have to look for it line by line. Find the place where Xiaobai is and change it to Xiaohei ok, find every line of Xiaobai and change it to Xiaohei, and then execute ok, you can see that all Xiaobai can be updated to Xiaohei, but do you think we It 's a little inefficient to do this. In our code, there are only 4 lines. When today’s code has 100 lines, 1,000 lines, or even 10,000 lines, do you think you can still update like this? It’s impossible to update line by line because it’s too rare. Efficiency This is when variables can come in handy. We can create a variable and let him represent the name of Xiaohei. We can create a variable and let him represent the text of Xiaohei. In this way, as long as the following is written We can use this variable to replace it in the small black place . Well, I will write it directly for everyone to see. Here we can create a variable. Suppose I call this variable name and then write an equal to I want this variable to represent The text of Xiaohei is ok. I write this way to create a variable. This variable is called name . Then I let the variable name represent the text of Xiaohei. In this way , as long as there is the text of Xiaohei below. Where it is useful to Xiao Hei, I can replace it with the variable name . For example, if there is Xiao Hei here, I can replace it. I can write the name and the text of 68 years old this year . Why? Because now when I am When writing the variable name here, it is equivalent to me writing the text of Xiaohei, and writing the name here is equivalent to writing the text of Xiaohei here, the text of Xiaohei plus the text of 68 years old this year The text is to connect these two paragraphs of text together, it becomes Xiaohei, 68 years old, ok , so here I will replace it with the variable name, the same is true below , where Xiaohei is written, replace it with ok, replace it with name The variable is also the same here . Name is added here. Well, replace it here. Let's execute it once and see that there is nothing wrong with Xiao Hei.... Okay, let's go back to the example just now. Suppose Xiao Hei suddenly wants to change his name again. This time he wants to change it to Little Green, so what should we do? This time we don't need to go down line by line to find the person's name and then change it, because now we all use the variable name to represent it. If so, we just need to change the value of the variable he represents and the text it represents. Originally, we changed it to small green . Now, the variable name represents the text of small green. It is equivalent to the name here is Xiaolu , the name here is Xiaolu, and this is also here . So when we execute it, we can see that all are changed to Xiaolu. Well, even if our program has 110,000 OK, we have nothing to be afraid of. No matter how he wants to change it, we can just change one of them. Suppose he wants to change to Xiaohuang , then we can change it to Xiaohuang and execute the following code . Where there are variables, he will follow the changes and become Xiao Huang ok , so creating variables is like making an agreement with the computer. Here we make an agreement with the computer. After the name, he will represent Xiao Huang. In this way , as long as the name is used below, the computer will know that we agreed before that the name represents the text of Xiaohuang, so here is Xiaohuang... Okay, then pay special attention here. We have to first After making an agreement with the computer, that is, we have to create a variable before we can use it. After we have created it here, we can use it later. I can't say that it will not work if we use it first and then create it next. Okay, here's another question, I'll delete all of this first. Suppose today I want to get the user's age. Can I use the input command like this first , and then prompt the user to say please enter your The age is easy to execute. He will say please enter your age and I can do it here. Okay, here comes the question. Suppose today I want you to print out the age entered by the user twice. What would you do? Suppose the user Enter 23 and I will ask you to print 23 here again ok, think carefully if you can't do it , why can't you do it, because we didn't save the user's input, so when we are below When we want to print the user's age , we don't know how to express the user's age . At this time, we can also use variables. We can use variables to represent what the user has entered. Here I can write like this: Create a variable called age to make it equal to the input command . Writing like this is to create a variable called age and then let the variable age represent the age entered by the user . After the variable is created, we can Continue to use it below, so I can print age here. If you want to print it twice, I will print age twice. Ok, let's execute it once and see. He said please enter your age. Suppose I enter 23 . Why is 23 printed twice ? Because we learned before that the input command will be overwritten by what the user entered. Now the user enters 23, so the input command will be overwritten and it will look like this . age equals 23 so The age variable now represents 23 and print age is the meaning of print 23. This is also print 23 , so the following is printed twice 23 ok , so we write it like this as if the age entered by the user It is stored in the variable age, so that we can continue to use it below, ok , the value represented by the variable can also be changed anytime and anywhere. How should I delete it first? Suppose I create a variable called score and make it equal to 50 and then print it directly to see the score. Then I set the score to be equal to 80 on line 5 and print it out again . Okay, let's take a guess and see what this print will do. What is printed? That one on line 6 What will print print? Well, we can see that it prints 50 first and then 80. Why is it because the program is executed from top to bottom. At the beginning, the variable score represents 50. So here is the first The score of the three-line print is equivalent to 50. Then on the 5th line, the score is equal to 80. Now the variable score represents 80. So on the 6th line, it is equivalent to 80, so he will The value represented by the 50 80 ok variable can be changed anytime and anywhere, so we can change it again. If I change it to Xiaobai, then print score execution, you can see 50 80 Xiaobai 50 80 Xiaobai ok is a variable or you can call him a variable. English is variable . We can use him to help us write programs more conveniently. We can also use him to achieve the effect of storage. After introducing the variables, we will learn about the naming of variables. Rules We can create variables like this. Here I create a variable and call him name to make him equal to Xiaobai. We can also create a variable and call him age and make him equal to 30. It looks like we need to create variables. Let it be equal to a value to create a variable. In fact, it is not like this. The string I typed earlier is the name of the variable. He has rules. You can't just randomly type. There are three rules for naming variables . I have already typed it and I will paste it up. There are three rules for naming variables. The first one is that variables can only be a combination of letters, numbers or underscores. In other words , you can't use some strange symbols ok let's do it. Take a look. The variable name here is called name. It is all letters, so there is no problem. If I add a money font size in front of this today, now the variable name becomes the money font size name , then we execute it once, and you can see that there is an error. He tells you I don't understand what you are writing. This name is illegal because the name of the variable can only be a combination of letters, numbers or underscores. If you use some strange symbols, it will not work. Or I add an exclamation mark in front of it and execute it again. If there is an error, ok , he can also use numbers and underscores. So if I call the variable name my_name my and execute the underline name again, there is no error. This is legal because it is a combination of this letter and underscore. Then if I add another Numbers, my_name1 is executed , there is no error , so this is the first rule. Variables can only be a combination of letters, numbers and underscores. Well, the second rule is that the beginning can not be a number . Let’s test if the beginning If it is a number, I will type 1my_name to execute it, but it is the same error, so the rule 2 cannot be a number at the beginning. If you type a number at the beginning, the same error will occur. Let’s look at the third item. The third item cannot be the key. What does it mean if a word cannot be a keyword? The keyword itself has a specific meaning in python, so we can no longer name it as the name of a variable. For example, if is a keyword, so if we put the variable The name of the name is called if . This is not good because if is a keyword . It already has a specific meaning in python. As for what his specific meaning is, we will introduce it later. Well, let's execute it directly and see. When something goes wrong again, he will tell you that you don't understand what you are writing , because variable naming like this is illegal. Ok as for what other keywords are there? You can look at this picture. Well, these are the three rules for variable naming. Finally, Let me add one more thing to everyone. We said that variables can only be a combination of letters, numbers and bottom lines, but in fact, the letters here are not limited to English letters. You can type Chinese, Japanese and Korean. For example, variables here Name I named it Name, and I will execute it in Chinese. I can see that there is no error . Then I will print it out and see it. Print the variable name and execute it. Hey, he really printed Xiaobai ok , so here are the letters here. It is not limited to English letters. You can type Chinese, Japanese, and Korean, but no one will write it like this, so I strongly recommend that you don’t write it like this. It’s better to use English, and please don’t name the variable. Take it randomly. For example , if you type a and it equals Xiaobai, who will know what the variable a represents. If this variable represents a person's name, you can name the name so that it will be clear at a glance. You see this variable If the variable represents the user's name , you can name the variable user_name , so it is clear at a glance. You can see the name of the variable user_name and know that it represents The user's name is ok, so please make it meaningful for the name of the variable. Well, this is the naming rule for the variable. It's time for the test again. In this test, I want you to exchange the values ​​represented by the two variables. The program will It looks like this . First, we first obtain the two numbers input by the user, and then use two variables to represent the two numbers. One is number one and the other is number two . After some operations in the middle, this operation is also It is to exchange the values ​​represented by the two variables number one and number two. Finally , print out number one and number two to see . Well, let's do it again. He said please enter the first number. Suppose I enter 5 and then the second one. Suppose I enter 2 and you can see that it prints 2 first and then 5. We input 5 for the first number at the beginning, so here number one should represent 5, and then the second number The word input is 2, so the number two here should represent 2. But in the end, the number one we printed is 2, but the number two printed is 5. Ok , that is, after this operation in the middle, put the number The values ​​represented by the two variables one and number two are exchanged. Our test is to complete this operation in the middle. Okay, you can pause the video and try to do it. Come on*3 ok coming Answer, if you haven't done it yet, do you want to think about it again? Well, let's assume that the first number entered by the user is 5 , that is, the input here will be overwritten to 5 , then assume that the second number is input. It's better to assume that it is 2 first. Here we can write it like this. Let's write number one equal to number two . What does it mean to write like this? It means to assign the value on the right side of the equal sign to the left side of the equal sign. The variable is ok again. It means that the value on the right side of the equal sign is assigned to the variable on the left side of the equal sign. Now the number two number two is written on the right side of the equal sign. This variable represents 2, so it is equivalent to us assigning number one The value represented is changed to 2. We directly print number one and number two and print them out to see that ok has gone through this line of operations. We print out these two variables and see that both number one and number two are now 2. Why because number one is 5 at the beginning, then number two is 2, but we make number one equal to number two , that is, assign the value represented by number two to 2, and assign it to number one , which is now number one, which also represents 2 , so now print Both number one and number two will be 2. Then how do we exchange the values ​​represented by the two variables number one and number two? Hey , can we do this? I will create another variable and call it Temp makes it equal to number one , then I make number one equal to number two . Finally, let number two equal temp ok and so on. Let's explain it to you. Let's execute it first and see . Now number one is 5. It originally represented 5. Then number two represents 2 at the beginning, and then prints number one and number two. Let's see if he prints 2 first, then 5. Now number one represents 2 and number two represents 5. So, the values ​​represented by the two of them are exchanged, so why do we write it like this? Think about what I just said when I write temp equal to number one, what does it mean ? Assigned to the variable on the left side of the equal sign Now the right side of the equal sign is number one , which represents the value of 5, so it is equivalent to the current temp, which represents 5. Then look at the line where number one is equal to number two, which is the same as the value on the right side of the equal sign. Assigned to the variable on the left side of the equal sign , the value on the right side of the equal sign is number two, which now represents 2, so it is equivalent to changing the value represented by number one to 2. Let's look at this line number two is the same as temp. Now It's 5 , so it's equivalent to number two. Now it represents 5 ok. Then print number one number two, and it will print 2 and 5. You can see that they are 5 and 2 at the beginning, and then it becomes 2 and 5 , and we succeed. I exchanged it, I exchanged the value of number one and number two, and I changed it back , so writing it like this is equivalent to creating a temp to temporarily store the value of number one and then Well, let's change the value of number one to the value of number two, and then change the value of number two to the value we stored in temp, so that we can achieve the effect of exchanging number one and number two. The logic here is more difficult to understand. One point, if you have difficulty, it is very normal. It doesn't matter, just listen and think a few times. Okay , I will change the code back. This is the input. Please enter the first number . Here is the input. Two numbers, let's do it again. He said, please enter the first number. Suppose I enter 8. Please enter the second number. Suppose I enter 6. You can see that he prints 6. After printing 8 , we successfully put number one and number. The two values ​​they represent are exchanged. YA~ Congratulations, you have finally reached the final project today. We are going to make a self-introduction generator. It will be implemented like this . First, he will welcome you to use the self-introduction generator. Then he will talk to You say please enter your name, suppose I enter Xiaobai and press enter, and he asks you to enter your age. Suppose I enter 23 and press enter. He will say, please enter your interest . If you are interested, I will play a game and press enter. My self-introduction here is hello everyone. I am Xiaobai. I am 23 years old. I like playing football. It is a pleasure to meet you. Xiaobai here is the name we entered . 23 here is the age we entered. we enter the Interesting, we just want to make such a simple self-introduction generator. According to what everyone has learned today, I believe that it should not be difficult to make this generator. You can do it first and see ok , I believe everyone has already made it. We have to print it out . Welcome to the self-introduction generator. So we print it out with the print command. Then we need to get the user's name, age, and interests . So we can write it like this. I create a variable called his name and let him come. Represents the name entered by the user, here is please enter your name , then a blank cap number and then a blank, I will paste it directly, and then the age , then I will use a variable called age to represent the age entered by the user, the same I use directly It 's faster to copy, so it's interest in the end, so I'll use a variable to call him hobby . I'll just copy it and it's faster . After the user enters the name, age, and interest, we can create this self -introduction. First, use a variable to represent this string of self-introductions. I call him intro . Here, I will type out the entire string of self-introductions. Hello everyone . Introduce it and type it out, and then replace the name, age and interest here with the variables above. Xiaobai replaces it with the variable name and then does the addition action. The age is also 23 and replace it with age. The action of adding is ok, and then if you are interested in playing the ball to replace the hobby, and then doing the addition is ok, then there is no problem, then our self-introduction is ready, we can print it out intro ok, we will execute it once and see Welcome . Self-introduction generator Next , please enter your name, let me enter Xiao Hei , and then please enter your age, assuming 72 , and then please enter your interest, assuming that it is running. Hey , self-introduction will come out. I like running very much, it's nice to meet you ok, I hope everyone can make this self-introduction generator and make it . Of course, you don't need to be exactly the same as what I wrote here, as long as the result of execution is the same, ok Welcome everyone Come to the second day of the course. Today we are going to make a bmi computer . In the process of making this computer, we will learn five concepts , namely data form and data form conversion, as well as the usage of strings, operation symbols and numbers. The usage is ok, then let's take a look at what the computer we are going to do today looks like, ok, the computer looks like this, when we press execute, he will ask you to input the height and height in cm, we can do the input here Hey, let's say my height is 179.5. Then he will ask you to input your weight in kilograms. Let's say my weight is 75.2 ok. After inputting the height and weight, he will help you calculate what your bmi is. You can see here what he said. your bmi is 23.3 ok then let's try again please enter your height assuming me My height is 150 , please enter your weight. Assume that my weight is 40 kg. Hey , he will calculate your bmi as 17.8. Today we are going to make a bmi computer like this. Well , let's start directly. I will create another one first . The new python file, right-click here and find the python file. It's the next day, so I called him day2 ok and created a new python file . It was originally called main yesterday. He right-clicked and found a reflector here, and then renamed it, I changed it to day1 ok , the first day, the second day , then I closed it first. Today, first of all, we have to understand a very important concept called data form. I will type the data. The form is ok, so what is the data form? In fact, when we write programs, we are calculating and processing a pile of data. Okay, to say it again, in fact , when we write a program, we are calculating and processing a pile of data. Of course, this data is not the only one. One is divided into many types . Today we are going to introduce the most basic forms of data. I will type it . The first one is called string, English is string , the second one is integer, English is int, and the third one is float . Points in English is float, the fourth type is called boolean, and English is boolean. Today we will first understand how these four basic data forms are used and when we will use them . First, let’s introduce the first type called word String is written like this. We use a pair of quotation marks to sandwich a piece of text , and a pair of quotation marks to sandwich a piece of text . You can write anything you want in this text. Suppose I wrote hello . This is a string. As long as it uses a pair of quotation marks with a paragraph of text in between, it is a string. Hey, do you think this is a bit familiar? This kind of thing with a pair of quotation marks and a paragraph of text in between did we use it a lot yesterday? Let's take a look at yesterday's day1. Sure enough, you can see what is written in the parentheses of this print. It is a pair of quotation marks and a paragraph of text in the middle. The following input is also the same, please enter your name . The quotation marks here ... all are correct. In these places, we use the data form of a string because they all use a pair of quotation marks to sandwich a piece of text . Well , we just said that the string is Use a pair of quotation marks to sandwich a piece of text. We use double quotation marks here. Of course, you can use single quotation marks. Using a pair of single quotation marks to sandwich a piece of text is also a string . Ok, we print it directly and see print Here I put hello in single quotes to execute it once. Hey, we can see that day1 is written on the left side of the execute button, so now when I press execute, it actually executes the python file day1 and the py thon program But what we want to execute now is day2, so I will terminate it first. We can have a drop-down option here to find the python program you want to execute. What I want to execute now is day2, so I will choose He then presses execute, or if you can't find it here, you can also directly select the file you want to execute, then go to it and press the right button. There is a run here, you click on it, it will execute ok, you can see it Now he executes day2 and then he prints hello ok , so let's go back to what we just said , whether you use a pair of single quotes or a pair of double quotes to enclose a piece of text , it's okay ok, let’s try again if we use double quotes. Now the left side of the execute button in the upper right corner is day2 , so now when I press execute, it will execute the python file of day2. You can see that it prints hello , so it doesn’t matter. Whether you use double quotation marks or single quotation marks to enclose a piece of text is the meaning of a string, ok , but I personally prefer to use double quotation marks. This is the first data form called a string, and then introduce the second type of integer int. The integer is very simple. His way of writing is to write the number directly. Suppose you want to express 300 today, then you can write 300 directly. You don't need to wrap it with a pair of quotation marks. If you wrap 300 with a pair of quotation marks , then he is a Strings are not integers. If you want to represent an integer, just write a number. If I want to represent 80 today, I will write 80. If I want to represent 100, just write 100. Ok, we can also print it. Look at print 100. Suppose today I want to print 100 and write 100 directly in the parentheses. You can see that he prints 100. But if we want to express a number with a decimal point today, we need to use float The data form of point float is the same as its writing method, which is to directly write the number you want to express. Suppose I want to express 160.5, then write it directly. This is a floating point number . Of course, if you want many decimal places It is also possible to point 160.77777, so we can also print it out and see 160.77777 , just write it directly in the parentheses of the print . It is an integer and a floating-point number. One is used to express this integer , which is 012345, a number without a decimal point, and a floating-point number is used to express a number with a decimal point. Well, let’s go to the last boolean value , the boolean. If it is value, he has only two ways to write it. One is True and the other is false . Here, pay special attention to the previous T and F are capitalized ok. What do these True and False mean? If we translate it into Chinese, it is "true" and "false". meaning Si, or you can say that he is "yes" and "no" ok , then when will we use this True and False? He is mainly used for judgment. For example, if you want to judge whether a person is male or not today, if If he is male, you can use True to indicate it. If he is not male, you can use False to indicate that. Or you want to judge whether a person's height is over 160. If he is over 160, you can You can use True to indicate that yes, he has more than 160. If he does not exceed you, you can use False to indicate that. So this Boolean value True and False are mainly used for judgment. Well, let's go back to what we just introduced. This string uses a pair of quotation marks to enclose a piece of text We can all use strings . When can we use integers and floating-point numbers? For example, if you want to express a person's age today, or a person's height, or if you want to do mathematical operations , then you can use integers. Or floating point numbers, like if I want to do addition today, I want to do 100 plus 30, something like this, we can just write 100 plus 30, I'll print it out, print 100 plus 30, execute, yes When I see it, it prints 130, 100 plus 30, is 130 right? If you use a string at this time, you use 100 of the string plus 30 of the string, then let's see what the result will be, hey , the result is 10030, why? It's because if you add the string together, it will connect two pieces of text together, ok, it will become like 10030 , if it is a number, if it is an integer, and you add 100 to 30, it will add 100 Really add 30 to become a floating point number below 130. If you want to do the operation of 160.5 plus 2.3, let's see what the result is . 160.5 plus 2.3 is 162.8 . Okay so if you want to do mathematical operations You can use integers and floating-point numbers. If you want to express plain text, you can use strings . If you want to make judgments, you can use Boolean values ​​True or False . If you just said, for example , you want to Determine if a person is male. If yes, you can use True . If not, you can use False . Then we can print it out and see if print True is executed. Hey , it will print True. If you print here If False , it will print out Fasle . You should remember the variable we introduced yesterday Xiaobai's text, what about this variable? Of course, it can also be applied to the following integers, floating-point numbers and boolean values. For example , I can create a variable called num and make it equal to the integer 100. What does this mean? That is, I create a variable called num and let it represent the integer of 100. Well , we can directly print it out and take a look at print num. I will delete the execution first. You can see that he prints 100 ok , so of course If the following is the same, if you call him num1 equal to 160.77777 and then if you print num1 , it will print the same Boolean value as 160.77777 . Suppose today I want to determine whether a person is a male or not , then I can create a variable and call him is_male and then make him equal to True. This is to create a variable called is_male and let him represent the boolean value of True. The following is the same. I will print this is_male and execute it. Variables can also be used with these data forms. Well, these are the 4 basic data forms , namely strings, integers, floating-point numbers, and boolean values. Finally, I will add two usages to you. If I want to get it today For a specific word in a string, we can do it like this. Suppose there is a string called Hello Xiaobai today . I want to get a specific word in this string. Suppose it is your word. We can do it like this. This string is followed by a pair of square brackets, and then write a number inside the pair of square brackets. The number represents the position of the word you want to get. If I want to get you, then I can write 0. At this time, you may ask, isn't your word in the first position? Why do we write 0? The reason is like this. In python, everything starts from 0, so Well, you are in the 0th position, or in the 1st position . The small is 2, the white is 3 , and this is 0123. All numbers in python start from 0, so if you want to get the word you If so, I can write 0 in the square brackets. Here, I will print it directly. print ok. Let's execute it and see. If you can see it, it will print you . If I want to get the word good in this string today, he In which position is he in the first place? Why? Because in python, the number starts from 0, so 01 is the first if it is ok, so we write 1 in the square brackets and execute it again . The word ok is obtained , and we can use it with variables. Suppose there is a variable called name , which represents the third digit in the string hello Xiaobai. Okay , let’s print it out and see the print name. What will he print out? Hey , why does he print out Bai? Because you are so good, Xiao Bai . The third digit 0123 in the string is the word "white", so now the variable name represents the word "white ". If we print out the name again, it will print out the word "white ". Well , we can also put 3 square brackets here. Move it to the following side and execute it again . The result is the same and the same print. Why ? Because now this name represents the string Hello Xiaobai, so this name? The name in the following print is equivalent to this It looks like hello Xiaobai is a string , then we add square brackets 3 after him to get the third digit 0123 in the string, and we get the word "white" ok, so he prints out "white", which is a string Special usage We can add a pair of square brackets after it to get a specific word ok in the string and then the part of the number has a special way of writing. Suppose today I want to express a number of 1 million, then we Do you want to write it like this, but when I write it like this, is it difficult to see what the number is? Ordinarily , do we put a comma in every three-digit place so that it can be seen at a glance when you look at it? I know it's 1 million. Hey , in python, although we can't add commas to numbers, there is a similar way of writing them. We can add underscores to numbers. Adding underscores will not affect the number. Here , I will print the number to see. If you look at the execution, you can see that what he prints is 1 million. He will not print the bottom line, so the bottom line is purely to help us who are writing programs and those who read the code to know the number more clearly. How much is it? Otherwise , if there is a number that looks like this today, it will be very painful to look at it like this. You don’t even know how much it is . So we can add some bottom lines in time to make it more comfortable to look at in the past. Ok, this is a number . We can add a bottom line to the special usage . There is no rule here that you add one every 3 digits. You can add one every 6 digits. You can only add a bottom line every 6 digits . The result is the same. Okay. These are the four basic data forms and some of their special uses . After understanding the basic data forms , we will learn how to convert the data forms. Well , before we start, let's ask you a question. Suppose we want to make an addition computer today. You can let the user input two numbers, then we will add the two numbers, and then print the result of the addition. Ok, what if we want to make an addition computer like this? Command to get the two numbers entered by the user. I say please enter the number 1 and then I use a variable to represent him. Suppose he is called num1 and then copy a num2. Please enter the number 2 and then we will print num1 and add num2. Right ? This is the way to use Add the two numbers entered by the user. Ok, let's do it once and see . Please enter the number 1. Suppose I enter 2 , please enter the number 2. Suppose I enter 3 and you can see that 2 plus 3 is equal to 5 , but the result printed is 23. Why?會這個樣子呢 其實這邊的23並不是數字的23 而是字串的23 也就是我們印出來的是這個字串23 而不是數字的這個23 ok 那為什麼他會印出字串的23呢 原因是這個樣子的 預設input接收到的使用者輸入都是字串ok 下面我們輸入的是2嘛 第一個輸入的是2 所以呢這邊接收到的是字串2 而不是數字的2 ok 這邊接收到的是字串2 第二個數字我們輸入的是3 所以這個呢他會接收到的是字串3 那我們把字串2跟字串3做相加 就是把這兩個字串做連接嘛 這個樣子字串2跟字串3做相加 實際上呢就是把這兩個字串這兩段文字連接在一起 變成23這個字串 所以呢他就會印出23 不信的話這邊我們可以用一個函式叫做type 來判斷資料是哪一種形態 好這邊我先把它復原回去 ok 我們用type 這個函式來判斷 這邊的num1 跟num2 他們的資料形態到底是哪一種 我可以在type 的小括號裡面寫上我想要判斷的資料 分別是num1 跟num1 然後呢我直接把它印出來print ok 下面也是直接把它印出來 把num1跟num2 他的資料形態印出來看看 好我們執行 輸入數字1 我輸入2 數字2 我輸入3 可以看到他這邊印出了class str 跟class str 這個class 就是類別的意思 那str 就是字串的意思 也就是說他是屬於字串這個資料形態 ok 我們可以看到num1跟num2 他印出來的資料形態都是字串沒有錯 所以呢這邊就是字串2跟字串3做相加 就會得到把兩個字串連接在一起變成字串23 這邊如果我們想要把輸入的這兩個數字 真的做相加的話也就是2加3變成5的話 我們就可以用到資料形態的轉換 這邊想要把字串轉換成數字 可以用兩個函式來幫我們達到 一個叫做int 然後呢一個叫做float 這兩個函式就跟我們上一堂課介紹到的資料形態 他的英文名字是一樣的int 跟float int 就是轉換成整數float 就是轉換成浮點數 我們只要把想要轉換的東西寫在小括號裡面就可以了 所以如果我們想要把 這邊input接收到的數字把它轉換成整數的話 我就可以用int 這個函式 我就int 然後呢一對小括號 把這個input接收到的東西把它包起來 下面這邊num2的部分也是 數字2的部分也是 ok 我們再執行一次看看 輸入數字1 我輸入2 輸入數字2 我輸入3 哎這次就得到5了 2加3等於5沒有錯嘛 我們再看到這邊印出來的是class int 跟class int 表示我們輸入的2跟3 都被int 這個函式轉換成了整數的資料形態ok 所以現在整數的2加整數的3就會變成5 沒有錯ok 但是呢如果我現在執行我輸入的是2.3 哎可以看到他馬上就出錯了 為什麼呢因為現在當我輸入2.3的時候 這邊是這樣子嘛會被覆蓋成字串的2.3 那我又把這個字串的2.3 把它轉換成整數就出錯了 因為這個int是只能轉換成整數 但是我們現在字串裡面的是浮點數 也就是有小數點的數 所以呢他沒有辦法轉換 他就告訴你哎出錯了我沒辦法轉換 那怎麼辦呢 我們可以把它轉換成浮點數 也就是使用float 這個函式ok 好那我把它都改掉改成float 下面也是改成float 好那我們再執行一次 輸入數字1 假設我輸入2.3 哎沒有出錯哦 再輸入數字2 假設我輸入5.2 可以看到2.3加5.2是7.5 沒有錯 那我們再來看一下num1跟num2的資料形態 可以看到他們就被轉換成float 浮點數了ok 我們用float 這個函式把它們轉換成浮點數 哎那就可以做小數點的相加啦 2.3加5.2 7.5沒有錯 我們再試一次 假設這一次我輸入的是5.3 不要5.7好了加上22.8 哎22.8加5.7 28.5 沒有錯ok 所以呢我們可以用int 跟float 這兩個函式 來把資料轉換成整數以及浮點數ok 反過來如果你想要把資料轉換成字串的話 則可以用str 這個函式 我們來試一下 我先把這邊刪掉 假設有一個變數num1 他是整數10 然後呢我這邊先刪掉 我直接把num1印出來 ok 我們先來執行一次 可以看到現在num1 他的資料形態是int 也就是整數 然後呢印出來10沒有問題 那現在如果我把它轉換成字串str 我用str 這個函式把它轉換成字串 再執行一次 哎可以看到雖然一樣是印出10 但是呢資料形態就變成字串了ok 我們可以用str 這個函式把資料轉換成字串 那這邊轉換成字串之後就可以做字串的相加啦 我再加個你好 好再執行一次 可以看到他就印出了10你好 因為呢字串的相加就是把字串連接在一起的意思ok 所以呢我們可以把資料形態做轉換 來達到我們想要的效果 也可以用type 這個函式來檢查資料的形態 ok 到了測驗的時間了 來看一下大家學習的如何 我要你做一個計算機 這個計算機的功能是這個樣子的 當我們按下執行之後 他會請你輸入一個2位數的數字 那假設我在這邊輸入25 哎他就會印出7 為什麼會印出7呢 因為這個計算機的功能 就是把你輸入的這個兩位數 他的第一位跟第二位做相加 也就是把2跟5做相加得到7 然後印出來給我們 再來一次 假設這一次我輸入的是36 哎他就會印出9 因為3加6等於9 好再來一次 假設我輸入的是79 就會得到16 因為7加9等於16 ok 我們就是要做這樣子的一個計算機 他會把第一位跟第二位做相加 好大家可以把影片暫停啦 試著做做看 來解答啦希望大家都已經做完了 首先我們要先取得 使用者輸入的一個兩位數數字 所以呢這邊我們用input 來取得它 要給使用者的提示是 請輸入一個2位數數字 我直接把他貼過來 然後呢用一個變數來代表他叫他num 假設這邊使用者輸入的是79 那這邊這一串就會被覆蓋掉嘛 覆蓋成字串79 那接著我們就可以把 這個字串的第一位跟第二位把它取出來 也就是第一位7跟第二位9把它取出來 哎那我們想要取得一個字串中的特定某一位 是不是可以用中括號這個寫法 我們寫num 在後面加上一對中括號 然後在裡面寫上0 那就是取得這個字串裡面的第一位7嘛對不對 這邊我用一個變數來代表他 我叫他digit1 那再來第二位也是我用一個變數叫digit2 然後他就是num 中括號1 就是取得這個字串裡面的9這一位 好那接著我們就可以把它做相加了嘛 digit1 加上digit2 ok 我們來執行一次看看 把這邊先改回去input 請輸入一個2位數數字 好我們執行看看 輸入數字假設我輸入79 哎為什麼他不是印出16呢 而是還印出79 原因是這樣子的 我們輸入了79 也就是這樣字串的79 那在這邊取得的第一位呢 實際上他也是字串的7 這邊的第二位呢也是字串的9 並不是數字的7跟數字的9 所以呢我們把字串的7跟字串的9再做相加 當然他就是把這兩個字串連接在一起 又會變成字串79 ok 所以呢在這邊我們必須要把取得到的第一位跟第二位 再把它做資料形態的轉換 把它轉換成整數再做相加就可以了 那在我們轉換之前呢 先來看一下他們的資料形態 到底是不是如我所說是字串 這邊我們可以用type 這個函式 來看一下他們的資料形態是什麼 這邊我寫digit1 直接把它印出來digit2 也是 直接來看一下他的資料形態是什麼 執行 請輸入一個兩位數數字79 可以看到他就告訴你啦 這邊的digit1 跟digit2 他們都是字串 所以呢當然字串跟字串相加就是把字串相連的意思 那這邊我們就必須要用int 這個函式把它轉換成整數 轉換完之後呢我們再做相加 我們來試一次 請輸入一個2位數數字79 就得到了16 7加9等於16嘛 我們可以看到資料形態就被轉成int啦就是整數 當然這邊如果你想要轉成浮點數的話也是可以的哦 float 好執行 兩位數字79 可以看到他就會告訴你7加9等於16.0 因為你是把它轉換成 這個有小數點的數也就是浮點數 所以呢這邊會有一個點0哦 ok 那這邊他就告訴你 這兩個資料形態都是浮點數float 好希望大家都有把這個計算機做出來 這邊再提醒一下大家 你的做法不需要跟我完全一模一樣 只要執行出來的結果是正確的就可以了 接下來跟大家介紹一些字串的特別用法 第一個是 如果今天我們想要在字串裡面 使用雙引號的話該怎麼辦呢 比如說今天我想要印出一個字串 他長這個樣子他今年然後呢一對雙引號25歲 ok 我們想要特別強調這個人他今年25歲 所以我們在25這個地方用雙引號把他包起來 ok 我們想要印出這樣子一個字串 但是呢現在當我們執行的時候 可以發現就出現錯誤了 為什麼呢 原因是這個樣子的 我們說字串他是用一對引號中間夾著一段文字 但是呢如果今天這段文字裡面也有使用到引號的話 那就有可能會發生衝突 怎麼說呢 我們可以看到最左邊這個雙引號 跟25左邊的雙引號已經形成了一對 所以呢這邊就形成了一個字串他今年 然後呢25右邊這個雙引號 跟最後的雙引號也形成了一對 所以呢這邊也形成了一個字串歲 那中間的這個25呢就會變成一個數字 變成一個整數在這邊 那我們把這串印出來當然就會出錯 電腦他就看不懂你在寫什麼啦 他看到你寫了一個字串 然後呢一個25的數字再加上一個字串 那根本就不知道你在寫什麼 要怎麼樣解決這個問題呢 我就是想要特別強調他25歲 所以呢我想要在25的左邊跟右邊都加上雙引號 這邊有兩個解決方法 一個是我們就把最左邊跟最右邊的這兩個雙引號 把它改掉把它改成單引號 這樣就沒有衝突了嘛 因為我們說字串 他可以是用一對單引號或是一對雙引號夾著一段文字 好我們再執行一次 哎可以看到他就印出來了他今年25歲 而且呢這個25的左邊跟右邊都有用雙引號特別強調出來 這是第一個解決辦法 那第二個解決辦法呢 我們可以這樣子做 如果我們就是想要用一對雙引號來表示字串的話 可以在裡面的雙引號的左邊加上一個\ ok 可以在這段文字裡面 使用到雙引號的地方的左邊加上\ 哎這個\的意思 就相當於是跟電腦說 右邊的這個雙引號 他並不是字串的開頭跟結尾哦 而是這段文字裡面的一部分 ok 那我們再執行一次 哎可以看到就不會出錯了 所以呢有兩種解決辦法 一個是把字串的開頭跟結尾改成單引號 另外一個呢是在裡面使用到雙引號的地方 在左邊加上一個\ ok 那反過來的話也是一樣 如果今天你的字串是用一對單引號包起來 然後呢你想要在字串的裡面 也就是文字的部分使用到單引號 一樣會發生這個衝突 我們執行一次 哎一樣出錯了 那這個時候呢解決辦法一樣是跟剛剛一樣 你可以把字串的開頭跟結尾改成雙引號 這樣執行起來就不會有錯誤啦 或者是說你可以在裡面這段文字裡面 使用到單引號的左邊加上一個\ ok 再執行一次 這樣也不會有錯誤 好這是第一個 如果我們想要在字串裡面使用到引號的話該怎麼辦 第二個呢是 如果我們想要在字串裡面做換行的話 怎麼辦呢 比如說今天有一個字串長這個樣子 大家好我是小白今天天氣真好 假設今天我們想要印出這樣子一個字串 但是呢我們想要讓他換行 就是想要先印出大家好我是小白 然後呢換行再印出今天天氣真好 那該怎麼辦呢 我們先執行一次看看 這樣子印出來的話他會全部都在同一行嘛 如果我們想要讓字串換行的話 這個時候你可能會想到 我們是不是可以直接使用兩個print 就可以達到了呢 第一個print 是寫說大家好我是小白 那第二個是寫說今天天氣真好 好執行 哎這樣子就可以達到我們想要的效果了嘛 但是呢如果今天我就是不想要寫這麼多行 我想要用一個print 指令就達到這樣子的效果 該怎麼辦呢 又或者是說今天我在讓使用者做輸入的時候 我想要換一行再讓使用者輸入 該怎麼辦呢 像是這個樣子 假設今天我想要使用者輸入他的名字好了 我說請輸入您的名字 我們執行一次 可以看到他會讓使用者在同一行做輸入 但是如果今天我想要換一行到這邊 到下面這邊再讓使用者做輸入的話 該怎麼辦呢 這個就是要使用到在字串裡面做換行了 如果我們想要在字串裡面做換行 我們可以在字串裡面寫上\n ok \n 在字串裡面就是換行的意思 所以如果今天我是這樣子寫 大家好我是小白\n今天天氣真好 那我們執行一次看看 可以看到他就會做換行了 大家好我是小白換行今天天氣真好ok 我們可以在字串裡面寫上\n 來做換行的動作 剛剛的input也是 假設我想要使用者輸入他的名字 我說請輸入您的名字然後呢加上\n 我們執行一次 可以看到請輸入您的名字 但是呢這一次他就會換一行 再讓使用者做輸入ok 好那這個就是 如果我們想要在字串裡面做換行的話可以用\n 再來假設今天如果我們想要在字串裡面 使用其他的資料形態 怎麼辦呢 比如說今天我想要印出一些小白的資訊 像是小白的年紀 假設我們這邊有一個變數叫age 是小白的年紀他25歲 然後呢還有小白的身高叫他height 然後呢我讓他是170.5 再來是小白是不是男性 我用一個變數叫is_male 然後讓他等於True 假設我們有這些小白的資訊 然後呢我想要把它印出來 這邊我們就印出小白今年25歲 然後呢身高170.5 再來是是否為男性冒號True 但是呢這邊寫到年紀、身高跟這個是否為男性的地方 我們要把它改成變數嘛 所以這邊的25我把它改成這樣子 加上age歲但是呢這個age他的資料形態是整數 所以呢我們不能直接把他跟字串做相加 我們把數字跟字串做相加是不行的 這邊要先把它轉換成字串 把這個整數轉換成字串再做相加 ok 這邊身高也是 把它替換成變數 這邊的變數是height 然後一樣要把它轉換成字串 因為呢他原本是浮點數嘛 原本是這個170.5浮點數 最後的這個是否為男性的球也是 這邊一樣要加上這個is_male 一樣is_male 他的資料形態是布林值 他是True 那一樣 我們不能直接把布林值跟這個字串做相加 所以這邊一樣要把它轉換成字串 ok 好我們執行一次 哎這樣子執行才會是印出來小白的資訊嘛 小白今年25歲身高170.5是否為男性True 沒有錯他是男性 但是呢大家覺不覺得這樣子寫很累很麻煩 我們必須要把在字串裡面使用到其他資料形態的地方 全部都轉換成字串之後再把它們做相加 這樣子才可以得到我們想要的結果嘛 如果我們不想要這麼麻煩的話 這邊可以使用f string ok f string 那f string 的用法呢 就是在字串的前面加上f 這麼一來呢 我們就可以在字串裡面直接使用其他的資料形態 就可以像是這個樣子 如果我們想要用age 的話 我們可以直接在age 的左邊跟右邊加上一對大括號 這樣子就可以直接使用他了 這邊的height也是 我們直接在height的左邊跟右邊加上一對大括號 最後的這個is_male 也是 直接在is_male 的左邊跟右邊加上一對大括號ok 我們可以這樣子寫 f string 就是在字串的前面加上f 這麼一來 如果我們想要在字串的裡面 使用到其他的資料形態 像是這邊的整數啊 還有這邊的這個浮點數啊 還有這個布林值啊 只要在他使用到的地方 加上一對大括號就可以了 用一對大括號把它包起來 好我們執行一次看看 哎果然沒有錯跟剛剛的結果是一樣的 小白今年25歲身高170.5 是否為男性True 如果我把這邊的資料改動也是沒有問題的 30跟180.5 執行 也會跟著改動 30 180.5 是否為男性True ok 所以如果我們想要在字串裡面 使用其他的資料形態的話 用f string 會方便很多 ok 可以直接這樣子做使用 在使用到其他資料形態的地方 加上一對大括號就可以了 好那這就是一些字串的特別用法 接下來跟大家介紹一些運算符號 以及數字的用法 我們從開始到現在 只有使用到加法運算嘛 比如說今天如果我想要做2加3 我就可以直接寫2加3 我們把它印出來看看 執行 就可以得到5 因為2加3等於5嘛 如果今天我們想要做的是減法運算呢 非常簡單我們就直接寫一個減號就可以了 這樣他就會做減法的運算 2減3等於-1嘛 我們執行看看 果然就得到了-1 再來如果你想要做乘法的運算呢 在python裡面乘法的運算是用這個* ok 用這個*來做表示 2*3 執行就得到6 再來是除法 在python裡面你要做除法的話可以用這個/ ok 2除以3是多少呢 哎除不盡哦 所以呢他會給你0.6666666666非常多的6 ok 如果我們是除的盡的話 假設6/3 好執行 得到了2.0 還是有這個小數點哦ok 我們由此可知 在python裡面只要你是做除法的運算 不管他有沒有整除 得到的結果都會是浮點數 都是有這個小數點的ok 好加減乘除 再來呢我們還可以做一些特別的運算 比如說我可以寫// // 在python裡面是整數除法的意思 如果這邊我寫7//3 就是做7除以3的整數除法 那7除以3的整數除法是多少呢 7除3是2餘1嘛 整數除法也就是把餘數的部分去掉只會得到2 ok 我們執行一次 果然就得到2 如果今天是11 整數除法3呢 11除以3是3餘2嘛 所以那個餘2的部分一樣去掉就是得到3 這個//在python裡面是整數除法的意思 再來我們也可以寫** **在python裡面是次方的意思 如果這邊我寫2**3 就是2的3次方 2的3次方是8嘛2*2*2就是8 執行一次 哎果然得到8 那如果寫5**2 就是做5的2次方 5的2次方是25嘛執行 哎就得到了25 所以呢我們可以用**來做次方的運算 再來我們也可以寫% %是取餘數的意思 5除以2是多少 5除以2是2餘1嘛 所以取餘數的話就是得到1 執行果然得到1 如果今天是8%3的話是多少呢 8/3是2餘2嘛 所以呢就會得到2 得到這個餘數的部分 執行就得到2 再來一個 假設是這個17%3 那就是5餘2嘛 所以執行還是一樣得到2 ok %是取於數的意思 好這就是一些運算的符號 我們除了做單一的運算以外 也可以做連續的運算 比如說今天我想要做連續的運算 6加3減2 再加8 然後再乘個2 這樣子也可以連續的運算 我們執行 哎得到23 這邊特別注意 在python裡面你做連續運算的話 他也是有先乘除後加減的規則的 所以呢這邊會先做8*2得到16 然後呢再去做這邊的運算 6加3是9嘛9減2是7 7再加上這邊的16 8*2 16嘛 所以呢得到23沒有錯 ok 有先乘除後加減的規則 如果這邊寫的是2**3的話 一樣2的3次方他會先做 那2的3次方是8嘛 所以6加3等於9 9再減8是1我們執行 果然得到1 同樣的如果是用//做這個整數的除法一樣他會先做 如果這邊是7//3 一樣他會先做7除以3的整數除法 那7除以3的整數除法是2嘛 因為他是2餘1 所以呢只取2的部分 那6加3減2是7 我們執行 果然就得到7 好那這是連續的運算 在python裡面 他一樣有這個括號的用法 比如說現在是6加3減7*3嘛 如果我把3減7把它括號起來 他就會把括號的地方先做3減7會先做等於-4 然後呢-4再去乘以3=-12 -12再加6是-6 ok 執行 就得到了-6 ok 也可以用這個括號括號裡面的運算會先做 所以整個運算符號他的優先順序是這個樣子的 首先是先做括號裡面的運算 再來呢做這個次方以及整數除法 再來是乘啊除啊跟這個% 也就是取餘數 最後才是加跟減 ok 他的優先順序是這個樣子的 好那如果假設今天你有一個運算長這個樣子 你實在不知道這個運算他的優先順序是什麼 那你也可以把這串運算複製起來 把它貼到thonny裡面 好把它貼過來然後呢點選這個debug 然後step into 看他一步一步是怎麼做的 看他的這個運算的順序是怎麼樣啊 你就一直點step into 他就一步一步的做給你看ok 就得到了2 這個就是python的運算符號以及他們的優先順序 ok 再來 如果今天我們在做除法運算的時候 比如說我做一個這個4/3 我們執行 可以看到他有很多的小數點嘛 如果我們不想要他有小數點這麼多位的話 也可以做四捨五入的動作 要做四捨五入的動作 我們可以用一個函式叫做round round 接著一對小括號 然後呢我們要在這對小括號裡面寫上兩個值 第一個值是我們要做四捨五入的那一個數字 第二個值呢是我們要四捨五入到小數點後面第幾位 假設今天我想要做四捨五入的是1.33333 ok 那第二個值呢 要寫上要四捨五入到小數點後面第幾位 假設我寫2 這邊特別注意 第一個值跟第二個值的中間要用逗號隔開 好我把它印出來看看 1.333333做四捨五入到小數點後面第二位 上面這個我先註解掉 好執行 就得到了1.33 為什麼呢 因為後面的是3嘛 所以他就捨去掉了這個第三位是3 如果這邊四捨五入到小數點後面第3位呢 執行 就得到了1.333 那我改一下 如果把這個第4位小數點後面的第4位改成6 再執行一次 他就進一位啦 變成1.334 ok 這個是四捨五入我們可以用round 這個函式 所以呢回到剛剛的 如果我們做除法他會除不盡的話 我們想要把它做四捨五入 就可以這樣子做round 把要做四捨五入的那一個數呢 把它寫在小括號裡面的第一個值 那第二個值寫上 你想要做四捨五入到小數點後面第幾位 如果寫2的話 執行 就得到1.33 ok 我們可以用round這個函式來達到四捨五入的效果 好再來 假設今天我們有一個變數叫做num 他的值呢是整數10 如果今天我想要把num的值 num這個變數的值把它加1 可以怎麼做呢 也就是把10變成11 哎我們是不是可以這樣子做 我們寫num等於num加1 這樣子就可以了嘛 為什麼呢 因為現在num它代表的是10嘛 所以相當於就是num等於10加1 ok 所以他就會變成11 我們除了這樣子寫以外 我們寫num等於num加1以外 還有一個縮寫我們可以這樣子寫 我們寫num加等於1 ok 這樣子他也會把num的值 num的這個10的值加1變成11 我們可以直接把它印出來看看num 執行 哎就變成11了 跟我們剛剛的這個寫法是一樣的 我們寫num 等於num 加1是一樣的 執行哎也是11 同樣的 如果今天我們是想要把num的值把它乘以2 也就是從原本的10乘以2變成20的話 本來我們是這樣子寫嘛 我們寫num等於num乘以2 這樣子就可以把num的值乘以2變成20了 執行 果然他就變成20了 但是我們除了這樣子寫以外 我們寫num等於num乘以2以外 也可以把它簡寫成num乘等於2 這樣子寫也是把num的值乘以2的意思 我們執行看看 果然也是得到20 所以呢以此類推 如果今天你是想要把num的值把它除以2的話 你這邊就可以寫num/等於2 執行果然就得到了5.0 ok 我們可以用這樣子的縮寫方法 好那這就是運算符號以及數字的一些用法 恭喜大家到了我們今天的專案時間啦 我們今天要做一個bmi 的計算機 當我們按下執行之後 首先他會請你輸入身高 那身高的單位是公分 這邊特別注意他會換一行之後 再讓我們做輸入ok 假設我輸入我的身高178.6 接著他請你輸入你的體重 那這邊的單位是公斤 一樣他會換一行再讓你做輸入 假設我的體重是74.5 他就會幫你計算出你的bmi 是多少 可以看到他印出了您的bmi 是23.4 這邊特別注意 我們的bmi 計算出來之後 小數點會有一位只會有一位 ok 我們再執行一次看看 這次身高我輸入160.4 體重的話假設來一個46公斤 他就計算出bmi 是17.9 一樣只有小數點1位 ok 我們就是要做出這樣子的一個bmi 計算機 大家可以根據今天所學的試著做做看啦 bmi 的公式在這邊 他的公式是體重(單位是公斤) 去除以身高的平方 這邊特別注意身高的單位是公尺 好大家可以做做看啦 相信大家都已經做出來了 首先我們要先取得身高跟體重 所以呢這邊我們就用input 來取得使用者的輸入 這邊第一個是身高我直接把它貼過來 然後呢用一個變數來代表他 我叫他height 再來第二個要輸入的是體重 我直接複製一份 然後呢這個變數我叫他weight 這邊一樣直接貼過來 請輸入您的體重 然後呢就要做計算了嘛 bmi 的公式是體重去除以身高的平方 所以呢這邊我另外創建一個變數 叫他bmi 然後計算一下 體重去除以身高的平方 平方的話我們可以用這個嘛兩個* 那平方的話也就是乘2次 所以呢我們就寫上2 ok 不過呢這邊特別注意 我們的input接收到的是字串嘛 這邊輸入的如果是160.4的話 那它是一個字串 所以呢我們必須要先把它做轉換 因為這邊有可能輸入的是有小數點的數 身高跟體重都是 所以呢我們把它轉換成浮點數float 用float 這個函式把它轉換成浮點數 好那這邊第二個要注意的點是 bmi 公式裡面的身高他的單位是公尺 但是呢我們讓使用者輸入的身高他的單位是公分 所以呢我們必須要先把公分轉換成公尺 要把公分轉換成公尺非常的簡單 就把它除以100就可以了 所以我們現在要先把height的值除以100 再去做計算才會是對的 我們要把height的值除以100 可以這樣子寫我們寫height=height/100 我們除了這樣子寫以外 也可以把它縮寫成height/=100 ok 好那這邊就單位都轉換好 然後計算好bmi之後 就可以把最後的您的bmi是多少把它印出來了 我們就print ok 那這邊我們可以用f string 這樣會比較方便 我把它貼過來您的bmi 是 然後我們要寫上這個嘛計算出來的bmi 這邊我們想要在f string 裡面使用其他的資料形態 就用一對大括號把它包起來就可以了 好那這樣子應該是沒問題 我們執行一次 請輸入您的身高公分 哎這邊忘記了一件事情 我們要讓他換一行再讓使用者做輸入嘛 所以呢我先把程式終止掉 我們想要讓他做換行的動作 在字串裡面做換行的動作 可以在字串裡面寫上\n ok 寫上\n 好我們再執行一次 請輸入您的身高 這一次就是在下一行換了一行之後再做輸入 假設身高是178.5 請輸入您的體重 假設是這個80公斤 他就計算出來啦 您的bmi 是25.1080 哎我們可以發現 他的小數點有非常的多位 但是呢我們只想要有小數點一位嘛 那想要只有小數點一位的話 可以怎麼做呢 我們是不是可以把這邊計算出來的bmi 先把它做一個四捨五入的動作 把它四捨五入到小數點後面第一位 然後呢再印出來 這樣就可以了嘛 要做四捨五入的動作 我們可以用round 這個函式 這邊我就把bmi 的值把它做一個四捨五入 這個round函式呢要寫入兩個值 第一個值是你要做四捨五入的那一個數字 那我們要做四捨五入的那一個數字 就是計算出來的bmi 要讓他四捨五入到小數點後面第幾位呢第一位ok 這樣子寫呢 就可以做一個四捨五入到小數點第一位的動作 那我們再執行一次 請輸入您的身高來個180.6 輸入您的體重來個76.5 哎他就計算出來了您的bmi 是23.5 可以發現小數點後面就只有一位了 ok 再試一次 您的身高來一個155.2 這個體重來一個35公斤 哎您的bmi 是14.5 ok 就計算出來了 好希望大家都有把這個bmi 的計算機給做出來 歡迎大家來到第三天的課程 今天我們要來做一個點餐系統 在過程中會學會兩個概念 分別是if 語句以及邏輯運算 不知道大家有沒有去過拉麵店 然後呢使用過這種拉麵點餐機 這種拉麵點餐機 就是我們可以在上面點選想要吃的拉麵 然後呢也可以做一些加點的動作 比如說你想要加點一顆糖心蛋 或是你想要加點一份叉燒啊等等的 在你點完餐之後呢 他就會告訴你總共的金額是多少 然後你可以做一個結賬的動作 ok 今天我們就是要來做一個 類似於這樣子的拉麵點餐系統 好那我們直接先來看這個拉麵點餐系統 他長什麼樣子吧 ok 他長這個樣子 當我們按下執行之後 他會先跟你說歡迎使用拉麵點餐機 然後呢目前有三種口味 分別是鹽味拉麵220塊 醬油拉麵240以及豚骨拉麵280 然後呢他就會請你選擇想要吃的拉麵口味 我們可以在這邊輸入1號2號或是3號 假設我想要吃豚骨拉麵我就輸入3號 接著他問你是否要加大 如果你的是豚骨口味的話加大要50塊 其他的口味加大則是30塊 你想要加大的話就輸入大寫的Y 如果不想要的話就輸入大寫的N 好我想加大我輸入Y 他接著問你要不要加糖心蛋 加糖心蛋是30塊 那我也加Y 是否加叉燒不加我輸入N 他就告訴你總金額是360 然後呢謝謝您的光臨 我們來計算一下 我輸入的是3號嘛是豚骨拉麵280 那這邊我有加大我輸入Y 所以呢豚骨口味加大是50塊 280+50=330 接著呢是否加糖心蛋 糖心蛋是30我加嘛 所以呢330+30是360沒有錯 這邊的叉燒我沒有加 ok 那我再來輸入一次 假設這次我吃的是鹽味 是否加大我不加 是否加糖心蛋也不加 是否加叉燒加了 他就告訴你總金額280 我們來算一下我吃的是1號鹽味拉麵220 然後呢不加大也不加糖心蛋 但是加叉燒220+60是280沒有錯 ok 今天我們就是要來做一個 這樣子的拉麵點餐機 這樣子的拉麵點餐系統 好那我們就廢話不多說直接開始吧 今天首先我們先來了解if 語句 if 語句它可以讓我們的程式 在不同的情況下執行不同的程式碼 比如縮排在狀況a 的時候執行a 部分的程式碼 在狀況b 的時候執行b 部分的程式碼 這個if語句 在我們的現實生活中也常常出現 比如說如果今天下雨我就開車去上班 否則我就走路去上班 這樣子的如果否則的語句就是一個if語句 或者是說如果你考試分數>60分 今天就準備吃好料 否則你今天就準備罰跪 ok 這樣子的如果否則的語句就是一個if語句 或者是說如果你的名字叫做林鮭魚的話 鮭魚就免費吃到飽 否則請你付錢 ok 這樣子的語句呢就是一個if語句 我們想要把這樣子的語句 變成python的程式碼的話可以這樣子寫 如果在python裡面就是if 你把if把它翻成中文的話也是如果的意思 寫上if之後呢接著一個空白 然後寫上你的條件判斷 現在條件判斷是要判斷有沒有下雨嘛 這邊我先寫上今天下雨 條件判斷寫上去之後呢接著寫上一個冒號 寫上一個冒號然後到下一行這邊 你就可以寫上這邊的條件判斷 如果成立的話要做的事情 所以呢我在這邊寫上條件成立要做的事 ok 好再來 否則這個否則在python裡面就是else 寫上else之後呢一樣加上一個冒號 再到下一行 下一行這邊呢要寫上的是 條件如果不成立的話 這邊的條件如果不成立的話要做的事情 ok 我寫一下 條件不成立要做的事 但是呢這邊的條件判斷 我們不能直接寫今天下雨 因為電腦他看不懂 那怎麼辦呢 我們可以用一個資料來表示今天有沒有下雨 可以用一個布林值來表示今天有沒有下雨 像是這個樣子 我可以創建一個變數叫他is_rainy 然後呢讓他= True 假設今天有下雨我用True來表示 還記得嗎這個布林值這個資料形態 布林值這個資料形態只有兩種寫法 一個是True 另外一個呢是False ok 那這邊我寫True 就可以拿來表示是的今天有下雨 然後呢我用is_rainy這個變數來代表 所以呢這邊的條件判斷 我就可以把它改成is_rainy 用這個變數來判斷今天是否有下雨 ok 如果條件成立的話 也就是有下雨的話 我們要做的事情要寫在這裡 那我們要做的事情是 我就開車去上班嘛 這邊我就把它印出來 我就print 我就開車去上班 好把它印出來 那這邊else否則 否則下面寫的呢 是如果條件不成立的話要做的事情 一樣要做的事情我就把它印出來 我就走路去上班 我就print 我就走路去上班 ok 這邊特別注意 大家應該有發現 這個條件成立跟條件不成立要做的事情 他的程式碼都要做縮排 ok 什麼是縮排呢 我們可以看到這邊有做空白嘛 這邊也是有做空白嘛 這個空白就叫做縮排 那這個縮排呢 他是四個空白鍵或者是你可以按一個tab鍵tab鍵 你按一個tab鍵就相當於是按四個空白鍵的意思 好這邊特別注意 條件成立跟條件不成立的時候要做的事情都要做縮排 ok 我們直接執行一次看看 可以看到他印出了我就開車去上班 為什麼呢 因為現在我們的條件判斷的是有沒有下雨 這邊我們寫的是is_rainy 那現在is_rainy 這個變數它代表的是True 只要if後面的這個條件判斷是True 就表示是的沒有錯條件成立 那條件成立的話他就會執行下面的這一段程式碼 這一段有做縮排的程式碼 ok 所以呢他就印出了我就開車去上班 反過來如果if後面的這個條件判斷是False 也就是條件不成立 那條件不成立的話 他就會執行else下面的這段有做縮排的程式碼 我們現在把is_rainy 這個變數 它代表的布林值改成False 表示今天沒有下雨 那這邊我改回is_rainy 我們再執行一次看看 可以發現這一次他印出來的就是我就走路去上班 他就印出了這邊的我就走路去上班 為什麼呢 再講一次 只要if 後面的這個條件判斷是True 他就會執行下面的這一段程式碼 反過來如果這邊的條件判斷是False 也就表示條件不成立 那他就會執行else下面的這一段 有做縮排的程式碼ok 現在的is_rainy他代表的是False 表示沒有下雨 所以呢他就會執行else下面這一段 印出我就走路去上班 那這樣我們是不是就可以借由這個if語句 來達到讓程式在不同的情況下執行不同的程式碼 好那我們再看下面的這一段 我先把這邊都註解掉 下面的這一段語句是說 如果你考試分數>60分 今天準備吃好料 否則今天準備罰跪 一樣我們想要把這樣子的語句 變成python的程式碼的話 可以這樣子寫 如果在python裡面就是if 那現在的條件判斷是你考的分數>60分的話 我先直接複製過來 後面接著一個冒號 然後呢條件成立的話要做的事情寫在下面 記得要做縮排 其實這邊我們也不用自己特地去打這個縮排 因為呢pychram這個開發環境非常的貼心 他看到我們寫if語句的時候 當我們按下enter 做換行 他自動就會縮排了 好那這邊條件成立我們要做的事情是 今天準備吃好料 我就把它印出來print 今天準備吃好料 再來否則 否則的話是else else後面呢加上一個冒號 然後條件不成立的話要做的事情 今天準備罰跪我直接把它印出來 不過呢這邊的條件判斷一樣 我們不能直接這樣子寫 我們可以用一個資料來表示你考試的分數 這邊的話我用一個變數叫做score 讓他來代表考試的分數 假設考試的分數是80分那我讓他=80 在if 的後面我就可以這樣子寫 他要判斷的是分數有沒有>60分嘛 所以我就可以寫score>60 我們可以用這個向左的角括號來表示> 好那我們直接執行看看 可以看到他印出了今天準備吃好料 為什麼呢 因為我們現在的分數是score 他是80林嘛 那80有沒有>60呢有的 如果這個判斷是成立的話 這邊的這一段他就會被覆蓋成True ok 再講一次 如果這邊的判斷他是成立的話 這一段就會被覆蓋成True 反過來如果這段判斷是不成立的話 他就會被覆蓋成False 那現在score>60 這個判斷是有成立的 所以呢他會被覆蓋成True 那覆蓋成True 的話也就是條件成立 他就會執行下面的這段有縮排的程式碼 就會印出今天準備吃好料ok 如果不信的話我們可以把它印出來看看 我們印出score>60 看看他會印出什麼東西 好我們執行一次 可以發現果然沒錯他印出了True 為什麼呢 因為如果剛剛所說的 只要這個判斷是成立的他就會被覆蓋成True 反過來如果不成立的話就會被覆蓋成False 我們試一下如果這邊是寫score<60 < 可以用這個向右的角括號來做表示 執行 可以看到他就印出了False 為什麼呢 因為現在score是80嘛 那80有<60嗎 並沒有所以這邊不成立 這個判斷不成立他就會被覆蓋成False 那這邊的話 一樣如果我們把這個score把它寫成<60的話 我們執行一次 可以看到他印出來的就會是今天準備罰跪 因為呢這邊的判斷不成立 他就會被覆蓋成False 那False 的話他就會執行else 也就是否則下面的這段程式碼 印出今天準備罰跪 那我們除了可以用>、<以外 也可以寫>= 然後呢也可以用<= ok 我們來試一次>=60 如果今天分數是60分的話 然後呢我們這邊判斷score是不是>=60 執行 他印出今天準備吃好料 為什麼呢 60 這個score現在代表的是60 那60有沒有>=60呢 有的所以這邊這一段呢會被覆蓋成True 那if的後面是True的話他就會執行下面這一段 印出今天準備吃好料ok 所以呢我們可以用>也可以用>= 還有呢<跟<=來做判斷 好我一樣先把這一段都註解掉 再到下面這邊最後一個語句是說 如果你的名字叫做林鮭魚的話鮭魚免費吃到飽 否則的話你就請付錢 ok 要把這樣子的語句變成python的程式碼 我們可以這樣子寫 如果就是if 那這邊要判斷的是你的名字叫做林鮭魚的話 一樣我直接把他先貼過來後面加上一個冒號 然後呢條件成立的話要做的事情要做縮排 這邊要做的事情是鮭魚免費吃到飽我就把它印出來 ok 再來是否則否則的話是else 後面加上冒號 條件不成立的話 要做的事情就是請付錢 我把它印出來請付錢 ok 那這邊的條件判斷一樣 我們不能直接這樣子寫 但是呢我們可以用一個資料來表示這個人的名字 我這邊用一個變數叫做name 讓他來代表這個人的名字 假設這個人真的就叫做林鮭魚林鮭魚ok 那這邊我們就可以判斷 他的名字是不是叫做林鮭魚 我們可以這樣子寫 我們寫name=林鮭魚 但是呢這邊其實並不能這樣子寫哦 我們要判斷name這個變數的值 是不是相等於林鮭魚這個字串的話 我們不能用等號 因為等號的話他是把等號左邊的這個變數 讓他去代表等號右邊的這個值ok 如果我們想要判斷 name這個變數代表的值是不是相等於林鮭魚這個字串的話 我們要寫== ok 要判斷兩個值是否相等的話 我們要用==而不是用= 因為用=的話是讓左邊這個變數 讓他去代表右邊的這個值ok 如果我們想要判斷 左邊跟右邊這兩個值是否相等的話是要用== ok 好那我們執行一次看看 他印出了鮭魚免費吃到飽 為什麼呢 因為這邊的這個條件 他判斷的是name有沒有等於林鮭魚這個字串 那我們的name 現在他代表的是林鮭魚這個字串嘛 所以相當於是這樣子 林鮭魚這個字串有沒有相等於林鮭魚這個字串 有的條件成立 這邊這一段就會被覆蓋成True 覆蓋成True的話 他就會執行下面這一段印出鮭魚免費吃到飽 好那不信的話一樣 我們把它印出來看看 我們把這個name==林鮭魚這個字串把它印出來看看 果然他就這個印出了True 只要判斷是成立的話他就會被覆蓋成True ok 如果今天我們把name的值把它改一下 假設他不叫林鮭魚他叫林鮪魚 好那我們再執行一次 可以看到他就印出了False 然後請付錢 為什麼是False 呢 因為呢現在name他代表的是林鮪魚嘛 所以相當於是這樣 林鮪魚有沒有相等於林鮭魚呢 並沒有所以判斷是不成立的 他呢就會被覆蓋成False ok 下面這邊也是判斷是不成立的就覆蓋成False 那if的後面是False的話 他就會執行else下面這一段印出請付錢 好那這邊我們可以判斷 左邊的值是否相等於右邊的值 當然我們也可以反過來判斷 左邊的值是否不相等於右邊的值 如果想要判斷左邊的值是否不相等於右邊的值的話 我們可以寫!= ok 我們直接執行一次看看 可以看到他印出了True 為什麼呢 因為現在name他代表的是林鮪魚嘛 林鮪魚是否不相等於林鮭魚 他們是沒有相等啊 所以沒錯這邊的判斷是成立的 他就會覆蓋成True 就印出了True ok 如果今天name是林鮭魚的話我再執行一次 哎他印出了False 為什麼呢 因為現在name代表的是林鮭魚 林鮭魚是否不相等於林鮭魚呢 哎他們相等啊所以這個判斷是不成立的 這邊就會被蓋成False ok 好所以呢 我們可以用== 來判斷左邊的值跟右邊的值是否相等 也可以用!= 來判斷左邊的值跟右邊的值是否不相等 ok 這個就是if語句 我們可以利用if語句 讓程式在不同的情況下執行不同的程式碼 我們也可以用這邊的>、<、>=、<=來做判斷 還有呢這邊的==跟!=來做判斷 測驗時間到啦 我要你做一個程式 他可以判斷使用者輸入的一個整數是奇數還是偶數 ok 執行起來會像是這個樣子 他會請你輸入一個整數 假設我輸入的是15 那他就會告訴你15這個數字呢他是奇數 我們再試一次 請輸入一個整數這次我輸入10 哎他就會告訴你10是偶數 ok 我們就是要做這樣子的一個程式 他可以判斷輸入的那一個整數是奇數還是偶數 好大家可以把影片暫停啦試著做做看 ok 來解答啦 首先我們要先取得使用者輸入的一個整數 所以呢我們用input 來取得它 提示是請輸入一個整數 他這邊是有做換行然後再給使用者做輸入 所以呢做個換行\n 我把它用一個變數叫做num來表示 這邊大家想一想 我們要怎麼樣判斷一個數字他是奇數還是偶數 是不是只要一個數字 他去除以2沒有餘數就表示他是偶數嘛 ok 我們就可以根據這一點 來判斷使用者輸入的這個數字是奇數還是偶數 這邊我們可以這樣子寫 我們寫if 使用者輸入的這個數字 讓他去對2取餘數 取餘數是使用%這個運算符號 如果他對2取餘數是相等於0的話 那就表示他是一個偶數 為什麼呢 因為使用者輸入的這個數字 他對2取餘數是0的話就表示他整除於2嘛 那他整除2就是表示他是偶數沒有問題 所以這邊我們就印出偶數ok 再來否則else 那不是偶數肯定就是奇數 所以呢否則我們就印出奇數 ok 那這邊的話要把它轉換成整數嘛 我們用int 這個函式把它轉換成整數 好執行一次 請輸入一個整數我輸入10 哎他就印出偶數沒有問題 再來一次 請輸入一個整數我輸入25 哎他就印出奇數ok 我們可以利用這樣子的if語句 搭配取餘數的運算 來判斷一個數他是偶數還是奇數 接下來跟大家介紹一些if語句的進階用法 有elif翻成中文的話是否則如果 還有nested if 也就是巢狀的if 好我們在現實生活中 也有可能出現這樣子的語句 他說如果你的分數大於90的話我就給你1 00元 否則如果你的分數大於80分的話我就給你50元 否則如果你的分數大於70 我就給你30元 最後否則你要給我100元 ok 相較於之前的只有如果跟否則 這邊還多了否則如果 那這個否則如果就是elif 我們可以這樣子寫 我們寫if 你的分數大於90 這邊我直接用一個變數score 讓他來代表分數 假設分數是100分好了 這邊我們就可以判斷if score 你的分數是大於90的話 那我就給你100嘛 我就印出我給你100元 接著呢如果你的分數不是大於90的話 我們就要繼續判斷 否則如果你的分數大於80 那否則如果在python裡面就是elif 後面一樣要接著一個空白 然後呢再寫上你的條件判斷 這邊的條件判斷是分數大於80 所以呢我們就寫score 大於80 如果這個條件成立的話呢就印出我給你50元 好再來否則如果你的分數大於70 一樣否則如果就是elif 打完elif 之後呢再加上一個空白 然後打上條件判斷你的分數大於70 也就是score 大於70 如果這個條件是成立的話呢 我們就印出我給你30元ok 最後來到否則否則的話是else 一樣加上一個冒號 然後呢你給我100元print 你給我100元 ok 這邊的elif 一樣後面加上一個空白 然後呢寫上你的條件判斷再加上冒號 如果這個條件判斷是成立的話 他就會執行下面這一段程式碼 那這邊一樣都是要做縮排的ok 好那我們直接執行一次看看 現在我們的score 我們的分數是100分 所以呢他印出了我給你100元 為什麼呢 因為100大於90 所以這邊的條件是成立的 他就會執行下面的這一段程式碼 印出我給你100元 那這邊的條件成立的之後 下面的這個elif 否則如果他就不會再去做判斷了 這兩個elif 都不會去做判斷ok 假設今天的分數考的是85分 我們再執行一次 哎他就印出了我給你50元 為什麼呢 現在分數85 85他有大於90嗎 沒有這邊的條件不成立 所以呢他跳到第二個判斷 否則如果也就是elif 接著判斷分數有大於80嗎 現在分數85 85有大於80 所以這邊條件是成立的 這邊條件成立了他就會執行下面這一段程式碼 印出我給你50元ok 那這邊的判斷已經成立了之後 他就不會繼續往下判斷了 下面的這個elif 他就不會判斷到了 好假設今天如果分數是75分 我們再執行一次 他就印出了我就給你30元 為什麼呢 因為呢一開始他會先判斷分數有大於90嘛 現在是75 75沒有大於90 所以這邊的條件是不成立的 條件不成立他就會繼續往下判斷 否則如果分數大於80嗎 哎75他有大於80嗎還是不成立 所以呢他繼續往下判斷 否則如果分數有大於70嗎 哎75有大於70所以這邊的條件是成立的 那條件成立了他就會執行下面的這一段程式碼 印出我給你30元ok 好再來假設如果分數是考65分 我們再執行一次 他印出了你給我100元 為什麼呢再來一次 一開始他先判斷分數有大於90嗎 沒有條件不成立所以他往下 否則如果分數有大於80嗎 哎65還是沒有大於80所以他繼續往下 否則如果分數有大於70嗎 還是沒有條件不成立 最後全部的條件都不成立他就會到了否則 然後呢執行否則下面的這一段程式碼 印出你給我100元ok 這個就是否則如果elif 我們可以多增加很多個判斷 你想要幾個elif 就幾個elif 下面這邊你還可以多寫很多個ok 那再來呢我們也可以在if 裡面再用if 也就是所謂的nested if 巢狀的if 假設今天除了判斷分數以外 還要判斷這個人他有沒有作弊 如果這個人他有作弊的話就算他考90分以上 我們也不會給他錢ok 所以呢現在我們要多一個資料 來判斷這個人他有沒有作弊 我叫他cheat 假設這個人他有作弊我讓他等於True 接著呢我們可以這樣子寫 這邊判斷完如果大於90分的話 接著我還要再判斷他是不是有作弊 如果他有作弊的話 那這邊我就印出作弊不給錢 ok 否則的話else 也就是表示他沒有作弊的話 我才印出我就給你100元 這邊特別注意 裡面的if他條件判斷成立 跟條件判斷不成立要做的事情也都要做縮排 ok 可以看到這邊也有做縮排 所以呢他等於是縮排再縮排就輸縮了兩次 假設現在分數是100分 那我們再看一下這樣執行起來的結果會怎樣 他就印出了作弊不給錢 為什麼呢 首先他先判斷分數有沒有大於90 現在是100分 有的所以條件成立了 他會執行下面的這一段程式碼有做縮排的這一段 接著呢他進入到裡面 哎又是一個if 語句 他接著判斷這個人是不是有作弊 哎發現他有作弊 所以呢他就執行這一段印出了作弊不給錢 如果今天是沒有作弊這邊寫的是False 再執行一次 哎他就印出我給你100元 為什麼呢 一開始100有沒有大於90 有的條件成立進入了裡面這段程式碼 接著判斷這個人有沒有作弊 哎他沒有作弊 所以呢跳到else否則就印出了我給你100元ok 所以呢我們是可以在if裡面再寫if的 如果今天你想要在裡面再寫一層 在這邊再寫一層if也是可以的 ok 你想要寫幾層就寫幾層 這個就是nested if 巢狀的if ok 所以呢我們可以用elif 也就是否則如果來做更多的判斷 也可以在if 裡面再寫if 測驗時間到啦 我要請你改良一下昨天的bmi 計算機 讓他除了可以計算出bmi 以外 還要根據bmi 的值 來判斷這個人體重的狀況 好我們直接來看一下 改良過後會長什麼樣子執行 首先一樣會請你輸入身高假設我178.5 再來輸入體重假設我72公斤 他就告訴你你的bmi是22.6 然後呢你的體重狀況是健康體位 好再試一次 輸入身高178.5 假設這次我的體重是80公斤 他就告訴你你的bmi是25.1 然後呢你體重過重 ok 那再試一次 身高178.5 那體重的話假設是100公斤 他說你的bmi 是31.4 那這一次呢是中度肥胖 所以呢基本上前半段跟我們昨天做的都是一樣的 只是呢他會在最後面再根據bmi的數值 印出一個體重的狀況 好那體重的狀況跟他對應的bmi範圍在這邊 大家可以把影片暫停試著做做看啦 來解答啦 因為這邊的前半段跟我們昨天做的是一模一樣的 所以呢我直接把昨天的bmi計算機把它貼過來 改良版的在最後面 還會去判斷bmi 的數值 然後呢印出一個體重的狀況 這邊我們要怎麼樣做出這種判斷呢 是不是可以用我們剛學會的if 語句 我們可以這樣子寫 我們寫if bmi 這邊計算出來的bmi 如果他是小於18.5的話 那就表示他是過輕嘛 所以呢我們就印出他的bmi 然後在最後面再一個括號告訴他體重過輕 好那判斷完體重過輕之後 接著來判斷他是不是正常的體位 我們就用否則*如果elif 否則*如果他的bmi小於24的話 那我們就印出他是正常體位 這邊特別注意 在判斷式的地方我們不能這樣子寫 我們不能寫18.5<=bmi 然後再判斷是不是<24 不能這樣子做連續的判斷 ok 我們不能寫18.5<=bmi 然後又讓他去判斷是不是<24 這樣子的連續判斷在python裡面是不行的 那實際上呢我們也沒有必要這樣子寫 我們寫bmi<24 就可以了 為什麼呢 因為條件是從上面一個一個判斷下來的嘛 首先他會先去判斷bmi 是不是小於18.5 如果這個判斷是不成立的話 他才會跳到下面的elif 繼續去做判斷 那上面的這一個判斷不成立代表著什麼 代表著bmi 他是>=18.5的嘛 所以呢他在跳到下面的判斷的時候 bmi 已經是>=18.5的 我們就沒有必要再去做前面這一段判斷了 這邊就可以刪掉 就去判斷他是不是小於24就可以了 好那接著來判斷體重是不是過重 elif bmi<27 這邊跟剛剛一樣 我們不能這樣子寫 24<=bmi 然後再小於27 不能這樣子寫也沒有必要這樣子寫 因為呢會跳到這邊的elif做判斷的時候 表示上面的這個判斷已經不成立了 那上面的這個判斷不成立 表示bmi是>=24的 這邊就沒有必要再做這段的判斷 那也不能這樣子寫 如果是小於27的話那表示他是體重過重 接著elif 來判斷他是不是輕度肥胖 bmi<30 好那就印出輕度肥胖 再來就是重復的動作 判斷是不是中度肥胖中度肥胖的話是35 ok 最後是重度肥胖嘛 那上面的條件全部都不成立之後就會是重度肥胖 所以這邊我就沒有必要再做判斷了 我就寫否則else 就印出重度肥胖 來檢查一下 18.5 24 27 30 35 ok沒有問題 我們來試試看 這邊把它刪掉執行 請輸入您的身高178.5 體重72 他就告訴你bmi 22.6正常體位 22.6 沒有錯他小於24然後>=18.5 所以是正常體位 再來 178.5 如果我的體重是80公斤的話 哎他就說體重過重嘍bmi是25.1 沒有錯25.1是>=24然後小於27 所以是體重過重 好再來試一次 178.5 如果我是120公斤的話 哎bmi37.7就是重度肥胖沒有錯因為他>=35了 好希望大家有把這個bmi的計算機改良版把它做出來 這邊你當然不必要跟我寫的完全一模一樣 如果你想要從後面判斷回來也是可以的 比如說你想要從重度肥胖開始做判斷 然後呢一度判斷到體重過輕 這樣子也是可以的 只要執行出來的結果是正確的就沒有問題 接下來我們來了解一下邏輯運算 也就是and or 跟not 好假設今天學校又考了兩科科目 所以呢我們有分數1跟分數2 這個時候我就說啦 如果你的分數1考100分 而且分數2也考100分的話我就給你100元 然後呢我還帶你出去玩 ok 特別注意這邊有一個且 如果我們想要把這樣子的語句 變成python的程式碼可以怎麼寫呢 我們是不是可以這樣子做 假設分數1我用一個變數叫score1 來代表他 假設今天真的考100分 然後分數2我用score2 假設也考100分 那我們是不是可以這樣子寫 if 如果分數1是考100分的話也就是相等於100的話 這個條件成立的話 接著我們再來判斷分數2是不是也考100分 那我們就可以完成這個且的動作嘛 所以呢我們在他成立的情況下 也就是在這邊做縮排 然後再判斷一個if score2 是不是也相等於100 如果這個條件也成立的話 表示分數1跟分數2都是100分 那我就印出我給你100元 並且呢我還帶你出去玩 這樣子就可以完成我們上面寫的這種語句嘛 分數1考100分而且分數2也考100分我就給你100元 然後呢我還帶你出去玩 ok 我們執行一次看看 果然他就印出了我給你100元 然後呢我帶你出去玩 因為現在分數1跟分數2都是100嘛 分數1先判斷是不是相等於100 哎成立了接著進入裡面的程式碼 進入下面有做縮排的程式碼 再判斷是不是分數2也相等於100 沒有錯相等於100 所以呢印出了我給你100元我帶你出去玩 但是呢如果我們不想要這麼麻煩 我們想要用一個if 就同時完成上面的這兩個判斷 那可以怎麼做呢 這個時候我們就可以用到邏輯運算裡面的and 啦 這個and 就是且的意思 所以呢我們想要同時判斷分數1考100分 且分數2也考100分的話 可以改成這樣子寫 首先先判斷score1 是不是相等於100 然後接著寫上and 也就是且的意思 score2 是不是相等於100 那下面這邊就可以刪掉了 ok 這邊可以改成這樣 這樣子寫的意思就是and 的的左邊 跟and 的的右邊這兩個條件都要成立 他才會去執行下面有做縮排的程式碼 ok 我們執行一次看看 果然他又印出了我給你100元 然後呢我帶你出去玩 因為現在and 的左邊 score1 相等於100這個條件是成立的 score2 相等於100 and的右邊也是成立的 所以呢他就會執行下面有做縮排的程式碼 那這個and 的運算是這個樣子的 如果and 的左右兩邊都是True 的話 他就會把這一整段替換成True 否則的話只要有其中一邊是False 他就會把整段都替換成False ok 我們直接印出來一次看看 如果and的左邊跟and的右邊都是True 的話 那我們執行一次他就印出True 如我剛剛所說的 and 的左邊跟右邊如果都是True 的話 他就會把這一整段替換成True ok 所以呢我們回到剛剛的這個if句型 score1 相等於100是正確的嘛 所以呢這邊就會被替換成True score2 相等於100也是正確的 所以這邊也會被替換成True and 的左右兩邊都是True 所以呢這一整段就會被替換成Tru e ok 那if後面是True 他就會執行下面的這段有做縮排的程式碼 好我把它改回去我們再來試一下 如果and 的其中一邊 左右兩邊其中一邊是False的話執行 他就會被替換成False ok 這一整段就會被替換成False 那如果左右兩邊都是Fasle 的話 當然也是會被替換成Fasle ok 所以呢如果這一次我們把分數1改成90分的話 我們來試一次 他就什麼東西都沒有印出來 為什麼呢 因為現在score1有相等於100嗎 並沒有所以這邊的條件不成立就會被替換成False 右邊的這個判斷score2有相等於100嘛 有的所以這邊替換成True and 的左邊跟右邊只要其中一邊是False 這一整段就會被替換成False if 的後面是False 他就不會進入下面的這一段程式碼 除非呢我們下面有寫一個else 就是否則的意思 否則的話我們就print 我印出一個其中一邊是False 我們執行一次 他就印出了其中一邊是False 因為呢這一整段會被替換成False 那他就會進入否則的這一段ok 好那現在再改一下 如果這邊分數2也改成80分的話 同樣的左邊False 右邊False 這一整段被替換成False 所以呢這邊就不會被執行 好那這個就是邏輯運算的and 我們可以用and 來代表且的意思 那有且當然就有或 所以呢如果我們今天有一個句子是這樣 如果分數1考100分或分數2考100分 ok 注意變成或嘍 如果分數1考100分或分數2考100分的話 我就給你100元 然後呢我帶你出去玩 要在python裡面表達這個或的話 可以用邏輯運算裡面的or ok 所以呢這邊我們可以這樣子寫 我把這邊直接複製過來 然後呢這個分數也複製過來 上面直接先都註解掉 分數1考100分或分數2考100分 所以呢我們可以把and把它改成or 也就是改成或 好那假設現在分數1真的考100分 我們來執行一次看看 他印出了我給你100元然後呢我帶你出去玩 為什麼呢 因為or 這個邏輯運算 他是只要左邊或者是右邊其中一邊是True 他就會把整段都替換成True 換句話說 就是左邊跟右邊的條件只要其中一個是成立的 那這一整段就會是True 我們一樣把它印出來看看 現在是or 這個邏輯運算 假設or 的左邊是False 然後呢or 右邊是True 我們來執行一次 他就印出了True 為什麼呢 因為剛剛說了嘛 or 的左邊或者是右邊 只要其中一邊是True 他就會把整段都替換成True 那現在如果or的左右兩邊都是True 的話 執行當然也會是True 如果or的左右兩邊都是False 就是如果or的左右兩邊條件都不成立的話執行 那這一整段就會被替換成False ok 所以為什麼這邊會印出我給你100元跟我帶你出去玩呢 因為現在score1有相等於100嗎 有的所以這個條件是成立的會被覆蓋成True 再來右邊這個score2有相等於100嘛 並沒有他是80 所以這邊會變成False or 的左右兩邊只要有一邊是True 那這一整段就會被替換成True ok if的後面是True 它就會執行下面有內縮的程式碼ok 我把它改回來假設今天score2也考100分的話 再執行一次 還是印出我給你100元跟我帶你出去玩 因為現在左右兩邊都是True嘛 所以他一樣會被覆蓋成True 整段就會被覆蓋成True 如果現在分數1考的是80 分數2考的是90呢 執行 可以看到他什麼都沒有印出來 為什麼呢 因為左邊這個條件不成立他會被覆蓋成False 右邊的這個條件也不成立他會被覆蓋成False or 的左右兩邊都是False 這一整段就會被替換成False ok 那if的後面是False 他就不會執行下面的這一段程式碼 除非下面我們這邊還有寫一個else 否則的話要幹嘛 我把它復原回去 假設我在這邊寫一個else 否則如果條件不成立的話 否則我就印出都沒考100分 好我們執行 他就印出了都沒考100分 就到了下面的否則else ok 這個是or 我們可以用or 這個邏輯運算來表示或 再來今天要介紹的最後一個是not not 這個邏輯運算呢 他會把False變成True 把True變成False 換句話說他就是相反的意思 比如說今天有一個句子長這樣 他說如果分數1沒有考100分的話你就給我100元 那我們要把這樣子的句子變成python的程式碼 是不是可以這樣子寫 一樣用一個變數叫score1 來代表分數1 假設呢考個80分 好那我就可以判斷if score1==100 這樣子寫的話是判斷分數1考100分的話要做什麼事情 但是我們今天想要判斷的是 分數1沒有考100分的話要做什麼事情 那這個時候我們就可以在前面加上一個not 這個not 也就是否定的意思也就是相反的意思 本來是判斷分數1有考100分要做什麼事情 就會變成分數1沒有考100分要做什麼事情ok 如果分數1沒有考100分的話我印出你給我100元 ok 我們執行看看 他印出了你給我100元 為什麼呢 因為現在分數億是80嘛 80有沒有相等於100 沒有所以這一整段就會被替換成False 但是呢我們又在前面寫了not 這個not 的邏輯運算 就是會把False變成True 把True變成False 所以呢這邊這一整段就會變成True 他就印出了你給我100元 好那我們一樣把它印出來看看 如果在not的後面寫上True的話 執行那這一整段就會被替換成False 他就是一個相反的意思 如果not的後面是False的話 執行他就會變成True 這整段就會替換成True ok 是一個相反的意思 所以呢我們本來是寫==100 也就是我們本來是判斷分數1相等於100 但是呢我們在前面加上了一個not 那就會變成判斷分數1不相等於100 ok 他就會變成相反的意思 好那這邊你可能會說啊 我們也可以這樣子寫嘛 我們寫score1!=100就好了 因為這樣子就是判斷他不相等於100嘛 沒有錯這樣執行起來也是得到你給我100元 你可以寫!=沒有問題 那你也可以寫== 然後在前面加上一個否定的意思 加上一個這個not 的邏輯運算 好那今天如果我把它改成這樣 分數1沒有大於80分你就給我100元 我們是不是可以改成這樣子寫 score1>80 然後呢在前面再加上一個not 為什麼呢 因為本來是判斷分數1大於80分 但是呢我們在前面加上了not 那就會變成判斷分數1沒有大於80分 ok 我們執行一次 哎他印出了你給我100元 為什麼呢 現在分數是80 80有大於80嗎 並沒有所以這一段就會變成False 然後呢前面又加上了一個not 所以呢這一整段就會被替換成True 就印出了你給我100元 沒有錯嗎因為現在80分 那分數1的確是沒有大於80 這邊當然你也可以這樣子寫啦 分數1沒有大於80 那就是分數1<=80嘛 所以我們執行 也是得到你給我100元ok 所以呢我們可以用not 這個邏輯運算來表示否定 來做一個相反的意思 ok 那這個就是今天要介紹的三個邏輯運算 分別是and or 跟not 也就是且、或、否定的意思 恭喜大家來到今天的專案時間啦 我們要來做一個拉麵點餐系統 好他執行起來會長這個樣子 首先他會歡迎你使用拉麵點餐機 接著呢他會問你想要吃哪一種口味的拉麵 這邊有三種後面這個是他的價格ok 你想要吃鹽味拉麵你就輸入1 想要吃醬油就輸入2 想要吃豚骨就輸入3 假設我想吃豚骨那我就輸入3 接著他會問你是否要加大 如果你的是豚骨口味的話加大要加50塊 其他的口味加大則是加30塊 你要加大的話就輸入這個Y 不要的話就輸入N 假設我想要加大我就輸入Y 他又會問你是否要加糖心蛋 那加糖心蛋的話加30 假設我也要加我輸入Y 他又接著問你要不要加叉燒加叉燒是60塊 我不要加我就輸入N 全部輸入完之後呢 他就會告訴你總金額是360 然後呢謝謝您的光臨 我們來計算一下我點的是豚骨拉麵280 然後我加大嘛 所以豚骨要加50 280+50=330 330再加糖心蛋360 沒有錯 ok 那我們再試一次 歡迎使用拉麵點餐機 假設我點醬油拉麵 是否加大我加大 是否加糖心蛋我也加 是否加叉燒我再加全加了 ok 可以看到 他就告訴你加好加滿折價20塊 這間拉麵店現在是有在做促銷的 如果你加大又加糖心蛋又加叉燒 也就是你全都加的話那你就可以折價20塊 我們來算一下 我點的是醬油240 然後呢加大 所以其他口味+30 270再加糖心蛋300 再加叉燒360 然後折價20 340沒有錯ok 我們就是要做這樣子的一個拉麵點餐機 好那這間拉麵店的菜單在這邊 大家可以先把影片暫停試著做做看啦 好希望你已經做出來了 首先我們要先印出歡迎使用拉麵點餐機 所以呢就print把它印出來 接著要印出三種口味的拉麵以及他們的價格 一樣就用print 首先是1號鹽味拉麵220 再來我就複製 2號醬油拉麵240 然後呢3號豚骨拉麵 這邊如果你不想要寫這麼多print 你當然可以把它用\n做換行 然後全部都寫在同一個print指令裡面這樣子也是可以的 好那接著呢他就會請你選擇拉麵的口味 然後取得使用者的輸入 那這邊我們就是用input 我直接把它貼過來請您選擇拉麵口味 那是1號2號或者3號嘛 這邊我用一個變數 我叫它soup湯底看你要選哪一種口味的湯底 接著呢會問你要不要加大嘛 加大一樣是用一個input指令來取得 這邊一樣我直接把輸入的提示複製過來 一樣用一個變數加大的話我叫他big 再來是是否加糖心蛋 ok 那接下來操作都蠻相像的 加糖心蛋我叫他egg 再來是要不要加叉燒叉燒我叫他pork 豬肉 ok 那這邊都取得完之後呢 我們就要把價格計算出來了 然後還要判斷他是不是有加好加滿 也就是加大糖心蛋跟這個叉燒都有加的話 要幫他折價20塊 這邊我們用一個變數來計算價格 我叫他bill 一開始是0塊 然後呢這邊soup取得使用者的輸入嘛 我們就可以用if來判斷看他是點哪一種口味的拉麵 如果他點的拉麵口味是1號的話1號是鹽味拉麵220 所以如果他選擇是1號的話我就把金額+=220 再來elif 否則如果他選擇的口味是2號的話 那2號的話是醬油拉麵240 我就把他的金額+=240 再來elif 如果他選擇的是3號的話 我就把他的金額+= 3號豚骨拉麵280 ok 就把它+=280 當然這邊因為他只有三種口味的拉麵嘛 所以不是第1種也不是第2種當然就是第3種 所以這邊其實你也可以不用寫elif 你可以寫else 然後就不用做判斷了 這樣子也是可以的 ok 看你要寫elif 還是要寫else都是可以的 好那接著呢我們要判斷他要不要加大 如果是豚骨口味的話加大要50塊 如果是其他口味的話加大者是30塊 ok 所以呢我們要判斷要不要加大 如果他輸入的是Y 的話就是要加大 這邊我們是用big 這個變數 接著來判斷if big==Y 表示他要加大 要加大的話我們還要判斷他是吃哪一種口味的 我們先來判斷他是不是吃豚骨 也就是soup== 豚骨的話是3號 等於3的話那價格就要加+=50塊 否則的話也就是他吃其他的口味 那價格就是加30塊 ok 那這邊加大就處理完了 接著要判斷要不要加糖心蛋 一樣再來寫一個if 我們的變數是用egg 所以呢一樣判斷egg 如果他==Y 表示他要加糖心蛋 他要加糖心蛋的話價格就要+30 再來是要不要加叉燒 一樣再寫一個if 叉燒的話我是用pork 這個變數 所以呢一樣判斷pork它是不是等於大寫的Y 如果是等於的話表示它要加叉燒加叉燒金額加+60 然後呢最後我們還要再來判斷他是不是加好加滿 因為加好加滿要折價20塊嘛 那這邊三個變數是big egg 跟pork 我們要判斷這三個變數它所代表的值 如果都是Y的話就表示這個顧客他3個都加嘛 他所有都加了那我們就要幫他折價 所以一樣在用一個if 如果big 他有加大==這個大寫的Y and而且 還有加蛋的話就是egg==Y 再來and而且也有加叉燒pork也==Y 哎如果這個條件是成立的話 表示呢他有加大有加蛋有加這個叉燒 我們就要幫他折價價格-=20塊折價20塊 那就可以印出來了 這邊我直接把它貼過來 我用f string 加好加滿折20塊 那總金額呢這邊就是我們的bill這個變數 這邊把它替換掉用一對大括號把bill包起來 然後感謝您的光臨 下面還有一個else else的話就是如果他沒有加好加滿 那還是要把他的消費金額印出來嘛 他的消費金額就會是這樣子 總金額然後呢bill 一樣感謝您的光臨 ok 這樣子應該是沒有問題了 直接來試一次看看 歡迎使用拉麵點餐機假設我吃1號 是否加大大寫的Y加了 要不要加糖心蛋加了 要不要加叉燒加了 ok 全部都加他就說加好加滿折20 那算起來是320 我們來算一下220然後呢加大加30所以是250 再加糖心蛋280再加叉燒340 然後折20塊320沒有錯 那這邊我把它印出價格之前 先把它做個換行我\n\n兩次把它做兩次換行 讓印出金額的時候會在上面做一些空行 這樣看起來比較舒服 好再試一次 歡迎使用拉麵點餐機 假設這次我吃豚骨拉麵 是否加大加了 要不要加糖心蛋不加 要不要加叉燒不加 他就說總金額330 來算一下 豚骨拉麵加大+50 所以呢330沒有錯 再來試一次 如果吃的是醬油拉麵 是否加大不加 糖心蛋加了叉燒加了 330算一下2號是240嘛 240加糖心蛋270 然後再加叉燒330沒有錯 ok 那我們就把這個拉麵點餐機把它完成了 不過呢這邊還是有可能會發生一些問題哦 比如說假設我吃醬油拉麵 然後呢他在這邊問你是否加大的時候 你想要加大但是你不小心輸入成這個小寫的y 好再來呢糖心蛋我也輸入寫成小寫的y 是否加叉燒我也要加 但是我又輸入成小寫的y 哎這樣子他就會當做是全部都不加 因為呢我們只有判斷大寫的Y 並沒有判斷小寫的 如果想要改善這個問題的話 我們想要讓使用者不管他輸入的是大寫的Y 還是大寫的N 或是小寫y小寫n都可以的話 那這邊我們可以這樣子做 我們在使用者的輸入這邊 我們在他的後面再加上.upper upper然後一對小括號也就是使用upper這個函式 那這樣子寫是什麼意思呢 前面的這個input 他會被使用者的輸入覆蓋掉嘛 假設使用者輸入的是小寫的y 那這邊就會覆蓋成這個樣子一個小寫的y的字串 那我們在這個字串的後面又寫了.upper 是什麼意思呢 這樣子寫的意思就是把前面這個字串 他裡面的英文字母全部都變成大寫的 ok 再講一次 在字串的後面寫上.upper() 就是對這個字串使用upper 這個函式 那這個函式呢 是把字串裡面的英文字母全部都變成大寫的 本來這邊是小寫的y 經過upper這個函式之後就會變成大寫的Y 那這樣一來不管使用者輸入的是大寫還是小寫就都可以了嘛 ok 我先把它復原 我們來實驗一次 假設我這邊有一個字串叫做abcd 然後呢我在他的後面寫上.upper() 把它印出來看看 看他是不是會真的全部都變成大寫的 好執行果然可以看到ABCD 就變成都是大寫的了 好那這邊順便再跟大家介紹一個 把字串裡面的英文字母全部都變成小寫 如果今天有一個字串是大寫的ABCD 我想要把這個字串裡面的英文字母全部都變成小寫的話 可以在他的後面寫上.lower() 一樣這樣子寫的意思 就是把前面這個字串裡面的英文字母全部都變成小寫的 我們再執行一次 本來是大寫的ABCD 就變成小寫的了 所以呢這邊我們就可以在他的後面全部都加上.upper() 這邊也是這邊也是 這麼一來的話這邊的big egg 跟pork 他一定都會是大寫的英文字母 那我們再來做判斷就可以了 來試一次 歡迎使用拉麵點餐機 我吃鹽味拉麵 是否加大我輸入小寫的y 加了啦 糖心蛋也加了叉燒也加 可以看到就算我輸入小寫的 他也會當成我加好加滿 然後呢總金額320 是不是320呢來算一下220 那加大+30塊250 再加糖心蛋280 再加叉燒340 然後折價20塊320沒有錯 ok 所以呢我們可以利用.upper() 以及.lower() 來把字串裡面的英文字母全部都改成大寫的以及小寫的 ok 那這個就是我們今天的拉麵點餐機拉麵點餐系統 第四天啦 今天我們要做一個綜合健康計算機 製作的過程呢我們會學會三個概念 分別是函式 那你也可以叫他是函數 然後呢我們會學會函式的參數概念 以及函式的回傳概念 好那我們今天要做的這個綜合健康計算機呢 他可以計算三個東西 分別是bmi 跟bmr 還有tdee 那bmi是什麼我就不介紹了之前就有做過了 bmr呢是基礎代謝率 他的定義呢 就是身體為了維持最基本的運作所需要的熱量 通常是指你整天都躺在床上不運動的狀況下 身體一天所需要消耗的熱量 叫做bmr 基礎代謝率 tdee呢他是總熱量消耗 總熱量消耗是在考量運動量的情況下 一個人一整天所需要的熱量 你的運動量小你的總熱量消耗就小 你的運動量大你的總熱量消耗就大 所以基礎代謝率他是在不考量運動量的情況下 一個人整天所需要消耗的熱量 總熱量消耗呢則是會考量你的運動量 ok 我們要做的這個綜合健康計算機呢 他就是可以計算這三樣東西 分別是bmi bmr 以及tdee 好那我們就直接來看他長什麼樣子吧 執行之後他會歡迎你使用綜合健康計算機 然後有三個選項分別是計算bmi b mr 以及tdee 你可以做選擇 假設我想要計算bmi 我就輸入1 接著他會請你輸入身高 假設我身高178.5 接著請你輸入體重假設我72公斤 他就計算出來了你的bmi 是22.6 小數點後面只有1位 好再執行一次 假設這一次我想要計算的是基礎代謝率 那我就輸入2 這次他請你先輸入性別 那我是男性我就輸入男 接著他請你輸入身高我的身高178.5 輸入體重72 輸入年齡24 他就告訴你你的基礎代謝率bmr是1781.7 好再執行 假設這次我想要計算的是總熱量消耗tdee 我就輸入3 這次如果我是女性我輸入女 身高假設170.8 體重假設62公斤 年齡假設40歲 接著他會問你你的運動量是怎麼樣的一個狀況 假設你是久坐你就輸入1 那如果你是低強度運動就輸入2 那這邊的話假設是中強度運動我輸入3 他就告訴你你的總熱量消耗tdee是2122.94 小數點後面有兩位 我們就是要做這樣子的一個綜合健康計算機 他可以計算你的bmi 計算你的bmr 或是計算你的tdee 好那我們就廢話不多說直接開始吧 今天首先我們先來了解一下函式 或者你可以叫他函數英文是function 其實簡單的說函式呢就是一個功能一個指令的意思 比如說我們之前學會的prtint input 還有int float等等之類的 這種先寫一個名稱後面接著一對小括號的這種 他就是一個函式就是一個函數 只不過呢我們之前學會的這些他都是內建的函式 什麼是內建的函式呢 簡單的說就是python提供給你的功能 那python內建的函式內建的功能 當然不只我們學的那幾個而已還有非常多 我們可以在網頁上面搜尋python documentation 然後呢點選第一個網頁 點進來之後呢 你可以先在左上角這邊切換語言 假設你想要用簡體中文那你就選擇簡體中文 你想要用繁體的就選擇繁體中文 好那這邊我用繁體中文當做示範 點進來之後呢 我們可以看到這邊有一個函式庫參考手冊 那如果你是用簡體中文的話 這邊是標準庫參考 ok 點進去 然後我們往下滑 可以看到這邊有一個內建函式 內建函式點進去 他在這邊就會列出python所有的內建函式所有的內建功能 我們可以看到print 就在這邊 然後呢input 在這邊int 在這邊 我們點進去看看 假設我點這個print 點進來之後他就會在這邊告訴你 print這個python指令這個python的函式是做什麼用的 然後呢我們可以怎麼樣使用它 所以呢你可以在這邊找到所有的python內建函式 那你可以進去研究 這個函式是做什麼的他的功能是什麼 好大家有時間的話可以來這邊研究研究 到目前為止我們學到的看到的通通都是內建的函式 那有沒有可能我們創建一個自己的函式呢 也就是創建一個自己的功能呢 答案是可以的 假設今天我想要創建一個功能 他可以印出小白的資訊好了 那我可以這樣子寫 先寫上def 然後呢一個空白 接著幫你的函式取一個名字幫你的功能取一個名字 假設我把它叫做print_info 接著呢取好名字之後在後面加上一對小括號 ok 一對小括號 然後在小括號的後面再加上一個冒號 ok 接著就可以在下面寫上這個函式要做的事情 假設我想要這個函式印出小白的資訊 那我就可以print小白今年假設24歲 然後呢再印出一個print 小白身高179公分 ok 這邊特別注意 函式裡面要做的事情一樣要做縮排 跟我們在寫if的時候一樣要做縮排 這個縮排呢一樣是4個空白鍵或者是一個tab鍵都可以 那這樣子我們就成功的創建了一個自己的函式 這個函式的名稱叫做print_info 然後呢這個函式的功能 他是印出小白今年24歲 還有印出小白身高179公分 我們直接執行一次看看 可以發現這邊沒有印出任何的東西 為什麼呢 因為現在我們只定義了函式 但是並沒有呼叫他也就是沒有使用他 定義完函式之後接著要怎麼樣使用它呢 非常的簡單 假設我們現在想要使用print_info這個函式的話 我們就直接打上這個函式的名稱 然後呢一對小括號 ok 這樣子寫 他就會去呼叫我們上面定義的這個函式 我們執行一次看看 他就印出了小白今年24歲 然後小白身高179公分 為什麼呢 程式是由上而下執行的 所以呢電腦首先先看到我們定義的一個函式 接著呢他繼續往下看 看到了我們呼叫print_info 這個函式 他看到我們呼叫這個函式就會往上找 找找看我們有沒有定義print_info 哎看到了我們有定義這個函式 所以呢他就會執行這個函式裡面的程式碼 印出小白今年24歲 然後呢小白身高179公分 所以函式是這樣 我們要先做定義然後呢才可以做呼叫 那定義完之後呢你就可以呼叫無限多次 你想要呼叫幾次就呼叫幾次 假設我這邊再寫一個print_info 再執行一次 他就印出了這個小白今年24歲 小白身高179公分 然後呢下面再印一次 為什麼呢 因為我們上面先定義了這個函式 然後下面做呼叫 而且呼叫了兩次 所以呢他就印出兩次 不過這邊特別注意一定要做縮排哦 如果這個print 我沒有做縮排 那執行起來的結果會怎麼樣呢 我們來試一試 可以看到他印出了小白身高179公分 然後呢小白今年24歲 小白今年24歲 為什麼呢 我們流程來順一次 程式執行之後由上而下執行 電腦先看到我們定義的一個函式 接著因為這個print 他並沒有做縮排 所以他不是這個函式的一部分 所以他就先印出小白身高179公分 好再來繼續往下 他看到了我們呼叫print_info 這個函式 而且呼叫兩次 那他就會往上找我們有沒有定義他 哎找到了有定義他 那他就會執行這個函式裡面的程式碼 也就是這邊有做縮排的程式碼 印出小白今年24歲 因為呼叫兩次所以印了兩次ok 所以縮排是非常重要的大家要特別注意 那這邊的函式名稱呢也不是你隨便亂打都可以的 你隨便亂取一個名稱這樣子是不行的 函式的命名規則 跟變數的命名規則是一樣的 大家如果忘記的話可以回去復習一下 好再來我們也可以在函式裡面傳入參數 什麼意思呢 我們在寫print 這個函式的時候 是不是會在小括號裡面寫上我們想要印出來的東西 假設我寫的是小白這個字串 他就會印出小白這兩個字嘛 那我們在小括號裡面寫上小白這個字串的動作 就是傳入參數 我們就是傳入小白這個字串給這個函式 所以假設我們想要print_info這個函式也可以傳入參數 假設我想讓這個函式 不是只能印出小白的資訊 而是可以印出不同人的資訊 那我們就可以在這個函式裡面傳入一個名字的參數 我們可以在這個函式裡面傳入一個名字的參數 要怎麼做呢 我們可以在定義函式的這對小括號裡面命名一個變數 假設我把這個變數的名稱叫做name 取好變數的名稱之後呢 我們就可以在呼叫函式的這對小括號裡面傳入參數啦 我先把第8行刪掉 假設我在這對小括號裡面寫入小黑這個字串 哎那這樣子寫是什麼意思呢 這樣子寫的意思 就是我們在呼叫print_info這個函式的時候還要傳入參數 那傳入的參數呢是小黑這個字串 那現在我傳入的是小黑這個字串 name這個變數他就會代表小黑這個字串 ok 就會變成這個樣子 這樣子我們就可以在這個函式裡面使用name這個變數了 假設我這邊用一個f string 然後呢把小白這個人名我把它改成name這個變數 ok 改成name這個變數 因為現在我呼叫print_info的時候 傳入的是小黑這個字串 所以呢nam e這個變數他代表的就是小黑這個字串 我們直接執行一次 可以看到他就印出了小黑今年24歲 然後呢小黑身高179公分 所以我們可以這樣子做 來把參數傳到函式裡面去做使用 假設這邊我改一下 我把傳入的參數改成小白這個字串 再執行一次 哎這邊就會變成小白今年24歲 然後小白身高179公分 為什麼呢 因為現在name這個變數 他代表的就是小白這個字串 好那這邊變數的名稱你也可以隨便取哦 假設你想要叫gg gg 那下面這邊你就把它改成gg 我們再執行一次 ok 一樣是應出小白24歲然後179公分 再來如果你想要傳入的參數不只一個也是可以的 大家應該還記得我們在使用round這個函式的時候吧 四舍五入這個函式 我們說它可以傳入兩個值嘛 第一個值是你要做四舍五入的那一個數 然後呢第二個值是你要四舍五入到小數點後面第幾位 ok 可以看到這個函式 他就可以傳入兩個參數嘛 那當然我們自己做的函式 想要傳入多個參數也是可以的 假設這邊我還想要傳入年紀跟身高 那我可以在後面在定義函式的這邊 小括號裡面我再多命名兩個變數 假設我命名一個變數叫做age 來讓他代表年紀 然後再命名一個變數叫做height 來讓他代表身高 ok 那這邊特別注意 要用逗點把它們隔開 那這邊我多命名了兩個變數 在呼叫函式的時候就也要多傳入兩個參數 第二個參數是年紀 假設我24歲我就打24 再來呢第三個參數是身高 假設我179我就在這邊打179 一樣中間要用逗號隔開 所以當我今天這樣子呼叫 這個print_info函數的時候呢 name這個變數它代表的就是小白這個字串 那age這個變數呢代表的就會是24 那height這個變數呢代表的就會是179 ok 那我們就可以這樣子使用了 把這邊的24歲把它替換成age 這個變數 然後身高也是把它替換成height ok 那我們執行一次 哎可以看到他一樣印出小白今年24歲 然後小白179公分 如果今天我把這個字串改成小綠 然後這個第二個參數我改成30 第三個參數我改成160 那我們再執行一次 可以看到他就印出了小綠今年30歲 然後小綠身高160公分 為什麼呢 因為現在這個函式他需要傳入三個參數 分別是名字年紀跟身高 在這邊三個參數我傳入的是 小綠這個字串所以這個name就會變成小綠這個字串 然後age我傳入的是30 所以這邊就會變成30 160 身高這邊一樣變成160 ok 然後name這邊變成小綠a ge變成30 身高變成160 所以呢印出來就會是小綠30歲然後身高160公分 ok 那當然我們也可以呼叫多次 假設我在這邊再呼叫一次print_info 他是傳入參數小菊 然後呢第二個參數我寫18歲 第三個參數我寫170 好我們再執行一次 可以看到他就先印出了小綠30歲 然後小綠160公分再印出小菊18歲小菊170公分 ok 所以我們可以這樣子來傳入參數 然後也可以傳入多個參數 但是這邊有可能會發生一個問題 就是如果我們不小心把參數的順序打反了 假設我把這邊的30打到第三個參數 然後160打到第二個參數 那我們就直接執行 可以看到他就印出了小綠今年160歲 然後小綠身高30公分 哎這樣很奇怪嘛 怎麼會有人160歲然後身高30公分呢 為什麼會這樣子 因為現在我們第二個參數輸入的是160 所以age這個變數代表的就會是160 那第三個參數是30 那height這個變數呢代表的就會是30 因此就會印出160歲跟30公分這種奇怪的數字 我們現在是只有3個參數 所以呢這種順序寫反的狀況可能比較少發生 但是如果今天有一個函式他要傳入10個參數 那我們是不是就很有可能會把順序寫錯了嘛 那這個時候呢 我們可以用指定的方法來解決這個問題 像是這邊參數小綠的地方我可以這樣子寫 我寫name=小綠 我直接指定name這個變數 他代表的是小綠這個字串 ok name這個變數他代表的是小綠這個字串 然後呢我直接指定 height這個變數代表的是160這個數字 height這個變數代表的是160 最後我再指定age他代表的是30 那我們再執行一次 可以看到他就印出了小綠今年30歲 然後呢小綠身高160公分就沒有問題了 所以如果我們怕順序寫錯的話參數的順序寫錯 我們就可以直接用這樣子指定的方式 那就不用管他的順序了 我可以再改一下 我把這個height 寫在第一個 然後呢age如果寫在第三個 name寫在第一個我們再執行一次 還是一樣小綠今年30歲小綠身高160公分 ok 這樣子寫就不用管參數的順序了 好希望大家對函式或者你可以叫他函數 已經有所了解了 接著呢我們就要來練習一下啦 為什麼我們需要函式呢 正是因為函式他可以重復的使用 他可以大大的減少 我們程式碼裡面重復的地方 舉個例子 假設今天我想要印出很多人的資訊 像是這邊這個樣子 我要印出小白的資訊 印出小黑的資訊 印出小藍的資訊 還有印出小綠的資訊 分別是他們的年紀身高跟體重 好我執行一次 ok 可以看到 他就印出了這四個人的資訊 但是呢我為了要印出這四個人的資訊 我寫了這麼多的程式碼 而且呢這些程式碼他們都非常的相似 只是把名字年紀身高跟體重替換掉而已 那這個時候如果我們不想要重復寫這麼多次 就可以把它製作成一個函式 把它製作成一個功能 我們就可以這樣子寫 定義一個函式 假設我就叫他print_info 跟上一堂課一樣 然後呢我讓他傳入四個參數 分別是姓名年紀身高跟體重 那這四個參數的變數呢 我把他命名叫做name 然後age 身高我用height 體重我用weight 然後呢我就可以在這個函式裡面 把人的資訊把它印出來 這邊用f string 姓名的部分就把它改成name 改成name 這個變數 然後呢年紀就改成age 身高就改成height 體重就改成weight 那這樣子我們定義好這個函式之後呢 下面就可以不需要寫這麼多了 像這邊這塊是印出小白的資訊 我們就可以直接使用print_info 這個函式 把小白的資訊印出來 傳入的第一個參數呢名字是小白 然後年紀24 身高179 體重70 那這一段呢就可以刪掉 我們就可以這樣子寫 下面這邊也是要印出的是小黑的資訊 我就可以把它改成使用print_info這個函式 名字的話是小黑 那年紀10歲129公分30公斤 那這一段也可以把它刪掉了 再來是 小藍的資訊一樣我就把名字改成小藍 年紀改成59 身高159 體重44 好最後呢是小綠一樣我就直接使用print_info這個函式 33歲189 50 我這樣子寫我們執行一次 可以看到結果是一樣的 一樣印出小白小黑小藍跟小綠的資訊 那我們這樣子寫是不是就比剛剛簡短了許多 就不需要重復寫這麼多次了嘛 所以呢我們程式碼裡面 如果有重復使用到的地方 你就可以把它寫成一個函式 把它寫成一個功能 這樣子在使用到他的地方 直接去呼叫這個函式就可以了 除此之外 你今天定義好一個函式之後 也可以給別人使用 像是你的同事啊你的朋友之類的 他們並不需要知道這個函式的內部是怎麼樣實作的 他們只要知道怎麼樣去使用這個函式就可以了 像是今天我的同事他可能也需要印出人的資訊 那我就可以把這個函式我寫好的這個函式給他 然後呢跟他說這個函式你只要傳入 人的名字年紀身高跟體重 那他就會把這些資訊通通都印出來 那這樣子就像是我們在使用內建函式一樣 我們使用print 這個函式 但是實際上呢 我們並不知道print 這個函式 他的內部是怎麼樣實作的 那也沒關系 我們只要知道這個函式怎麼樣去使用就可以了 我們只要知道在小括號裡面的東西會被印出來 這樣子就可以了 所以呢這個就是我們為什麼需要函式 它可以減少我們程式碼重復的地方 也可以給別人去做使用 測驗時間到啦 我要請你做一個函式 這個函式的名稱叫做find_max 那這個函式呢可以傳入3個數字 ok 他可以傳入3個數字 這個函式的功能就是會幫我們找出 傳入的這三個數字裡面最大的那一個 他會把它印出來給我們 像我現在傳入10 20 30 那我們執行一次 他就會印出30 因為最大的是30嘛沒有錯 假設現在我把第一個參數改成100 再執行 他就會印出100 因為現在最大的就是100嘛 那如果第二個參數我改成200 再執行 他就會印出200 因為現在最大的就是200 ok 大家可以把影片暫停啦 試著做做看要怎麼樣去定義find_max這個函式 ok 來解答啦 函式在呼叫之前要先做定義 所以呢我們先來定義find_max這個函式 我們寫def 接著一個空白 然後打上函式的名稱find_max 接著一對小括號然後後面加上一個冒號 因為這個函式可以傳入三個參數 所以呢我們要在小括號裡面命名三個變數 我叫他num1 num2以及num3 好那接著就要判斷 這三個變數所代表的值哪一個是最大的 這邊我們可以用if 我先判斷num1 是不是最大的 那如果num1 是最大的 代表num1 他會大於等於num2 而且呢and num1也會大於等於num3 ok 這兩個條件都成立的話 表示num1是最大的那我就印出num1 接著elif 再來判斷num2是不是最大的 如果num2 是最大的 表示num2 他會大於等於num1 而且呢num2 他也會大於等於num3 那如果這個成立的話我就印出num2 最後呢就直接else 否則 因為前面如果num1不是最大的num2也不是最大的 那肯定就是num3 是最大的 所以呢就否則else 把它印出來 ok 這樣子呢 我們就成功的把find_max 這個函式把它定義好了 定義好了之後就可以做呼叫了嘛 我們就可以在下面使用它find_max 那假設這邊第一個參數我寫的是10 第二個參數寫20 第三個參數寫30 那我們執行一次 可以看到他印出了30 沒有錯最大的是30嘛 那如果這邊是50呢執行 果然他就印出50 因為現在最大的是50 試試看如果是負數呢 -10 -50跟-30執行 最大的是-10沒有錯 那這邊再改一下 如果第三個是10 他就印出10 還是沒有錯 這三個數最大的還是10嘛 ok 所以呢 我們就這樣子成功的把find_max 這個函式給做出來啦 然後下面就可以做使用了 希望大家也有把它做出來 接下來跟大家介紹函式的回傳return 函式他是可以有回傳值的 什麼意思呢 拿我們之前學過的round這個函式當例子 假設第一個數我輸入2.333 第二個數我輸入2 那他就會幫我們把 2.333這個數字做四舍五入到小數點後面第二位嘛 那我們之前是不是這樣寫 我們寫一個num 用一個變數來代表他 然後呢直接把它印出來看看 執行他就印出了2.33 沒有錯 他幫我們做四舍五入到小數點第二位 我們再拿上一個測驗做的函式 這個find_max 這個函式來當例子 這個函式可以傳入三個數字 然後呢他會印出最大的那一個 假設這邊我也這樣使用 我用一個變數叫他max 讓他代表find_max這個函式 假設裡面是10 20 30 好那我直接把這個max印出來看看 上面我先註解掉 好我們執行一次 可以看到他印出了30 然後呢下面印出了None ok 為什麼印出30呢 因為我們這個函式裡面 他會印出三個數最大的那一個 那現在三個數最大的是30 所以呢印出了30 接著呢為什麼會印出None呢 這個None是從這邊的print max 這裡印出來的 也就是說這個max 它代表的是None 那為什麼max 這個變數代表的是None 呢 原因是因為find_max 這個函式 他沒有回傳值 ok find_max 這個函式他沒有回傳值 那我們要怎麼樣在函式裡面加上回傳值呢 非常的簡單 我們可以在函式裡面寫上return 假設我在find_max這個函式的最後寫上return 接著呢一個空白 然後呢在後面寫上你想要回傳的東西 假設我回傳一個字串寫說這裡是回傳 好那我們再執行一次 可以看到這一次印出來的是30 跟這裡是回傳 為什麼呢 這個30一樣 因為呢find_max 這個函式 他會印出三個數裡面最大的那一個 那三個數裡面最大的是30 所以印出30 至於為什麼會印出這裡是回傳呢 就是因為find_max這個函式現在有回傳了 我們有在函式裡面寫上return 也就是回傳 那這邊回傳的值是一個字串 這個字串是這裡是回傳 那回傳的這個值呢就會覆蓋掉原先的呼叫 ok 再講一次 回傳的這個值呢return的這個值 他就會覆蓋掉原先的呼叫 這邊的呼叫呢就會被覆蓋掉 覆蓋成這邊return 的值 所以呢這邊就會變成這裡是回傳這個字串 那max這個變數它代表的就是這個字串 再把它印出來就會印出這裡是回傳 所以呢我們可以在函式裡面加上return 加上回傳值 那他就會覆蓋掉原先的呼叫 假設我把這邊改成 return我把它改成8787 那我們再執行一次 他就印出30跟8787 30一樣因為這個函式會印出最大的那一個值 那為什麼會印出8787呢 因為我們在函式裡面寫上了return 寫上了回傳 那這邊回傳的值是8787這個數字 那8787這個數字呢就會覆蓋掉原先的呼叫 他就會被蓋過去變成這樣 所以就印出了8787 ok 如果一個函式他沒有回傳值的話 假設我把這邊的return 刪掉 那原本的呼叫呢這邊的呼叫他就會被覆蓋成None 這個None的意思就是沒有什麼都沒有 這個函式的回傳值是空的 所以呢我們這樣子執行 他就會印出30跟None 這個30一樣 是因為他會印出最大的那一個數 那這個None呢就是因為 如果一個函式裡面沒有回傳的話 那原先的呼叫就會被覆蓋成None 那現在max代表的是None 他就印出了None 好那return呢 他還有一個很重要的特點 就是函式他只要一碰到return 就會直接回傳 不會繼續執行下面的程式碼 什麼意思呢 假如我把return寫在函式的一開始 然後呢我直接return一個87 我們執行一次看看 可以看到這邊他就只印出87 為什麼呢 我們剛剛說了return他有一個特點 就是函式他只要一碰到return就會直接回傳 然後呢不會繼續執行下面的程式碼 所以呢我們這邊呼叫了find_max這個函式 那find_max這個函式裡面的程式碼呢 一開始就遇到了return 87 函式遇到了return 就會直接回傳 所以這個87呢就會直接回傳 覆蓋掉原先的呼叫 那回傳了之後return了之後 下面的所有程式碼就不會被執行了ok 所以呢這邊就印出了87 程式結束 他就沒有去判斷到底這三個數誰是最大的 ok 這是return的一個特點 函式只要一碰到return 就會直接回傳 然後下面的程式碼就不會繼續執行了 ok 好我先把它復原回去 那這邊我們也可以把這個find_max 這個函式把它改一下 我不想要他把最大的值直接印出來 我想要他把最大的值把它回傳回去 把三個數裡面最大的那一個值回傳回去 那這邊的print 我們就可以改成return 然後呢把它回傳回去 判斷哪一個數字最大的 然後就把它回傳回去 print 全部改成return 好那下面這樣子我們再執行一次 他就只有印出30 為什麼呢 因為現在傳入的三個參數是10 20跟30 也就是說num1是10 num2是20 num3是30 那經過下面的比較之後呢他會到else num1不是最大的num2也不是最大的 所以呢到else執行這邊的return num3 那num3是30嘛 也就是說這邊這一段呢就會被覆蓋成30 這邊原先的呼叫就會被覆蓋成30 那max代表30再把它印出來就會印出30 講到這邊你可能就會有疑問啦 我們這樣子寫return 他是印出30 那我們直接寫print 的時候 直接這樣子寫的時候 我把它改一下把它改回來 我們直接寫print 的時候 然後直接去呼叫這個函式 下面我把它註解掉直接這樣子做執行 他也是印出30啊 那我們幹嘛要用return 然後呢在下面又寫了這些結果呢 印出來的還是一樣30 這個問題非常的好 原因是這個樣子的 並不是我們每次在使用函式的時候 都是直接把它印出來就結束了這麼簡單 比如說我這邊找到了3個數裡面最大的那個數之後 我可能需要他把它回傳回來 最大的是30回傳回來之後 我可能還要去做後續的處理跟後續的運算 比如說30我可能還要再去乘以100啊 然後再去做一些其他的處理等等之類的 並不是這個函式find_max 這個函是執行完了 把它印出來就結束這麼簡單ok 這個概念就像是工廠一樣 我們的函式就是其中一個步驟 你做完了一個步驟 當然要把它輸出出來也就是要把它return 接著呢再進入下一個步驟 也就像是我剛剛所說的 你用find_max這個函式 找到3個數裡面最大的那個數之後 把它回傳回來30 那你可能後續還要再去做其他的運算跟處理 就不是直接把它印出來這麼簡單哦 所以呢這個就是為什麼我們需要return 需要回傳的原因 好那我這邊把它先改回來 print 全部改成return 這樣子就可以做回傳的動作 return 這邊也是return 好那我們再執行一次 ok 一樣印出30 如果現在我想要優化find_max這個函式 因為現在這個函式有一個問題 就是如果我們在這邊輸入的參數不是數字 假設我輸入字串你好 那我們執行 可以看到就出現錯誤了 因為呢我們沒有辦法用字串跟數字去做比較 那想要改善這個問題想要優化這個問題的話 我們可以這樣子做 在函式一開始的地方 我們就先判斷這三個變數 他們的資料形態是不是都是整數 只要其中一個不是整數我就直接回傳直接return 我就直接回傳說請輸入整數 那我可以這樣子寫我寫if 然後用type 這個函式來判斷資料形態 如果num1他不等於int 也就是說他的資料形態不是整數的話 ok 我們可以這樣子寫來判斷 這個資料形態是不是整數或者or num2他的資料形態不是等於整數的話或者 num3他的資料形態不是等於整數 只要其中一個這個變數的資料形態不是等於整數 那我就直接return一個字串請輸入整數 好那我們執行一次 可以看到他就印出了請輸入整數 為什麼呢 因為這邊我們傳入的第一個參數是你好他是字串 所以呢這個num1他的type是字串 他就不是等於int 也就是不是等於整數 因此呢他直接回傳請輸入整數 那請出入整數這個字串就會覆蓋掉這邊的呼叫 因此就印出了請輸入整數ok 那因為在這邊已經做了return 做了回傳 所以下面這些程式碼就不會被運行了 不信的話我們在這邊 再印出一個你好來試試看 再執行一次 可以發現這個你好也沒有被印出來 為什麼呢 因為這邊已經return了 所以下面的程式碼就不會被執行了 好那最後再幫大家補充一下 如果這邊你想要判斷的是其他的資料形態 比如說你想要判斷的是字串好了 那你可以怎麼寫呢 你這邊可以寫str str 就是字串string 的意思 那如果你想要判斷的是整數 你就可以寫int int 就是整數 你想要判斷的是浮點數你可以寫float ok 你想要判斷的是布林值 這邊你可以寫bool 好那這個就是一個小小的補充 ok 那這個就是函式的回傳return 我們可以在函式裡面寫上return 來把資料回傳到原先的呼叫 測驗時間到啦 我要請你做一個函式 這個函式的名稱叫做max_min 那這個函式可以傳入三個數字三個整數 它的功能呢是會把這三個數字裡面 最大的減去最小的然後回傳給我們 像我現在輸入的是2 105跟10 那最大的是105 最小的是2 他就會把105減2得到103 然後回傳給我們 所以我們執行之後 可以看到這邊他就印出了103 假設我這邊輸入的是50 執行就得到了48 因為呢50減2是48 那如果這邊的參數你輸入的不是整數的話 這個函數就會回傳請輸入整數這個字串給我們 假設我在這邊輸入的是一個字串你好他不是整數嘛 那我們執行 可以看到他就印出了請輸入整數 也就是說這個max_min函式 他是回傳請輸入整數這個字串 好這邊給大家一個提示 我們之前是不是已經做過find_max這個函式 那這個函式他可以找出三個整數裡面最大的那一個嘛 那我們接著只要再去做一個叫做find_min的這個函式 那這個函式呢 相反的他是找出三個整數裡面最小的那一個 那一個函式找出最大一個函式找出最小 接著我們就可以在max_min這個函式裡面 去使用find_max這個函式跟find_min這個函式 把最大減去最小那就得到了最大減最小了嘛 然後再把它回傳回來 就可以達到我們想要的效果啦 好那大家可以把影片暫停試著做做看啦 來解答啦希望你已經做出來了 首先我們先把之前做的find_max這個函式先把它寫上來 那他可以傳入三個參數三個整數 我叫他num1 num2跟num3 他是找出最大的 所以呢我先判斷num1他是不是大於等於num2 而且呢他也要大於等於num3 如果這兩個條件都成立我就回傳num1 表示他是最大的 再來否則如果我們來判斷num2是不是最大的 如果他是最大的他會大於等於num3 而且呢他也會大於等於num1 那如果這個條件都成立我就把num2 return 再來如果這兩個條件 這兩個if 跟elif 都不成立的話 那肯定num3就是最大的我就把它return 那這樣子find_max這個函式就做好了 再來我們再做一個find_min 它是找出三個整數裡面最小的 三個變數的名稱我一樣叫他num1 num2跟num3 那下面判斷的部分呢 我直接用複製的比較快 首先先判斷num1是不是最小的 如果num1是最小的表示他會小於等於num2 而且呢他也會小於等於num3 這兩個條件都成立我就return num1 再來這邊下面也是把它改成小於等於 如果num2是最小的return num2 如果num1不是最小num2也不是最小 就否則return num3 好那這樣子呢 找出三個最大的跟找出三個最小的 這兩個函式都完成了 接著呢我們就可以來創建我們的max_min這個函式 一樣三個變數我叫他num1 num2 跟num3 首先呢要先判斷 這三個變數的資料形態是不是都是整數 如果不是整數的話 只要其中一個不是整數我們就印出請輸入整數 所以這邊我們就用if 然後搭配這個type函式 來判斷變數的資料形態 如果他驚嘆號等於int 或者是num2他驚嘆號等於整數 再來或者是num3他的資料形態不等於整數的話 只要其中一個不等於 我們就return 請輸入整數這一個字串 再來else 否則的話 否則就表示這三個資料形態都是整數 那都是整數的話我們就要把最大的減去最小的 那要找到最大的我們可以用find_max這個函式 要找到最小的可以用find_min這個函式 所以呢這邊我們可以這樣子寫 我們寫find_max 然後把num1 num2跟num3 把它傳進去 然後呢去減掉find_min 一樣把num1 num2跟num3 這三個變數傳進去 那這樣子就可以得到最大減最小了嘛 因為呢這邊他會回傳這三個裡面最大的 那這邊呢會回傳三個裡面最小的 那最大減掉最小我最後把它return 好那我們直接來試試看 這邊我們就可以寫max_min 假設我三個數字我輸入的是2 5跟10 好那這邊用一個變數叫做num來代表他 接著把它印出來 執行一次看看 2 5 10最大的是10最小的是2 10減2是8沒有錯 那如果這邊改成20 執行 他印出了15 最大的是20 最小的是5 所以呢20減5是15沒有錯 如果這邊我們寫的不是整數 我寫的是你好這個字串 執行印出了請輸入整數 為什麼呢 因為這個max_min函是一開始就先判斷 只要這三個變數其中一個資料形態不是整數的話 他就會回傳請輸入整數這個字串 那因為這邊我們輸入的是你好這個字串 他不是整數 所以呢這邊的呼叫就會被覆蓋成 請輸入整數的一個字串 ok 就會印出來 好那如果我們這邊輸入的是100呢 執行他印出了90 最大的是100 最小的是10 100減10等於90沒有錯 這邊一樣幫大家順一次 num1是20 num2是100 num3是10 所以呢第一個條件沒有成立 大家全部都是整數 進入到else 首先他先呼叫了find_max 這個函式 然後把num1 num2跟num3把它傳進去 那也就是呢把它傳到這邊 他會找出這三個數裡面最大的然後把它回傳 這三個數最大的是100嘛 所以這邊會變成這樣覆蓋成100 再來看到他呼叫了find_min 這個函式 一樣他把num1 num2跟num3把它傳進去 那這個函式呢他就是找出最小的然後把它回傳 所以這邊就會被覆蓋成最小的10 100減10等於90 然後把它回傳回來 相當於這邊是return 90 那return 90的話 這邊的呼叫就會被覆蓋成90 因此呢就印出了90 好希望大家都有把這個函式max_min做出來 到了今天的專案時間啦 我們要來做一個綜合健康計算機 這個計算機它有三個功能 分別是計算bmi 還有計算bmr 以及計算tdee bmi的部分我們之前已經有做過了 至於後面的bmr 跟tdee 是什麼呢 我們先來看一下定義 bmr 是基礎代謝率的意思 那基礎代謝率他的定義在這邊 簡單的說呢 就是一個人整天都躺在床上 不運動的狀況下需要消耗多少熱量 也就是一個人 維持身體最基本的運作需要消耗的熱量 ok 這個叫做基礎代謝率bmr 好那什麼是tdee呢 tdee 是總熱量消耗 簡單的講我們剛剛 基礎代謝率是不考慮運動的狀況下嘛 整天都躺在床上需要消耗多少熱量 那tdee呢就是會把你的這個運動量計算進去 考量你的運動量之後呢 再計算出來你每天需要消耗多少熱量 好那公式在這邊 基礎代謝率的公式是長這個樣子 男生跟女生他的公式是不一樣的 好那再來呢 tdee 每日總消耗熱量的計算公式 可以這樣子算 我們用剛剛計算出來的bmr 也就是基礎代謝率 然後呢再去乘以你的運動量 如果你是幾乎沒運動的話就是用bmr乘以1.2 那如果你是這個每周低強度運動1-3天就是bmr乘以1.375 好那這邊有運動量對應到他要乘以多少 bmr乘以多少 ok 那這個就是 基礎代謝率bmr跟tdee總熱量消耗 他們是什麼意思以及他們的公式 ok 那這些都了解之後呢 我們回到程式的地方 了解完bmr跟tdee之後 我們來看一下這個綜合健康計算機長什麼樣子 執行 他歡迎您使用綜合健康計算機 然後呢可以計算bmi可以計算bmr可以計算tdee 那這邊你就輸入你想要計算的項目輸入1 2或3 假設我想要計算bmi 我就輸入1 接著他請你輸入身高 因為計算bmi 需要身高跟體重嘛 假設我身高178.5 體重我72.5 他就計算出來了bmi是22.8 這邊注意只有到小數點後面1位 好再試一次 這次假設我想要計算的是bmr 那我輸入2 因為基礎代謝率他的公式男生跟女生是不一樣的嘛 所以呢這邊他會請你先輸入性別 假設我是男生那我就輸入男 接著輸入身高假設輸入178.5 體重假設72.5 那需要年齡嘛 因為基礎代謝率他的公式裡面是要年齡的 假設我24歲 他就計算出來了 您的基礎代謝率bmr 是1788.55 ok 這邊特別注意到小數點後面2位 好那再試一次 假設這次我要計算的是tdee 這個總熱量消耗 我輸入3 一樣他需要這個性別 那這次我一樣輸入男性 身高的話假設175.6 體重的話假設60.2 年齡32 接著他還會問你你的運動量是多少 這邊有五個選項 分別是這個久坐啊或是一周運動1-3天 然後3-5天6-7天或是每天都是高強度的運動 那假設我久坐幾乎沒運動我輸入1 他就告訴你你的總熱量消耗tdee是1861.37 一樣他是到小數點後面2位 那我們就是要做這樣子的一個綜合健康計算機 他可以計算bmi 可以計算bmr 可以計算tdee 這邊請大家先製作三個函式 這三個函式分別是計算bmi跟bmr還有tdee 我們只要把公式需要用到的資訊 把它傳到這三個函式裡面 那他們就會把計算的結果回傳給我們 像是計算bmi 他的公式需要用到身高跟體重 那我們就把身高跟體重傳進來 他計算好之後就會回傳給我們 計算基礎代謝率bmr 他需要用到性別身高體重跟年紀 那我們就把它傳進來 一樣計算好之後會回傳給我們 那計算tdee需要性別身高體重年紀跟倍數 因為tdee的公式就是根據bmr的值去乘以一個倍數 所以我們只要先把bmr計算出來之後 再讓他去乘以一個倍數就可以了 那這邊的這個times呢就是要乘以的那個倍數 好所以請你先做出這三個函式 接著呢我們就可以再利用這三個函式 來完成這一個綜合健康計算機 好大家可以先把影片暫停試著做做看啦 ok 希望大家都做好了 首先我們先來完成這三個函式 計算bmi的部分 因為我們在第二天的專案已經有做過了 所以呢我直接用複製的比較快 我直接把計算的過程複製到這個函式裡面 這邊傳入身高跟體重 因為傳入的身高他的單位是公分 我們讓使用者輸入的身高單位是公分 但是呢bmi他的公式裡面身高的單位是公尺 所以一開始要先除等於100 先把它轉換成公尺的單位 然後套路公式再把它四舍五入到小數點後面1位 這邊他是直接把它印出來 但是呢我們想要的是做回傳 所以寫return bmi 這樣子計算bmi的函式就完成了 我們可以看到函式定義的左邊有一個減號 那這個減號點下去可以把整個函式收起來 點下去之後呢他會變成加號 再點一次可以展開來 我先把它收起來這樣子看起來比較不會這麼亂 好接著我們來完成計算bmr的函式 首先呢我們要先判斷 傳進來的這個性別這個sex他是男性還是女性 因為男性跟女性的公式是不一樣的 所以呢一開始先判斷sex如果他是男的話 那bmr它就會等於 男性的公式66去加上13.7乘以體重這邊的單位是公斤 好那再加上5去乘以身高這邊的單位是公分 所以我們都不需要做單位的轉換 最後呢再加上6.8 不是加上是減掉減掉6.8 去乘以年齡age 那如果不是男性的話else就是女性 女性的話bmr 他的公式是 655加上9.6去乘以體重 再加上1.8去乘以身高 然後最後減掉4.7乘以年齡 ok 這樣子bmr就計算好了 不過呢因為他有可能有很多小數點 所以呢我把它做四舍五入到小數點後面第2位 這邊我們用round這個函式 把bmr四舍五入到小數點後面第2位 最後再把它return 把它回傳 那這樣子呢計算bmr的函式就完成了 一樣我先把它收起來 再來計算tdee 那tdee呢 因為它是根據bmr的值 然後就乘以一個倍數嘛 就乘以這個times 所以呢這邊我們就直接使用 上面定義好的這個get_bmr 這個函式 我們直接使用他 所以bmr會等於get_bmr這個函式 我們傳入參數把上面這些參數全部傳進去 好那這樣子bmr計算好之後呢 tdee它就會等於bmr去乘以這個倍數times 那這邊一樣我把它做一個四舍五入到小數點後面第2位 所以要用round的這個函式 tdee小數點後面第2位最後再把它return 那這樣子呢計算tdee的函式也完成啦 一樣先把它收起來 再來下一個部分 我們就可以利用這三個函式 來製作這個計算機啦 接下來我們就可以利用這三個函式 來製作計算機了 首先我們要先歡迎使用綜合健康計算機 所以我們先把它印出來 好再來他會請你選擇要計算的項目嘛 所以我先把這三個可以計算的項目 一樣先把它印出來 再來是bmr 好最後呢要取得使用者的輸入嘛 這邊的話我叫他number等於input 請輸入要計算的項目 好那這樣子呢 我們取得了使用者要計算的項目之後 我們就來判斷number 如果他等於等於1的話 表示使用者輸入的是1 他現在要計算的就是bmi 那我就要請他輸入他的身高跟體重嘛 我用一個height 身高用個變數height 來表示身高 他等於請輸入這邊我直接用複製的請輸入您的身高 然後呢因為有可能是這個有小數點嘛 所以我把它轉換成float 好再來體重的部分也是 體重我叫他weight 這邊請輸入您的體重單位是公斤 好取得完身高跟體重之後呢 我們就可以使用上面製作的這個get_bmi 這個函式來做計算啦 所以bmi就會等於計算完之後回傳的結果 然後呢我再把它印出來 這邊用f string 他這邊印出來的是您的總熱量消耗 那這邊就是您的bmi 然後冒號 再把計算出來的bmi 寫上去 好那這樣子呢計算bmi就完成了 再來elif 如果他輸入的是2 表示他想要計算的是這個bmr基礎代謝率 bmr的話他需要性別身高體重跟年紀 所以呢我們需要使用者輸入這些資訊 那身高跟體重這邊都要我直接先複製過來 他是先輸入性別嘛 所以呢這邊我們在上面 我用一個變數叫sex 來取得使用者輸入的性別 我用複製的請輸入您的性別 男或女 然後呢身高體重再來是年齡 年齡的話我用一個變數叫age 取得使用者的年齡 那這邊因為年齡他總不會有小數點的嘛 所以呢我把它轉換成整數 ok 取得完輸入之後呢我們就可以使用 上面的這個函式來把它計算出來啦 這邊bmr 就會等於這個函式回傳的結果 然後我們就可以把它印出來了 print您的基礎代謝率 然後呢括號bmr 寫上我們計算的結果bmr 這邊一樣用f string 好那這樣子bmr 也完成了 最後呢elif 如果number 它是等於等於3 表示呢使用者他想要計算的是tdee總熱量消耗 那總熱量消耗他需要使用者輸入 性別身高體重年紀還有運動量的倍數 那這邊的話上面的輸入都是一樣的 所以呢我先複製過來 這邊有性別身高體重跟年紀 好那再來運動量的倍數的話 這邊我們還要給使用者做輸入 他有5個選項一樣就把它印出來給使用者做選擇 ok 我打一下 好然後要取得他的運動量 這邊我用一個變數叫exer 來代表使用者輸入的運動量 然後我在另外創建一個 times的變數讓他來代表要乘以多少倍 一開始先讓他等於0 如果使用者輸入的是1的話 那表示他是久坐幾乎沒運動嘛 那要乘以的倍數就會是1.2 我讓times就等於1.2 再來elif 如果使用者輸入的運動量是2 是低強度運動 那他要乘以的倍數就是1.375 再來elif 如果使用者輸入的是3的話 中強度運動要乘以倍數是1.55 好再來elif 如果輸入的是4的話 表示他高強度運動那我就讓他倍數是1.725 再來就是5了嘛我直接寫else 那他的倍數就會是1.9 ok 好那這邊倍數也有了之後呢 我們就可以使用上面的這個get_tdee這個函式 直接把它複製下來 好那這邊 我用一個變數叫他tdee 等於這個還是計算的結果他的回傳值 然後就可以把它印出來啦 用f string 這邊我直接複製 您的總熱量消耗 最後這邊呢把它改成tdee 那這樣子就都完成了 我們直接來試一次看看 執行 歡迎使用綜合健康計算機 假設我計算bmi 我輸入1 請輸入您的身高178.5 請輸入體重74 計算出bmi 是23.2 好那再執行 假設這次我要計算的是基礎代謝率 我輸入2 請輸入性別輸入男 身高178 .這次來個點8 輸入你的體重假設我90公斤 輸入年齡假設30歲 他就計算出你的基礎代謝率是1989.0 好再計算一次 一樣輸入2計算bmr 請輸入性別假設是女性 身高的話160.6 體重50.8 年齡30歲 他的計算出來你的基礎代謝率是1290.76 那大家可以自己去驗算看看應該是沒有錯的 好再執行一次 假設這一次我要計算的是總熱量消耗我就輸入3 請輸入性別假設是男性 請輸入身高假設是109.5 體重來一個100公斤 年齡33歲 那這個運動量的話 假設久坐都沒運動 他就告訴你你的總熱量消耗是2596.92 好再玩一次 輸入3 性別這次是女性 身高來一個170.8 56.4 年齡20歲 運動量假設是中強度輸入3 他就告訴你你的總熱量消耗是2185.31 ok 那這樣子我們就成功的把這個 綜合健康計算機做出來啦 我們使用了自己製作的三個函式 分別是計算bmi 計算bmr 跟計算tdee 好那這邊再跟大家提醒一次 你的做法你的寫法不需要跟我完全一模一樣 只要執行出來的結果是正確的就可以了 歡迎你來到第五天的課程 今天我們要做一個剪刀石頭布的遊戲 那過程中呢我們會學會五個概念 分別是模組或者你可以叫他是模塊 以及random模組也就是一個隨機的模組 再來是一個新的資料形態叫做列表 以及巢狀列表 最後呢我們會學會三引號字串的概念 好那我們直接先來看一下 這個遊戲長什麼樣子 ok 這個剪刀石頭布的遊戲長這個樣子 我們執行 首先呢他會請你輸入字母 如果你想出剪刀的話就輸入s 如果你想出石頭就輸入r 如果你想出布就輸入p ok 假設我想出剪刀我輸入s 他就印出了你出 然後印出一個剪刀的圖形 接著呢電腦出 電腦他會從剪刀石頭布裡面 隨機出一個 電腦這次出的是剪刀 那我也出剪刀 所以剪刀跟剪刀是平手他就印出平手 好再執行 假設這次我出石頭我輸入r 他會印出你出 然後把石頭的圖形印出來 接著呢電腦出 他從剪刀石頭布裡面隨機出一個 這次他出布 石頭是輸布的 所以呢他就印出你輸了QQ 好再來 假設我要出布我輸入p 那他就印出了你出 然後呢布的圖形 那電腦這次出的是布 布跟布是平手的 好再來 假設我出石頭輸入r ok 這次我就贏了 我出石頭電腦出剪刀 我贏了他就印出恭喜你贏了 好那我們今天呢 就是要做這樣子的一個剪刀石頭布的遊戲 他可以跟電腦玩剪刀石頭布 好那我們就直接進入今天的課程
Info
Channel: GrandmaCan -我阿嬤都會
Views: 305,663
Rating: undefined out of 5
Keywords: 程式語言, python, python 教學, python入門, python 自學, 第一個程式語言, python程式, python 程式, python安裝, python簡介, python快速開始, python 編程, python 教程, python 入门, python 教学, python入门, python 课程, python課程, python编程, python编程快速上手, python 编程, python tutorial, python 编程语言, 编程语言, pycharm, python online, python 3, python if, python for, pyinstaller, list python, openpyxl, python while, python pip, python def, python import, python os, vscode python, ide python, physon, python list, 程式語言 排名, 程式語言 入門
Id: Ob_LKCLxg2o
Channel Id: undefined
Length: 264min 42sec (15882 seconds)
Published: Wed Jun 29 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.