鱼C论坛

 找回密码
 立即注册
查看: 926|回复: 8

[已解决]求助!求助(顺利解决有奖)

[复制链接]
发表于 2020-4-15 10:23:36 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 mzxay 于 2020-4-15 10:27 编辑

废话少说,先上代码:
from tkinter import *
from tkinter import messagebox as g
import random
root = Tk()
root.title("猜数字")
root.geometry("250x150")

shu = random.randint(1, 100)

def ti_jiao():
    a_g = int(a.get())
    if a_g == shu:
        g.showinfo('正确', '恭喜你答对了')
    else:
        if a_g > 100:
            g.showinfo('输入错误','请输入1~100的整数')
        if a_g > shu and a_g < 100 :
            g.showinfo('错误', '你猜大了')
        elif a_g < shu:
            g.showinfo('错误', '你猜小了')

Label(root, text = '1~100选一个数', bg = 'yellow', fg = 'blue',
    font = ('华文行楷', 15)).place(x = 50, y = 0)

a = Entry(root, bg = 'yellow', fg = 'blue', font = ('华文行楷', 15))
a.place(x = 20, y = 50)

b = Button(root, text='提交', bg = 'yellow', fg = 'blue', font = ('华文行楷', 15), command = ti_jiao)
b.place(x = 80, y = 90)

root.mainloop()

要求:
1、让用户只有五次猜测机会;
2、如果用户才对后点击确定,将自动退出程序
3、五次没才对将打印:表格一:恭喜你才对了,但当用户点击确定后,再次弹出提示框,打印较大字体:个屁。用户点击确定后也将自动退出程序。

觉得鱼币不够可以加………………
最佳答案
2020-4-15 10:23:37
我来我来~~~
from tkinter import *
from tkinter import messagebox as m
import random

root = Tk()
root.title("猜数字")
root.geometry("250x150")
TIME = 0

answer = random.randint(1,100)

def check():
    eg = int(en.get())
    global TIME
    TIME += 1
    if TIME > 5:
        m.showinfo('正确','恭喜你答对了')
        m.showinfo('个屁','个屁')
        root.destroy()
    elif eg == answer:
        m.showinfo('正确','恭喜你答对了')
        root.destroy()
    elif (eg > 100)or(eg < 1):
        m.showinfo('输入错误','请输入1~100的整数')
    elif eg > answer:
        m.showinfo('错误','你猜大了')
    elif eg < answer:
        m.showinfo('错误','你猜小了')

la = Label(root,text='1~100选一个数',font=('华文行楷',15))
la.place(x=50,y=0)
en = Entry(root,font=('华文行楷',15))
en.place(x=20,y=50)
bu = Button(root,text='提交',font=('华文行楷',15),command=check)
bu.place(x=90,y=90)

root.mainloop()
这是我写的
1  你这里少了一次判断(就是if a_g > 100这句)
2  你12--20行写得不够简洁,应该用elif
3  标准对话框不能设置字体大小
4  关于次数的话,最好不要用while,我试过,它会重复五次弹出对话框 ,然后就没有机会再试了
5  对于TIME而言,你应该可以不像我这样做,你可以在函数里面定义,也不用global

最佳答案

查看完整内容

我来我来~~~ 这是我写的 1 你这里少了一次判断(就是if a_g > 100这句) 2 你12--20行写得不够简洁,应该用elif 3 标准对话框不能设置字体大小 4 关于次数的话,最好不要用while,我试过,它会重复五次弹出对话框 ,然后就没有机会再试了 5 对于TIME而言,你应该可以不像我这样做,你可以在函数里面定义,也不用global
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 10:23:37 | 显示全部楼层    本楼为最佳答案   
我来我来~~~
from tkinter import *
from tkinter import messagebox as m
import random

root = Tk()
root.title("猜数字")
root.geometry("250x150")
TIME = 0

answer = random.randint(1,100)

def check():
    eg = int(en.get())
    global TIME
    TIME += 1
    if TIME > 5:
        m.showinfo('正确','恭喜你答对了')
        m.showinfo('个屁','个屁')
        root.destroy()
    elif eg == answer:
        m.showinfo('正确','恭喜你答对了')
        root.destroy()
    elif (eg > 100)or(eg < 1):
        m.showinfo('输入错误','请输入1~100的整数')
    elif eg > answer:
        m.showinfo('错误','你猜大了')
    elif eg < answer:
        m.showinfo('错误','你猜小了')

la = Label(root,text='1~100选一个数',font=('华文行楷',15))
la.place(x=50,y=0)
en = Entry(root,font=('华文行楷',15))
en.place(x=20,y=50)
bu = Button(root,text='提交',font=('华文行楷',15),command=check)
bu.place(x=90,y=90)

root.mainloop()
这是我写的
1  你这里少了一次判断(就是if a_g > 100这句)
2  你12--20行写得不够简洁,应该用elif
3  标准对话框不能设置字体大小
4  关于次数的话,最好不要用while,我试过,它会重复五次弹出对话框 ,然后就没有机会再试了
5  对于TIME而言,你应该可以不像我这样做,你可以在函数里面定义,也不用global
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 11:04:23 | 显示全部楼层
本帖最后由 会计的会怎么念 于 2020-4-15 11:06 编辑

1. while循环外加计数器或者for循环五次
2. 条件判断加break,如果是结束函数体就用return
3-1. 我建议使用while···else···,
        - else下的代码,将在while循环结束时且while循环条件为False时执行一次,
        - 它属于while循环体内的,所以break不会执行else下的句块。
        - 具体可以看《流畅的Python》,直接网上查一查也可以.
        - for···else···类似。
        - 我记得小甲鱼好像也讲过。
3-2. 也可以使用if然后break。
4. GUI我不会,思路就是这样。还有作业尽量自己做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 12:27:29 | 显示全部楼层
会计的会怎么念 发表于 2020-4-15 11:04
1. while循环外加计数器或者for循环五次
2. 条件判断加break,如果是结束函数体就用return
3-1. 我建议使 ...

你好
1、这不是作业
2、这些问题是我脑洞打开想出来的
3、鱼币没地方用,只能用到这些地方了

但还是再次感谢你的帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 12:28:23 | 显示全部楼层
有木有思路+代码啊???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 17:11:45 | 显示全部楼层
如果我想在個屁後面添加上:正確答案是TIEM,怎麼寫???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 18:31:15 | 显示全部楼层
mzxay 发表于 2020-4-15 17:11
如果我想在個屁後面添加上:正確答案是TIEM,怎麼寫???

正确答案是TIME???
是answer吧???
没问题
就是在前面加上一个变量,赋值为'个屁\n正确答案是'+answer
接着再后面引用ta就OK啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 21:47:55 | 显示全部楼层
screenshot_20200415_214519.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-16 09:33:45 | 显示全部楼层

对不起对不起
请先str(answer)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 12:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表