怎样才能修复这段代码中的错误?

2024-04-19 22:35:20 发布

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

我用学生当字典。但是当我尝试将输入字符串与字典值(也是一个字符串)匹配时,它会显示

TypeError: string indices must be integers

这个代码有什么问题?你知道吗

students = {
    "Male":["Jones",162,21],
    "Female":["Sarah",162,18]
    }
print(type(students))
for students in students.keys():
    gen = input("What's your gender?: ").strip().capitalize()
    if gen in students:
        name =input("What's your name?: ").strip().capitalize()
        if name == students[gen][0]:
            print("Your name is {}").format(name)

Tags: 字符串nameininputyourif字典what
3条回答

您的代码应该是这样的:

for student in students.keys():
    gen = input("What's your gender?: ").strip().capitalize()
    if gen in students.keys():
        name =input("What's your name?: ").strip().capitalize()
        if name == students[gen][0]:
            print("Your name is {}").format(name)

你的问题是你给变量和dict取了相同的名字。你知道吗

这个版本对我有用:

students = {
"Male": ["Jones", 162, 21],
"Female": ["Sarah", 162, 18]
}
for student in students.keys():
    gen = input("What's your gender?: ").strip().capitalize()
    if gen in student:
        name = input("What's your name?: ").strip().capitalize()
        if name == students[gen][0]:
            print(f"Your name is {name}")

2在代码中键入。 试试这个:

students = {
    "Male":["Jones",162,21],
    "Female":["Sarah",162,18]
    }
print(type(students))
for index in students.keys():
    gen = input("What's your gender?: ").strip().capitalize()
    if gen in students.keys():
        name =input("What's your name?: ").strip().capitalize()
        if name == students[gen][0]:
            print("Your name is {}".format(name))

相关问题 更多 >