Python实现石头剪刀布小游戏及input函数解析
本文分享使用Python 3.5实现的石头剪刀布小游戏完整代码。重点解析了Python 2中input与raw_input的区别,以及Python 3中input函数的整合机制。通过示例代码展示如何处理用户输入、判断胜负及循环逻辑,适合Python初学者参考学习。
本文分享了使用Python编写的石头剪刀布小游戏的具体实现代码,供读者参考学习。
针对老师布置的可视化石头剪刀布作业,本文优先提供核心逻辑的代码实现,后续再处理可视化部分。
运行环境为Windows 7系统,Python版本为3.5。
具体代码实现如下:
#coding=utf-8
import random
exit_flag = False #设置flag用于break跳出两层循环,或者自定义异常也行,try:, except。
dic = {}
dic[0] = '剪刀'
dic[1] = '石头'
dic[2] = '布'
while True:
humanStr = input("请输入[0:剪刀 1:石头 2:布] ")
if humanStr.isdigit() and (int(humanStr) in [0,1,2]): #如果输入的是数字,并且在0,1,2中
human = int(humanStr)
windows = random.randint(0, 2)
print ("你出的是%s,电脑出的是%s" % (dic[human],dic[windows]))
if (human == 0 and windows == 2) or (human == 1 and windows == 0) or (human == 2 and windows == 1):
print("祝贺你,你赢了!")
oncemore = input("你想再来一局吗? y(Y) or n(N) ")
elif human == windows:
print("平局")
oncemore = input("你想再来一局吗? y(Y) or n(N) ")
else:
print("不好意思,你输了")
oncemore = input("你想再来一局吗? y(Y) or n(N) ")
while True:
if oncemore == 'y' or oncemore == 'Y':
break
elif oncemore == 'n' or oncemore == 'N':
exit_flag = True
break #跳出内层循环,并且设置flag
else:
oncemore = input("你想再来一局吗? y(Y) or n(N) ")
if exit_flag == True:
break #跳出层循环,结束程序
else:
print ("请重新输入!")
pass

此处补充说明Python 2中input与raw_input函数的区别,以及Python 3中input函数的行为变化。
在Python 2环境下:
input和raw_input均可接收字符串输入。其中,raw_input()将所有输入视为字符串并返回字符串类型;而input()在输入纯数字时返回对应的数字类型(int或float),若输入字符串则必须使用引号包裹,否则报错,返回类型为字符串。

在Python 3环境下:
Python 3整合了Python 2中的raw_input和input,移除了raw_input(),仅保留input()函数。该函数接受任意输入,默认将所有输入处理为字符串类型并返回字符串。

以上内容为本文的全部分享,希望对读者的学习有所帮助,欢迎继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









