当前位置: 首页 > 面试题库 >

Python简单数字比较

岳奇逸
2023-03-14
问题内容

问题:

计算机随机生成一个数字。用户输入一个数字,然后计算机会告诉您您是否太高或太低。然后,您将继续猜测,直到猜出数字为止。

我的解决方案:

import random

computer = random.randint(1, 500)

def guessNumber():      
    user = raw_input('> ')
    while user != computer:
            if user > computer:
                print "Your number is too big"
                user = raw_input('> ')
            else:
                    print "Naa! too small. Try a bit higher number"
                    user = raw_input('> ')
     print "Now the numbers are equal"

不幸的是,即使我为用户输入“ 1”,我的代码也永远不会运行if语句,即使它始终显示“您的数字太大”。


问题答案:

raw_input()返回一个 字符串 值。首先将其转换为整数:

user = int(raw_input('> '))

由于Python 2总是在字符串之前对数字进行排序user > computer,因此无论输入什么,您的测试将始终返回True:

>>> '' > 0
True

Python 3纠正了这个问题:

>>> '' > 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()

请注意,如果用户输入的数字无效,int()则会抛出ValueError

>>> int('42')
42
>>> int('fortytwo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'fortytwo'

您可能要明确处理:

def askForNumber():
    while True:
        try:
            return int(raw_input('> '))
        except ValueError:
            print "Not a number, please try again"


def guessNumber():
    user = askForNumber()
    while user != computer:
        if user > computer:
            print "Your number is too big"
            user = askForNumber()
        else:
            print "Naa! too small. Try a bit higher number"
            user = askForNumber()
    print "Now the numbers are equal"


 类似资料:
  • 问题内容: 我正在尝试在OpenCV-Python(cv2)中实现“数字识别OCR”。它仅用于学习目的。我想学习OpenCV中的KNearest和SVM功能。 我每个数字有100个样本(即图像)。我想和他们一起训练。 示例附带一个示例。但是我仍然不知道如何使用它。我不了解样本,回复等。此外,它首先会加载txt文件,而我首先并不了解。 稍后进行搜索时,我可以在cpp样本中找到letter_recog

  • 本文向大家介绍python实现的简单猜数字游戏,包括了python实现的简单猜数字游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现的简单猜数字游戏。分享给大家供大家参考。具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用的次数越少成绩越好。 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍qml 简单数字动画,包括了qml 简单数字动画的使用技巧和注意事项,需要的朋友参考一下 示例 您可能会遇到的非常基本的动画之一是NumberAnimation。该动画通过将项目属性的数值从初始状态更改为最终状态来工作。考虑以下完整示例:            

  • 问题内容: 例如,我有一个存储数字和单位的字符串 例如,我想添加权重 谢谢! 我试图提取数字只是为了对它们进行一些操作……最简单的方法是什么?我只处理这两种格式,即数字位于字符串的开头或结尾。 问题答案: 从字符串中提取数字的最简单方法是使用正则表达式和。 可能您需要更复杂的东西,但这是一个很好的第一步。 请注意,您仍然必须调用结果以获取正确的数字类型(而不是另一个字符串):

  • 问题内容: 我听说散列(即将字符串或对象转换为数字)用于字符串等,因为比较数字比字符串更容易。如果为真,这是什么原因? 问题答案: 不一定是这种情况,但大多数时候可能是这样。 请考虑以下情况: 我想比较字符串“ apples”和“ oranges”。如果我只想确定“ apples” ==“ oranges”,我只需要比较每个字符串的第一个字符:’a’!=’o’=>“ apples”!=“ oran

  • 我正在用PyCharm编写一些python代码。当我编写以下测试时,它给了我一个警告。