我正在尝试创建一个加密程序,我陷入了第一道障碍。我基本上想检查输入只包含字母或空格,如果没有,则返回错误信息。 当我运行它时,它说TypeError,'bool'对象不可迭代。不确定这意味着什么,或者如何纠正我的代码。我在Python 3.5中。
sentence = input("Enter a short sentence: ").lower()
for x in sentence:
if all(x.isalpha() or x==''):
continue
else:
print("Error: please only enter letters and spaces. ")
答案 0 :(得分:0)
这可能是您正在寻找的内容:
sentence = input("Enter a short sentence: ").lower()
for x in sentence:
if x.isalpha() or x==' ':
continue
else:
print("Error: please only enter letters and spaces. ")
break
你试图在布尔条件下执行`all()(如果x是alpha或空)。
答案 1 :(得分:0)
all
内置检查迭代的每个元素,以查看它是否为True
。在您的情况下,您已经传递了一个布尔值(x.isalpha() or x==' ')
。你需要给all
一个可迭代的东西。您可以使用列表解析来执行此操作,例如:
sentence = input("Enter a short sentence: ").lower()
result = all([x.isalpha() or x == ' ' for x in sentence])
然后,您可以使用result
中的值来决定下一步做什么
答案 2 :(得分:0)
您没有正确使用 var earth = new WE.map('world', {
zoom: 1,
altitude: 7000000,
minAltitude: 3500000,
maxAltitude: 20000000,
tilting: false,
atmosphere: false,
sky: true,
dragging: true
});
。该函数需要一些 iterable ,就像列表或元组一样,而不是一个布尔值,这就是你提供的。
all
所以,你可以这样做:
>>> all([True, True, False])
False
>>> all([True, True, True])
True