热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在python上检查变量是否为整数

如何解决《在python上检查变量是否为整数》经验,为你挑选了1个好方法。

我正在使用tkinter进行数学测试.我有4个条目允许用户输入问题的答案.答案必须是整数格式,否则会产生很长的错误.我希望我的程序检查输入的值是否为整数.然后如果它不是整数,则打开一个消息框,告诉用户检查答案.

这是我的代码:(这是一个很长的代码,因为我不知道如何缩短它,我不是程序员)

from tkinter import*
from tkinter import messagebox
from random import*




n1= randint(1,6)
n2= randint(1,9)
ques1 = n1, "x", n2, "="
c1= n1*n2

n1= randint(8,15)
n2= randint(1,7)
ques2 = n1, "-", n2, "="
c2= n1-n2

n1= randint(1,10)
n2= randint(5,15)
ques3 = n1, "+", n2, "="
c3= n1+n2

n1= randint(5,12)
n2= randint(1,10)
ques4 = n1, "x", n2, "="
c4= n1*n2

#window
window = Tk()
window.geometry("280x450")
window.title("quiz")
window.configure(background='yellow')

def checkthrough():
    if ans1.get() == '':
        messagebox.showinfo("error", "check again ")
    elif ans2.get() == '':
        messagebox.showinfo("error", "check again ")
    elif ans3.get() == '':
        messagebox.showinfo("error", "check again ")
    elif ans4.get() == '':
        messagebox.showinfo("error", "check again ")
    else:
        save()
    #this is where i tried to check if it's an integer or not
    try:
        ans1 == int()
    except:
        messagebox.showinfo("error", "check again ")


def save():
    score = 0
    if c1==int(ans1.get()): 
        score= score + 1
    if c2==int(ans2.get()):
        score = score+1
    if c3==int(ans3.get()):
        score = score+1
    if c4==int(ans4.get()):
        score = score+1
    fscore.set(score)



def savetofile():
    result = result ="\n "+ namestudent.get() + "            " + fscore.get()+"/4"
    messagebox.showinfo("results", "your results been saved successfuly")
    if int(year.get())==1:
        f = open('results C1.txt', 'a')
        f.write(result)
        f.close()
    if int(year.get())==2:
        f = open('results C2.txt', 'a')
        f.write(result)
        f.close()
    if int(year.get())==3:
        f = open('results C3.txt', 'a')
        f.write(result)
        f.close()


#frame
frame = Frame(window)
frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)


#variables
namestudent = StringVar()
ans1 = StringVar()
ans2 = StringVar()
ans3 = StringVar()
ans4 = StringVar()
fscore = StringVar()
year = StringVar()

#labels
name = Label(window, text = "type your name:")
name.grid(row= 6, column = 0)

yr = Label(window, text = "type your class:")
yr.grid(row= 7, column = 0)

q1 = Label(window,text = ques1, height = 3, bg = 'yellow')
q1.grid(row = 1,column=0)

q2 = Label(window,text = ques2, height = 3, bg = 'yellow')
q2.grid(row = 2,column=0)

q3 = Label(window,text = ques3, height = 3, bg = 'yellow')
q3.grid(row = 3,column=0)

q4 = Label(window,text = ques4, height = 3, bg = 'yellow')
q4.grid(row = 4,column=0)

#entrys
name_entry= Entry(window, textvariable= namestudent)
name_entry.grid(row = 6, column=1)

yr_entry= Entry(window, textvariable= year)
yr_entry.grid(row = 7, column=1)

q1_entry = Entry(window, width = 6, textvariable = ans1)
q1_entry.grid(row = 1,column=1)

q2_entry = Entry(window, width = 6, textvariable = ans2)
q2_entry.grid(row = 2,column=1)

q3_entry = Entry(window, width = 6, textvariable = ans3)
q3_entry.grid(row = 3,column=1)

q4_entry = Entry(window, width = 6, textvariable = ans4)
q4_entry.grid(row = 4,column=1)

#buttons

finish = Button(window, width = 5, text = "finish",command= checkthrough)
finish.grid(row = 5,column=0)

finalS_label = Label(window, textvariable=fscore)
finalS_label.grid(row=5, column=1)

saving = Button(window, width = 5, text = "save", command= savetofile)
saving.grid(row= 8, column=0)


window.mainloop()

我读了一些关于同一个问题的其他帖子,我试着在我的代码中使用他们的答案,但我仍然得到同样的错误.

谢谢.



1> Tom Hunt..:

为了检查字符串是否是整数可转换的,只需尝试转换它并检查异常.

try:
    integer_result = int(string_result)
except ValueError:
    print("not a valid integer")
else:
    print("value is", integer_result)

要在您的情况下执行此操作,您需要从ans1&c中提取值.事先,然后传递原始字符串int().


推荐阅读
author-avatar
用户0a8xoj91q0
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有