Python简单数字比较

2023-12-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"

不幸的是,我的代码从未运行过 if 语句,即使这样,即使我为用户输入“1”,它也总是打印“您的数字太大”。


raw_input()返回一个string价值。先把它变成一个整数:

user = int(raw_input('> '))

由于 Python 2 将数字排序在字符串之前,因此,您的user > computer无论输入什么内容,test 都将始终返回 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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python简单数字比较 的相关文章

随机推荐

  • Lumia Imaging SDK 图像混合创建分隔线

    我正在尝试使用 Lumia Imaging SDK 创建平铺背景JpegTools BlendAsync 方法 我循环调用该方法来合并所有平铺图像 该方法有效 但输出图像中存在不需要的线条 这些分隔线出现在单个图块图像的边界处 合并不干净
  • 当文件名有空格时,运行时 exec() 不运行命令[重复]

    这个问题在这里已经有答案了 我是 Java 新手 正在尝试将我的一个项目从 C 转换为 Java 以便将其与另一个 Java 程序结合起来 当我使用 Runtime exec 时 我很难获得正确的结果 我有以下程序段 Java 忽略处理给定
  • 在cpp中将字符串转换为_T

    我想转换string or char to the T但做不到 如果我写 tcscpy cmdline T hello world 它工作得很好 但是如果我写 char msg hello world tcscpy cmdline T ms
  • Spring中的数据库连接管理

    使用 Spring 框架时我们是否必须显式管理数据库资源 比如关闭所有打开的连接等 我读到 Spring 将开发人员从此类样板代码中解放出来 这是为了回答我在 Spring Web 应用程序中遇到的错误 org springframewor
  • 模式扩展以运行命令

    知道我能跑echo or mv扩展这样的模式 echo 0 9 A Z 我很想知道是否有办法执行相同的操作但运行命令 docker compose stop rm up d 上面的例子不起作用 但有某种方法可以实现这一点 分别运行 stop
  • 如何实现错误处理?

    我的 AutoIt 脚本生成了一个我想要处理的错误 将任何错误发送到自定义函数的方式也可以 在VBA中我使用OnErrorGoTo 但我无法在 AutoIt 中找到类似的东西 我的代码 Func Start While 1 If Proce
  • Apps 脚本 - 在 Google 表格上复制“将图像放入所选单元格”

    我目前正在通过 Apps 脚本功能在 Google 表格中插入多个图像插入图片 使用它 该函数将图像插入到单元格上方 而不是单元格内部 我可以通过单击三个点按钮 然后选择 将图像放入所选单元格 将该图像插入到单元格中 如下所示link 这里
  • 没有 Google Play 的 Android Admob

    我在网上找不到任何东西 有没有办法使用 AdMob SDK 通过我的应用程序获利 而无需将应用程序放在 Google Play 商店中 你们中有人可能知道吗 提前致谢 您无需通过 Google Play 分发应用程序即可使用 AdMob S
  • 嵌套查询 MVC LINQ

    我是新来的MVC and LINQ 目前 我在该项目上遇到了困难 并决定发布 My MVC View我想要实现的目标 Cut 1 20 2 40 Color 3 30 4 50 Perm 5 10 这是我的数据表的一些示例 ID Offer
  • 未捕获的类型错误未定义不是函数

    我是 JQuery 新手 不知道如何处理诸如未捕获之类的错误TypeError undefined is not a function 我不知道如何按顺序排列下面的 jQuery 代码 有人可以安排一下吗 model Mvc4 WebGri
  • 有没有办法从 Zend Framework 的引导程序重定向浏览器?

    我需要根据引导文件中的某些条件进行重定向 这是在定义前端控制器和路由之后完成的 我怎么做 我知道我可以简单地使用 header Location 重点是我需要使用 Router 来构建 URL 一年多后 我在 ZF 编程 我为你的问题找到了
  • 如何导航到 WP7 中的不同枢轴项目

    我有一个全景页面 其中有 3 个按钮 我已将一个数据透视页添加到具有 3 个数据透视项的同一项目中 当我单击全景页面中的按钮 1 时 它应该转到数据透视页面中的第一个数据透视项目 当我单击全景页面中的按钮 2 时 它应该转到数据透视页面中的
  • Boost asio - 分离不同的数据块

    想象一下 我们创建简单的客户端 服务器应用程序来将文件从客户端发送到服务器 我们使用boost asio 服务器开始监听 客户端连接到服务器 客户端发送文件名和文件内容 但服务器只接收字节流 服务器如何检测文件名结尾和文件内容开头 我的第一
  • 使用 appium 运行量角器脚本时:使用定位器找不到元素

    我正在使用 Ipad Air 模拟器 appium 和量角器来自动执行 Angular JS 站点的测试 但测试无法成功通过 它告诉我使用定位器找不到元素 我确信 xpath 与 Appium 生成的相同 这是我的配置文件 exports
  • Java JNDI API 用户无法通过多林设置对 AD 进行身份验证

    在我的测试环境中 我设置了两个活动目录林 A 和 B 每个林都有一个域控制器 并且林有两种信任设置 我有用户 森林中的用户 S 和森林中的用户 B 我已经使用 adfind exe 来测试 userA 和 userB 是否可以通过点击for
  • 如何始终在 MSBuild 中执行目标

    我有一个 MSBuild 文件 它在编译应用程序之前操作 AssemblyInfo 文件 在构建结束时 它会恢复 AssemblyInfo 文件 它通过备份文件 操作文件 然后在构建时间后恢复文件来实现此目的 除非在构建过程中发生错误 否则
  • ASP.NET 数据缓存 - 在应用程序域重新启动后保留内容

    我正在使用 ASP NET 的数据缓存 API 例如 HttpRuntime Cache Insert my data my key 有没有办法配置缓存 以便在应用程序域回收时保留其内容 我将许多对象加载到缓存中 但是每次应用程序域重新启动
  • PowerShell - 如何迭代 PSCustomObject 嵌套对象?

    我觉得这很简单 但我只是不明白 我不确定我的解释是否很好 我有下面的 JSON 文件 我想在 New 对象下获取 每个应用程序 App1 App2 App3 在下面的脚本行中 我本质上是尝试用一些变量替换 TestApp2 我想我正在尝试在
  • 删除第二个冒号后的文本

    我需要删除第二个冒号之后的所有内容 我有几种日期格式 需要使用相同的算法进行清理 a lt 2016 12 31T18 31 34Z b lt 2016 12 31T18 31Z 我尝试匹配两个列组 但我似乎无法找出如何删除第二个匹配组 s
  • Python简单数字比较

    问题 计算机随机生成一个数字 用户输入一个数字 计算机会告诉你是否太高或太低 然后你将继续猜测 直到猜出数字为止 我的解决方案 import random computer random randint 1 500 def guessNum