You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python程序获取粉丝数并展示人物详情时返回None问题

问题排查与解决:粉丝数变量返回None的问题

问题原因分析

  1. person_one函数赋值逻辑颠倒
    原代码中person['follower_count'] = person_first_followers是把全局变量的初始None值覆盖了数据里的真实粉丝数,正确逻辑应该是把选中人物的粉丝数赋值给全局变量person_first_followers。

  2. person_two函数未声明全局变量
    函数内部的person_second_followers是局部变量,没有用global关键字声明,导致外部的全局变量始终保持初始的None值。另外,person_two_list.append(person)返回None,没必要赋值给second_person;循环for person in range(1)属于冗余代码,直接随机选一次即可。

修复后的完整代码

from game_data import data
from art import logo, vs
import random

print(logo)

person_one_list = []
person_two_list = []

person_first_followers = None
person_second_followers = None

def person_one():
    global person_first_followers
    # 随机选取人物
    person = random.choice(data)
    person_one_list.append(person)
    # 正确赋值:将人物的粉丝数存入全局变量
    person_first_followers = person['follower_count']
    
    print(f"Compare A: {person['name']}, {person['description']}, from {person['country']}")
    print(f"Follower count inside person_one(): {person_first_followers}")

person_one()
print(f"Follower count outside person_one(): {person_first_followers}")

print(vs)

def person_two():
    """生成第二个随机人物并存入列表"""
    global person_second_followers
    person = random.choice(data)
    person_two_list.append(person)
    # 声明全局变量后赋值
    person_second_followers = person['follower_count']
    print(f"Against B: {person['name']}, {person['description']}, from {person['country']} ")

person_two()
print(person_second_followers)
choice = input("Who has more followers? Type 'A' or 'B' ")

额外优化提示

  • 可以添加判断逻辑,避免两次选中同一个人物
  • 如果后续不需要用到person_one_list和person_two_list,可以直接移除,减少不必要的内存占用

内容的提问来源于stack exchange,提问作者Leo D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 06:36:05