[Python基础 ] Day_05_作业参考答案

Day_05_Homework_Answer

''''''
import random

''' 基础题 '''
# 【注:以下6题功能全部自己使用循环实现,不能借助于Python内置函数: max, min, sort, reverse】
# 1.自定义一个数字列表,获取这个列表中的最小值
#  ages = [1,2,3,-4,2,1]
ages = [1,2,3,-4,2,1]
min1 = ages[0]
for n in ages:
    if n < min1:
        min1 = n

print(min1)


# 2. 自定义一个数字列表,元素为10个 ,找出列表中最大数连同下标一起输出
nums = [1, 4, 3, 2, 5, 66, -3, 2, 4, 5]
max1 = ages[0]
max1_index = 0
for i in range(len(nums)):
    if nums[i] > max1:
        max1 = nums[i]
        max1_index = i

print(max1, max1_index)


# 3. 自定义一个数字列表,求列表中第二大数的下标
nums = [1, 4, 3, 2, 5, 66, -3, 2, 4, 5]
max1 = nums[0]
for n in nums:
    if n > max1:
        max1 = n

print(max1)

max2 = nums[0] if nums[0]!=max1 else nums[1]
# print("max2:", max2)
for n in nums:
    if n > max2 and n!=max1:
        max2 = n

print(max2)

for i in range(len(nums)):
    if nums[i] == max2:
        print(i, end=' ')
print()

# 4. B哥去参加青年歌手大奖赛 ,有10个评委打分 ,(去掉一个最高分一个最低分)求平均分
nums = [10, 40, 30, 20, 50, 66, 3, 20, 40, 50]
max1 = nums[0]
min1 = nums[0]
for n in nums:
    if n > max1:
        max1 = n
    if n < min1:
        min1 = n

print(max1, min1)

print((sum(nums) - max1 - min1) / (len(nums)-2))

# 5. 定义列表,存放5个学生的成绩【成绩值自己设定】,获得成绩之和,平均成绩,最小成绩,最大成绩。
nums = [10, 40, 30, 20, 50, 66, 3, 20, 40, 50]
max1 = nums[0]
min1 = nums[0]
for n in nums:
    if n > max1:
        max1 = n
    if n < min1:
        min1 = n

print(sum(nums))
print(sum(nums)/len(nums))
print(min1)
print(max1)


# 6. 将一个列表逆序输出, 提示: range(6,-1,-1)
nums = [2, 3, 4, 1, 5]
# print(nums[::-1])

for i in range(4, -1, -1):
    print(nums[i], end=' ')
print()


# 7.完成猜拳游戏
# 		-----------------------------
# 		请输入你的选择:
# 		1. 石头
# 		2. 剪刀
# 		3. 布
# 		-----------------------------
# 		如: 你的选择是【布】, 电脑的选择是【石头】
# 		恭喜你获得了胜利!

print('''
-----------------------------
请输入你的选择:
1. 石头
2. 剪刀
3.-----------------------------
''')

# me = int(input('请输入您的选择:'))
# computer = random.randint(1, 3)
# if me == computer:
#     print("平手")
# elif me - computer == -1 or me - computer == 2:
#     print("恭喜您获得了胜利")
# else:
#     print("输了")


''' 进阶题:可以使用内置函数 '''
# 1.给定一个列表:将列表中指定的某个元素全部删除
nums = [10, 40, 30, 20, 50, 66, 3, 20, 40, 50]
n = 40
for i in range(nums.count(n)):
    nums.remove(n)

print(nums)

# 2.自定义一个列表,最大的与第一个元素交换,最小的与最后一个元素交换,输出列表(不考虑特殊情况)
nums = [10, 40, 30, 20, 50, 66, 3, 20, 40, 50]
# a, b = b, a
max_index = 0
min_index = 0
for i in range(len(nums)):
    if nums[i] > nums[max_index]:
        max_index = i
    if nums[i] < nums[min_index]:
        min_index = i

nums[max_index], nums[0] = nums[0], nums[max_index]
nums[min_index], nums[-1] = nums[-1], nums[min_index]

print(nums)


# 3,对称列表. 传入一个列表,元素类型与个数皆未知,返回新列表,由原列表的元素正序反序拼接而成;
# 如传入[“One”, “Two” ,”Three”] 返回[“One”, “Two”, “Three” ,”Three” ,”Two”, “One”]
list1 = ["One", "Two", "Three"]
list2 = list1.copy()
list2.reverse()
print(list1 + list2)


# 4, 给定一个不存在重复元素的整数列表,例如[6 ,4 ,7 ,2 ,5 ,8]和一个数字,例如10,
# 找出两个元素(或同一个元素加自身),并且使这两个数的和为给定数字,并打印出来
# 例如[6 ,4 ,7 ,2 ,5 ,8]和数字10. 打印结果为: 6 ,4  2 ,8  5 ,5

# 提示: 循环嵌套
# nums = [6 ,4 ,7 ,2 ,5 ,8]
# for i in range(len(nums)):
#   for j in range(i, len(nums)):
nums = [6, 4, 7, 2, 5, 8]
n = 10
for i in range(len(nums)):
    for j in range(i, len(nums)):
        if nums[i] + nums[j] == n:
            print(nums[i], nums[j])


# 5,有一个从小到大排好序的列表。现输入一个数,要求按原来的规律将它插入列表中,
# 如: [2 ,3 ,4 ,56, 67 ,98]  如插入63, 100
nums = [2, 3, 4, 56, 67, 98]
n = 100
for i in range(len(nums)):
    if n < nums[i]:
        nums.insert(i, n)
        break
else:
    nums.append(n)
print(nums)


# 6,列表去重, 将下面的列表中重复的元素去除
# list1 = [1 ,2 ,3 ,5 ,4 ,4 ,4 ,5 ,5 ,3 ,2 ,1]
list1 = [1, 2, 3, 5, 4, 4, 4, 5, 5, 3, 2, 1]
list2 = []
for n in list1:
    if n not in list2:
        list2.append(n)

print(list2)

猜你喜欢

转载自blog.csdn.net/weixin_44298535/article/details/107628258