题目
下面程序的输出结果是()。 def StudentInfo(country='中国',name): print('(},{)'.format(name,country))StudentInfo('美国','大卫')A. 美国,大卫B. 大卫,美国C. 大卫,中国D. 报错
下面程序的输出结果是()。 def StudentInfo(country='中国',name): print('{},{}'.format(name,country))StudentInfo('美国','大卫')
A. 美国,大卫
B. 大卫,美国
C. 大卫,中国
D. 报错
题目解答
答案
D. 报错
解析
考查要点:本题主要考查Python函数参数的定义规则,特别是必选参数与默认参数的顺序要求。
解题核心思路:
在Python中,默认参数(可选参数)必须放在必选参数的后面。如果函数定义时出现必选参数在默认参数之后,则会导致语法错误。题目中的函数定义违反了这一规则,因此程序无法正常运行。
破题关键点:
- 观察函数定义def StudentInfo(country='中国', name):,发现country是默认参数(可选),而name是必选参数,但顺序错误。
- 根据Python语法规则,必选参数不能跟在默认参数之后,因此函数定义本身存在语法错误,程序会直接报错。
函数参数规则分析
Python函数参数的定义顺序必须满足以下规则:
- 必选参数必须放在默认参数(可选参数)之前。
- 如果参数有默认值(如country='中国'),则该参数为可选参数。
题目中的错误
题目中函数定义为:
def StudentInfo(country='中国', name):  
    print('{},{}'.format(name, country))  - country是可选参数(有默认值- '中国'),- name是必选参数。
- 顺序错误:必选参数name出现在可选参数country之后,违反Python语法规则。
调用分析
即使调用StudentInfo('美国', '大卫')时传递了两个参数,但由于函数定义本身存在语法错误,程序在运行时会直接报错,无法执行到调用步骤。