如何检查函数是否不返回任何内容?

2024-10-01 19:17:30 发布

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

我想回答一个挑战中的问题

问题: 有些数字很有个性,而有些数字很乏味。 让我们编写一个程序,要求提供一个数字列表,并使用下面的个性特征描述有趣的数字,同时计算所有没有个性特征的枯燥数字。

您的程序应该要求提供一个以空格分隔的数字列表。对于任何至少有一个特征的数字,它都应该打印出其个性的完整描述。然后,它应该打印出被计数的无趣数字的数量

以下是我的解决方案:

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}')

我在计算无聊的数字(那些没有特征的数字)时遇到了问题 它统计所有给定的数字,而不是没有特征的数字

最终的解决方案应该是这样的:desired output

我的输出是这样的:my output


Tags: thein程序number列表if数字特征
3条回答

您的输出字符串trts将始终包含''
相反,您应该验证trts是否为空字符串。
因此,与其

if '' in trts:
    dullcounter = dullcounter + 1

您应该使用以下或类似方法:

if not trts:
    dullcounter = dullcounter + 1

问题是,函数总是返回一个字符串,如果数字很单调,则返回emtpy字符串。尝试引入逻辑,在数字无趣时中断函数(而不是返回空字符串)

您的if条件始终为真。使用类似这样的替代条件

if len(trts) > 0:
    dullcounter = dullcounter + 1

相关问题 更多 >

    热门问题