有没有一种方法可以通过更改 python 脚本中的变量来更改控制台或终端输出
Is there a way to make the console or terminal output change by just changing a variale in the python script
大家好。也许有什么我不明白的。在这种情况下,如何通过更改变量 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,保存文件,然后观察控制台是否有变化。任何帮助将不胜感激。
由于 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 的值时,代码将使用该新值而无需重新运行 脚本。
更好的方法是重新运行文件。
@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)
我认为您完全不知道该程序的工作原理或它在控制台中的显示方式。
如果我以 Python 为例,而你 运行 一个 Python 的程序,除非它是 .pyw
而不是 .py
.
你可能已经知道 Python 是一种解释器语言,它逐行转换为二进制,而不像 C++ 和 Java 等其他高级语言首先编译代码.
现在,如果你 运行 你的 Python 程序,解释器会将整个程序转换为机器可读状态,这就是它查找错误的时候,然后会出现一个控制台向您展示输出。
但是,如果您打开源代码(人类可读的代码)并进行更改并保存,则不会影响控制台。为什么?这是因为该代码仍然是源代码,永远不会转换为机器可读代码,除非您 运行 它(这将打开另一个控制台,向您显示已保存的源代码更改的输出)。
根据您提出的问题,我建议关闭程序,进行更改并重新运行。 @Anu 的回答有利于获取文件中保存的数据并将保存的值用作变量,而不是用于您要求的目的,因为它会使程序面临安全漏洞。
大家好。也许有什么我不明白的。在这种情况下,如何通过更改变量 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,保存文件,然后观察控制台是否有变化。任何帮助将不胜感激。
由于 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 的值时,代码将使用该新值而无需重新运行 脚本。
更好的方法是重新运行文件。
@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)
我认为您完全不知道该程序的工作原理或它在控制台中的显示方式。
如果我以 Python 为例,而你 运行 一个 Python 的程序,除非它是 .pyw
而不是 .py
.
你可能已经知道 Python 是一种解释器语言,它逐行转换为二进制,而不像 C++ 和 Java 等其他高级语言首先编译代码.
现在,如果你 运行 你的 Python 程序,解释器会将整个程序转换为机器可读状态,这就是它查找错误的时候,然后会出现一个控制台向您展示输出。
但是,如果您打开源代码(人类可读的代码)并进行更改并保存,则不会影响控制台。为什么?这是因为该代码仍然是源代码,永远不会转换为机器可读代码,除非您 运行 它(这将打开另一个控制台,向您显示已保存的源代码更改的输出)。
根据您提出的问题,我建议关闭程序,进行更改并重新运行。 @Anu 的回答有利于获取文件中保存的数据并将保存的值用作变量,而不是用于您要求的目的,因为它会使程序面临安全漏洞。