我对一些脚本有疑问,该脚本应该获取一些数据 - 即玩家/得分数字并创建比率结果以供进一步分析。 请有人帮助我 - 这可能是一个小错误,但我不太有经验,只是想调整我在网上找到的内容。 我的数据如下所示:
Player1 1
Player2 1
-------------------------------------------
Player3 5
Player4 1
-------------------------------------------
Player4 2
Player1 3
-------------------------------------------
Player2 2
Player5 1
-------------------------------------------
Player5 2
Player4 3
-------------------------------------------
Player1 3
Player3 1
-------------------------------------------
Player3 2
Player5 3
-------------------------------------------
Player4 3
Player2 1
-------------------------------------------
Player2 3
Player1 2
-------------------------------------------
Player4 1
Player3 4
-------------------------------------------
Player1 3
Player4 2
-------------------------------------------
Player5 3
Player2 4
-------------------------------------------
Player4 3
Player5 2
-------------------------------------------
Player3 3
Player1 4
-------------------------------------------
Player5 3
Player3 2
-------------------------------------------
Player2 1
Player4 4
-------------------------------------------
Player3 5
Player2 2
-------------------------------------------
Player1 1
Player5 2
-------------------------------------------
最终结果在某些情况下相当令人满意,而在某些情况下,结果与输入数据相反。 这些是结果 - 为了方便起见,我用“i”标记了错误的数字,表示“不正确”。 感叹号放在完全没有“理由”存在的分数上:
Player1 Player2 1:1
Player3 Player4 5:1
Player4 Player1 3:2 i
Player2 Player5 2:1
Player5 Player4 3:2 i
Player1 Player3 3:1
Player3 Player5 3:2 i
Player4 Player2 3:1
Player2 Player1 3:2
Player4 Player3 4:1 i
Player1 Player4 3:1 i!
Player5 Player2 4:3 i
Player4 Player5 3:2
Player3 Player1 4:3 i
Player5 Player3 3:2
Player2 Player4 4:1 i
Player3 Player2 5:2
Player1 Player5 2:1 i
我不是真正意义上的编码员,我所能想到的只是transform_results函数有问题 我可以想到以下原因,但几乎没有知识来解决它们......: - 不正确的比较逻辑:如果分数没有正确比较,则得到的比率可能不正确。 - 球员和分数的顺序:如果球员和分数的顺序维护不正确,输出可能与预期结果不匹配。 这就是我使用的代码片段: 我不会要求你重写太多,但也许这是一些很容易纠正的小故障? 我将感谢这项工作所需的统计分析所需的每一个见解,我希望有一天能赚钱,但不是现在,以防万一您想知道......;) 提前非常感谢您,祝一切顺利:)
# Function to read data from a text file
def read_data_from_file(file_name):
data = []
with open(file_name, 'r') as file:
for line in file:
line = line.strip()
if line and not line.startswith('-'):
data.append(line.split())
return data
# Function to convert direct results to ratio
def transform_results(data):
results = []
for i in range(0, len(data), 2):
player1, score1 = data[i][0], data[i][1]
player2, score2 = data[i + 1][0], data[i + 1][1]
if player1 != player2:
if score1 > score2:
ratio = f"{score1}:{score2}"
else:
ratio = f"{score2}:{score1}"
results.append([player1, player2, ratio])
return results
# Function to write results to a text file
def write_results_to_file(results, file_name):
with open(file_name, 'w') as file:
for row in results:
file.write(' '.join(row) + '\n')
# File paths
input_file = 'C:/Users/M/Desktop/Test.txt'
output_file = 'C:/Users/M/Desktop/Results.txt'
# Read data from input file
data = read_data_from_file(input_file)
# Transform results into ratio
results = transform_results(data)
# Write results to output file
write_results_to_file(results, output_file)
print("Transformation of results completed successfully.")
如果我理解正确,那么你需要以下内容:
# Function to read data from a text file
def read_data_from_file(file_name):
data = []
with open(file_name, 'r') as file:
for line in file:
line = line.strip()
if line and not line.startswith('-'):
data.append(line.split())
return data
# Function to convert direct results to ratio
def transform_results(data):
results = []
for i in range(0, len(data)):
player1, score1 = data[i][0], data[i][1]
player2, score2 = data[i][2], data[i][3]
if not player1 == player2:
if score1 > score2: ratio = f"{score1}:{score2}"
else: ratio = f"{score2}:{score1}"
results.append([player1, player2, ratio])
return results
# Function to write results to a text file
def write_results_to_file(results, file_name):
with open(file_name, 'w') as file:
for row in results:
file.write(' '.join(row) + '\n')
# File paths
input_file = 'C:/Users/M/Desktop/Test.txt'
output_file = 'C:/Users/M/Desktop/Results.txt'
# Read data from input file
data = read_data_from_file(input_file)
results = transform_results(data)
write_results_to_file(results, output_file)
print("Transformation of results completed successfully.")