第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在不調(diào)用該函數(shù)的情況下從函數(shù)中獲取數(shù)組?

在不調(diào)用該函數(shù)的情況下從函數(shù)中獲取數(shù)組?

肥皂起泡泡 2023-06-20 13:27:51
我是一名 Python 初學(xué)者,正在使用 tkinter 開發(fā)圖形用戶界面。我有一個(gè)按鈕,它調(diào)用一個(gè)函數(shù)來(lái)打開一個(gè) csv 文件并讀取它,然后我想從該文件中獲取該函數(shù)中的值以在另一個(gè)函數(shù)中使用它。如下面的示例代碼所示,我使用return [XX , YY]語(yǔ)句取出數(shù)組,然后為它們賦值 ( XX, YY = Read_CSV())。雖然這有效,但問(wèn)題是當(dāng)我運(yùn)行代碼時(shí),在我單擊按鈕之前,會(huì)彈出打開框?qū)υ捒?。那是因?yàn)閄X, YY = Read_CSV()我正在調(diào)用一個(gè)函數(shù),該函數(shù)應(yīng)該僅在單擊按鈕時(shí)調(diào)用。如何在不調(diào)用該函數(shù)的情況下分配這些數(shù)組并將它們從函數(shù)中取出?from tkinter import *import pandas as pdfrom tkinter import filedialogroot = Tk()root.geometry('200x200')Frame=LabelFrame(root, text='Frame').pack()def Read_CSV():    CSV_File_Name = filedialog.askopenfilename(initialdir='/Desktop',                                               title='Select Data File',                                               filetypes=(('All files', '*.*'),                                                          ('CSV file', '*.csv')))    Data_CSV = pd.read_csv(CSV_File_Name, names=["A", "B"])    XX = (Data_CSV['A']);    YY = (Data_CSV['B'])    return [XX, YY]XX, YY = Read_CSV()print(XX)CSV_Read_Button = Button(Frame, text='Load Data', command=Read_CSV)CSV_Read_Button.pack()root.mainloop()
查看完整描述

1 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

第一:不要使用,XX, YY = Read_CSV()因?yàn)樗鼤?huì)立即運(yùn)行代碼——但您不需要它。


第二:?jiǎn)栴}是當(dāng)你按下按鈕并且它運(yùn)行你的函數(shù)時(shí)它不關(guān)心你發(fā)送的是什么return因?yàn)樗恢廊绾翁幚磉@些值(你不能通知按鈕它必須將它分配給) 這就是您需要直接為外部變量賦值XX, YY的時(shí)刻。global


import tkinter as tk

from tkinter import filedialog

import pandas as pd


# --- functions ---


def read_csv():

? ? global xx? # use external variable instead of local one

? ? global yy? # use external variable instead of local one

? ??

? ? filename = filedialog.askopenfilename(initialdir='/Desktop',

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? title='Select Data File',

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? filetypes=(('All files', '*.*'),

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?('CSV file', '*.csv')))



? ? if filename: # when user use `Cancel` then `filename will be `None`

? ? ? ? data = pd.read_csv(filename, names=["A", "B"])

? ? ? ? xx = data['A']? # it will assign to external variable

? ? ? ? yy = data['B']? # it will assign to external variable


? ? print(xx, yy)


# --- main ---


xx = None? # default value at start

yy = None? # default value at start


root = tk.Tk()


frame = tk.LabelFrame(root, text='Frame')

frame.pack() # you have to do in separated line because `frame = tk.LabelFrame().pack()` gives `None` in `frame`


csv_read_button = tk.Button(frame, text='Load Data', command=read_csv)

csv_read_button.pack()


root.mainloop()

如果您將添加使用 的函數(shù)xx,yy并且意外地它可以在您加載數(shù)據(jù)之前運(yùn)行,那么最好在開始時(shí)使用一些默認(rèn)值(即)創(chuàng)建xx,并在您嘗試從中獲取值之前簽入函數(shù),yyNonexxyyNonexxyy


當(dāng)你做


frame = tk.LabelFrame(root, text='Frame').pack()

然后你分配None給frame因?yàn)閜ack()//返回。您必須分兩行完成,才能將小部件分配給變量。grid()place()None


frame = tk.LabelFrame(root, text='Frame')

frame.pack()

在filedialog有人可以點(diǎn)擊Cancel然后filename將是None所以你應(yīng)該在你嘗試使用filename讀取數(shù)據(jù)之前檢查它。

查看完整回答
反對(duì) 回復(fù) 2023-06-20
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)