富富猪猪 发表于 2020-8-25 14:00:08

PYTHON小白提问!紧急!!

为啥我这个还是错了呀??红色的东西代表什么呢?WHILE一般放在哪里的呢??谢谢大佬们 我要死了

富富猪猪 发表于 2020-8-25 14:00:51

要死了呜呜呜
自学成猪!!

sunrise085 发表于 2020-8-25 14:04:03

红色表示这一行有错误

你的错误是这一行最后少一个冒号

1q23w31 发表于 2020-8-25 14:07:44

富富猪猪 发表于 2020-8-25 14:00
要死了呜呜呜
自学成猪!!

标红的这行少了个冒号,另外代码第四行括号用的是中文

胡鸣谦 发表于 2020-8-25 14:16:21

guess没有定义

xiaosi4081 发表于 2020-8-25 14:16:43

这里才是正确代码:
import random
secret = random.randint(1,10)
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:")
while guess != secret:
    temp = int(input())
    if guess == secret:
      print("good!")
    else:
      if guess > secret:
            print("大")
      if guess < secret:
            print("小")
else:
    print("sorry")

print("gg")

胡鸣谦 发表于 2020-8-25 14:30:08

第四行括号(),()

Twilight6 发表于 2020-8-25 14:46:06

本帖最后由 Twilight6 于 2020-8-25 17:06 编辑

你的代码有四个错误:

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

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

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

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

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

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

print("gg")

print 函数里面的 end= '' 参数是为了打印不换行,配合 while 循环的 input 来达到更好的效果哈

富富猪猪 发表于 2020-8-25 16:58:16

xiaosi4081 发表于 2020-8-25 14:16
这里才是正确代码:

谢谢!

富富猪猪 发表于 2020-8-25 17:00:35

Twilight6 发表于 2020-8-25 14:46
你的代码有四个错误:

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


谢谢,为啥GUESS要有初始化值,那不就规定了它是0吗?

Twilight6 发表于 2020-8-25 17:03:58

本帖最后由 Twilight6 于 2020-8-25 17:06 编辑

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

抱歉,我的代码中还有个地方有点错误,就是循环中直接给 guess 赋值,已更改

Twilight6 发表于 2020-8-25 17:05:50

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

为啥GUESS要有初始化值

因为你开始没有定义 guess 的初始值的时候,代码执行到 while 循环时候 while 循环的 guess != secret 条件就无法判断,因为 guess 没初始值,就会导致报错

coolliqing 发表于 2020-8-25 17:30:22

本帖最后由 coolliqing 于 2020-8-25 17:32 编辑

Twilight6 发表于 2020-8-25 14:46
你的代码有四个错误:

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


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

print("gg")

这段代码里最后一个else,是和哪个if对齐的,没看明白

Twilight6 发表于 2020-8-25 17:32:00

coolliqing 发表于 2020-8-25 17:30
这段代码里最后一个else,是和哪个if对齐的,没看明白

这个和 while 是一对的,你学习到后面会学到 while-else,for-else 之类的语法的

coolliqing 发表于 2020-8-25 17:33:23

Twilight6 发表于 2020-8-25 17:32
这个和 while 是一对的,你学习到后面会学到 while-else,for-else 之类的语法的

谢谢{:5_109:}

Twilight6 发表于 2020-8-25 17:35:49

coolliqing 发表于 2020-8-25 17:33
谢谢

客气了~

象棋爱好者 发表于 2020-8-29 13:57:03

后面没加冒号

bangbang-ande 发表于 2020-8-29 21:20:16

楼上全部正解

myheartflyhigh 发表于 2020-8-30 11:02:31

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

这个不是规定它是0了,而是进行了一次赋值,一个变量可以进行很多次赋值。

靳子轩 发表于 2020-8-30 15:18:56

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

初始化仅仅是为了创建变量,可以随时更改的,不然容易NameError
页: [1] 2
查看完整版本: PYTHON小白提问!紧急!!