我知道我们有列表而不是Python中的数组。但我使用的是numpy导入。
我创建了一个基于瑞典社会保障号码的性别检查功能。
基于10个数字,如果第八个数字是偶数,则为女性,否则为男性。
当我运行该功能时,我得到的错误为:
ssnCheckGender中的第11行如果ssn[8]%2==0:TypeError:"int"对象不是可下标的
这是我的代码,示例输入为9202205078,应该是男性:
import numpy as np
def ssnCheckGender():
ssn = np.array([])
ssn = int(input("Input SSN, 10 digits: "))
if ssn[8] % 2 == 0:
print(f"The {ssn} is a female")
else:
print(f"The {ssn} is a male")
ssnCheckGender()
我错过了什么?
不要将输入作为int
,而是作为带有字符串的string
,您可以很容易地获得位置值。一旦获得位置值,即ssn[7]
,然后转换为int.
请注意,索引从0开始,因此第8个元素的索引将为7。
def ssnCheckGender():
ssn = str(input("Input SSN, 10 digits: "))
if int(ssn[7]) % 2 == 0:
print(f"The {ssn} is a female")
else:
print(f"The {ssn} is a male")
ssnCheckGender()
输出:例如:9202205078
Input SSN, 10 digits: 9202205078
The 9202205078 is a female