想吃糖糖&%~ 2022-07-09 08:14 采纳率: 75%
浏览 30
已结题

怎么理解下面的程序?

n=int(input())
zm={2:'B',3:'C',4:'D',5:'E',6:'F',7:'G',8:'H',9:'I',10:'J',11:'K',12:'L',13:'M',14:'N',15:'O',16:'P',17:'Q',18:'R',19:'S',20:'T',21:'U',22:'V',23:'W',24:'X',25:'Y',26:'Z'}
ls=['A']
start='A'
for j,value in zm.items():
start=start+str(value)+start ##字符串拼接
ls.append(start)
for i,j in enumerate(ls,1): ##索引由1开始
if n==i:
print(j)
Break

  • 写回答

1条回答 默认 最新

  • a5156520 2022-07-09 10:31
    关注

    下面是我的理解,供参考:
    1、首先应该是获取一个n的输入,并把转换为int整数,用于后面获取列表某一项
    2、然后初始化键值对zm和列表ls,字符串start
    3、遍历键值对,把字符串start赋值为原来的值,再加上遍历到的每一项键值对的值,再加上原来start的值
    再把新赋值的字符串start添加到列表ls
    4、用一个for循环遍历列表,索引从1开始,如果访问到输入的第n项则打印列表这一项
    我把键值对改为只保留原来前两项,然后在第一个for循环增加打印语句,观察每一次遍历字符串start和列表ls的变化,以方便理解代码的逻辑,(如果运行全部键值对,时间可能要很久,或者可能会有其他问题,测试两项正常运行)测试代码及其注释如下:
    参考链接:
    python 键值对的理解与运用_LaughingSister的博客-CSDN博客_python 键值对
    https://jingyan.baidu.com/article/f79b7cb3bfec66d045023e16.html
    Python内置函数之enumerate() 函数 - YifChan - 博客园

    
    n=int(input())
    #https://blog.csdn.net/laughingsister/article/details/108340934
    zm={2:'B',3:'C'}
    #这个zm是个键值对,数字是键,字母是值
    #zm={2:'B',3:'C',4:'D',5:'E',6:'F',7:'G',8:'H',9:'I',10:'J',11:'K',12:'L',13:'M',14:'N',15:'O',16:'P',17:'Q',18:'R',19:'S',20:'T',21:'U',22:'V',23:'W',24:'X',25:'Y',26:'Z'}
    
    #ls初始化为只有一个字符串'A'的列表
    ls=['A']
    
    #start初始化为字符串'A'
    start='A'
    
    #for循环遍历键值对,j为遍历到的键,value为遍历到的值
    for j,value in zm.items():
        #把start用原来的值加上 遍历到的键值对里面的每一个值 ,再加上start原来的值
        #如第一次遍历时,start= 'A'+ 'B'+ 'A' ('A'为start原来的值,'B'为遍历到的键值对第一个的值)
        start=start+str(value)+start ##字符串拼接
        print("start=",start)
        #把start添加到列表
        #https://jingyan.baidu.com/article/f79b7cb3bfec66d045023e16.html
        ls.append(start)
        print("ls=",ls)
    
      #用for循环遍历列表
      #https://www.cnblogs.com/yifchan/p/python-1-40.html  
    for i,j in enumerate(ls,1): ##索引由1开始
        #打印列表ls输入的第几项的值
        #如果输入是1,就会打印列表第一项:'A'if n==i:
            print(j)
            break
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月17日
  • 已采纳回答 7月9日
  • 创建了问题 7月9日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度