小桥流水清无鱼 发表于 2021-5-7 16:48:34

想不通到底缩进到底哪里出问题了

想不通下面的码为什么冒号后按确认健,系统自动换行的会有缩进问题

import random as r
      
legal_x =
legal_y =

class Turtle:
      def __init__(self):
                self.power = 100
                self.x = r.randint(legal_x,legal_x)
                self.y = r.randint(legal_y,legal_y)
      def move(self):
                new_x = self.x + r.choice()
                new_y = self.y + r.choice()

                if new_x < legal_x:
                        self.x = legal_x - (new_x - legal_x)
                elif new_x > legal_x:
                        self.x = legal_x - (new_x - legal_x)
                else:
                        self.x = new_x

                if new_y < legal_y:
                        self.y = legal_y - (new_y - legal_y)
                elif new_y > legal_y:
                        
                        self.y = legal_y - (new_y - legal_y)
                else:
                        self.y = new_y

                self.power -= 1

                return(self.x,self.y)

      def eat(self):
                self.power += 20
                if self.power > 100:
                        self.power = 100

class Fish:
      def __init__(self):
                self.x = r.randint(legal_x,legal_x)
                self.y = r.randint(legal_y,legal_y)
      def move(self):
                new_x = self.x + r.choice()
                new_y = self.y + r.choice()

                if new_x < legal_x:
                        self.x = legal_x - (new_x - legal_x)
                elif new_x > legal_x:
                        self.x = legal_x - (new_x - legal_x)
                else:
                        self.x = new_x

                if new_y < legal_y:
                        self.y = legal_y - (new_y - legal_y)
                elif new_y > legal_y:
                        self.y = legal_y - (new_y - legal_y)
                else:
                        self.y = new_y

                return(self.x,self.y)


turtle =Turtle()
fish = []
for i in range(10):
      new_fish = Fish()
      fish.append(new_fish)

while True:
      if not len(fish):
                print("鱼儿都吃完了,游戏结束!")
                break
      if not turtle.power:
                print("乌龟体力耗尽,挂掉了!")
                break
      
      pos = turtle.move()

      
      for each_fish in fish[:]:
                if each_fish.move == pos:
                        turtle.eat()
                        fish.remove(each_fish)
                        print("有一条鱼儿被吃掉了...")



明明都跟小甲鱼的答案一样的,为什么每次运行就只是乌龟挂掉了呢?
换行都是冒号后按的确认健自动换行的,也没Tab空格混用


qq1151985918 发表于 2021-5-7 16:55:50

报错信息是什么

小桥流水清无鱼 发表于 2021-5-7 17:00:48

qq1151985918 发表于 2021-5-7 16:55
报错信息是什么

没显示报错,就是永远都是打印出乌龟体力耗尽,挂掉了

YouCam 发表于 2021-5-7 17:34:31

会不会是一直执行move(),里面有个self.power -= 1, 那就秒减完了,就死了

小桥流水清无鱼 发表于 2021-5-7 17:42:09

本帖最后由 小桥流水清无鱼 于 2021-5-7 17:52 编辑

为什么系统第7行开始,系统回车键是8个字符而不是4个了呢?

小桥流水清无鱼 发表于 2021-5-7 17:53:09

YouCam 发表于 2021-5-7 17:34
会不会是一直执行move(),里面有个self.power -= 1, 那就秒减完了,就死了

那个没问题的哦,有定初始生命值100的,第八行

小桥流水清无鱼 发表于 2021-5-7 18:08:52


把for i in range(10)打后的换成小甲鱼的答案又正常了
但是他答案的回车缩进4个,我电脑的回车缩进是8个

南归 发表于 2021-5-7 18:11:19

idle"智能"编译器

小桥流水清无鱼 发表于 2021-5-7 18:21:00

南归 发表于 2021-5-7 18:11
idle"智能"编译器

我这回车缩进自动8个空格,是什么原因呢{:10_269:}

TC_DHL 发表于 2021-5-7 19:07:23

小桥流水清无鱼 发表于 2021-5-7 18:21
我这回车缩进自动8个空格,是什么原因呢

开始尝试pycharm或者vscode吧, 用idle学习感觉意义不大

Stubborn 发表于 2021-5-7 21:18:41

TC_DHL 发表于 2021-5-7 19:07
开始尝试pycharm或者vscode吧, 用idle学习感觉意义不大

怎么说呢,大型开发比较方便,写惯之后,就有中。。比如一般pycharm导包按im后面提示就出来了,换到普通的编辑软件导包的时候就会想im什么来着,没有提示,好烦,想了好久,哦,是import{:5_104:}
页: [1]
查看完整版本: 想不通到底缩进到底哪里出问题了