为什么这里`bool`的结果是True?

19 浏览
0 Comments

为什么这里`bool`的结果是True?

这个问题已经有答案了

在Python中将字符串转换为布尔值

self参数的目的是什么?为什么需要它?

Python中的\'super\'是什么?- 超类__init__()与显示调用超类__init__()方法之间的区别。

这是我的代码:

class car():
    #defines a car model,speed,condition, and if you want to repair
    def __init__(self,model,speed):
        self.model = model
        self.speed = speed
    def roar(str = "vrooooooom"):
        print(str)
    def condition():
        user = bool(input('Is the car broken? True or False\n'))
        if user == True:
            print("Find local repair shop")
        else:
            print("No damage")
    def repair():
        wheels = ['O','O','O','O']
        if super().condition() == True:
            choice = input('Which one? 1-4\n')
            wheels[choice] = 'X'

当我调用class.condition并传入False时,我得到的是“找到本地维修店”,尽管我想要“无损坏”。至于修复,我觉得我在使用super()方法的时候有些错误。

admin 更改状态以发布 2023年5月23日
0
0 Comments

这不是它的工作方式。根据这篇文章的内容,
Python将任何非空字符串视为True。因此,当您输入False时,它变成一个非空字符串,该字符串评估为True

相反,您应该这样做。

def condition():
    user = input('Is the car broken? True or False\n')
    if user == 'True':
        print("Find local repair shop")
    else:
        print("No damage")

0