【条件判断】用Python编写的猜拳游戏

文章目录

  • 优点
  • 代码
    • 刚开始写的代码
    • 更简洁的代码
  • 课程链接
  • 注意


优点

  1. 能够符合题目的要求,充分运用所学到的知识。
  2. 可以判断输入是否为数字,和判断输入范围是否正确,输入不符合要求可以继续重复输入,直到输入正确才开始判断。
  3. 注释充分,能够让你轻松阅读与理解。

代码

刚开始写的代码

这个复杂了点,下面代码是我改进了的,更简洁。

# -*- coding= utf-8 -*-
"""
1. 出拳
    玩家:手动输入
    电脑:随机生成
2. 判断输赢
    2.1 平局
    2.2 玩家获胜
    2.3 电脑获胜
"""
import random     # 引入随机数函数


# 用i记录现在的局数
i=1
# 输出现在是第几局
print("第%d局"%i)
# 局数增加1
i=i+1
# 1.玩家出拳
# 输入0表示出剪刀;输入1表示出石头;输入2表示出布:
# 此时输入默认为是字符串型(str型)
player = (input('请出拳:0--剪刀;1--石头;2--布:'))
# 利用isdigit()函数判断输入是否为数字,不是数字则重新输入
while not player.isdigit():
    print("输入有误,请重新输入")
    player = (input('请出拳:0--剪刀;1--石头;2--布:'))
# 输入为数字,则把输入转换为整型(int型)
player = int(player)
# 判断输入的数字是否符合要求(0,1,2),若不符合要求,则重新输入
while not(0<=player<=2):
    print("输入有误,请重新输入")
    player = (input('请出拳:0--剪刀;1--石头;2--布:'))
    # 判断输入是否为数字,不是数字则重新输入
    while not player.isdigit():
        print("输入有误,请重新输入")
        player = (input('请出拳:0--剪刀;1--石头;2--布:'))
    # 输入为数字,则把输入转换为整型(int型)
    player = int(player)
# 判断并输出玩家的输入
print("你的输入为:", end=" ")
if player == 0:
    print("剪刀(0)")
elif player == 1:
    print("石头(1)")
else:
    print("布(2)")

# 2.电脑
# computer = 0~2的随机数
computer = random.randint(0, 2)
# print(computer)输出computer的值
print("随机生成数为:", computer,end="\n")

# 平局
while player == computer:
    print('平局,别走,再来一局\n')
    print("第%d局"%i)
    # 局数增加1
    i = i + 1
    # 1.玩家出拳
    # 输入0表示出剪刀;输入1表示出石头;输入2表示出布:
    # 此时输入默认为是字符串型(str型)
    player = (input('请出拳:0--剪刀;1--石头;2--布:'))
    # 利用isdigit()函数判断输入是否为数字,不是数字则重新输入
    while not player.isdigit():
        print("输入有误,请重新输入")
        player = (input('请出拳:0--剪刀;1--石头;2--布:'))
    # 输入为数字,则把输入转换为整型(int型)
    player = int(player)
    # 判断输入的数字是否符合要求(0,1,2),若不符合要求,则重新输入
    while not (0 <= player <= 2):
        print("输入有误,请重新输入")
        player = (input('请出拳:0--剪刀;1--石头;2--布:'))
        # 利用isdigit()函数判断输入是否为数字,不是数字则重新输入
        while not player.isdigit():
            print("输入有误,请重新输入")
            player = (input('请出拳:0--剪刀;1--石头;2--布:'))
        # 输入为数字,则把输入转换为整型(int型)
        player = int(player)
    # 判断并输出玩家的输入
    print("你的输入为:", end=" ")
    if player == 0:
        print("剪刀(0)")
    elif player == 1:
        print("石头(1)")
    else:
        print("布(2)")
    # 电脑
    # computer = 0~2的随机数
    computer = random.randint(0, 2)
    # print(computer),输出computer的值
    print("随机生成数为:", computer)

# 3.判断输赢
# 0--剪刀;1--石头;2--布
# 玩家获胜
if (((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ((player == 2) and (computer == 1))):
    print('玩家获胜,哈哈哈哈')
# 电脑获胜
else:
    print('哈哈,你输了')

更简洁的代码

import random     # 引入随机数函数


# 用i记录现在的局数
i=1
# 输出现在是第几局
print("第%d局"%i)
# 局数增加1
i=i+1
# 1.玩家出拳
# 输入0表示出剪刀;输入1表示出石头;输入2表示出布:
# 此时输入默认为是字符串型(str型)
player = (input('请出拳:0--剪刀;1--石头;2--布:'))
# 判断输入是否为(0,1,2)字符,不是则重新输入
while  player not in('0','1','2'):
    print("输入有误,请重新输入")
    player = (input('请出拳:0--剪刀;1--石头;2--布:'))
# 输入为数字(0,1,2)字符,则把输入转换为整型(int型)
player = int(player)

# 判断并输出玩家的输入
print("你的输入为:", end=" ")
if player == 0:
    print("剪刀(0)")
elif player == 1:
    print("石头(1)")
else:
    print("布(2)")

# 2.电脑
# computer = 0~2的随机数
computer = random.randint(0, 2)
# print(computer)输出computer的值
print("随机生成数为:", computer,end="\n")

# 平局
while player == computer:
    print('平局,别走,再来一局\n')
    print("第%d局"%i)
    # 局数增加1
    i = i + 1
    # 1.玩家出拳
    # 输入0表示出剪刀;输入1表示出石头;输入2表示出布:
    # 此时输入默认为是字符串型(str型)
    player = (input('请出拳:0--剪刀;1--石头;2--布:'))
    # 判断输入是否为(0,1,2)字符,不是则重新输入
    while player not in ('0', '1', '2'):
        print("输入有误,请重新输入")
        player = (input('请出拳:0--剪刀;1--石头;2--布:'))
    # 输入为数字(0,1,2)字符,则把输入转换为整型(int型)
    player = int(player)
    # 判断并输出玩家的输入
    print("你的输入为:", end=" ")
    if player == 0:
        print("剪刀(0)")
    elif player == 1:
        print("石头(1)")
    else:
        print("布(2)")
    # 电脑
    # computer = 0~2的随机数
    computer = random.randint(0, 2)
    # print(computer),输出computer的值
    print("随机生成数为:", computer)

# 3.判断输赢
# 0--剪刀;1--石头;2--布
# 玩家获胜
if (((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ((player == 2) and (computer == 1))):
    print('玩家获胜,哈哈哈哈')
# 电脑获胜
else:
    print('哈哈,你输了')

课程链接

Python条件判断语句学习视频


注意

  • 这是我刚学到的知识然后写的代码,可能有一些小错误,希望发现的朋友能在评论区告知,同时有不理解的地方可以在评论区讨论。
  • 大家可以自己试试判断电脑产生的随机数对应的是石头,还是剪刀,还是布的。测试自己是否掌握和进一步巩固自己的知识。
  • 同时有不理解的地方可以在评论区讨论。
  • 如果可以,希望各位为我的帖子点个赞,谢谢。

你可能感兴趣的:(python)