Python大学计算机基础

如题所述

第4题

4.1 

x = 1
if x < 2:
    if x < 1:
        y = x + 1
else:
    y = x + 2

4.2

1) else匹配之前的缩进相同且最接近的if

2) 改之前是y=x+2先执行,之后是y=x+1先执行

第5题

代码还原

n = 1
while n <= 5:
    i = 1
    while i <= n:
        print(i, end='') # 缺的一行,end=''意思是不换行
        i = i + 1
    print('')
    n = n + 1

5.1 变量n
5.2 第一行是控制外层while结束的计数变量,第三行是控制内层whlie结束的计数变量,第六行是输出一个换行,第八行使n+1,以便能不断增大,最终跳转循环
5.3 第五行是用来输出数字的,共执行了1+2+3+4+5=15次
5.4 改写如下

n = 1
for n in range(1, 6):
   i = 1
   for i in range(i, n + 1):
       print(i, end='')
       i = i + 1
   print('')
   n = n + 1

输出

第6题

"""
    5
   45
  345
 2345
12345
"""

n = 5
while n >= 1:
    i = 1
    while i <= 5:
        if i >= n:
            print(i, end='')
        else:
            print(' ', end='')
        i += 1
    print('')
    n -= 1

"""
ABCDE
 BCDE
  CDE
   DE
    E
"""

dist = {
    1: 'A',
    2: 'B',
    3: 'C',
    4: 'D',
    5: 'E'
}
n = 5
while n >= 1:
    i = 1
    while i <= 5:
        if i >= 6 - n:
            print(dist[i], end='')
        else:
            print(' ', end='')
        i += 1
    print('')
    n -= 1

输出

    5
   45
  345
 2345
12345
ABCDE
 BCDE
  CDE
   DE
    E

第7题

分析

生成100以内的数组,循环判断一个数如果不是素数,就移除它,最后数值中剩下的就是素数

代码如下

"""输出100内的素数"""


numbers = list(range(2, 101))


def is_not_prime(num):
    for v in range(2, num):
        if num % v == 0:
            return True


for v in numbers:
    if is_not_prime(v):
        numbers.remove(v)

print(numbers)

输出

[2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 
43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 
83, 85, 87, 89, 91, 93, 95, 97, 99]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-17
4.1: else及下面一行都向左缩进一个tab空间(4个空格)
4.2: 配对原则是相同缩进量的配对,
y=x+1执行条件试x>1,改写后不变
y = x+2 执行条件试x>=1 且x<2,改写后是x>=2追问

第五题呢?

相似回答