单选题 29.以下代码的输出结果是( )。
d={}
for i in range(26):
d[chr(i+ord(”A”))]=chr((i+13)%26+ord(”A”))
for c in”Python”:
print(d.get(c,c),end=””)
【正确答案】 D
【答案解析】ord()函数是把字符转换成对应的ASCII码,chr()函数是ord()函数的逆运算,把ASCII码转换成对应的字符输出,所以ord("A")为65。
第一个for循环的作用是生成键值对存储在字典变量d中。例如,当i=0,d[A]=N;i=1,d[B]=0…一直到i=13,d[N]=A,后面的键和值与前面的是互换位置的,如i=14,d[0]=B;i=15,d[P]=C…。依次循环赋值,直到i=25时结束for循环。
第二个for循环的作用是输出字典的值,get(key,defauh=None)函数有两个参数:第一个参数是字典的键,第二个参数是默认值,作用是返回字典中key对应的值,如果key不存在,则返回默认值,如d={"A":"N",”O”:“B”,“Z”:”M”},d.get(“A”,“C”)返回的是N。当c=“P”时,去字典中查找是否存在键为“P”的值,遍历后存在,所以返回c,for循环继续遍历剩下的字符,在字典中找不到对应的键,则返回默认值,所以结果返回为Cython。本题选择D选项。