为什么我的代码没有在pythonide中运行

2024-06-23 19:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两组代码,我刚刚开始学习Python以满足我的需要: 有两个不同的ide(PyCharm Comm Edn)和PyDev,两个都试过了

第二组运行成功,但第一组没有,比较两组代码除了字符串引号和缩进没有太大区别。你知道吗

第一套代码:

class Car:
    def __init__(self):
        self.speed = 0
        self.odometer = 0
        self.time = 0

    def say_state(self):
        print("I'm going {} kph".format(self.speed))

    def accelerate(self):
        self.speed += 5

    def brake(self):
        self.speed -= 5

    def step(self):
        self.odometer += self.speed
        self.time += 1

    def average_speed(self):
        return self.odometer / self.time

    if __name__ == '__main__':
        my_car = Car()
        print("I am a Car")

    while True:
        action = input("What Should I Do"
                       "[A]ccelerate, [B]rake show [O]dometer"
                       "Or Show average [S]peed").upper()
        if action not in "ABOS" or len(action) != 1:
            print("I DOnt Know how to do that")
            continue
        if action == 'A':
            my_car.accelerate()

        elif action == 'B':
            my_car.brake()

        elif action == 'O':
            print("My Car has driven {} Kilometers".format(my_car.odometer))

        elif action == 'S':
            print("The Car average speed was  {} Kilometers".format(my_car.average_speed()))
            my_car.step()
            my_car.say_state()

第二套代码:

class Car:
    def __init__(self):
        self.speed = 0
        self.odometer = 0
        self.time = 0

    def say_state(self):
        print("I'm going {} kph!".format(self.speed))

    def accelerate(self):
        self.speed += 5

    def brake(self):
        self.speed -= 5

    def step(self):
        self.odometer += self.speed
        self.time += 1

    def average_speed(self):
        return self.odometer / self.time


if __name__ == '__main__':
    my_car = Car()
    print("I'm a car!")
    while True:
        action = input("What should I do? [A]ccelerate, [B]rake, "
            "show [O]dometer, or show average [S]peed?").upper()
        if action not in "ABOS" or len(action) != 1:
            print("I don't know how to do that")
            continue
        if action == 'A':
            my_car.accelerate()
        elif action == 'B':
            my_car.brake()
        elif action == 'O':
            print("The car has driven {} kilometers".format(my_car.odometer))
        elif action == 'S':
            print("The car's average speed was {} kph".format(my_car.average_speed()))
        my_car.step()
        my_car.say_state()

我试了所有可能的方法让它工作。 对问题中的任何错误表示歉意!这里stackoverflow中的代码缩进也是不同的。你知道吗

我也尝试过IDE的自动缩进和缩进,通过选择整个代码,现在我可以忽略集合1而放弃集合2,但我想知道的是,为什么在这个集合在词汇上是正确的时候,第一个集合会给我错误。你知道吗

错误集1:

E:\Learn_Python\venv\Scripts\python.exe E:/Python_Learning_Projects/Car.py
Traceback (most recent call last):
  File "E:/Python_Learning_Projects/Car.py", line 1, in 
    class Car:
  File "E:/Python_Learning_Projects/Car.py", line 24, in Car
    my_car = Car()
NameError: name 'Car' is not defined

Process finished with exit code 1

Tags: 代码selfformatiftimemydefaction

热门问题