- 现在有 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]
- 给用户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
你来猜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
- 有两个列表 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]]
- 现在有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 |