如何使我的代码生成相似但仍然不同的结果而不需要全部键入?

2024-04-20 11:25:12 发布

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

我写了一段代码,用一个1到16之间的随机数组成一个正方形。我想用一个随机数做一个方格。我知道如何通过多次重复部分代码和更改一些数字来实现,但我知道这样做会很无聊,结果不会很好。有没有一种方法,使一个简短的代码,将做重复的工作为我?你知道吗

我的代码:

from tkinter import *
from random import randint

root = Tk()
root.title("root")
root.geometry("500x300")

F1 = Frame(root, height=150, width=250, highlightbackground="black", highlightthickness=2)
F1.place(x=0, y=0)

L1 = Label(root, font=("bold", 10))
L1.place(x=125, y=75)
R1 = randint(1, 16)

if R1 == 1:
    L1.config(text="1")

if R1 == 2:
    L1.config(text="2")

if R1 == 3:
    L1.config(text="3")

if R1 == 4:
    L1.config(text="4")

if R1 == 5:
    L1.config(text="5")

if R1 == 6:
    L1.config(text="6")

if R1 == 7:
    L1.config(text="7")

if R1 == 8:
    L1.config(text="8")

if R1 == 9:
    L1.config(text="9")

if R1 == 10:
    L1.config(text="10")

if R1 == 11:
    L1.config(text="12")

if R1 == 13:
    L1.config(text="13")

if R1 == 14:
    L1.config(text="14")

if R1 == 15:
    L1.config(text="15")

if R1 == 16:
    L1.config(text="16")

Tags: 代码textfromimportconfigl1ifplace
3条回答

你试过这样的方法吗:

R1 = randint(1,16)
L1.config(text=str(R1))

您可以将R1转换为str,而不是许多if语句,您可以这样做:

L1.config(text=str(R1))

一个简单的解决办法是

<...>
R1 = randint(1, 16)

if R1 <= 7:
    L1.config(text=str(R1))

如果变量R1和要显示的文本之间的关系更复杂,可以使用字典。 只是一个随机的例子,让你大致了解一下:

R1 = randint(1, 16)

r1_texts = {
    1: 'This one is special',
    2: 'This one is special, too',
    3: 'This one is extremely special'
}
for i in range(4, 17):
    r1_texts[i] = 'The random number is {}'.format(i)

L1.config(text=r1_texts[R1])

相关问题 更多 >