6-1 求列表中能被 3 整除的数 (10 分)

本题要求实现一个函数 mult3 (),带一个整数列表作为输入参数,仅仅输出列表中是 3 的倍数的那些数值,每个值占一行。

函数接口定义:

 mult3(lst)

lst 是传入的整数列表。

裁判测试程序样例:

# 请在这里填写答案  

def main():
    mylist = [3, 1, 6, 2, 3, 9, 7, 9, 5, 4, 5]
    mult3(mylist)

main()

输入样例:

无输入:

结尾无空行

输出样例:

输出:

3
6
3
9
9结尾无空行

参考答案

答案不唯一

def mult3(lst):
    for item in lst:
        if item % 3 == 0:
            print(item)

6-2 求列表中后一个数是前一个数的两倍的数 (10 分)

本题要求实现一个函数 doubles (),带一个整数列表作为输入参数,输出列表中正好是前一个数的两倍的整数,每个数占一行。

函数接口定义:

doubles(lst)

lst 是一个整数列表

裁判测试程序样例:

#  请在这里填写答案 

def main():
    mylist = [3, 0, 1, 2, 3, 6, 2, 4, 5, 6, 12]
    doubles(mylist)

main()

输入样例:

无输入数据

结尾无空行

输出样例:

在这里给出相应的输出。例如:

2
6
4
12
结尾无空行

参考答案

答案不唯一

def doubles(lst):
    for i in range(len(lst) - 1):
        if lst[i + 1] == lst[i] * 2:
            print(lst[i + 1])

7-1 找列表中最大元素的下标

(高教社,《Python 编程基础及应用》习题 4-7 (4 分)

输入一个整数列表,找出整数列表中最大元素的下标,如果最大元素的个数超过 1,那么请打印输出所有的下标。

输入格式:

数字 1, 数字 2, 数字 3,...., 数字 n

输出格式:

下标 1 下标 2 ... 下标 k

输入样例:

3,2,3
结尾无空行

输出样例:

0
2
结尾无空行

参考答案

答案不唯一

lst = list(map(int, input().split(",")))
largest = max(lst)
for i in range(len(lst)):
    if lst[i] == largest:
        print(i)
lst, i = list(map(int, input().split(","))), 0
largest = max(lst)
while True:
    try:
        position = lst.index(largest)
        print(position + i)
        i += 1  # 位置变动
        lst.pop(position)  # 删除
    except ValueError:
        break