统计学研硕大数据统计练手10

本文详细介绍了如何使用Python编写一个命令行石头剪刀布游戏,涉及random.choice函数、while循环、if-elif-else条件判断以及for循环的运用。通过实例展示了游戏规则和代码实现过程。
摘要由CSDN通过智能技术生成

统计学Python练手作业10


在这里插入图片描述
AI绘图仅供欣赏

题目

创建一个命令行游戏,游戏者可以在石头、剪刀和布之间进行选择,与计算机PK。每次PK时,游戏者赢了,其得3分;游戏者输了,得-1分;平局时得1分。游戏可人为控制结束,或游戏者得分超过30分时自动结束,当游戏结束时,输出游戏者最终的得分和赢的次数。


以下仅供参考,欢迎指正,共同探讨。

一、程序

代码如下(示例):

import random

n = int(input('局数:'))
print()
for i in range(n):
    choice = ["剪刀", "石头", "布"]
    user = input('请玩家输入(剪刀/石头/布): ')

    com = random.choice(["剪刀", "石头", "布"])

    print("电脑选择了%s" % com)

    print("玩家选择了%s" % user)

    if user not in choice:
        print("输入错误,请重新进入\n")
        break
    else:
        if user == "剪刀" and com == "布":
            print("玩家赢!\n")
            continue
        elif user == "布" and com == "剪刀":
            print("电脑赢!\n")
            continue
        elif user == "剪刀" and com == "石头":
            print("电脑赢!\n")
            continue
        elif user == "石头" and com == "剪刀":
            print("玩家赢!\n")
            continue
        elif user == "石头" and com == "布":
            print("电脑赢!\n")
            continue
        elif user == "布" and com == "石头":
            print("玩家赢!\n")
            continue
        elif user == com:
            print("平局!\n")

二、结果

代码如下(示例):

局数:5

请玩家输入(剪刀/石头/): 石头
电脑选择了剪刀
玩家选择了石头
玩家赢!

请玩家输入(剪刀/石头/): 布
电脑选择了布
玩家选择了布
平局!

请玩家输入(剪刀/石头/): 剪刀
电脑选择了石头
玩家选择了剪刀
电脑赢!

请玩家输入(剪刀/石头/): 石头
电脑选择了剪刀
玩家选择了石头
玩家赢!

请玩家输入(剪刀/石头/): 布
电脑选择了布
玩家选择了布
平局!

总结

本题考察综合编程能力,难度较大。参考借鉴思路较多,首先需要理解随机模块内置函数random.choice是什么意思?random.choice 是一个 Python 的内置函数,用于从给定的序列中随机选择一个元素返回。它可以应用于列表、元组、字符串等可迭代对象。

这个函数是存在随机模块random模块中的,主要是针对序列的操作,可以在序列中获取到一个随机的元素,并且最后在返回的时候会是列表、元组或者是字符串中的某一个随机项。

1、random.choice()函数的结构

在使用这个函数之前,我们先了解一下它的基本结构,如下

random.choice(sequence)

在这个函数中,只存在着一个参数,这个参数sequence表示的是一个有序类型。当我们在使用这个函数的时候,需要先导入random模块,因为choice()是不能直接访问的,然后在通过random中的静态对象调用该方法。

放大程序来看

print(random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*'))
在字符串中进行随机的选取:
print(random.choice(['剪刀', '石头', '布']))

while循环基本结构。while循环由关键字while、一个条件表达式和一个代码块组成。当条件表达式为True时,代码块将被执行,直到条件表达式变为False为止。

条件表达式。条件表达式是while循环的关键部分,它定义了循环的终止条件。当条件表达式的值为True时,循环体会被执行;否则,循环会停止。

循环体。循环体是包含要执行的代码块的while循环的一部分。您可以在循环体中执行任何需要的操作,例如读取用户输入、计算值或执行其他计算。

break和continue语句。breakcontinue是两个常用的控制流语句,它们可以用于中断或跳过while循环的执行。break语句用于完全停止循环的执行,而continue语句用于跳过当前循环的剩余部分并继续下一次循环。

避免死循环。死循环是指无限循环,即循环条件永远不会变为False,导致程序无法终止。为了避免死循环,您应该确保条件表达式的值最终会变为False。在编写while循环时,请注意检查条件表达式的逻辑。

例如,以下是一个简单的while循环示例:

i = 0

while i < 5:

print(i)

i += 1

这个例子会输出0到4这五个数字,因为当i小于5时,会一直执行打印操作,直到i等于5为止。

if elsifif else 是两种不同的条件判断语句,它们的主要区别在于是否允许同时处理多个条件以及它们的执行顺序。

if elsif
if elsif 语句用于在多个条件中寻找一个满足的条件,然后执行相应的代码块。它可以包含多个 elsif 子句,每个子句都代表一个独立的条件。如果第一个条件不满足,程序将继续尝试下一个 elsif 子句,直到找到一个满足条件的为止。如果所有条件都不满足,那么不会执行任何代码块。

if else
if else 语句用于在两个条件中选择一个满足的条件。你需要指定一个 if 条件和一个 else 条件。如果 if 条件满足,则执行第一个代码块;否则,执行 else 代码块。这个语句通常用来实现单分支的选择结构。

总得来说,if elsif 语句适用于需要在多个可能性之间做出选择的场景,而 if else 语句则是用于二选一决策的情况。在实际应用中,应根据需要选择合适的语句来满足编程需求。

例如,以下是一个简单的if elsif循环示例:

if n > 10:
  print(n)
elsif n < 10:
  print("错误")
elsif n == 10:
  print("错误")

例如,以下是一个简单的if else循环示例:

if n > 10:
  print(n)
else:
  print("错误")

for i in range 是Python中的一种循环语句,它用于遍历一个整数序列。这个序列可以通过 range 函数生成,该函数可以接受1到3个参数,分别表示起始值、终止值和步长。如果只传入一个参数,则默认为stop参数,循环从0开始,步长为1;如果传入两个参数,则第一个参数为start,第二个参数为stop,循环步长为1;如果传入三个参数,则第一个参数为start,第二个参数为stop,第三个参数为step,循环步长为step。

例如,以下代码可以遍历从0到4的整数序列,并输出每个数的平方:

for i in range(5):
print(i2)

if elsifif else 是两种不同的条件判断语句,它们的主要区别在于是否允许同时处理多个条件以及它们的执行顺序。

if elsif
if elsif 语句用于在多个条件中寻找一个满足的条件,然后执行相应的代码块。它可以包含多个 elsif 子句,每个子句都代表一个独立的条件。如果第一个条件不满足,程序将继续尝试下一个 elsif 子句,直到找到一个满足条件的为止。如果所有条件都不满足,那么不会执行任何代码块。

if else
if else 语句用于在两个条件中选择一个满足的条件。你需要指定一个 if 条件和一个 else 条件。如果 if 条件满足,则执行第一个代码块;否则,执行 else 代码块。这个语句通常用来实现单分支的选择结构。

总得来说,if elsif 语句适用于需要在多个可能性之间做出选择的场景,而 if else 语句则是用于二选一决策的情况。在实际应用中,应根据需要选择合适的语句来满足编程需求。

例如,以下是一个简单的if elsif循环示例:

if n > 10:
  print(n)
elsif n < 10:
  print("错误")
elsif n == 10:
  print("错误")

例如,以下是一个简单的if else循环示例:

if n > 10:
  print(n)
else:
  print("错误")
  • 77
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值