实施验证规则时双重变量赋值

Double variable assignment when implementing a validation rules

有人可以解释为什么我必须输入两次 "name" 吗?另外,如果你有小费。如果循环找不到任何匹配项,我希望用户再次输入名称。

import xlrd

def open_file(path):
    wb = xlrd.open_workbook(path)
    sheet = wb.sheet_by_index(0)

    while True:
        name = input("name: ")
        nbre_consulate = 1

        for row_num in range(sheet.nrows):
            row_value = sheet.row_values(row_num)

            if row_value[0] == name and row_value[1] == nbre_consulate:
                return int(row_value[2])

path = "imperator.xlsx"
open_file(path)

print(open_file(path))

我必须写两次"name"才能得到我的row_value[3]。我不明白为什么。

name: Spurius Lartius
name: Spurius Lartius
506

感谢任何提示!

您必须输入两次您的姓名,因为您 运行 整个函数输入了两次。你看到你在哪里 运行 函数然后用 print 语句做同样的事情了吗?您看到的值不仅会打印出来,而且会根据您在 print 语句中 运行 设置函数的位置生成。你可以做些什么来修复它,当你 运行 它时将它分配给一个变量,然后像这样单独打印变量:

path = "imperator.xlsx"
row_value_3 = open_file(path)

print(row_value_3)