有没有办法简化这个python代码?

Cal*_*bes 0 python variables if-statement variable-assignment python-3.x

我仍处于学习编程的"任何足够先进的技术......"阶段.这段代码看起来很笨重,如果需要很难更新.有没有更好的方法来解决这个问题?它看起来对我来说完全疯了,但它有效...所以你好吗?

它从TKinter径向1-16获取变量,并使用它选择grade1 ect变量.然后,grade1变量链接到gspread上的工作表名称.

def go():
    subject = v.get()
    if  subject == 1:
        subject = grade1
    elif  subject == 2:
        subject = grade2    
    elif  subject == 3:
        subject = grade3
    elif  subject == 4:
        subject = grade4  
    elif  subject == 5:
        subject = grade5
    elif  subject == 6:
        subject = grade6
    elif  subject == 7:
        subject = grade7
    elif  subject == 8:
        subject = grade8
    elif  subject == 9:
        subject = grade9
    elif  subject == 10:
        subject = grade10    
    elif  subject == 11:
        subject = grade11
    elif  subject == 12:
        subject = grade12 
    elif  subject == 13:
        subject = grade13
    elif  subject == 14:
        subject = grade14
    elif  subject == 15:
        subject = grade15
    elif  subject == 16:
        subject = grade16
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 9

不要保留16个不同的变量grade**!使用一个列表:

grades = [1, 2, 3, ...]  # or whatever your values are
Run Code Online (Sandbox Code Playgroud)

那么你需要做的就是:

subject = grades[v.get() - 1]
Run Code Online (Sandbox Code Playgroud)

  • 根据经验:每当你将`... 2`附加到任何变量名称时,你应该暂停并思考你实际在做什么. (2认同)