吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2252|回复: 19
收起左侧

[Python 转载] 各位大佬 学python的萌新求指点

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

微信截图_20210226230849.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

machi 发表于 2021-2-27 02:24
if shuru == ‘石头’ or shuru == 'shitou':
    shuru = 1
elif  shuru == ‘剪刀’ or shuru == 'jiandao':
    shuru = 2
elif  shuru == ‘布’ or shuru == 'bu':
    shuru = 3
else:
    print('输入错误,请重新输入')

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

仅供参考
[Python] 纯文本查看 复制代码
import random

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

def getKey(response):
    if response in string.keys():
        return int(response)
    if response in string.values():
        key = [k for k,v in string.items() if v == response]
        return int(key[0])
    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
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-16 06:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表