定义了一个有两个参数的函数f,下面调用方式正确的是:
A. f[a, b]
B. f(a, b)
C. f(a; b)
程序功能如下:输入一个18位身份证号,判别真伪。若为真,则进一步判断性别;若不是18位或非法,则提示重新输入。中国居民身份证号由17位数字和1位校验码组成。其中,前6位为所在地编号,第7~14位为出生年月日,第15~17位为登记流水号,其中第17位偶数为女性,奇数为男性。校验码生成规则如下:##将前面的身份证号码17位数分别乘以不同的系数。##从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2##将这17位数字和系数相乘的结果相加。##用加出来和除以11,看余数是多少?##余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。##其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。##通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。##如果余数是10,身份证的最后一位号码就是2。factor=(7,9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)last=("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")while 1:id=input('请输入身份证号,0则退出')if(1) :breakif len(id)!=18:print('输入位数不对,请重新输入')(2)else:sum=0for i in range(17):sum+= (3) *factor[i]m=sum%11lastchar=id[-1]lastchar=lastchar.upper()if lastchar==last[m]:print(id,'为合法身份证号码,',end='')if (4) :print('为女性')else:print('为男性')else:print(id,'为非法号码')