关于python faker的问题,如何解决?

**python中使用faker第三方库去模拟生成身份证号,再根据身份证号的第17位是奇偶数来判断性别,运行结果打印的身份证号17位是偶数,性别确实男,应该是女呀。麻烦帮忙看下,是if判断有啥问题吗?

**

from faker import Faker

fake = Faker(["zh_CN"])
Faker.seed(0)

def id_number(): #身份证号
    id_number = fake.ssn()
    return id_number

def gender(): #性别
    gender_number = id_number()[16] #取字符串的17位
    gender_number1 = int(gender_number)

    if gender_number1 % 2 == 0:
        return "女"
    else:
        return "男"

print(id_number())
print(gender())

运行结果
610403197004166048

哎呀,你调用了两次生成的是不同的身份证号。
你第一个打印,打印的是生成身份证号的函数,你第二个打印调用判断男女的函数的时候,是不是也会调用生成身份证号的函数?这前后两次生成的身份证号就不是同一个身份证号。
有帮助的话采纳一下哦!

你的gender()里又调用了一次id_number()重新生成了一次身份证。相当于你输出的身份证号和判别的身份证号不是一个号码。