Python函数定义语法错误求助:使用Pandas排序并列出Excel候选人数据
Python函数定义语法错误求助:使用Pandas排序并列出Excel候选人数据
嘿,我看到你的代码里有几个关键的语法和逻辑问题,这就帮你一步步修正过来:
主要问题分析
- 函数定义语法错误:你在定义
sort_and_list_candidates时,直接把字符串常量(比如文件路径、表名)写在了形参位置,这完全不符合Python的函数定义规则——形参必须是变量名,不能是具体的字符串值。 - 路径转义问题:Windows路径里的
\是转义字符,直接写会导致解析错误,得用原始字符串(加r前缀)或者把\替换成\\。 - 异常处理变量未定义:
FileNotFoundError分支里用了file_path,但函数里没定义这个变量,应该用传入的函数参数。 - 函数硬编码内容:函数内部直接写死了文件路径和表名,完全没用到传入的参数,失去了函数的复用性。
修正后的完整代码
import pandas as pd def sort_and_list_candidates(file_path, sheet_name, sort_by_column='Name', ascending=True): try: # 使用函数传入的参数读取Excel,而不是硬编码 df = pd.read_excel(file_path, sheet_name) sorted_df = df.sort_values(by=sort_by_column, ascending=ascending) print(sorted_df) return sorted_df except FileNotFoundError: # 这里用传入的file_path参数 print(f"Error: File '{file_path}' not found.") except Exception as e: print(f"An error occurred: {str(e)}") # 定义路径和表名,用原始字符串处理Windows路径 file_path = r"C:\Users\Sonu Priya R\OneDrive\Desktop\Python Project\Candidates.xlsx" sheet_name = 'Candidates' # 调用函数,传入参数 sorted_candidates = sort_and_list_candidates(file_path, sheet_name, sort_by_column='work_experience', ascending=True)
简单说明
- 现在函数的形参都是合法的变量名,调用时再传入具体的路径、表名等参数,这样函数可以复用在不同的Excel文件上。
- 路径用了
r前缀的原始字符串,避免了转义字符的问题。 - 异常处理里的
file_path现在是函数的参数,能正确提示找不到的文件路径。
备注:内容来源于stack exchange,提问作者sonupriya Ravikumar
相关产品推荐
相关产品推荐

