私信  •  关注

lemonhead

lemonhead 最近创建的主题
lemonhead 最近回复了
3 年前
回复了 lemonhead 创建的主题 » 如何在python中打印对应行和列为零的矩阵的坐标?

根据您在表中的迭代方式, l[i] 确实会给你第i行的l,但是 l[j] 将给出表l的第j行,而实际上需要表l的第j列。

如果列多于行,则会出现索引错误,因此最终会尝试访问第7行 一行 (而不是专栏)这确实不存在

这不是最有效的方法,但要获得第j列,可以对每行x的每个l[x][j]进行迭代: sum(l[x][j] for x in range(len(l))])

也就是说:

r,c=map(int,input().split())
l=[list(map(int,input().split())) for i in range(r)]
for i in range(len(l)):
    for j in range(0,len(l[i])):
        if sum(l[i])==0 and sum(l[x][j] for x in range(len(l)))==0:
          print(i,j)


# Outputs:
1 12
2 12
3 12
4 12

在上面的测试用例中

4 年前
回复了 lemonhead 创建的主题 » 将参数传递给python exe

如果您不想创建一个使用用户界面提取凭据的GUI程序,那么您可能需要进行命令行操作。通过传入参数,然后使用 sys.argv

例如:

import sys
if len(sys.argv) < 6:
    raise ValueError("Not enough commandline arguments! Please run with <executable> <server> <database> <username> <password> <folder_path>")

server = sys.argv[1]
database = sys.argv[2]
username = sys.argv[3]
password = sys.argv[4]
rawfile_directory= sys.argv[5]

然后,您可以使用以下命令从命令提示符运行可执行文件

C:\> <EXEfilename> DESKTOP-9B Ebay_CX etluser password E:\Projects\Ebay\ETLApp

如果你想要一个更华丽、更漂亮的命令行界面,请考虑使用 argparse 因此,在如何使用可执行文件的不同参数方面,您可以为最终用户提供更多帮助,例如使用说明、-options而不是args、-help-support等等。

您还可以在运行时请求用户输入,例如在使用 input() 但这不太标准

另见: after compiling python program, how to input arguments