在猜数游戏中 while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢

1.Python中我按照python 2的教材在python 3 上写了一个猜数小游戏 但是运行之后 我写的代码在我猜对了数之后不会跳出循环, 而是又一次的开始了循环,直到次数用完。后来找大神改了一下代码可以成功运行了,但是对于其中 guess=int(input(""))和 if int(guess)有了疑问。
我用的就是Python自带的 IDLE

2.教材上的代码:

import random
secret = random.randint(1, 99)
guess = 0
tries = 0
print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!")
print ("It is a number from 1 to 99,I'll give you 8 tries. ")
while guess != secret and tries < 8:
    guess = input("what's yer guess? ")
    if guess < secret:
        print ("太小")
    elif guess > secret:
        print ("太大!")
    tries = tries + 1
if guess == secret:
    print ("答对了")
else:
    print ("没有机会了!")
    print ("正确答案",secret)

如果我按照教材上的代码运行会报错:
图片说明
大概意思就是不同的类型不能比较大小。所以我就在我的代码上改进了一下。

(2)我自己的代码:
因为教材上是在py 2上写的 我是在Py 3写的 所以有一点改动就是在guess前面加上了int

import random
secret = random.randint(1, 99)
guess = 0
tries = 0
print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!")
print ("It is a number from 1 to 99,I'll give you 8 tries. ")
while guess != secret and tries < 8:
    guess = input("what's yer guess? ")
    if int(guess) < secret:
        print ("太小")
    elif int(guess) > secret:
        print ("太大!")
    tries = tries + 1
if int(guess) == secret:
    print ("答对了")
else:
    print ("没有机会了!")
    print ("正确答案",secret)

但是我自己写的是可以运行了但是不会跳出while循环 我就很奇怪了,下面是我的运行结果报错:
图片说明
就是说我在第五次已经猜对了,但是并没有跳出循环而是继续让我猜了。(不能使用break,就是用单纯的while循环)

(3)大神改进后的代码:大神只是在教材上的代码稍加改动,结果就可以正确运行了,大神在源代码的

guess = input("what's yer guess? ")

改成了

guess = int(input("what's yer guess? "))

是在input钱加了int 详细如下:

import random
secret = random.randint(1, 100)
guess = 0
tries = 0
print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!")
print ("It is a number from 1 to 99,I'll give you 8 tries. ")
while guess != secret and tries < 8:
    guess = int(input("what's yer guess? "))
    if guess < secret:
        print ("太小")
    elif guess > secret:
        print ("太大!")
    tries = tries + 1
if guess == secret:
    print ("答对了")
else:
    print ("没有机会了!")
print ("正确答案",secret)

这样就可以完美输出了结果如下:
图片说明在第七次猜对之后直接跳出循环并结束了;大神给我简单解释说:在input上加, guess就是一个数值类型了,并且在当前循环中都是的; 你在 if int(guess)中这样使用
只是把输入的字符串变成了int 并没有赋值 ,此时guess还是字符串类型,你这种 guess = int(guess)
把转换成int的重新赋值在一个变量上才行.如果我输入40 本应该和随机的相等的,但是此时的40不是int

类型啊,字符串和int做比较,那怎么会相等呢."if ‘40’== 40,是这种形式了".
但是我不理解的是既然我的方法并没有让guess变成int型那代码是怎么运行并且还判断了大小了呢。
为此我有和我学Java的同学聊了一下 但是Java和Python语法上会有相差没有搞懂:

图片说明
现在就想请教一下大神 我这个是一个什么情况 ,第一次提问还是恳请大神讲解一下 本人是自学小白 只是大学学了一点编程
再补充一下: 就是我自己改的代码哪里一直没有跳出循环我一开始以为是缩进问题,但是我试过了并不是 而且我试着在print("答对了")下一行加上 break 结果我的代码就也能比较大小也能完美运行了,所以就对大神给我的解释更蒙了

我这个其实总共出现了两个问题吧一个是我的那种方法为什么不会跳出循环呢 第二个就是按照大神那样的改的话while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢

2个回答

首先,我也是自学小白,在看python从入门到实践,也就是python创始人写的书。你的问题我看了下,我自己写过后发现,兄弟,你在下面的if
语句中用了int(guess),那么上面while呢? 难道不应该是 while int(guess) != secret and tires < 8 : 吗?后面的你就不用改了
看我耐心的看了你的代码后,你看看我的代码,能在猜对了就退出,还能显示猜的次数,但是我这也有不明白的,我那个else为什么可以在哪个位置,不用缩进。我去,自己都把自己尴尬到了,你自己copy后运行一下(csdn中缩进我还是不会搞于是我就贴图了),猜对猜错都试一试,然后咱么两个小白互补一下图片说明
还有就是第三个if也可以是elif,亲测效果都一样。当然,你可别错过这条!!!!!!!!!!!!!!!!!!!!!!!!后面看其他代码时突然想到一个问题,就是else无意义,于是去掉了,然后发现运行结果一致,噗笑哭,所以图片里面的else没意义,完全可以去掉,不过如果想在完成游戏(无论是猜对还是猜错)都有over输出,就请一定要注意缩进。!!!!

weixin_44074810
宗文博 https://blog.csdn.net/weixin_44074810/article/details/88694460 这个是链接
9 个月之前 回复
weixin_44074810
宗文博 兄弟你可以加我QQ:1691598339我给你解释一下或者我一会把你的问题写一个博客放出来 你可以看一下 因为我不知道回复你消息怎么添加图片
9 个月之前 回复

while guess!=secret and tries<8,你这循环的条件就是不够8次,就算猜对了也会再次循环的啊

Python_Leaner
Python_Leaner 上一条回答没理解你的意思,你看啊,while循环是当满足条件时循环while之后的语句对吧,意思就是当猜的数字不等于随机数and变量tires(猜的次数)<8这两个条件都满足时,退出while循环,但是当他猜的数字=随机数字后,已经不满足while语句了,但仍没有退出循环,所以是你没理解意思啦。
9 个月之前 回复
Python_Leaner
Python_Leaner 兄弟,python会从0.1.2.3.4.5.6.7这样来运行8次,所以次、是足够的
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python时间函数例题解析
-
用pyinstaller生成的exe可执行程序,每次运行到最后出结果一步就闪退,怎么解决?
-
利用Python运行结果不全,这是为什么?
-
猜数字(Bulls and Cows)如何用python实现?
-
新手Python入门题,不知道哪里不对,求各位帮忙
-
java中出现一个嵌套问题
-
新手求助C语言,求大神解答
-
小白求答,写了个猜字母的代码,可是它识别不了我的答案,求大神解惑
-
笨方法学python3上的习题43AttributeError: 'NoneType' object has no attribute 'enter',哪错了
-
刷ACM小伙伴进Uva oj 340 - Master-Mind Hints
-
在用ffmpeg 2.0做一个转码工具的时候,转出的视频 视频播放速度变快
-
使用c语言实现熄灯问题
-
能帮我看看这段程序有什么问题吗?为什么运行的时候总是显示invalid syntax?
-
史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依旧在使用eclipse或者Myeclipse开发,我想对这些朋友说IDEA 的编译速度很快,人生苦短,来不及解释了,直接上手idea吧。这篇文章每一步搭建过程都测试过了,应该不会有什么差错。本文章还有个比较优秀的特点,就是idea的使用,基本上关于idea的操作都算是比较详细的,所以不用太担心不会撸idea!最后,本文
爬虫小程序 - 爬取王者荣耀全皮肤
你也想要王者荣耀全皮肤吗?
动态规划入门到熟悉,看不懂来打我啊
2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3, 5, 8, 13, ...
从入门到精通,Java学习路线导航
引言 最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。 Java学习路线 当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方面,我也不是很了解。 基础阶段 首先是基础阶段,在基础阶段,我们必须掌握Java基础,Mysql数据库,Ora...
如何优雅的爬妹子网
from urllib import request import os from user_agents import ua_list import time import random import re import requests from lxml import etree class MeiziSpider(): def init(self): self.url = ‘https:/...
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
面试官,不要再问我三次握手和四次挥手
三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的: 面试官:请介绍下三次握手 求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就...
Java入门学习路线目录索引(持续更新中)
新增: Redis 入门 【Redis缓存】- 入门——Redis介绍和环境搭建【Redis缓存】- Redis数据结构、基本命令操作、持久化【Redis缓存】- Java客户端Jedis SpringBoot 入门 【SpringBoot 框架】- 入门——环境搭建、工程热部署、idea快捷创建SpringBoot项目【SpringBoot 框架】- SpringBoot 原理分析【S...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
这应该是把计算机网络五层模型讲的最好是文章了,看不懂你打我
帅地:用心写好每一篇文章! 前言 天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送给它呢? 可能很多人都听说过网络通信的 5 层模型,但是可能并不是很清楚为什么需要五层模型,五层模型负责的任务也有可能经常混淆。下面是网络通信的五层模型 说实话,五层模型的具体内容还是极其复杂的,不过今天这篇文章,我将用最简洁的模式,通过网...
HTML CSS整理笔记
常见字体单位: 1.em 移动端常用的字体尺寸单位,说白em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5。 但当div进行嵌套时,em始终按当前div继承的字体大小来缩放。 2.rem r是root的意思,即相对于根节点html的font-size进行缩放,当有嵌套关系时,嵌套关系的元素的字体大小始终按照根节点的字体大小...
史上最全的mysql基础教程
启动与停止 启动mysql服务 sudo /usr/local/mysql/support-files/mysql.server start 停止mysql服务 sudo /usr/local/mysql/support-files/mysql.server stop 重启mysql服务 sudo /usr/local/mysql/support-files/mysql.server resta...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
大学四年,我把私藏的自学「学习网站/实用工具」都贡献出来了
在分享之前,先说说初学者如何学习编程,这个话题想必非常的重要,要学好编程,给你一些学习网站也好、实用工具也好,但前提是你知道如何去学习它。 见过很多初学者,以及小鹿我刚开始学习的时候,也是自己瞎摸索,找不到路子,看什么书?看什么资料?编程的方向太多了,如果确定自己的方向?尤其是上大一、大二甚至大三还没有确定自己到底是学习前端还是后天,每天这学一点,那学一块,掌握那么多,没有一门精通的,去面试的时候...
中国麻将:世界上最早的区块链项目
中国麻将:世界上最早的区块链项目 最近区块链这个玩意又被市场搞的很是火热,相信大部分人都不太清楚这玩意到底是怎么样的一个概念,它来了,它来了,它到底是啥~ 国家都开始发文支持了,下面是一个通俗易懂的例子:中国麻将。 甲首先发起一个申请,我要打麻将,组建一个麻将局,这就相当于创建一个区块,这个区块会被广播...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
Python 入门必备知识,你都掌握了吗?
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
Ngrok: 超简单的内网穿透,了解一下 ?
【1】什么是内网穿透? 首先,我们生活中的网络从应用上可以分为内网和外网; 内网就是你自己的网络环境,就你自己能访问,比如你本地测试进行的localhost; 外网就不言而喻了,你看网页,视频等这些网址都是外网。 那么什么又是内网穿透呢?简单的说就是通过访问一个外网地址,然后穿透到你的内网地址。 【2】内网穿透有什么用? 【情景1】 假设你写了一个代码功能,本地测试已经OK,此...
反射全解
反射的概念 反射的引入: Object obj = new Student(); 若程序运行时接收到外部传入的一个对象,该对象的编译类型是Object,但程序又需要调用该对象运行类型的方法: 1.若编译和运行类型都知道,使用 instanceof判断后,强转。 2.编译时根本无法预知该对象属于什么类,程序只能依靠运行时信息来发现对象的真实信息,这时就必须使用反射了。 3.要是想得到对象...
图解面试题:如何提高SQL查询的效率?
【题目】我们公司的数据量非常大,需要的不仅仅是提取数据,要了解SQL方案优化的。一般在写SQL时需要注意哪些问题,可以提高查询的效率?【解题思路】数据量大的情况下,不同的SQL语句,消耗的时间相差很大。按下面方法可以提高查询的效果。1. select子句中尽量避免使用*select子句中,*是选择全部数据的意思。比如语句:“select * from 成绩表”,意思是选择成绩表中所有列的数据。在我...
死磕C语言指针
兜兜转转还是逃不过 C 语言,这该死的缘分。 先看一眼我的西野七濑 学习自:https://zhuanlan.zhihu.com/p/89121683 1 指针 1.1 指针是乜嘢 指针(pointer):一个值为内存地址的变量。 char 类型变量的值是字符,int 类型变量的值是整数,指针变量的值是地址。 1.2 指针的声明 数据类型 *指针名,这里的 * 表明声明的变量是...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
从一个示例入手,带你一步一步掌握SQL优化的技巧!
论文读不懂怎么办?
王树义读完需要18分钟速读仅需6分钟悄悄告诉你几个窍门。1 痛苦做科研,不能不读论文。但是,我见过不少研究生,论文都读得愁眉苦脸的。这其中,自然有因为拖延的关系。例如教授布置了2周后讨论论文,你原本可以每天抽出时间,慢慢消化。可你非得拖到截止日期的前一天晚上才打开看,希望毕其功于一役……这显然是态度问题。但是,不可忽略的,有些同学,却真的不是态度问题,而是方法不当。他们喜欢跟论文死磕。读不懂,...
送给单身猿们的表白神器
问天下男生,有谁想单身?又有谁想单身一辈子? 虽然本人也是单身狗,但是也是有一个远大的理想,哈哈,大白天的我又开始做梦了 原网址:http://wfhuang.coding.me/LoveJuan/ 在找到一个网页的时候就把它收藏下来了,但是后来觉得不爽,为什么我不能把它抠下来呢?然后想怎么改就怎么改!为所欲为,哈哈!怎么抠下来就不说了,大家应该都知道,如果不知道可以私聊我 再借用https://...
python学习目录
这是我学习python的一套流程,从入门到上手 一、Python入门、环境搭建、变量、数据类型 二、Python运算符、条件结构、循环结构 三、Python函数 四、做一次综合练习,做一个控制台的员工管理 """ 需求:员工管理系统 功能: 1.添加员工信息 2.删除员工信息 3.修改员工信息 4.查看单个员工信息 5.查看所有员工信息 6.退出 技术:函数、数据类型(字典列表)、循环、条...
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】
点进文章的盆友不如先来做一道非常常见的面试题,如果你能做出来,可能你早已掌握并理解了java的类加载机制,若结果出乎你的意料,那就很有必要来了解了解java的类加载机制了。代码如下嗯哼?其实上面程序并不是关键,可能真的难不倒各位,不妨做下面一道面试题可好?如果下面这道面试题都做对了,那没错了,这篇文章你就不用看了,真的。
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
相关热词 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目 c#字段在哪加入 c# 的asp网页倒计时 c# 模拟 鼠标
立即提问