鱼C论坛

 找回密码
 立即注册
查看: 2122|回复: 10

[已解决]为什么不会打印第二个if

[复制链接]
发表于 2017-6-19 22:30:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 奔波儿 于 2017-6-20 07:54 编辑

为什么不等于的时候 不会打印第二个if判断的呢??? 我感觉写的跟教程python0基础入门 第四讲一样呀
现在不等于的时候 只会打印 “错啦,再给你一次机会”     我用的是python3.6。
  1. print("--------------------------奇葩的分割线------------")
  2. game=input("猜一猜我的年龄")
  3. guess=int(game)
  4. while guess !=21:
  5.     game =input("错啦,再给你一次机会")
  6.     guess = int (game)
  7.     if guess == 21:
  8.         print("我曹,你是我的小虫虫吗?")
  9.     else:
  10.         if guess > 21:
  11.             print("我哪有这么老")
  12.         else:
  13.             print("真当我小学生啊?")
  14. print("请继续输入硬币,谢谢!!!")

复制代码
最佳答案
2017-6-20 09:33:29
看代码我是看不出什么大问题,就是你while条件严格来说不能这样写;运行了一下你的代码他抛出了一个异常——SyntaxError: unexpected EOF while parsing  
简单查了意思是说:没有验证函数参数是否有效。(也是新手没理解意思。)
而且程序运行流程也是乱了,开始是让用户输入年龄,接下while循环还没判断又提示用户猜错了重新输入。我简单的修改了你的代码你参考下。
  1. print("--------------------------奇葩的分割线------------")
  2. guess = int(input("猜一猜我的年龄"))
  3. while True:
  4.     if guess == 21:
  5.         print("我曹,你是我的小虫虫吗?")
  6.         break
  7.     else:
  8.         if guess > 21:
  9.             print("我哪有这么老")
  10.         else:
  11.             print("真当我小学生啊?")
  12.     guess = int (input("错啦,再给你一次机会:"))
  13.      
  14. print("请继续输入硬币,谢谢!!!")
复制代码

if问题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-6-19 22:49:50 | 显示全部楼层
你好

不打印第二个if语句,是因为代码中的while循环,该while循环会一直进行,直到guess = 21才会退出循环,guess=21,符合第一个if语句
while guess !=21:
    game =input("错啦,再给你一次机会")
    guess = int (game)

另外,代码的逻辑结构较乱,建议梳理流程后优化代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-20 00:11:30 | 显示全部楼层
你是否知道“缩进”的作用?
下面这一段应该放到while循环中呀(也就是下面这部分整体加缩进),才会在输入错误的时候输出下面的语句。
  1. if guess == 21:
  2.     print("我曹,你是我的小虫虫吗?")
  3. else:
  4.     if guess > 21:
  5.         print("我哪有这么老")
  6.     else:
  7.         print("真当我小学生啊?")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-20 07:42:10 | 显示全部楼层
本帖最后由 奔波儿 于 2017-6-20 07:49 编辑
shuofxz 发表于 2017-6-20 00:11
你是否知道“缩进”的作用?
下面这一段应该放到while循环中呀(也就是下面这部分整体加缩进),才会在输 ...


您好,我之前一开始就是写到了while循环里面。按您说的一样,。但是执行无论对还是错,都是都不会执行if了

  1. print("--------------------------奇葩的分割线------------")
  2. game=input("猜一猜我的年龄")
  3. guess=int(game)
  4. while guess !=21:
  5.     game =input("错啦,再给你一次机会")
  6.     guess = int (game)
  7.     if guess == 21:
  8.         print("我曹,你是我的小虫虫吗?")
  9.     else:
  10.         if guess > 21:
  11.             print("我哪有这么老")
  12.         else:
  13.             print("真当我小学生啊?")
  14. print("请继续输入硬币,谢谢!!!")
复制代码

整体if判断都缩进在whlie里面

整体if判断都缩进在whlie里面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-20 07:44:19 | 显示全部楼层
thexiosi 发表于 2017-6-19 22:49
你好

不打印第二个if语句,是因为代码中的while循环,该while循环会一直进行,直到guess = 21才会退出循 ...

您好,新人入门刚会写if判断,是比较抠脚,哈哈哈

请问怎么样才能执行第二个if判断呢? 谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-20 08:55:47 | 显示全部楼层
奔波儿 发表于 2017-6-20 07:44
您好,新人入门刚会写if判断,是比较抠脚,哈哈哈

请问怎么样才能执行第二个if判断呢? 谢谢

哈哈,共同学习,我也是新人,来,握爪

建议多看看小甲鱼老师的教程,先思考下,别人直接告诉你就没意思啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-20 09:01:23 | 显示全部楼层
我运行过楼主的代码,完全没有问题的。不知道你是哪里有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-20 09:33:29 | 显示全部楼层    本楼为最佳答案   
看代码我是看不出什么大问题,就是你while条件严格来说不能这样写;运行了一下你的代码他抛出了一个异常——SyntaxError: unexpected EOF while parsing  
简单查了意思是说:没有验证函数参数是否有效。(也是新手没理解意思。)
而且程序运行流程也是乱了,开始是让用户输入年龄,接下while循环还没判断又提示用户猜错了重新输入。我简单的修改了你的代码你参考下。
  1. print("--------------------------奇葩的分割线------------")
  2. guess = int(input("猜一猜我的年龄"))
  3. while True:
  4.     if guess == 21:
  5.         print("我曹,你是我的小虫虫吗?")
  6.         break
  7.     else:
  8.         if guess > 21:
  9.             print("我哪有这么老")
  10.         else:
  11.             print("真当我小学生啊?")
  12.     guess = int (input("错啦,再给你一次机会:"))
  13.      
  14. print("请继续输入硬币,谢谢!!!")
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-6-20 09:43:14 | 显示全部楼层
奔波儿 发表于 2017-6-20 07:42
您好,我之前一开始就是写到了while循环里面。按您说的一样,。但是执行无论对还是错,都是都不会执行i ...
  1. game =input("错啦,再给你一次机会")
复制代码

input()函数是要接收一个输入数字的呀,
在控制台出现“错啦,再给你一次机会”后面需要你再继续输入一个数字,程序才会往下运行呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-20 09:46:04 | 显示全部楼层
走着来走去 发表于 2017-6-20 09:01
我运行过楼主的代码,完全没有问题的。不知道你是哪里有问题

我运行的时候,不等于的时候不会执行第二个if。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-20 09:59:17 | 显示全部楼层
Love_Linux_ 发表于 2017-6-20 09:33
看代码我是看不出什么大问题,就是你while条件严格来说不能这样写;运行了一下你的代码他抛出了一个异常— ...

其实我这写法,是根据小甲鱼  python入门004讲里面写的。。。。。 我操作结果是输入不正确的时候不会打印 第二个if里面判断的值。直接就打印了  “错啦,再给你一次机会” 这个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-4 02:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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