zzy
6-python作业--极简主义

6-python作业--极简主义


        

OK ! 整活回归! 这次基本每个要求都只用了一行完成,体现了作业的某种特点

Release

  • Setup
  • 安装包下载的文件默认在桌面上.

        

作业

例 3-8

用列表存储若干城市的名称,利用for循环逐一输出城市名称。

  1. 正常作业:

    1
    2
    3
    4
    5
    6
    7
    # example3_8_1.py
    # coding=utf-8

    nameList = ['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan']
    print('城市名称列表:', end=' ')
    for name in nameList:
    print(name, end=' ')
    1
    2
    3
    4
    5
    6
    7
    # example3_8_1.py
    # coding=utf-8

    nameList = ['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan']
    print('城市名称列表:', end=' ')
    for i in range(len(nameList)):
    print(nameList[i], end=' ')
  2. 我的:

    1
    2
    # 3-8-1
    print('城市名称列表:',' '.join(['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan']))

    print('城市名称列表:',' '.join(['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan']))

    1
    2
    # 3-8-2
    (lambda nameList: print('城市名称列表:', ' '.join(nameList)))(['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan'])

    (lambda nameList: print('城市名称列表:', ' '.join(nameList)))(['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan'])

例 3-12

有一个列表sales=[5000, 3000, 8000, 10600, 6000, 5000]。该列表中的元素依次表示某产品1-6月的销售额。请用for循环遍历该列表,找到第一个销售额大于或等于6000的元素,并打印该元素的值。如果没有找到,则输出“未找到”。

  1. 正常作业:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # example3_12.py
    # coding=utf-8

    sales = [5000, 3000, 8000, 10600, 6000, 5000]
    found = 0
    for i in sales:
    if i >= 6000:
    print("第一个大于或等于6000的销售额是:", i)
    found = 1
    break
    if not found:
    print('未找到。')
  2. 我的:
    1
    2
    # 3-12
    lambda sales: print(next((i for i in sales if i >= 6000), '未找到'))([5000, 3000, 8000, 10600, 6000, 5000])
    lambda sales: print(next((i for i in sales if i >= 6000), '未找到'))([5000, 3000, 8000, 10600, 6000, 5000])

例 3-15

寻找并打印输出所有三位数的素数。 (素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。)

  1. 正常作业:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # example3_15.py
    # coding=utf-8

    print(f'所有三位数的素数如下:',end='\t')
    for i in range(100,1001):
    k = 0
    for j in range(2,int(i/2+1)):
    if i % j ==0:
    k = 1
    break
    if k == 0:
    print(i,end='\t')
  2. 我的:
    1
    2
    # 3-15
    print('所有三位数的素数如下:\n','\t'.join(str(i) for i in range(100, 1001) if all(i % j != 0 for j in range(2, int(i/2 + 1)))))
    print('所有三位数的素数如下:\n','\t'.join(str(i) for i in range(100, 1001) if all(i % j != 0 for j in range(2, int(i/2 + 1)))))

作业

练 6-1

输出1000以内的素数以及这些素数之和。(素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。)

  1. 正常作业

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # exercise6_1.py
    # coding=utf-8

    s = 0
    print('1000以内素数:')
    for i in range(2,1001):
    k = 0
    for j in range(2,int(i/2+1)):
    if i % j ==0:
    k = 1
    break
    if k == 0:
    s += i
    print(i,end='\t')
    print(f'\n1000以内素数之和:\t{s}')
  2. 我的

    1
    print('1000以内素数:\n','\t'.join(str(i) for i in range(2, 1000) if all(i % j != 0 for j in range(2, int(i/2) + 1))),'\n1000以内素数之和:\t',sum(i for i in range(2, 1001) if all(i % j != 0 for j in range(2, int(i / 2) + 1))))

    print('1000以内素数:\n','\t'.join(str(i) for i in range(2, 1000) if all(i % j != 0 for j in range(2, int(i/2) + 1))),'\n1000以内素数之和:\t',sum(i for i in range(2, 1001) if all(i % j != 0 for j in range(2, int(i / 2) + 1))))

练 6-2

用for循环实现三位数中水仙花数的寻找。三位数的水仙花数是指百位数的三次方+十位数的三次方+个位数的三次方等于此三位数本身。

  1. 正常作业

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # exercise6_2.py
    # coding=utf-8

    print('三位数中所有水仙花数是:')
    for num in range(100,1000):
    s = 0
    for i in str(num):
    s += int(i)**3
    if s == num:
    print(num,end='\t')
  2. 我的

    1
    print('三位数中所有水仙花数是:\n','\t'.join(map(str, filter(lambda x: sum(int(i)**3 for i in str(x)) == x, range(100, 1000)))))

    print('三位数中所有水仙花数是:\n','\t'.join(map(str, filter(lambda x: sum(int(i)**3 for i in str(x)) == x, range(100, 1000)))))

练 6-3

预设一个0~9之间的整数(比如7),让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”;如此循环,直至猜中该数,显示“恭喜!你猜中了!”

  1. 正常作业

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # exercise6_3.py
    # coding=utf-8

    num = 7
    i = int(input('请输入您猜的数(0~9): '))
    while i != num:
    if i < num:
    print('太小')
    if i > num:
    print('太大')
    i = int(input('请输入您猜的数(0~9): '))
    else:
    print('恭喜!你猜中了!')
  2. 我的

    1
    2
    3
    num = 7  
    while (i := int(input('请输入您猜的数(0~9): '))) != num:print('太小' if i < num else '太大')
    print('恭喜!你猜中了!')

练 6-4

输出1-100之间能被7整除但不能同时被5整除的所有整数。

  1. 正常作业

    1
    2
    3
    4
    5
    6
    7
    # exercise6_4.py
    # coding=utf-8

    print('打印出 1\~100 之间能被7整除,但不能同时被5整除的所有数:')
    for i in range(1, 101):
    if i % 7 == 0 and i % 5 != 0:
    print(i, end='\t')
  2. 我的

    1
    print('1\~100 之间能被7整除,但不能同时被5整除的所有数:','\t'.join(str(i) for i in [x for x in range(100)] if i % 7 == 0 and i % 5 != 0

    print('1\~100 之间能被7整除,但不能同时被5整除的所有数:','\t'.join(str(i) for i in [x for x in range(100)] if i % 7 == 0 and i % 5 != 0))

练 6-5

输出1-100之间能被7整除但不能同时被5整除的所有整数。

  1. 正常作业

    1
    2
    3
    4
    5
    6
    7
    # exercise6_5.py
    # coding=utf-8

    print('打印出 1\~100 之间能被7整除,但不能同时被5整除的所有数:')
    for i in range(7, 101,7):
    if i % 5 != 0:
    print(i, end='\t')
  2. 我的

    1
    print('1\~100 之间能被7整除,但不能同时被5整除的所有数:','\t'.join(str(i) for i in filter(lambda x:x%7==0,range(1,100)) if i % 5 != 0))

    print('1\~100 之间能被7整除,但不能同时被5整除的所有数:','\t'.join(str(i) for i in filter(lambda x:x%7==0,range(1,100)) if i % 5 != 0))

练 6-6

成绩均为整数,对百分制(0–100)的成绩判定等级,要求输出0–100成绩对应的等级。

  1. 正常作业

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # exercise6_6.py
    # coding=utf-8

    for score in range(100):
    if score >= 85:
    grade = "优秀"
    elif score >= 70:
    grade = "中等"
    elif score >= 60:
    grade = "及格"
    else:
    grade = "不及格"
    print('成绩:', score, '等级:', grade)
  2. 我的

    1
    print('\n'.join(f'成绩:{score}\t等级:{"优秀" if score >= 85 else "中等" if score >= 70 else "及格" if score >= 60 else "不及格"}' for score in range(100) if score < 100) + '\n成绩:100等级:优秀')

    print('\n'.join(f'成绩:{score}\t等级:{"优秀" if score >= 85 else "中等" if score >= 70 else "及格" if score >= 60 else "不及格"}' for score in range(100) if score < 100) + '\n成绩:100等级:优秀')

选择

  1. D
  2. A
  3. A

判断

  1. F
  2. F
  3. T

提交作业

  1. 正常作业:(打包文件在文章开头处setup)
    Download example3_8_1.py
    Download example3_8_2.py
    Download example3_12.py
    Download example3_15.py
    Download exercise6_1.py
    Download exercise6_2.py
    Download exercise6_3.py
    Download exercise6_4.py
    Download exercise6_5.py
    Download exercise6_6.py
    Download 判断.txt
    Download 选择.txt

  2. 我的:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #-- codeing=utf-8 --
    #@Time:2024-4-5
    #@Author:zzy
    #@File:exercise6.py
    #@Software:vscode

    # 例题
    # 3-8-1
    # print('城市名称列表:',' '.join(['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan']))

    # 3-8-2
    (lambda nameList: print('城市名称列表:', ' '.join(nameList)))(['Beijing', 'Shanghai', 'Hangzhou', 'Nanjing', 'Taizhou', 'Wuhan'])
    # 3-12
    lambda sales: print(next((i for i in sales if i >= 6000), '未找到'))([5000, 3000, 8000, 10600, 6000, 5000])

    # 3-15
    print('所有三位数的素数如下:\n','\t'.join(str(i) for i in range(100, 1001) if all(i % j != 0 for j in range(2, int(i/2 + 1)))))

    # 作业
    # 6-1
    print('1000以内素数:\n','\t'.join(str(i) for i in range(2, 1000) if all(i % j != 0 for j in range(2, int(i/2) + 1))),'\n1000以内素数之和:\t',sum(i for i in range(2, 1001) if all(i % j != 0 for j in range(2, int(i / 2) + 1))))

    # 6-2
    print('三位数中所有水仙花数是:\n','\t'.join(map(str, filter(lambda x: sum(int(i)**3 for i in str(x)) == x, range(100, 1000)))))

    # 6-3
    num = 7
    while (i := int(input('请输入您猜的数(0~9): '))) != num:print('太小' if i < num else '太大')
    print('恭喜!你猜中了!')

    # 6-4
    print('1\~100 之间能被7整除,但不能同时被5整除的所有数:','\t'.join(str(i) for i in [x for x in range(100)] if i % 7 == 0 and i % 5 != 0))

    # 6-5
    print('1\~100 之间能被7整除,但不能同时被5整除的所有数:','\t'.join(str(i) for i in filter(lambda x:x%7==0,range(1,100)) if i % 5 != 0))

    # 6-6
    print('\n'.join(f'成绩:{score}\t等级:{"优秀" if score >= 85 else "中等" if score >= 70 else "及格" if score >= 60 else "不及格"}' for score in range(100) if score < 100) + '\n成绩:100等级:优秀')

    # 选择
    # D A A

    # 判断
    # F F T
本文作者:zzy
本文链接:http://周梓煜.com/2024/04/05/school-hhw-6-python/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可