52lmLM 发表于 2021-2-26 23:10

各位大佬 学python的萌新求指点

工作时间每天一小时 刚学了两天 问这个可能有点幼稚,以后会是这里的常客,求大佬们指点
是这样的,老师讲的的是写一个剪刀石头布的游戏,现在这种写法如果输入123都可以有结果,但是如果输入石头剪刀布就会报错
求大佬指点如何输入石头剪刀布或拼音依然能使程序运行不报错。
问这种低级问题   本萌新在瑟瑟发抖

machi 发表于 2021-2-27 02:24

if shuru == ‘石头’ or shuru == 'shitou':
    shuru = 1
elifshuru == ‘剪刀’ or shuru == 'jiandao':
    shuru = 2
elifshuru == ‘布’ or shuru == 'bu':
    shuru = 3
else:
    print('输入错误,请重新输入')

xiaobaisky 发表于 2021-2-26 23:47

52lmLM 发表于 2021-2-26 23:20
多谢啦,错误类型倒是知道,就是想知道判断类型和分流的字符,可能后边会讲,我比较好奇???

仅供参考
import random

string = {'1':'石头','2':'剪刀','3':'布'}

def getKey(response):
    if response in string.keys():
      return int(response)
    if response in string.values():
      key =
      return int(key)
    return None

def getResult():
    key = random.randint(1,3)
    return key

response = input("请输入:(1)石头,(2)剪刀,(3)布")

key = getKey(response=response)
if key is None:
    print('请正确输入')
    exit()

result = getResult()

if key == result:
    print('心有灵犀,再来一次后')
elif key > result:
    print('哇塞,您赢啦!')
else:
    print('很遗憾,您输啦!')

xiaobaisky 发表于 2021-2-26 23:15

数据类型的问题,错误信息已经给出具体错误了,79行,你输入的 是石头 没法转换成int类型呀。
解决办法是 判断输入的数据是 数字还是字符 如果是数字就进数字的判断,字符就进字符的判断。

浅冷丶 发表于 2021-2-26 23:16

刚学到这里应该是不用考虑其他情况的,只要能实现石头剪刀布的玩法就行了,异常抛出处理后面会教,你有书的话也可以翻来看看

禽·兽 发表于 2021-2-26 23:16

看不懂 想开始学py但是还没开始一般应该就是 数据类型错误吧1~3为整数但是你输入文字就成了文本型 数据类型不对 然后异常

52lmLM 发表于 2021-2-26 23:17

浅冷丶 发表于 2021-2-26 23:16
刚学到这里应该是不用考虑其他情况的,只要能实现石头剪刀布的玩法就行了,异常抛出处理后面会教,你有书的 ...

嗯嗯,多谢,就是好奇,想知道如果用户输入其他的答案我该怎么转化

52lmLM 发表于 2021-2-26 23:18

禽·兽 发表于 2021-2-26 23:16
看不懂 想开始学py但是还没开始一般应该就是 数据类型错误吧1~3为整数但是你输入文字就成了文本型...

错误原因我知道的,但是好奇怎么处理

52lmLM 发表于 2021-2-26 23:20

xiaobaisky 发表于 2021-2-26 23:15
数据类型的问题,错误信息已经给出具体错误了,79行,你输入的 是石头 没法转换成int类型呀。
解决办法是...

多谢啦,错误类型倒是知道,就是想知道判断类型和分流的字符,可能后边会讲,我比较好奇???

浅冷丶 发表于 2021-2-26 23:27

52lmLM 发表于 2021-2-26 23:17
嗯嗯,多谢,就是好奇,想知道如果用户输入其他的答案我该怎么转化

这个要用到循环了,可以在前面加个if判断输入的字符是否等于‘1’、‘2’、‘3’,如果等于,再进行下一步的判断,如果不等于,则继续从第一步开始重新输入。

浅冷丶 发表于 2021-2-26 23:32

本帖最后由 浅冷丶 于 2021-2-26 23:34 编辑

浅冷丶 发表于 2021-2-26 23:27
这个要用到循环了,可以在前面加个if判断输入的字符是否等于‘1’、‘2’、‘3’,如果等于,再进行下一 ...
while True:
      shuru = input('请输入石头1剪刀2布3:')
      if shuru == '1' or shuru=='2' or shuru =='3':
                石头剪刀布判断函数
               break
      else:
                print('您的输入有误,请重新输入')
                continue
页: [1] 2
查看完整版本: 各位大佬 学python的萌新求指点