Home >Backend Development >Python Tutorial >Share examples of questions in python
Please calculate a set of data within 3 seconds, with even numbers before odd numbers (note that you do not use loops such as for while)
The format is as follows
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
The output result is
2, 1, 4, 3, 6, 5, 8, 7, 10, 9
Solution idea: Since you cannot use for and while to write loop judgments, then we will deal with it by position replacement. As long as it's related to position, the first thing we have to think about is subscripts and indexes. The code is as follows:
data[0::2] means starting from the first position of the data list, which is the number 1::meaning to the end position, 2 is the number 1 One number and the second number are separated by two places, that is, the odd number 1, 3, 5, 7, 9 is taken.
data[1::2] means that the second number in the data list is also It starts with the number 2:: it means to the end position, 2 means that the first number and the second number are separated by two places, that is, the even numbers 2, 4, 6, 8, 10 are taken as shown below:
The role of tmp here is a temporary storage area, which is very similar to the bubble sort method. By storing the odd numbers in the middle, the even numbers are moved forward by one position, and then the temporarily stored data is pulled back and placed in the even positions and completed.
Print the output in the following format vertically (do not use a third-party library):
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Solution: First of all, you have to think that the program is executed line by line. The program is generally feasible and regular. In fact, if you carefully find out, among them The difference between is actually 4. As long as you discover this, this question is not difficult to solve. The code is as follows:
When you look at it here, you will suddenly realize that the difference 4 between them can be controlled by the number of range steps. The first line printed out is 1, 5 , 9, 13. Look carefully at the second line. Compared with the first line, the number is plus 1. Then we use the feature of python that the default range starts from 0. Just add each line to achieve vertical printing. On the second layer Every time the for loop ends, print will help us wrap the line for control and completion.
We will update some questions and solutions from time to time.
You are also welcome to send me private messages to discuss some methods and techniques.
Finally, thank you all for watching! ! !
The above is the detailed content of Share examples of questions in python. For more information, please follow other related articles on the PHP Chinese website!