Python if语句不输出

下面是我的代码,主要在于points函数,它不执行if里面的内容,但也没有报错

# -*- coding:utf-8 -*-
import random
import time
import sys

playerPoints = 100
playerWon = False
playerChoice = None
playerGuess = None

def easy():
    ## 简单难度的踩雷,在 1 ~ 100 之间随机选择雷号
    global playerWon
    rbnList = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
               37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,
               70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]
    rbn = random.sample(rbnList,3)
    if playerGuess == rbn[0] or playerGuess == rbn[1] or playerGuess == rbn[2]:
        sys.stdout.write("你踩到地雷了!")
        playerWon = False
        points()
    else:
        sys.stdout.write("你躲开了地雷!")
        playerWon = True
        points()

def normal():
    ## 正常难度的踩雷,在 1 ~ 50 之间随机选择雷号
    global playerWon
    rbnList = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
               37,38,39,40,41,42,43,44,45,46,47,48,49,50]
    rbn = random.sample(rbnList,3)
    if playerGuess == rbn[0] or playerGuess == rbn[1] or playerGuess == rbn[2]:
        sys.stdout.write("你踩到地雷了!")
        playerWon = False
    else:
        sys.stdout.write("你躲开了地雷!")
        playerWon = True
    points()

def hard():
    ## 困难难度的踩雷,在 1 ~ 20 之间随机选择雷号
    global playerWon
    rbnList = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
    rbn = random.sample(rbnList, 3)
    if playerGuess == rbn[0] or playerGuess == rbn[1] or playerGuess == rbn[2]:
        sys.stdout.write("你踩到地雷了!")
        playerWon = False
    else:
        sys.stdout.write("你躲开了地雷!")
        playerWon = True
    points()

def points():
    ## 玩家分数,踩雷游戏分数系统
    global playerPoints
    if playerWon == True:
        if playerChoice == "简单难度":
            playerPoints += 5
            sys.stdout.write("当前分数加5, 当前分数: %s" % playerPoints)
        elif playerChoice == "正常难度":
            playerPoints += 10
            sys.stdout.write("当前分数加10, 当前分数: %s" % playerPoints)
        elif playerChoice == "困难难度":
            playerPoints += 20
            sys.stdout.write("当前分数加20, 当前分数: %s" % playerPoints)
    elif playerWon == False:
        if playerChoice == "简单难度":
            playerPoints -= 5
            sys.stdout.write("当前分数减5, 当前分数: %s" % playerPoints)
            if playerPoints < 0:
                sys.stdout.write("分数过少,不能进行减分,请等待分数重置")
                playerPoints = 0
                resetPoints()
        elif playerChoice == "正常难度":
            playerPoints -= 7
            sys.stdout.write("当前分数减7, 当前分数: %s" % playerPoints)
            if playerPoints < 0:
                sys.stdout.write("分数过少,不能进行减分,请等待分数重置")
                playerPoints = 0
                resetPoints()
        elif playerChoice == "困难难度":
            playerPoints -= 10
            sys.stdout.write("当前分数减10, 当前分数: %s" % playerPoints)
            if playerPoints < 0:
                sys.stdout.write("分数过少,不能进行减分,请等待分数重置")
                playerPoints = 0
                resetPoints()

def resetPoints():
    resetPointsTimes = 300
    for i in range(resetPointsTimes):
        sys.stdout.write("分数将在 {} 秒后重置为100".format(resetPointsTimes - i))
        sys.stdout.flush()
        time.sleep(1)
    sys.stdout.write("分数成功重置为100")
    GameBody()

def rules():
    sys.stdout.write("==================== *游戏规则* ====================")
    sys.stdout.write("本游戏分3个模式:简单模式,正常模式和困难模式")
    sys.stdout.write("简单模式: 赢了得5分, 输了扣5分")
    sys.stdout.write("正常模式: 赢了得10分, 输了扣7分")
    sys.stdout.write("困难模式: 赢了得20分, 输了扣10分")
    sys.stdout.write("祝您游戏愉快!")

def GameBody():
    global playerChoice
    global playerGuess

    playerChoice = input("简单模式请输入'简单模式',正常模式请输入'正常模式'," +
                         "困难模式请输入'困难模式',查看游戏规则请输入'规则':")
    if playerChoice == "简单模式":
        playerGuess = int(input("请输入一个 1 ~ 100 的数字"))
        easy()
    elif playerChoice == "正常模式":
        playerGuess = int(input("请输入一个 1 ~ 50 的数字"))
        normal()
    elif playerChoice == "困难模式":
        playerGuess = int(input("请输入一个 1 ~ 20 的数字"))
        hard()
    elif playerChoice == "规则":
        rules()
    else:
        sys.stdout.write("输入错误, 请重新输入")
        GameBody()

GameBody()

0

3个回答

你的输入是简单模式、正常模式等等么?你的控制台支持中文么?输入中有别的自负,比如空格么?
建议你换成123 abc等测试下,而不是中文。
再不行的话,单步调试下。

0
weixin_42246860
samyyc 谢谢,是我把简单难度写成了简单模式,已采纳
12 个月之前 回复

建议在输入选择条件时先用数字或者字母进行判断,看是否逻辑正确。你直接来中文,但中文输入可能存在编码不统一问题的(比如你内容要求是utf-8,环境传来的是gbk)

0

键盘输入的中文可能不是utf-8编码的,支持中文的也可能是GBK,GB12

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用if语句计算整数绝对值
用if语句计算整数绝对值,具体博文请参见苹果开发者新浪博客http://blog.sina.com.cn/s/blog_7aa21f320100r3a9.html
C语言实验报告
一个C程序,使用了嵌套的if语句和不嵌套的if语句。
Python学习笔记,Python3.5中文无法显示
Python学习笔记,Python3.5中文无法显示,可以成功解决
C语言程序设计 if语句 课件
本课件详细讲述了if语句的使用方法,并对本节课进行了详细的课程设计
词法分析程序
设计一个包含简单算术表达式、赋值语句、IF语句的小语 言的文法。 根据此文法,构造一词法分析程序。输入以“#”为结束符的 源程序,输出为各类单词表和单词串文件。
递归下降法实现for循环的四元式和三元式的输出课程设计
该资源为一个压缩文件,里面用的是递归下降法实现for循环的三元式和四元式的输出。既有代码又有陈程设计报告,代码讲解比较详尽。
if语句练习题目
if语句练习题目,希望大家对IF语句的了解多一点
编译原理 if-else条件语句的翻译(Java)
1)简洁的用户使用界面 2)可以实现if-else和if的循环嵌套 3)具备一定的检错能力 4)用LR分析方法实现分析 5)不过循环体中只能是一条赋值语句
HYDRUS-1D,源程序
HYDRUS 1D 源程序 对HYDRUS 1D可自行修改 十分NB 满足土壤水动力学 溶质迁移 等等等等
IF嵌套循环语句
一个用if嵌套写的公司销售采用优惠的程序代码!
编译原理中间代码生成
可用于编译原理的课设和平时作业,程序比较简单,结构清晰,程序从文件读入
递归下降法翻译if then条件语句
编译原理实验,用C++实现的一个对if then条件语句的翻译过程,可以实现对简单布尔表达式和简单赋值语句的翻译,可以识别长串标识符。
Python3倒序输出字符串的N种方法(含代码和介绍)
Python3倒序输出字符串的N种方法,介绍了包括直接reverse方法,for循环正序和逆序法等三种方法来进行字符串倒序
二维码输出到控制台不保存
二维码生成 不直接保存到服务器 直接输出
IF-ELSE条件语句的翻译程序设计(递归下降法、输出三地址表示)
1、问题描述 1 2、问题分析 1 3、词法分析 1 3.1总体分析 1 3.2具体分析 1 4、文法描述 2 5、语法分析方法描述及语法分析表设计 3 6、中间代码形式的描述及中间代码序列的结构设计 3 7、详细的算法描述 4 7.1主要的词法分析如下 4 7.2主要的词法分析及三地址形式分析如下 6 8、软件测试方法和测试结果 10 8.1软件测试方法 10 8.2测试结果 10 9、收获与心得 13 10、参考文献 14 11、附源代码 14
循环语句的语法分析及语义分析程序设计(递归下降法)
1.目的 通过设计、编制、调试一个语法及语义分析程序,加深对语法及语义分析原理的理解。 2.设计内容及要求 WHILE〈布尔表达式〉DO〈赋值语句〉 其中 (1)学号29至32的同学按顺序分别选择递归下降法、LL(1)、算符优先分析法(或简单优先法)、LR法完成以上任务,中间代码选用四元式。 (2)如1题写出符合分析方法要求的文法,给出分析方法的思想,完成分析程序设计。 (3)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
if else语句 LL(1)文法,输出四元式
编译原理的课程设计,条件语句,LL(1),输出四元式
深度搜索,python,路径输出
对图的类型没有限制, 邻接矩阵表示,实例认证 包含图和相关代码,输出遍历的顺序
python 写入TXT文件但不覆盖原有内容
前一篇write_txt文件 写入后会覆盖原来文件内容,变换参数后,可保留原文件内容,在文件最后增加新写入的内容!
38译码器编写
这是一个verilog文件,是关于38译码器的资源。
决策树(数据挖掘作业)
天气因素有温度、湿度和刮风等,通过给出数据,使用决策树算法学习分类,输出一个人是运动和不运动与天气之间的规则树。
c++语言程序设计1作业及答案
一、 填空题 1、C++预言中的每条基本语句以__________作为结束符,每条复合语句以_________作为结束符。 [答案] ;、} 2、用于输出表达式值的标准输出流对象是_________,用于从键盘上为变量输入值的标准输入流对象______。 [答案]cout、cin 3、当不需要函数返回值时,则应把该函数类型定义为_____。 [答案]void 4、执行”cout<<143<<’+’<<18<<’=’<<143+18<<endl;”语句后得到的输出结果为 。 [答案] 143+18=161
学学Python_16语句_print输出表达式
print输出表达式,文章:https://blog.csdn.net/yysyangyangyangshan/article/details/82975261
Python实现的以决策树为基准学习器的随机森林,从输入到输出完整的程序
打开压缩包有两个.py文件,运行randomForest.py即可
python 核心编程第二版【经典版本】
python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊 python核心编程第二版 高清 不模糊
ping测试脚本
输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;输出错误信息到问题,正确信息不记录;
PAT-乙级-1001
vs2010写的代码 语言c++ 1001 害死人不偿命的(3n+1)猜想 使用if语句和while语句
编译课程设计 基于LL(1)分析方法的实现if-then语句的翻译程序
程序实现了if-then语句的翻译程序,生成词法分析结果,语法分析过程和中间代码生成,但是对于if-then语句的输入限制有些多,还有以前上传了一个同样的资源但是有些问题,改之后重新上传
python自动生成99乘法表
python写的99乘法表,刚开始学习的时候写的,不登大雅之堂,忘各位大牛见谅
python字典格式化输出
python字典 字典格式化输出 树 字典树 树形输出 按照树形格式打印输出嵌套字典
IF语句.xls
IF语句,简简单单的一个小文档,大家看看学习学习
Python输入与输出.pdf
Python输入与输出
基于决策树的天气大数据回归例程
该例程是针对阿里天气大数据预测,并进行无人机航路规划。使用了sklearn的决策树方法
解决Android7.0以上手机eclipse不输出logcat问题
主要针对安卓7.0以上版本,真机调试eclipse不显示Logcat日志的解决方法
if语句使用
java中if条件语句的使用,有题目及相应文档,代码简单明了,适合初学者。
IF语句在表格中的应用
IF语句在表格中的应用IF语句在表格中的应用IF语句在表格中的应用
python日历打印
python日历打印代码,利用python实现简单的日历输出,适合新手入门学习。
51单片机例程(38例)
51单片机例程(共含38例,pcd下载端。。。
IF-ELSE语句的LL1文法及四元式输出
IF-ELSE语句的LL1文法及四元式输出
intelliJ IDEA插件开发.java开发规则:备注,方法,if语句等
在intelliJ IDEA开发一个插件,用于检查自己的代码是否符合规范.如备注,方法,if语句,每个函数80行
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python输出 python培训班靠谱不