如何在单个PySimpleGUI弹窗中展示所有生成的质数结果?
解决方法
核心思路是先收集所有找到的质数,再一次性在弹窗中展示,替代原本找到一个质数就弹出窗口的逻辑。修改后的代码如下:
import PySimpleGUI as sg start = int(sg.popup_get_text("Enter the start of the range: " )) end = int(sg.popup_get_text("Enter the end of the range: ")) # 创建列表存储找到的质数 primes = [] for num in range(start, end + 1): if num > 1: for i in range(2, int(num**0.5) + 1): if(num % i) == 0: break else: primes.append(str(num)) # 转为字符串方便后续拼接 # 将质数列表转为换行分隔的文本,统一弹窗展示 if primes: result_content = "找到的质数:\n" + "\n".join(primes) else: result_content = "该范围内没有质数" sg.popup(result_content) sg.popup("The process is complete. Press OK to close.")
关键修改说明:
- 新增
primes列表,集中存储所有符合条件的质数(转成字符串类型,方便后续文本拼接) - 移除循环内单独弹出窗口的
sg.popup(num),改为将质数添加到列表中 - 遍历结束后,用
"\n".join(primes)把列表元素拼接成换行分隔的文本,通过一个弹窗统一展示 - 增加空列表判断,避免范围内无质数时弹窗内容为空
内容的提问来源于stack exchange,提问作者user26149746
相关产品推荐
相关产品推荐

