星期五作业

作业1猜拳
import random
'''
猜拳游戏:
和电脑进行猜拳游戏,规定 [0, 1, 2]  --> [石头 剪刀 布]
举例:当人输入 0 同时 电脑输入 1 打印 “恭喜您 您赢了”
      人输入 2 同时 电脑输入 1 打印 “机器你都赢不了 回家种田”
'''
j =0
i=0
k=0
v=0
while j<5:

# 人输入的数字
    people_num = int(input("请输入【0,1,2】三个数字:(0->石头,1->剪刀,2->布):"))

# 机器输入的数字
    computer = random.randint(0, 2)
# 声明一个列表用于友好打印
    lst = ['石头', '剪刀', '布']
    print("人输入的是:", lst[people_num], "  电脑输入的是:", lst[computer])

# 人赢的情况
    first = people_num == 0 and computer == 1
    second = people_num == 1 and computer == 2
    third = people_num == 2 and computer == 0

# 只要满足一种情况即可
    if any([first, second,third]):
        i+=1
        print("人赢了",i,"次")
        if i ==3:
            print("恭喜你,你赢了")
            break

    elif people_num == computer:
        k+=1
        print("平了",k,"次")
        if k == 3:
            print("再来五次")


    else:
        v+=1
        print("输了",v,"次")
        if v==3:
            print('机器你都赢不了 回家种田')
            break

    j+=1
    if j==5:
        j=0
        i=0
        k=0
        v=0

# 作业:猜拳游戏
# 如果是五局三胜 猜拳五次,三次胜利才算赢 否则重新来过
# 打印出谁最终赢了 你赢的情况 恭喜您 您赢了  ,机器赢的情况:机器你都赢不了 回家种田
# 连续猜拳 知道有一方连续赢五次 才推出 打印出谁赢了,打印出比赛的次数


作业2 抛硬币
import random
'''
硬币游戏:
连续随机抛100次硬币,【0表示正面, 1表示反面】
打印出最长的连续出现同一面的数字的长度
举例:
11001000001 --> 打印出00000的长度,是最长连续出现同一面
分析:判断当前的抛出的结果和上一次抛出的结果进行对比
lst = [1, 0, 1, 1, 0, 0, 0, 1, 0, 0]
lst[i] = lst[i - 1]
x = 2
x = 3
x += 1
'''
lst = []
for j in range(100):
    lst.append(random.randint(0,1))
print(lst)
# 声明一个x变量 用于计算最大次数
x = 1
# 声明一个空列表 用于存储所有的连续出现的次数
lst1 = []
for i in range(1, 100):
    # print(lst[i], end=' ')
    # 判断是否连续 是则将x加1
    if lst[i] == lst[i-1]:
        x += 1
    # 如果不连续则 初始化x的值
    else:
        x = 1
    print(x, end=' ')
    lst1.append(x)
print(lst1)
print("连续次数最多的是:",max(lst1),"次")


# 作业:完善上面的练习
# 连续抛1000次硬币 打印出连续出现4次0的次数  连续出现8次1的次数
# 举例:10000111000010  打印出2
lst = []
for j in range(1000):
    lst.append(random.randint(0,1))
# print(lst)
# 声明一个x变量 用于计算最大次数
x = 0
# 声明一个空列表 用于存储所有的连续出现的次数
lst1 = []
for i in range(3,1000):
    # print(lst[i], end=' ')
    # 判断是否连续 是则将x加1
    # print(i)
    if i ==3: #前四个为零的时候
        if lst[i] == lst[i -1] == lst[i - 2] == lst[i - 3] ==0 and lst[i+1]==1:
            x+=1
        else:
            x=0
    elif i==len(lst)-1: #最后四个为零的时候
        if lst[i] == lst[i - 1] == lst[i - 2] ==lst[i-3] ==0 and lst[i-4]==1:
            x+=1
        else:
            x=0
    elif lst[i] == lst[i - 1] == lst[i - 2] == lst[i-3]== 0  and lst[i+1]!=0 and lst[i-4]!=0:#正常情况下
            x+=1
    # # 如果不连续则 初始化x的值
    else:
        x = 0
    print(x, end=' ')
    lst1.append(x)
print(lst1)
print("出现连续4个0的次数:",sum(lst1),"次")

猜你喜欢

转载自blog.csdn.net/weixin_44367451/article/details/86432617