Control Flow - Loop Statements - Reference Answers

Assignment 1

Print the following results as required:

  1. Use a while loop to output 1 2 3 4 5 6 8 9 10
  2. Find the sum of all numbers from 1 to 100
  3. Output all odd numbers from 1 to 100
  4. Output all even numbers from 1 to 100
# Problem 1
# Method 1
count = 1
while count <= 10:
    if count == 7:
        count += 1
        continue
    print(count)
    count += 1
# Method 2
count = 1
while count <= 10:
    if count != 7:
        print(count)
    count += 1
# Method 3
for i in range(1, 11):
    if i == 7:
        continue
    print(i)

# Problem 2
# Method 1
res = 0
count = 1
while count <= 100:
    res += count  # res = res + count
    count += 1
print(res)
# Method 2
result = 0
for i in range(1, 101):
    result += i  # result = result + i
print(result)

# Problem 3
# Method 1
count = 1
while count <= 100:
    if count % 2 != 0:
        print(count)
    count += 1
# Method 2
for i in range(1, 101, 2):
    print(i)

# Problem 4
# Method 1
count = 1
while count <= 100:
    if count % 2 == 0:
        print(count)
    count += 1
# Method 2
for i in range(2, 101, 2):
    print(i)

Reference solution approach:

image.png

Assignment 2

Write an age-guessing game for the user. Allow the user at most 3 attempts. After every 3 attempts, if they still haven’t guessed correctly, ask the user whether they want to keep playing. If they answer Y or y, let them guess 3 more times, and so on; if they answer N or n, exit the program. If they guess correctly, exit right away.

Albert_age = 18
count = 0
while True:
    if count == 3:
        choice = input('继续(Y/N?)>>: ')
        if choice == 'Y' or choice == 'y':
            count = 0
        else:
            break
    guess = int(input('>>: '))
    if guess == Albert_age:
        print('you got it')
        break
    count += 1

Reference solution approach:

image.png

Assignment 3

Print the following multiplication table (hint: use two nested for loops):

1*1=1	
2*1=2	2*2=4	
3*1=3	3*2=6	3*3=9	
4*1=4	4*2=8	4*3=12	4*4=16	
5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81
for i in range(1, 10):
    for j in range(1, i + 1):
        print('%s*%s=%s\t' % (i, j, i * j), end="")
    print()

Reference solution approach:

image.png