首页 > 解决方案 > 我不明白为什么我的循环缺少数字

问题描述

输出显示数字 13 放错了位置,而 19 完全丢失了,对于帖子的不足之处,我提前道歉,这是我的第一个问题。

 fav_num = {
       'john': [18, 23, 30],
       'serena': [12, 7],
       'bryan': [13],
       'james': [19],
       'ashley': [10, 13],
    }

for name, numbers in fav_num.items():


        if len(numbers) >= 2:
            print(f"{name.title()} favorite numbers are:")

        else:
            print(f"{name.title()} favorite number is {number}.\n")

        for number in numbers:

    
            if len(numbers) >= 2:
                print(f"\t{number}")

输出

标签: pythondictionary

解决方案


问题是:你使用print(f"{name.title()} favorite number is {number}.\n") 和编号使用number前一个。

改成 :print(f"{name.title()} favorite number is {numbers[0]}.\n")

请参阅下面的完整代码

fav_num = {
           'john': [18, 23, 30],
           'serena': [12, 7],
           'bryan': [13],
           'james': [19],
           'ashley': [10, 13],
        }
    
    for name, numbers in fav_num.items():
            if len(numbers) >= 2:
                print(f"{name.title()} favorite numbers are:")
            else:
                print(f"{name.title()} favorite number is {numbers[0]}.\n")
            for number in numbers:  
                if len(numbers) >= 2:
                    print(f"\t{number}")

推荐阅读