【问题标题】:Is there a way to make the console or terminal output change by just changing a variale in the python script有没有办法通过更改 python 脚本中的变量来更改控制台或终端输出
【发布时间】:2021-12-31 03:52:29
【问题描述】:

大家好。也许有什么我不明白的。在这种情况下,如何通过更改变量 a、b 或 c 来更改控制台的输出。无需重新加载控制台。我要么让它输出一次,然后我有一个闪烁的提示,要么它打印大量的行。这是我的测试:

a = 1 
b = 1 
c = 1 
print(a, b, c)

def messenger():
    while a and b and c:
            print("True")
    else:
            print("False")
            time.sleep(5)

因此,如果我在脚本中更改变量:a、b 或 c,请保存文件,然后只需观察控制台进行更改。任何帮助将不胜感激。

【问题讨论】:

  • 我不明白这个问题。您希望屏幕内容在再次运行程序的情况下发生变化?

标签: python console


【解决方案1】:

由于 a、b、c 是变量,它们存储在内存中,并在运行时分配给脚本。

如果不重新运行脚本,您将无法更改这些值,这将释放旧内存、重新分配新内存并运行您的代码。

我怀疑您需要实现这样的解决方案,像这样更改变量;将比您实施的工作量多得多(对此的解决方案可以是独立的中间项目)

最好从文件或数据库中将值读入这些变量。

with open('filefora.txt', 'r') as f:
    a = int(f.readline())
with open('fileforb.txt', 'r') as f:
    b = int(f.readline())
while True:
    if a and b:
        print(True)  
    else:
        print(False)
    with open('filefora.txt', 'r') as f:
        a = int(f.readline())
    with open('fileforb.txt', 'r') as f:
        b = int(f.readline())

现在,每次您更改文件中相应 var 的值时,代码都会使用该新值,而无需重新运行脚本。

重新运行文件会更好。

【讨论】:

  • 所以最好的方法就是将它写入一个文件,然后将文件读回控制台。原因是我不想每次a、b、c变化时都打开一个终端。
  • @JohanLombard 如果您要在代码中修改 a、b、c,那么是的,您必须将该更新写入相应的文件中。你的推理对我来说仍然没有多大意义。
【解决方案2】:

@Anu 非常适合更新 a、b 和 c 的值。 此代码用于将结果打印到控制台而不打印换行符。

import time

#This function does something to the values of a, b and c
def foo(a, b, c):
    return a, b, c
a = 1
b = 1
c = 1
while True:
    a, b, c = foo(a, b, c)
    if a and b and c:
        print("\rTrue", end='')
        time.sleep(1)
    else:
        print("\rFalse", end='')
        time.sleep(1)

【讨论】:

    【解决方案3】:

    我认为您完全不知道程序是如何工作的,也不知道它是如何在控制台中显示的。

    如果我以 Python 为例,并且您运行 Python 程序,则会始终出现一个控制台,除非它是 .pyw 而不是 .py

    您可能已经知道 Python 是一种解释器语言,它会逐行转换为二进制,而其他高级语言(如 C++ 和 Java)则首先编译代码。

    现在,如果您运行 Python 程序,解释器会将整个程序转换为机器可读状态,然后它会查找错误,然后会出现一个控制台,显示输出。

    但是,如果您打开源代码(人类可读代码)并进行更改并保存,则不会影响控制台。为什么?这是因为该代码仍然是源代码,除非您运行它,否则永远不会转换为机器可读代码(这将打开另一个控制台,显示已保存的源代码更改的输出)。

    根据您提出的问题,我建议关闭程序,进行更改并重新运行它。 @Anu 的回答有利于获取文件中保存的数据并将保存的值用作变量,而不是用于您要求的目的,因为它会使程序面临安全漏洞。

    【讨论】:

    • 感谢 8D 和 Anu。现在这对我来说更有意义了。
    猜你喜欢
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多