我想回答一个挑战中的问题
问题: 有些数字很有个性,而有些数字很乏味。 让我们编写一个程序,要求提供一个数字列表,并使用下面的个性特征描述有趣的数字,同时计算所有没有个性特征的枯燥数字。
您的程序应该要求提供一个以空格分隔的数字列表。对于任何至少有一个特征的数字,它都应该打印出其个性的完整描述。然后,它应该打印出被计数的无趣数字的数量
以下是我的解决方案:
arrogant_numbers = [3, 6, 7, 23, 25, 35, 39, 66, 68, 112, 119, 254, 259, 732, 737, 4565, 4663, 13330, 13730, 29880, 29998, 79670, 80015, 230054, 239068, 1534301, 1607352, 2060587, 21700891, 99167753, 99873125]
def find_personality(number):
traits = ''
# Find the traits of the number
if number % 2 != 0:
traits = traits + 'odd '
# Check for other traits after this
if number >10000:
traits = traits + 'excessive '
if '3' in str(number):
traits = traits + 'irksome '
if number in arrogant_numbers:
traits = traits + 'arrogant '
return traits
# Write the rest of your program after this
dullcounter = 0
numbers = input('Enter numbers: ')
number_list = numbers.split()
for word in number_list:
trts = find_personality(int(word))
print(f"{word} is an {trts}number.")
if '' in trts:
dullcounter = dullcounter + 1
print(f'Dull numbers: {dullcounter}')
我在计算无聊的数字(那些没有特征的数字)时遇到了问题 它统计所有给定的数字,而不是没有特征的数字
您的输出字符串
trts
将始终包含''
。相反,您应该验证
trts
是否为空字符串。因此,与其
您应该使用以下或类似方法:
问题是,函数总是返回一个字符串,如果数字很单调,则返回emtpy字符串。尝试引入逻辑,在数字无趣时中断函数(而不是返回空字符串)
您的if条件始终为真。使用类似这样的替代条件
相关问题 更多 >
编程相关推荐