Python初学者8号 发表于 2020-6-24 15:38:25

第十六讲的投硬币,我想到了比答案更简洁的代码,哈哈

import random

i,back,front,combo_front,combo_back,=0,0,0,0,0
combo_front_history = 0
combo_back_history = 0
while input('请按任意键开始游戏') != '':   # 按回车结束游戏
    s=int(input('请输入投掷次数'))
    while i<s:
      toss=random.randint(1,3)   # 得出投硬币的结果,奇数为正,偶数为负
      if toss%2==1:
            print('正面') if s<100 else None   #小于100次会输入结果,大于则不会
            front+=1    #记录正面的次数
            combo_back = 0   # 如果上一次是反面这次重复计数从0开始,而出现的最多的次数存在历史记录中
            combo_front += 1   # 出现了正面则开始连续记录
            if combo_front_history < combo_front:   #初始时,会记录已经出现的最高纪录的连续正面;而当出现了反面在出现正面后,则
                combo_front_history = combo_front   #由于连续计数器归1了,所以比较一下有没有突破历史记录。
                                       #下面的代码同理
      else:
            print('反面') if s<100 else None
            back+=1
            combo_front = 0
            combo_back += 1
            if combo_back_history < combo_back:
                combo_back_history = combo_back
      i+=1
    print('正面次数共为:', front, '连续出现次数为:', combo_front_history)
    print('反面次数为:', back, '连续出现次数为:', combo_back_history)

页: [1]
查看完整版本: 第十六讲的投硬币,我想到了比答案更简洁的代码,哈哈