鱼C论坛

 找回密码
 立即注册
查看: 3186|回复: 20

[已解决]PYTHON小白提问!紧急!!

[复制链接]
发表于 2020-8-25 14:00:08 | 显示全部楼层 |阅读模式

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

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

x
为啥我这个还是错了呀??红色的东西代表什么呢?WHILE一般放在哪里的呢??谢谢大佬们 我要死了
最佳答案
2020-8-25 14:46:06
本帖最后由 Twilight6 于 2020-8-25 17:06 编辑

你的代码有四个错误:

第一,最明显的语法错误,也就是你红色的那行 while 循环语句那最后少了个冒号

第二,你图片中没有导入 random 的伪随机数模块,不能直接使用 random.randint 函数

第三,你的 guess 变量没有进行初始化值,需要在 while 代码前面初始化下 guess 的值 否则代码也是错误的

第四,input 函数返回的永远是字符串,如果你和 secret 一个整数进行判断是否相等,要将字符串转化为整型,因为字符串的 '1' 是不等于整型 1 的,他们是两种不同类型的值

在你代码基础上,顺便帮你改进了下代码,参考代码:

  1. import random
  2. secret = random.randint(1,10)
  3. guess = 0
  4. print("不妨猜一下小甲鱼现在心里想的是哪个数字:",end='')
  5. while guess != secret:
  6.     guess = int(input())
  7.     if guess == secret:
  8.         print("good!")
  9.     else:
  10.         if guess > secret:
  11.             print("大了,请重新输入:",end='')
  12.         if guess < secret:
  13.             print("小了,请重新输入:",end='')
  14. else:
  15.     print("sorry")

  16. print("gg")
复制代码


print 函数里面的 end  = '' 参数是为了打印不换行,配合 while 循环的 input 来达到更好的效果哈
O8{CS%(G`$4Y%DX[JKK(PGO.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-8-25 14:00:51 | 显示全部楼层
要死了呜呜呜
自学成猪!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 14:04:03 | 显示全部楼层
红色表示这一行有错误

你的错误是这一行最后少一个冒号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-25 14:07:44 | 显示全部楼层
富富猪猪 发表于 2020-8-25 14:00
要死了呜呜呜
自学成猪!!

标红的这行少了个冒号,另外代码第四行括号用的是中文
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 14:16:21 | 显示全部楼层
guess没有定义
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 14:16:43 | 显示全部楼层
这里才是正确代码:
  1. import random
  2. secret = random.randint(1,10)
  3. guess = 0
  4. print("不妨猜一下小甲鱼现在心里想的是哪个数字:")
  5. while guess != secret:
  6.     temp = int(input())
  7.     if guess == secret:
  8.         print("good!")
  9.     else:
  10.         if guess > secret:
  11.             print("大")
  12.         if guess < secret:
  13.             print("小")
  14. else:
  15.     print("sorry")

  16. print("gg")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-8-25 14:30:08 | 显示全部楼层
第四行括号(),()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 14:46:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-8-25 17:06 编辑

你的代码有四个错误:

第一,最明显的语法错误,也就是你红色的那行 while 循环语句那最后少了个冒号

第二,你图片中没有导入 random 的伪随机数模块,不能直接使用 random.randint 函数

第三,你的 guess 变量没有进行初始化值,需要在 while 代码前面初始化下 guess 的值 否则代码也是错误的

第四,input 函数返回的永远是字符串,如果你和 secret 一个整数进行判断是否相等,要将字符串转化为整型,因为字符串的 '1' 是不等于整型 1 的,他们是两种不同类型的值

在你代码基础上,顺便帮你改进了下代码,参考代码:

  1. import random
  2. secret = random.randint(1,10)
  3. guess = 0
  4. print("不妨猜一下小甲鱼现在心里想的是哪个数字:",end='')
  5. while guess != secret:
  6.     guess = int(input())
  7.     if guess == secret:
  8.         print("good!")
  9.     else:
  10.         if guess > secret:
  11.             print("大了,请重新输入:",end='')
  12.         if guess < secret:
  13.             print("小了,请重新输入:",end='')
  14. else:
  15.     print("sorry")

  16. print("gg")
复制代码


print 函数里面的 end  = '' 参数是为了打印不换行,配合 while 循环的 input 来达到更好的效果哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2020-8-25 16:58:16 | 显示全部楼层
xiaosi4081 发表于 2020-8-25 14:16
这里才是正确代码:

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

使用道具 举报

 楼主| 发表于 2020-8-25 17:00:35 | 显示全部楼层
Twilight6 发表于 2020-8-25 14:46
你的代码有四个错误:

第一,最明显的语法错误,也就是你红色的那行 while 循环语句那最后少了个冒号

谢谢,为啥GUESS要有初始化值,那不就规定了它是0吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 17:03:58 | 显示全部楼层
本帖最后由 Twilight6 于 2020-8-25 17:06 编辑

富富猪猪 发表于 2020-8-25 17:00
谢谢,为啥GUESS要有初始化值,那不就规定了它是0吗?


抱歉,我的代码中还有个地方有点错误,就是循环中直接给 guess 赋值,已更改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 17:05:50 | 显示全部楼层
富富猪猪 发表于 2020-8-25 17:00
谢谢,为啥GUESS要有初始化值,那不就规定了它是0吗?

为啥GUESS要有初始化值


因为你开始没有定义 guess 的初始值的时候,代码执行到 while 循环时候 while 循环的 guess != secret 条件就无法判断,因为 guess 没初始值,就会导致报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 17:30:22 | 显示全部楼层
本帖最后由 coolliqing 于 2020-8-25 17:32 编辑
Twilight6 发表于 2020-8-25 14:46
你的代码有四个错误:

第一,最明显的语法错误,也就是你红色的那行 while 循环语句那最后少了个冒号

  1. import random
  2. secret = random.randint(1,10)
  3. guess = 0
  4. print("不妨猜一下小甲鱼现在心里想的是哪个数字:",end='')
  5. while guess != secret:
  6.     guess = int(input())
  7.     if guess == secret:
  8.         print("good!")
  9.     else:
  10.         if guess > secret:
  11.             print("大了,请重新输入:",end='')
  12.         if guess < secret:
  13.             print("小了,请重新输入:",end='')
  14. else:                                                           #这个else跟哪个if是一对的
  15.     print("sorry")

  16. print("gg")
复制代码


这段代码里最后一个else,是和哪个if对齐的,没看明白
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 17:32:00 | 显示全部楼层
coolliqing 发表于 2020-8-25 17:30
这段代码里最后一个else,是和哪个if对齐的,没看明白

这个和 while 是一对的,你学习到后面会学到 while-else,for-else 之类的语法的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 17:33:23 | 显示全部楼层
Twilight6 发表于 2020-8-25 17:32
这个和 while 是一对的,你学习到后面会学到 while-else,for-else 之类的语法的

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

使用道具 举报

发表于 2020-8-25 17:35:49 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 13:57:03 | 显示全部楼层
后面没加冒号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 21:20:16 | 显示全部楼层
楼上全部正解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 11:02:31 | 显示全部楼层
富富猪猪 发表于 2020-8-25 17:00
谢谢,为啥GUESS要有初始化值,那不就规定了它是0吗?

这个不是规定它是0了,而是进行了一次赋值,一个变量可以进行很多次赋值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-30 15:18:56 | 显示全部楼层
富富猪猪 发表于 2020-8-25 17:00
谢谢,为啥GUESS要有初始化值,那不就规定了它是0吗?

初始化仅仅是为了创建变量,可以随时更改的,不然容易NameError
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-26 11:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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