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

2024-10-17 02:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我还在“任何技术都足够先进……”的学习编程阶段。这个代码看起来很笨拙,如果需要的话很难更新。有没有更好的办法?在我看来完全是疯了,但它很管用。。。那么耶?你知道吗

它从TKinter radial 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

Tags: 代码链接tkinter编程阶段技术subjectelif
3条回答

不必定义16个单独的grade1…grade16变量,您可以将它们存储在一个类似grades=[grade1,...,grade16]的列表中,然后将subject设置为subject = grades[v.get()-1]

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

grades = [1, 2, 3, ...]  # or whatever your values are

那么你需要做的就是:

subject = grades[v.get() - 1]

或使用字典:

d={1:grade1,2:grade2 ... 16:grade16}
print(d[v.get()])

你会得到理想的成绩。你知道吗

你必须有一个字典,里面有所有可能的v.get()值的键,还有你想要的每个键的等级值,所以你在字典里得到v.get()键,然后得到它的值,通过使用d[v.get()],现在你得到了想要的等级。你知道吗

相关问题 更多 >