tkinter 创建一个文本框使数据居中

时间: 2024-09-25 12:14:59 浏览: 13
Tkinter是Python的一个图形用户界面库,用于创建GUI应用程序。如果你想在Tkinter中创建一个文本框并使其内容居中显示,你可以按照以下步骤操作: 1. 导入tkinter模块: ```python from tkinter import * ``` 2. 初始化Tk窗口,并设置布局管理器,如`grid`或`pack`,这里我们使用`grid`,因为它可以更方便地控制元素的位置: ```python root = Tk() root.columnconfigure(0, weight=1) # 设置列的权重以便内容居中 root.rowconfigure(0, weight=1) ``` 3. 创建一个Text控件,并使用`sticky='center'`参数将其内容居中对齐: ```python text_box = Text(root, width=40, height=5, wrap='word', justify='center') # 宽度、高度自定 text_box.grid(row=0, column=0, sticky='center') ``` 4. 如果需要添加文本,可以直接通过`.insert`方法插入: ```python text_box.insert('end', '这是居中的文本内容\n') # 'end'表示追加到文本末尾 ``` 5. 最后,记得在主循环中等待用户的交互或者事件处理,然后结束应用: ```python root.mainloop() ```
相关问题

tkinter 创建一个文本框,不允许输入数据。可以插入数据显示并且数据居中

在Tkinter中,如果你想创建一个只读的文本框(即不允许用户输入数据),你可以使用`ttk.Label`而不是`ttk.Entry`。`Label`组件允许显示静态文本,而不会接受用户的输入。如果你想让数据显示得居中,可以在创建`Label`时设置其`text`属性,并结合`grid`或`pack`函数的`center`选项来定位它。 以下是一个简单的例子: ```python import tkinter as tk from tkinter import ttk # 创建主窗口 root = tk.Tk() # 创建一个只读的文本框,显示预设的数据并居中 data = "这是展示的数据" label = ttk.Label(root, text=data, justify="center") label.grid(column=0, row=0, padx=50, pady=50, sticky='nsew') # 使用padx和pady控制边距,sticky用于保持居中 # 主循环 root.mainloop() ``` 在这个示例中,`justify="center"`将文本内容水平居中对齐。如果需要垂直居中,可以使用`pack()`函数,并配合`fill="both"`和适当的`expand=True`来调整。

python文本框居中显示

要在Python中实现文本框居中显示,可以使用不同的GUI库,如tkinter或PyQt。在tkinter中,可以使用anchor参数将文本框的内容居中对齐。在PyQt中,可以使用setAlignment方法将文本框的内容居中对齐。 在tkinter中,可以使用以下代码将文本框的内容居中显示: ```python import tkinter as tk root = tk.Tk() text = tk.Text(root, width=30, height=10) text.insert(tk.END, "Hello, World!") text.tag_configure("center", justify='center') text.tag_add("center", "1.0", "end") text.pack() root.mainloop() ``` 在PyQt中,可以使用以下代码将文本框的内容居中显示: ```python from PyQt4.QtGui import * from PyQt4.QtCore import * app = QApplication([]) window = QWidget() layout = QVBoxLayout() text = QTextEdit() text.setAlignment(Qt.AlignCenter) text.setPlainText("Hello, World!") layout.addWidget(text) window.setLayout(layout) window.show() app.exec_() ``` 以上代码中,我们创建了一个文本框并设置了宽度和高度。然后,我们使用anchor参数将文本框的内容居中对齐。在PyQt中,我们使用setAlignment方法将文本框的内容居中对齐。最后,我们将文本框添加到布局中,并显示窗口。 希望这个回答对您有帮助![1][2]

相关推荐

下列代码中,文本框能显示,其它控件如notebook都不能显示。请给出修改后的代码。import tkinter as tk import tkinter.font as tkFont from tkinter.scrolledtext import ScrolledText # 导入ScrolledText from tkinter.filedialog import * from tkinter.ttk import * from tkinter import * import tkinter.messagebox from pystray import MenuItem, Menu from PIL import Image import pandas as pd class tkinterGUI(): root = None # 定义为类属性,可以在类的多个实例中共享 def __init__(self, geometry): pass def test(self): pass def create_root_win(self): self.root, self.文本框_主消息 = self.create_toplevel_win(True, "软件标题", "430x670", self.test, False, False) self.root.mainloop() # 在 create_root_win 方法中调用 mainloop 方法,显示窗口 def root_win_add1(self): if self.root is None: self.create_root_win() self.文本框_主消息.insert("1.0","efdssfdadsfasf") # 主内容区域 notebook = Notebook(self.root) notebook.pack(fill=tk.BOTH, expand=True) def create_toplevel_win(self,if_root,title,size,close_cmd,textbox_n,if_resize_width=True,if_resize_heigh=True): if if_root: mygui=tk.Tk() else: mygui=tk.Toplevel(self.root) 窗口win启动 = True mygui.title = title mygui.protocol('WM_DELETE_WINDOW', close_cmd) # 把点击x关闭窗口变成不要关闭并最小化到托盘 # 设置大小 居中展示 #win.bind("<Configure>", lambda root:win_mouse_release(root)) mygui.resizable(width=if_resize_width, height=if_resize_heigh) mygui.wm_attributes('-topmost', 1) #mygui.geometry(size+ "+" + str(self.root.winfo_x() + self.root.winfo_width()) + "+" + str(self.root.winfo_y())) mygui.geometry(size) tbox = ScrolledText(mygui) #self.eval("文本框"+title) = ScrolledText(self.win) tbox.place(relx=0.01, rely=0.18, relwidth=0.99, relheight=0.8) mygui.mainloop() return mygui,tbox # a,b=400,650 def show_msg_in_toplevel(self): self.win_msg,self.win_msg_tb= self.create_toplevel_win(self.root,"实时解盘","350x670",self.隐藏到任务栏,False,False) if __name__=="__main__": root=tkinterGUI("360x670") root.root_win_add1()

class ExcelApp: def init(self, master): self.master = master master.title("Excel App")# 创建工具栏 toolbar = tk.Frame(master, height=30) tk.Button(toolbar, text="打开", command=self.open_file).pack(side=tk.LEFT, padx=2, pady=2) tk.Button(toolbar, text="保存", command=self.save_file).pack(side=tk.LEFT, padx=2, pady=2) toolbar.pack(side=tk.TOP, fill=tk.X)# 创建文本框 text_frame = tk.Frame(self.panel_right) text_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.textbox = tk.Text(text_frame) self.textbox.pack(side=tk.TOP, fill=tk.BOTH, expand=True)def show_sheet(self, sheet_name): self.textbox.tag_configure("left", justify="left") sheet = self.workbook[sheet_name] rows = sheet.max_row # 清空文本框 self.textbox.delete(1.0, tk.END) # 添加表名并设置居中标签 self.textbox.insert(tk.END, sheet_name + ":\n", "center") # 显示工作表内容,并在相应数据后面添加下拉输入框 for row in sheet.iter_rows(values_only=True): for i, cell in enumerate(row): line = str(cell) + "\t" if i == 0: # 在第一列数据后面添加下拉输入框 combobox = tk.ttk.Combobox(self.textbox, values=["下拉选项1", "下拉选项2", "下拉选项3"]) combobox.pack(side=tk.TOP, padx=10, pady=5) self.textbox.window_create(tk.END, window=combobox) self.textbox.insert(tk.END, line, "left") self.textbox.insert(tk.END, "\n") # 设置居中标签的样式 self.textbox.tag_configure("center", justify="center", font=("Arial", 14, "bold"))根據這個函數在寫一個函數,將這個函數生成文本框中的數據内容和下拉輸入框的内容按列寫入一個excel中,在寫入前要判斷文本框中是否存在内容和下拉輸入框是否有值,如果沒有就提醒

def show_sheet(self, sheet_name): self.textbox.tag_configure("left", justify="left") sheet = self.workbook[sheet_name] rows = sheet.max_row # 清空文本框 self.textbox.delete(1.0, tk.END) # 添加表名并设置居中标签 self.textbox.insert(tk.END, sheet_name + ":\n", "center") # 显示工作表内容,并在相应数据后面添加下拉输入框 for row in sheet.iter_rows(values_only=True): for i, cell in enumerate(row): line = str(cell) + "\t" if i == 0: # 在第一列数据后面添加下拉输入框 combobox = tk.ttk.Combobox(self.textbox, values=["OK", "NG", "未開綫", "未使用"]) combobox.pack(side=tk.TOP, padx=10, pady=5) self.textbox.window_create(tk.END, window=combobox) self.textbox.insert(tk.END, line, "left") self.textbox.insert(tk.END, "\n") # 设置居中标签的样式 self.textbox.tag_configure("center", justify="center", font=("Arial", 18, "bold"), foreground="blue") # 判断表名是否为“產綫-Router机粉塵記錄表”,如果是,则清空文本框 if sheet_name == "產綫-Router机粉塵記錄表": self.textbox.delete(1.0, tk.END) # 添加表名并设置居中标签 self.textbox.insert(tk.END, sheet_name + ":\n", "center")在這段代碼的 判斷當前工作表名如果等於產綫-Router机粉塵記錄表清空文本框内容,添加表名,將一天24小時分成12組分別是08:00--10:00 10:00--12:00 12:00--14:00 14:00-16:00 16:00-18:00 18:00-20:00 20:00-22:00 22:00-00:00 00:00-02:00 02:00-04:00 04:00-06:00 06:00-08:00,獲取當前時間是在那一組中,就將那一組寫入文本框中也有在文本前添加下拉輸入框,如當前時間是在09:00點,那麽就寫入08:00-10:00,不要將excel原本内容寫入

这段代码,只有文本框能显示,其它控件都不能显示。为什么呢?class tkinterGUI(): root = None # 定义为类属性,可以在类的多个实例中共享 def __init__(self, geometry): pass def test(self): pass def create_root_win(self): self.root, self.文本框_主消息 = self.create_toplevel_win(True, "软件标题", "430x670", self.test, False, False) self.root.mainloop() # 在 create_root_win 方法中调用 mainloop 方法,显示窗口 def root_win_add1(self): if self.root is None: self.create_root_win() self.文本框_主消息.insert("1.0","efdssfdadsfasf") # 主内容区域 notebook = Notebook(self.root) notebook.pack(fill=tk.BOTH, expand=True) def create_toplevel_win(self,if_root,title,size,close_cmd,textbox_n,if_resize_width=True,if_resize_heigh=True): if if_root: mygui=tk.Tk() else: mygui=tk.Toplevel(self.root) 窗口win启动 = True mygui.title = title mygui.protocol('WM_DELETE_WINDOW', close_cmd) # 把点击x关闭窗口变成不要关闭并最小化到托盘 # 设置大小 居中展示 #win.bind("<Configure>", lambda root:win_mouse_release(root)) mygui.resizable(width=if_resize_width, height=if_resize_heigh) mygui.wm_attributes('-topmost', 1) #mygui.geometry(size+ "+" + str(self.root.winfo_x() + self.root.winfo_width()) + "+" + str(self.root.winfo_y())) mygui.geometry(size) tbox = ScrolledText(mygui) #self.eval("文本框"+title) = ScrolledText(self.win) tbox.place(relx=0.01, rely=0.18, relwidth=0.99, relheight=0.8) mygui.mainloop() return mygui,tbox # a,b=400,650 def show_msg_in_toplevel(self): self.win_msg,self.win_msg_tb= self.create_toplevel_win(self.root,"实时解盘","350x670",self.隐藏到任务栏,False,False) if __name__=="__main__": root=tkinterGUI("360x670") root.root_win_add1()

import tensorflow as tf import numpy as np import tkinter as tk from tkinter import filedialog import time import pandas as pd import stock_predict as pred def creat_windows(): win = tk.Tk() # 创建窗口 sw = win.winfo_screenwidth() sh = win.winfo_screenheight() ww, wh = 800, 450 x, y = (sw - ww) / 2, (sh - wh) / 2 win.geometry("%dx%d+%d+%d" % (ww, wh, x, y - 40)) # 居中放置窗口 win.title('LSTM股票预测') # 窗口命名 f_open =open('dataset_2.csv') canvas = tk.Label(win) canvas.pack() var = tk.StringVar() # 创建变量文字 var.set('选择数据集') tk.Label(win, textvariable=var, bg='#C1FFC1', font=('宋体', 21), width=20, height=2).pack() tk.Button(win, text='选择数据集', width=20, height=2, bg='#FF8C00', command=lambda: getdata(var, canvas), font=('圆体', 10)).pack() canvas = tk.Label(win) L1 = tk.Label(win, text="选择你需要的 列(请用空格隔开,从0开始)") L1.pack() E1 = tk.Entry(win, bd=5) E1.pack() button1 = tk.Button(win, text="提交", command=lambda: getLable(E1)) button1.pack() canvas.pack() win.mainloop() def getLable(E1): string = E1.get() print(string) gettraindata(string) def getdata(var, canvas): global file_path file_path = filedialog.askopenfilename() var.set("注,最后一个为label") # 读取文件第一行标签 with open(file_path, 'r', encoding='gb2312') as f: # with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 读取所有行 data2 = lines[0] print() canvas.configure(text=data2) canvas.text = data2 def gettraindata(string): f_open = open(file_path) df = pd.read_csv(f_open) # 读入股票数据 list = string.split() print(list) x = len(list) index=[] # data = df.iloc[:, [1,2,3]].values # 取第3-10列 (2:10从2开始到9) for i in range(x): q = int(list[i]) index.append(q) global data data = df.iloc[:, index].values print(data) main(data) def main(data): pred.LSTMtest(data) var.set("预测的结果是:" + answer) if __name__ == "__main__": creat_windows()这个代码能实现什么功能

最新推荐

recommend-type

基于opencv实现象棋识别及棋谱定位python源码+数据集-人工智能课程设计

基于opencv实现象棋识别及棋谱定位python源码+数据集-人工智能课程设计,含有代码注释,满分课程设计资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 基于opencv实现象棋识别及棋谱定位python源码+数据集-人工智能课程设计,含有代码注释,满分课程设计资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 基于opencv实现象棋识别及棋谱定位python源码+数据集-人工智能课程设计,含有代码注释,满分课程设计资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。基于opencv实现象棋识别及棋谱定位python源码+数据集
recommend-type

基于Python实现的Cowrie蜜罐设计源码

该项目为基于Python实现的Cowrie蜜罐设计源码,共计380个文件,涵盖166个Python源代码文件,以及包括RST、SQL、YAML、Markdown等多种类型的配置和文档文件。Cowrie蜜罐是一款用于记录暴力攻击和攻击者执行的SSH及Telnet交互的中等交互式蜜罐。
recommend-type

QT 摄像头获取每一帧图像数据以及opencv获取清晰度

QT 摄像头获取每一帧图像数据以及opencv获取清晰度
recommend-type

基于asp.net的(CS)地震预测系统设计与实现.docx

基于asp.net的(CS)地震预测系统设计与实现.docx
recommend-type

批量文件重命名神器:HaoZipRename使用技巧

资源摘要信息:"超实用的批量文件改名字小工具rename" 在进行文件管理时,经常会遇到需要对大量文件进行重命名的场景,以统一格式或适应特定的需求。此时,批量重命名工具成为了提高工作效率的得力助手。本资源聚焦于介绍一款名为“rename”的批量文件改名工具,它支持增删查改文件名,并能够方便地批量操作,从而极大地简化了文件管理流程。 ### 知识点一:批量文件重命名的需求与场景 在日常工作中,无论是出于整理归档的目的还是为了符合特定的命名规则,批量重命名文件都是一个常见的需求。例如: - 企业或组织中的文件归档,可能需要按照特定的格式命名,以便于管理和检索。 - 在处理下载的多媒体文件时,可能需要根据文件类型、日期或其他属性重新命名。 - 在软件开发过程中,对代码文件或资源文件进行统一的命名规范。 ### 知识点二:rename工具的基本功能 rename工具专门设计用来处理文件名的批量修改,其基本功能包括但不限于: - **批量修改**:一次性对多个文件进行重命名。 - **增删操作**:在文件名中添加或删除特定的文本。 - **查改功能**:查找文件名中的特定文本并将其替换为其他文本。 - **格式统一**:为一系列文件统一命名格式。 ### 知识点三:使用rename工具的具体操作 以rename工具进行批量文件重命名通常遵循以下步骤: 1. 选择文件:根据需求选定需要重命名的文件列表。 2. 设定规则:定义重命名的规则,比如在文件名前添加“2023_”,或者将文件名中的“-”替换为“_”。 3. 执行重命名:应用设定的规则,批量修改文件名。 4. 预览与确认:在执行之前,工具通常会提供预览功能,允许用户查看重命名后的文件名,并进行最终确认。 ### 知识点四:rename工具的使用场景 rename工具在不同的使用场景下能够发挥不同的作用: - **IT行业**:对于软件开发者或系统管理员来说,批量重命名能够快速调整代码库中文件的命名结构,或者修改服务器上的文件名。 - **媒体制作**:视频编辑和摄影师经常需要批量重命名图片和视频文件,以便更好地进行分类和检索。 - **教育与学术**:教授和研究人员可能需要批量重命名大量的文档和资料,以符合学术规范或方便资料共享。 ### 知识点五:rename工具的高级特性 除了基本的批量重命名功能,一些高级的rename工具可能还具备以下特性: - **正则表达式支持**:利用正则表达式可以进行复杂的查找和替换操作。 - **模式匹配**:可以定义多种匹配模式,满足不同的重命名需求。 - **图形用户界面**:提供直观的操作界面,简化用户的操作流程。 - **命令行操作**:对于高级用户,可以通过命令行界面进行更为精准的定制化操作。 ### 知识点六:与rename相似的其他批量文件重命名工具 除了rename工具之外,还有多种其他工具可以实现批量文件重命名的功能,如: - **Bulk Rename Utility**:一个功能强大的批量重命名工具,特别适合Windows用户。 - **Advanced Renamer**:提供图形界面,并支持脚本,用户可以创建复杂的重命名方案。 - **MMB Free Batch Rename**:一款免费且易于使用的批量重命名工具,具有直观的用户界面。 ### 知识点七:避免批量重命名中的常见错误 在使用批量重命名工具时,有几个常见的错误需要注意: - **备份重要文件**:在批量重命名之前,确保对文件进行了备份,以防意外发生。 - **仔细检查规则**:设置好规则之后,一定要进行检查,确保规则的准确性,以免出现错误的命名。 - **逐步执行**:如果不确定规则的效果,可以先小批量试运行规则,确认无误后再批量执行。 - **避免使用通配符**:在没有充分理解通配符含义的情况下,不建议使用,以免误操作。 综上所述,批量文件改名工具rename是一个高效、便捷的解决方案,用于处理大量文件的重命名工作。通过掌握其使用方法和技巧,用户可以显著提升文件管理的效率,同时减少重复劳动,保持文件系统的整洁和有序。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

RestTemplate性能优化秘籍:提升API调用效率,打造极致响应速度

![RestTemplate性能优化秘籍:提升API调用效率,打造极致响应速度](https://media.geeksforgeeks.org/wp-content/uploads/20220309145320/WorkingOfRESTTemplate.jpg) # 1. RestTemplate基础与API调用概述 ## 1.1 RestTemplate简介 `RestTemplate`是Spring框架提供的一个同步HTTP客户端,设计用来简化客户端HTTP请求的发送以及HTTP响应的接收。它是针对Java开发者的REST API调用的高级抽象,为调用RESTful服务提供了便利。
recommend-type

Leader和follower 位置反了如何调换zookeeper

在ZooKeeper中,Leader和Follower的角色通常是静态分配的,并通过选举机制确定。如果需要调整它们的位置,通常是在集群初始化或者节点失效的情况下,会触发重新选举过程。 1. **停止服务**:首先,停止ZooKeeper服务的所有节点,包括当前的Leader和Follower。 2. **修改配置**:打开zoo.cfg配置文件,更改服务器列表(server.X=IP:port:角色),将原来的Leader的地址设为Follower,Follower的地址设为Leader。例如: ``` server.1=old_leader_ip:old_leader_po
recommend-type

简洁注册登录界面设计与代码实现

资源摘要信息:"在现代Web开发中,简洁美观的注册登录页面是用户界面设计的重要组成部分。简洁的页面设计不仅能够提升用户体验,还能提高用户完成注册或登录流程的意愿。本文将详细介绍如何创建两个简洁且功能完善的注册登录页面,涉及HTML5和前端技术。" ### 知识点一:HTML5基础 - **语义化标签**:HTML5引入了许多新标签,如`<header>`、`<footer>`、`<article>`、`<section>`等,这些语义化标签不仅有助于页面结构的清晰,还有利于搜索引擎优化(SEO)。 - **表单标签**:`<form>`标签是创建注册登录页面的核心,配合`<input>`、`<button>`、`<label>`等元素,可以构建出功能完善的表单。 - **增强型输入类型**:HTML5提供了多种新的输入类型,如`email`、`tel`、`number`等,这些类型可以提供更好的用户体验和数据校验。 ### 知识点二:前端技术 - **CSS3**:简洁的页面设计往往需要巧妙的CSS布局和样式,如Flexbox或Grid布局技术可以实现灵活的页面布局,而CSS3的动画和过渡效果则可以提升交云体验。 - **JavaScript**:用于增加页面的动态功能,例如表单验证、响应式布局切换、与后端服务器交互等。 ### 知识点三:响应式设计 - **媒体查询**:使用CSS媒体查询可以创建响应式设计,确保注册登录页面在不同设备上都能良好显示。 - **流式布局**:通过设置百分比宽度或视口单位(vw/vh),使得页面元素可以根据屏幕大小自动调整大小。 ### 知识点四:注册登录页面设计细节 - **界面简洁性**:避免过多的装饰性元素,保持界面的整洁和专业感。 - **易用性**:设计简洁直观的用户交互,确保用户能够轻松理解和操作。 - **安全性和隐私**:注册登录页面应特别注意用户数据的安全,如使用HTTPS协议保护数据传输,以及在前端进行基本的输入验证。 ### 知识点五:Zip文件内容解析 - **登录.zip**:该压缩包内可能包含登录页面的HTML、CSS和JavaScript文件,以及相关的图片和其他资源文件。开发者可以利用这些资源快速搭建一个登录界面。 - **滑动登录注册界面.zip**:该压缩包内可能包含了两个页面的文件,分别是注册和登录页面。文件可能包含用HTML5实现的滑动动画效果,通过CSS3和JavaScript的结合实现动态交互,提供更流畅的用户体验。 通过这些知识点,开发者能够创建出既简洁又功能完善的注册登录页面。需要注意的是,尽管页面设计要简洁,但安全措施不可忽视。使用加密技术保护用户数据,以及在用户端进行有效的数据验证,都是开发者在实现简洁界面同时需要考虑的安全要素。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依