Py学习  »  alec_djinn  »  全部回复
回复总数  2
5 年前
回复了 alec_djinn 创建的主题 » Python3-列表索引超出范围-从文件中提取数据

你的代码有几个问题。 首先,使用 with statement 那么,您不需要使用如下变量 x 要跟踪行数,只需使用 enumerate()

下面是我将如何重构你的代码,使其更苗条和可读性。

input_file = r"C:\Users\Measurement\LOGGNSS.txt"
content = []

with open(input_file, 'r') as f:
    for line in f:
        clean_line = line.strip().split(",")
        content.append(clean_line)

for z, data in enumerate(content):
    print(z,'\n',data)

请注意,您可以在一个循环中读取文件时打印内容。

with open(input_file, 'r') as f:
    for z, line in enumerate(f):
        clean_line = line.strip().split(",")
        content.append(clean_line)
        print(z,'\n', clean_line)

最后,如果处理的是简单的csv文件,则使用 csv module 从标准库。

import csv

with open(input_file, 'r') as f:
    content = csv.reader(f, delimiter=',')
6 年前
回复了 alec_djinn 创建的主题 » Python if语句不能在函数内部工作

if/else语句工作得很好,问题出在别处。更具体地说,代码中有两个错误。

  1. again 对于变量和 函数,应该使用不同的名称。

  2. guessing 变量也应该是全局的,否则while循环将永远看不到它的变化。

试试这个:

def again():
    global guessing
    _again = input("Play again? ")
    if _again in ["y","yes"]:
        guessing = True
    else:
        guessing = False