Python学习六 —— 学习列表后,作业

  1. 现在有 a = [1,2,3,4,5,6] 不通过函数的形式实现列表的反转([6,5,4,3,2,1]) 并写出推导过程
a = [1, 2, 3, 4, 5, 6]
reverse_a = []
for i in a:
    reverse_a.insert(0, i) # 将遍历的元素一直插入到空列表的index 0号位置
print(reverse_a)

print>>>[6, 5, 4, 3, 2, 1]

  1. 给用户9次机会猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对
# 给 用户9次机会 猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对
"""
1. 用户先输入一个数字,有个值来记录用户输入的次数
2. 将用户输入的数字,从 1-10的列表中删除,然后再从删除的列表来随机抽取数字,进行比较判断
"""
import random
i = 1
jishu = list(range(1,11))
caiguo = []
while True:
    swho_pr = input("你来猜1-10之间的数字,共有9次机会!,你还有 %d次机会:" % (10-i))
    if not swho_pr.isdigit():
        print('认数吗?请输1-10的数字!否则扣你一次机会')
        # continue
    elif i < 9:
        who_pr = int(swho_pr)
        if who_pr < 1 or who_pr > 10:
            print("你输入了1-10以外的值,请重新输入!9次机会还未使用!")
        else:
            if who_pr in caiguo:
                print('你已猜过这个数字,不要浪费你的机会,赶快重猜!')
            else:
                print('你输入的数字是 %d ,没猜中哦,你已经使用了 %d 次机会!' % (who_pr, i))
                jishu.remove(who_pr)
                caiguo.append(who_pr)  # 将猜的值方到列表里,防止重复输入验证
                suiji = random.choice(jishu) # 已经将用户输入的值剔除掉的随机列表,抽一个值给用户看
                # print(jishu, suiji, caiguo)
                i += 1
    else:
        jishu.remove(int(swho_pr))
        print('给你9次机会都猜不出来,告诉你吧,正确的数字是%d' % jishu[0])
        break

print
你来猜1-10之间的数字,共有9次机会!,你还有 9次机会:sdf
认数吗?请输1-10的数字!否则扣你一次机会
你来猜1-10之间的数字,共有9次机会!,你还有 9次机会:111
你输入了1-10以外的值,请重新输入!9次机会还未使用!
你来猜1-10之间的数字,共有9次机会!,你还有 9次机会:1
你输入的数字是 1 ,没猜中哦,你已经使用了 1 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 8次机会:1
你已猜过这个数字,不要浪费你的机会,赶快重猜!
你来猜1-10之间的数字,共有9次机会!,你还有 8次机会:2
你输入的数字是 2 ,没猜中哦,你已经使用了 2 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 7次机会:2
你已猜过这个数字,不要浪费你的机会,赶快重猜!
你来猜1-10之间的数字,共有9次机会!,你还有 7次机会:3
你输入的数字是 3 ,没猜中哦,你已经使用了 3 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 6次机会:4
你输入的数字是 4 ,没猜中哦,你已经使用了 4 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 5次机会:5
你输入的数字是 5 ,没猜中哦,你已经使用了 5 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 4次机会:6
你输入的数字是 6 ,没猜中哦,你已经使用了 6 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 3次机会:7
你输入的数字是 7 ,没猜中哦,你已经使用了 7 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 2次机会:8
你输入的数字是 8 ,没猜中哦,你已经使用了 8 次机会!
你来猜1-10之间的数字,共有9次机会!,你还有 1次机会:10
给你9次机会都猜不出来,告诉你吧,正确的数字是9

  1. 有两个列表 lst1 = [11, 22, 33] lst2 = [22, 33, 44]获取内容相同的元素
list1 = [11, 22, 33, 44]
list2 = [22, 33, 44]
list3 = []   # 空的列表用来存储相同内容
# i1 = len(list1)
# j = 0
# while j < i1:
#     if list1[j] in list2:
#         list3.extend([list1[j]])
#     j += 1

for i in list1:
    if i in list2:
       list3.extend([i])
print(list3)

print : [22, [33, 44]]

  1. 现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中,要求每个办公室至少有一个老师
import random
# 定义8个老师的双阶列表,包含的是老师和即将赋值的教室
eight_teacher = [['a', ''], ['b', ''], ['c', ''], ['d', ''], ['e', ''], ['f', ''], ['g', ''], ['h', '']]
class_random = []       # 定义空的教室,将老师去的教室枚举出来,统一录入

class_1 = []        # 1号教室
class_2 = []        # 2号教室
class_3 = []        # 3号教室

while True:
    for room in eight_teacher:      # 遍历8个老师的双阶列表
        room[1] = random.randint(1, 3)      # 1,2,3号教室随机分配给8个老师
        class_random.append(room[1])        # 将8个老师分配的教室放入class_random列表
    c1 = class_random.count(1)      # 统计1号教室出现的次数
    c2 = class_random.count(2)      # 统计2号教室出现的次数
    c3 = class_random.count(3)      # 统计3号教室出现的次数
    if c1 != 0 and c2 != 0 and c3 != 0:     # 3个教室都有老师的情况下
        for bianli in eight_teacher:        # 遍历所有老师
            if bianli[1] == 1:          # 教室是1号的老师都统计进单独列表
                class_1.append(bianli[0])
            elif bianli[1] == 2:        # 教室是2号的老师都统计进单独列表
                class_2.append(bianli[0])
            else:       # 教室是3号的老师都统计进单独列表
                class_3.append(bianli[0])
        break       # 跳出循环准备打印
    else:
        continue    # 如教室有空,则重新分配老师
print('1号教室有%d个老师,2号教室有%d个老师,3号教室有%d个老师' % (c1, c2, c3))
print('1号教室的老师是以下几位:', '|', '|'.join(class_1), '|')
print('2号教室的老师是以下几位:', '|', '|'.join(class_2), '|')
print('3号教室的老师是以下几位:', '|', '|'.join(class_3), '|')

print:
1号教室有3个老师,2号教室有1个老师,3号教室有4个老师
1号教室的老师是以下几位: | a|b|d |
2号教室的老师是以下几位: | g |
3号教室的老师是以下几位: | c|e|f|h |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值