gpt4 book ai didi

python - 检查对象的属性和变量是否相等

转载 作者:行者123 更新时间:2023-12-01 07:44:52 25 4
gpt4 key购买 nike

考虑下面的代码。我想在输入中输入颜色和消息,格式为:“输入:蓝色,'消息'”,它应该打印蓝色球的大小,即 4。但此方法不起作用。

class Ball(object):

def __init__(self, color, size):
self.color = color
self.size = size

b = []
b.append(Ball('red', '3'))
b.append(Ball('blue', '4'))
b.append(Ball('green', '5'))
b.append(Ball('grey', '6'))
b.append(Ball('black', '7'))
b.append(Ball('purple', '8'))

inp = input()
temp_inp = inp.split(':')[1]
inp_, message = [x.lower() for x in temp_inp.split(",")]
for each in b:
if inp_ == each.color:
print(each.size)

如果我尝试使用相同的等式运算符与输入,它工作正常。 球类(对象):

    def __init__(self, color, size):
self.color = color
self.size = size

b = []
b.append(Ball('red', '3'))
b.append(Ball('blue', '4'))
b.append(Ball('green', '5'))
b.append(Ball('grey', '6'))
b.append(Ball('black', '7'))
b.append(Ball('purple', '8'))

inp = input()
for each in b:
if inp == each.color:
print(each.size)

最佳答案

问题是字符串 inp_ 中有多余的空格。打印时您不会注意到它,但您需要在比较之前将其剥离。

inp = "Input: blue, 'message'"
temp_inp = inp.split(':')[1]
inp_, message = [x.lower().strip() for x in temp_inp.split(",")] # <--- strip here

for each in b:
if inp_ == each.color:
print(each.size)

# 4

关于python - 检查对象的属性和变量是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56510689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com