石头剪子布两种代码比较

跟文字游戏差不多,主要是随机函数、条件语句的练习。index()查找某个元素首次出现在列表的第几个序号。

import random,time

punches = ['石头', '剪刀', '布']
computer_choice = random.choice(punches)

def in_num():
    while True:
        global user_choice
        user_choice = input('请输入数字【1.石头】【2.剪刀】【3.布】')
        if user_choice == '1':
            user_choice = '石头'
            break
        elif user_choice == '2':
            user_choice = '剪刀'
            break
        elif user_choice == '3':
            user_choice = '布'
            break
        else:
            print('别捣乱,请重新输入!')
            continue

def compare():
    time.sleep(1)
    print("------战斗过程------")
    if computer_choice == user_choice:
        print('计算机出的是:{}\n你出的是:{}\n打平,再来!'.format(computer_choice,user_choice))
        in_num()

    elif computer_choice == '石头' and user_choice == '剪刀':
        print('计算机出的是:{},你出的是:{}\n你输了!'.format(computer_choice,user_choice))

    elif computer_choice == '石头' and user_choice == '布':
        print('计算机出的是:{},你出的是:{}\n你赢了!'.format(computer_choice,user_choice))

    elif computer_choice == '剪刀' and user_choice == '石头':
        print('计算机出的是:{},你出的是:{}\n你赢了!'.format(computer_choice,user_choice))

    elif computer_choice == '剪刀' and user_choice == '布':
        print('计算机出的是:{},你出的是:{}\n你输了!'.format(computer_choice,user_choice))

    elif computer_choice == '布' and user_choice == '石头':
        print('计算机出的是:{},你出的是:{}\n你输了!'.format(computer_choice,user_choice))

    elif computer_choice == '布' and user_choice == '剪刀':
        print('计算机出的是:{},你出的是:{}\n你赢了!'.format(computer_choice,user_choice))
    

def game():
    in_num()
    compare()  

while True:
    game()

    if_again = input('是否继续,请选择:【输入任意字符继续】【输入n退出】')

    if if_again == 'n':
        break

教程里的代码很简练:

import random

# 出拳
punches = ['石头','剪刀','布']
computer_choice = random.choice(punches)
user_choice = ''
user_choice = input('请出拳:(石头、剪刀、布)')  # 请用户输入选择
while user_choice not in punches:  # 当用户输入错误,提示错误,重新输入
    print('输入有误,请重新出拳')
    user_choice = input()

# 亮拳
print('————战斗过程————')
print('电脑出了:%s' % computer_choice)
print('你出了:%s' % user_choice)

# 胜负
print('—————结果—————')
if user_choice == computer_choice:  # 使用if进行条件判断
    print('平局!')
# 电脑的选择有3种,索引位置分别是:0石头、1剪刀、2布。
# 假设在电脑索引位置上减1,对应:-1布,0石头,1剪刀,皆胜。
elif user_choice == punches[punches.index(computer_choice)-1]:
    print('你赢了!')
else:
    print('你输了!')

你可能感兴趣的:(练习)