鱼C论坛

 找回密码
 立即注册
查看: 1684|回复: 12

[已解决]py第四课添加次数限制总在报错,求助

[复制链接]
发表于 2017-12-20 16:22:08 | 显示全部楼层 |阅读模式

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

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

x
import random
secret = random.randint(1,10)
print("~~~~我们开始拉~~~~~~")
temp = 3
while temp > 0:
    num=input("游戏开始咯:")
    num=int(num)
    while num != secret:
        num=input("再来一次嘛:")
        num=int(num)
        if num == secret:
            print("好厉害的棒棒哒")
       else temp = temp - 1:
            if num > secret:
                print("大了大了")
            else:
                 print("小了小了")
    else:
        print("游戏结束拉")
else:
    print("三次都猜不中,不玩拉")

在红色字那一行不断在报语法错误,求大神解答

最佳答案
2017-12-20 16:33:23
1.else 后面不能接判断语句,要接的话写成else if 或者 elif。
2.你的判断语句要写成 temp == temp - 1,一个 = 号是赋值语句;
3.如果你的 temp = temp - 1的确是赋值语句,那就要写在 else: 的下面,记得要有缩进。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-20 16:33:23 | 显示全部楼层    本楼为最佳答案   
1.else 后面不能接判断语句,要接的话写成else if 或者 elif。
2.你的判断语句要写成 temp == temp - 1,一个 = 号是赋值语句;
3.如果你的 temp = temp - 1的确是赋值语句,那就要写在 else: 的下面,记得要有缩进。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 16:36:31 | 显示全部楼层
没有看代码的逻辑问题,但是你得代码应该改为
  1. else:
  2.        temp -= 1
复制代码

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

使用道具 举报

发表于 2017-12-20 16:39:03 | 显示全部楼层
if/else  后面表达式必须是判断语句,你那个是赋值么,另外代码有点乱,不忍心看,简洁从小事开始
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-20 16:58:50 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-20 16:33
1.else 后面不能接判断语句,要接的话写成else if 或者 elif。
2.你的判断语句要写成 temp == temp - 1, ...

明白了,原来else后面不能有语句,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 16:59:13 | 显示全部楼层
猫不理 发表于 2017-12-20 16:58
明白了,原来else后面不能有语句,谢谢

不客气。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-20 16:59:21 | 显示全部楼层
小小鱼1 发表于 2017-12-20 16:39
if/else  后面表达式必须是判断语句,你那个是赋值么,另外代码有点乱,不忍心看,简洁从小事开始

谢谢帮助,我继续改进
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-20 17:15:50 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-20 16:33
1.else 后面不能接判断语句,要接的话写成else if 或者 elif。
2.你的判断语句要写成 temp == temp - 1, ...

顺便想问问 10<cost<50写成  50!< cost !<10  也可以吧,我觉得可以成立啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 17:24:56 | 显示全部楼层

不可以这么写,! 后面不能接 < 和 >, 就我目前所知只能接 = 。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-20 17:38:21 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-20 17:24
不可以这么写,! 后面不能接 < 和 >, 就我目前所知只能接 = 。

大神还有个问题,1 and 2 会显示2,1 or 2 会显示1,这又有什么根据啊,好像没有表达什么啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 17:47:06 | 显示全部楼层
猫不理 发表于 2017-12-20 17:38
大神还有个问题,1 and 2 会显示2,1 or 2 会显示1,这又有什么根据啊,好像没有表达什么啊

这在python中陈祚短路逻辑,逻辑操作符会返回它停止操作位置处的值。
and:两边为真即为真,所以程序会判断到右边才知道是真,此时停止操作,返回此处的值。
例:1 and 2,1 为真,它会判断右边的值才能知道整个逻辑表达式是 真是假,所以返回的是2。
一边为假即为假。
例:0 and 1,0 为假,右边的值不管为什么整个逻辑表达式都为假,所以此时逻辑操作符将不去查看右边的值,即停止操作,返回 0。

or也是一样原理。一边为真即为真,所以 1 or 2,不判断 2,返回 1.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-20 20:34:08 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-20 17:47
这在python中陈祚短路逻辑,逻辑操作符会返回它停止操作位置处的值。
and:两边为真即为真,所以程序会 ...

大神哥哥,我又有问题了,不是这里不行就那里不行,赶快帮我看一下可以么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 20:35:22 | 显示全部楼层
猫不理 发表于 2017-12-20 20:34
大神哥哥,我又有问题了,不是这里不行就那里不行,赶快帮我看一下可以么

可以,你说,能帮我尽力。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-4 23:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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