淫豺 2023-05-02 23:39 采纳率: 0%
浏览 14

如何用循环改变变量名中的字母?

写代码写的好烦
这些代码十分相似,我却只能复制粘贴十几遍,修改每一行细微的不同之处,担心漏了哪处,而不知道如何用双层for循环实现。
放到更高一维的数组然后用cue(1)到cue(4)代替hcue、fcue、scue、mcue并不可行,因为虽然我会对它们执行相同的操作,但这四个变量的数据类型完全不同。

img

  • 写回答

1条回答 默认 最新

  • 梦幻精灵_cq 2023-05-03 06:19
    关注

    思路:


    1、可以用字符串格式化,如Python的占位符、新式字符串格式化、插值字符串格式等,实现有相同字符串的变量名遍历。

    2、可以调用内置函数对字符串还原成对象,如Python的eval()。


      由于我只会点Python,只能给出Python代码示例。我想,其他语言也是可以用这个“思想”实现的。


    Python 代码示例

    #!/sur/bin/nve python
    # coding: utf-8
    
    
    char = 'hfsm'
    hcue, fcue, scue, mcue = '286', '386', '486', 'win95'
    
    for i in char:
        print(f"{i}cue")
    
    
    for i in char:
        print(eval(f"{i}cue"))
    

    代码截屏图片

    img

    代码运行效果截屏图片

    img


      如截屏图片可见,遍历轮询,用字符串格式化,可以打印出变量名字符串。当用veal()函数把字符串还原成Python对象后,就可以打印出变量名所指向的值了。



    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月2日

悬赏问题

  • ¥15 请问python的selenium怎么设置referer
  • ¥15 请教下, VS QT 环境下, QTOPCUA 的源文件报错,这种情况咋查呢 ?
  • ¥20 UNITY webgl关于文档的上传和下载问题
  • ¥15 安霸cv22 + rtl8211f 千兆,udp传输丢包
  • ¥15 关于区块链和边缘环境搭建的相关问题
  • ¥15 windows远程桌面断卡重连软件卡顿问题
  • ¥30 Unity 实现扫描效果
  • ¥15 HbuilderX检测不到安卓模拟器
  • ¥15 这个main已经在filename.obj中定义是什么错 C语言
  • ¥15 关于#linux#的问题:exsi8.0系统 怎么更改web访问端口,不用80、443