如何在返回列表项的标签中显示函数的结果?

2024-04-16 04:29:13 发布

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

我需要写一个程序,首先读取一个csv文件的电子邮件地址,然后绘制其中5个。我想它显示在桌面应用程序。我不知道按下按钮后如何在标签字段中显示函数结果

import csv import random import tkinter as tk from tkinter import messagebox with open('test.csv') as csv_plik: csv_reader = csv.reader(csv_plik, delimiter=',') numbers = [] for row in csv_reader: number = row[0] numbers.append(number) lenght = len(numbers) def losowanie(): i = 0 z = 1 while i < 5: lenght = len(numbers) y = lenght c = random.randint(0, y - z) print(numbers[c]) numbers.remove(numbers[c]) i+=1 main = tk.Tk() main.geometry('400x400') w = tk.Button(main, text = 'Losuj', command = main.destroy) w.place(x=180, y=180) y = tk.Label(main, text='losowanie') y.pack() y.place(x = 180, y = 220) main.mainloop()

Tags: csvimportnumberlenmaintkinterasrandom
1条回答
网友
1楼 · 发布于 2024-04-16 04:29:13

要从列表中获得5个随机值,可以使用

values = random.choices(numbers, k=5)

接下来您必须将列表转换为一个字符串

new_text = ','.join(values)

最后,您可以替换标签中的文本

label['text'] = new_text

你必须给按钮分配功能

command=losowanie

import csv
import random
import tkinter as tk

#  - functions  -

def losowanie():
    values = random.choices(numbers, k=5)
    new_text = ','.join(values)
    label['text'] = new_text

#  - main  -

with open('test.csv') as csv_plik:
    csv_reader = csv.reader(csv_plik, delimiter=',')

    numbers = []
    for row in csv_reader:
        number = row[0]
        numbers.append(number)


main = tk.Tk()

button = tk.Button(main, text='Losuj', command=losowanie)
button.pack()

label = tk.Label(main, text='losowanie')
label.pack()

main.mainloop()

相关问题 更多 >