MOOC – Python language programming (15th)
Control structure of procedure (fourth week) 21.7.25
Exercises
Example 5: body mass index BMI
# Reference code height, weight = eval(input()) bmi = weight / pow(height, 2) print("BMI The value is:{:.2f}".format(bmi)) who, nat = "", "" if bmi < 18.5: who, nat = "Thin ", "Thin " elif 18.5 <= bmi < 24: who, nat = "normal", "normal" elif 24 <= bmi < 25: who, nat = "normal", "Overweight" elif 25 <= bmi < 28: who, nat = "Overweight", "Overweight" elif 28 <= bmi < 30: who, nat = "Overweight", "Obesity" else: who, nat = "Obesity", "Obesity" print("BMI The index is:international'{0}',domestic'{1}'".format(who, nat))
Example 6: Calculation of PI
# Reference code from random import random, seed DARTS = eval(input()) seed(123) hits = 0.0 for i in range(DARTS): x, y = random(), random() dist = pow(x ** 2 + y ** 2, 0.5) if dist <= 1.0: hits = hits + 1 pi = 4 * (hits/DARTS) print("{:.6f}".format(pi))
Addition, subtraction and addition of integers
''' # The addition, subtraction, and addition of integers py 1-2+3-4...966 Among them, all numbers are integers, increasing from 1, odd numbers are positive and even numbers are negative ''' s = 0 for i in range(0,967): if i%2 ==1: s +=i else: s -=i print(s)
Three daffodils
''' Description: "Narcissistic number "It refers to a three digit integer whose sum of the 3rd power of each digit is equal to the number itself. For example: ABC It's a"3 Number of bit daffodils",Then: A The third power of+B The third power of+C The third power of = ABC Please output all 3-bit daffodils in descending order. Please use"comma"Separate output results. ''' s='' for i in range(100,1000): a = i//100 # hundreds b = i//10% 10 # tens c = i%10 # Bit if i == a**3+b**3+c**3: s=s+str(i)+',' print(s[:-1])
Three opportunities for users to log in
''' describe: Give users three opportunities to enter user name and password. The requirements are as follows: 1)If you enter the first line, enter the user name as'Kate',The password entered in the second line is'666666',output'Login succeeded 2)When the user name or password is incorrect for a total of 3 times, output "the user name or password is incorrect for 3 times"!Exit the program. ''' count = 3 while count: name = input() code = input() if name == 'Kate' and code == '666666': print('Login succeeded!') break else: count -= 1 if count == 0: print("3 The user name or password is incorrect! Exit the program.")
Single choice questions
1. Which option does not meet the syntax requirements in the blank space of the above program?
for var in _____: print(var)
A,(1,2,3)
B,range(0,10)
C,{1;2;3;4;5}
D,"Hello"
Correct answer C
For... In... The in must be followed by an iteration type (composite type), {1; 2; 3; 4; 5} is not a valid data type for Python.
2. Which option is the output of the above program?
for i in range(0,2): print(i)
A,1 2
B,1
C,0 1 2
D,0 1
Correct answer D
range(0, 2) outputs two values: 0 and 1.
3. Which option gives the output times of the above program?
k = 10000 while k>1: print(k) k=k/2
A,1000
B,15
C,14
D,13
Correct answer C
4. The \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\the \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\8235; which options are the three basic structures of the program?
A. Sequential structure, jump structure, loop structure
B. Process structure, object structure, function structure
C. Process structure, loop structure, branch structure
D. Sequential structure, cyclic structure, branch structure
Correct answer D
No object structure, jump structure, process structure, etc.
5. Which option describes the loop structure incorrectly?
A. Loop is a running mode in which the program repeatedly executes backward according to the result of condition judgment
B. Both conditional loop and ergodic loop structures are basic loop structures
C. Loop is a basic control structure of program
D. The loop cannot exit and has no effect
Correct answer D
The dead loop can be used to test performance. The formal dead loop can be exited with break, for example:
x = 10 while True: x = x - 1 if x == 1: break
Dead circulation has its function.
6. For the Python statement P= -P, which option is described correctly?
A. P equals its negative number
B. Assign P to its negative number
C,P=0
D. Absolute value of P
Correct answer B
In Python, = = is the assignment symbol, and = = is the equality symbol for judging equality.
7. Which option is used to determine whether the current Python statement is in the branch structure?
A. Braces
B. Colon
C. Indent
D. Quotation marks
Correct answer C
Indents represent hierarchical relationships.
8. Which option is the result of the execution of the following code?
for s in "PYTHON": if s=='T': continue print(s,end="")
A,PYHON
B,TT
C,PY
D,PYTHON
Correct answer A
continue ends the current cycle, but does not jump out of the current cycle.
9. Which option is the function used to generate random decimals in the random library?
A,randint()
B,random()
C,randrange()
D,getrandbits()
Correct answer B
Random(), getrandbits(), and random() all generate random integers, and random() generates random decimals between 0 and 1.
10. With regard to try except, which option description is wrong?
A. It expresses the characteristics of a branch structure
B. NameError is an exception type
C. If exception handling is used, the program will not make any more errors
D. It is used to catch and handle program exceptions
Correct answer C
With exception handling, the program may run without error, but it may logically fail. Program error is a big concept, which not only refers to code operation error, but also represents functional logic error.
Programming problem
Four rose trees
''' describe: The four digit rose number is a four digit self idempotent number. Self idempotent refers to a n Number of digits, the number of digits on each of its bits n The sum of powers equals itself. For example, when n When it is 3, there is 1^3 + 5^3 + 3^3 = 153,153 That is n A self idempotent when it is 3. A 3-digit self idempotent is called daffodil number. Please output all 4-digit four digit rose numbers, one line for each number in descending order. ''' s = "" for i in range(1000, 10000): t = str(i) if pow(eval(t[0]),4) + pow(eval(t[1]),4) + pow(eval(t[2]),4) + pow(eval(t[3]),4) == i : print(i)
Sum of prime numbers within 100
''' describe Find the sum of all primes within 100 and output. A prime number is an integer that is greater than 1 and can only be divided by 1 and itself. Tip: you can judge whether each number within 100 is a prime number one by one, and then sum it. ''' s = 0 for i in range(2,100): flag = 0 # Flag flag whether it is a prime number. 0 is prime, 1 is not for j in range(2,i//2+1): if i%j ==0: flag = 1 break if not flag : s+=i print(s)
Study notes
1. Branch structure of program
1.1 single branch structure (if)
1.2 if else
----Compact form: < expression 1 > If < condition > else < expression 2 >
1.3 if elif else
1.4 condition judgment
Operators: <, < =, > =, >, = ==
Reserved words: and, or, not
1.5 program exception handling
try—except—else—finally
#1 try: <Statement block 1> except <Exception type>: <Statement block 2> #------------------------------------------------------- #2 try: <Statement block 1> except: <Statement block 2> else: <Statement block 3> # Execute when no exception occurs finally: <Statement block 4> # It will be implemented
2. Example 5: body mass index BMI
''' BMI:Depiction of body mass --The standard commonly used in the world to measure human obesity and health --definition: BMI=weight(kg)/height²(㎡) ''' # Idea 1: calculate and give the international and domestic BIM classification respectively # Train of thought 2: mixed calculation and international and domestic BMI classification # CalBMIv3.py # blend height,weight = eval(input("Please enter your height(rice)And weight(kg .)[Comma separated]:")) bmi = weight / pow(height,2) print("BMI The value is:{:.2f}".format(bmi)) who,nat = '','' if bmi < 18.5: who,nat = 'Thin ','Thin ' elif 18.5 <= bmi < 24: who,nat ='normal','normal' elif 24 <= bmi < 25: who,nat ='normal','Overweight' elif 25 <= bmi < 28: who, nat = 'Overweight','Overweight' elif 28 <= bmi <30: who, nat = 'Overweight','Obesity' else: who,nat = "Obesity","Obesity" print("BMI Indicators: International{0},domestic{1}".format(who,nat))
3. Loop structure of program
3.1 traversal cycle
for <Cyclic variable> in <Ergodic structure> : <Statement block> ''' Application: Counting cycle: for i in range(M,N,K): String traversal loop: for c in s: List traversal loop: for item in ls: File loop variable: for line in fi: # Traverse each line '''
3.2 infinite cycle
while <condition> : <Statement block> # ctrl+c exit infinite loop
3.3 cyclic control reserved word
break: jump out and end the current whole loop, and execute the statement after the loop
Continue: end the current cycle and continue to execute the subsequent cycles
3.4 cycle expansion
for <Cyclic variable> in <Ergodic structure>: <Statement block 1> else: <Statement block 2> # ----------------------------------- while <condition>: <Statement block 1> else: <Statement block 2> # When the loop is not exited by the break statement, the else statement block is executed # Similar to the else usage of exception handling
4. Module 3: random library
4.1 overview of random library
The random library is a Pyhton standard library that uses random numbers
Pseudo random number: a (pseudo) random sequence element generated by Mason rotation algorithm
- basic random number functions: seed(), random()
- extended random number functions: randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
4.2 basic random function
function | describe |
---|---|
seed(a=None) | Initializes the given random number seed. The default is the current system time |
random() | Generate a random decimal between [0.0,1.0] |
4.3 extended random function
function | describe |
---|---|
randint(a,b) | Generate an integer between [a,b] |
randrange(m,n[,k]) | Generate a random integer between [m,n) in steps of k |
getrandbiits(k) | Generate a random integer longer than k |
uniform(a,b) | Generate a random decimal between [a,b] |
choice(seq) | Randomly select an element from the sequence seq |
shuffle(seq) | Randomly arrange the elements in the sequence seq and return the disrupted sequence |
5. Example 6: Calculation of PI
# CalPiv1.py # PI formula method pi = 0 N = 100 for k in range(N): pi += 1/pow(16,k)*( 4/(8*k+1)-2/(8*k+4)- 1/(8*k+5)-1/(8*k+6)) print("The pI value is:{}".format(pi)) #------------------------------------------------------ # CalPiv2.py # Monte Carlo method from random import random from time import perf_counter DARTS = 1000*1000 hits = 0.0 start = perf_counter() for i in range(1,DARTS+1): x,y = random(), random() dist = pow(x**2+y**2,0.5) if dist <= 1.0: hits = hits +1 pi = 4 * (hits/DARTS) print("The pI value is{}:".format(pi)) print("The running time is:{:.5f}s".format(perf_counter( )-start))
Source:
Python language programming_ Beijing University of Technology_ China University MOOC (MOOC) https://www.icourse163.org/course/BIT-268001