ValueError尝试拆分文本的行

2024-04-20 12:59:04 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

def MusicGame():
score=0
tries = 0
with open("songs.txt") as file:
    for line in file.readlines():
        artist,name=line.split(" - ", 1)
        question=(artist + "- " + " ".join([x[0].upper() for x in name.split()])+": ")
        answer=input(question)

        if tries != 2:
            if answer in ["STOOPID","Funky Friday","dark knight dummo","natural disaster","gucci gang"]:
                print("well done")
                tries=0
                score=score+3

            elif answer not in ["STOOPID","Funky Friday","dark knight dummo","natural disaster","gucci gang"]:
                    answer2=input("it was wrong try again")

                    if answer in ["STOOPID","Funky Friday","dark knight dummo","natural disaster","gucci gang"]:
                        print("well done+1")
                        tries=tries+1
                        score=score+1
                    elif answer2 not in ["STOOPID","Funky Friday","dark knight dummo","natural disaster","gucci gang"]:
                        print("you suck you lost")
                        break 

我总是犯这个错误

artist,name=line.split(" - ", 1)
ValueError: need more than 1 value to unpack

我的文本文件如下所示:

6ix9ine,Bobby Shmurda - STOOPID

Dave,Fredo - Funky Friday

Trippie Redd,Travis Scott - Dark Knight Dummo

NSG - Natural Disaster

Lil pump - Gucci Gang


Tags: answerinlinenaturalfunkyscoredarkfriday
1条回答
网友
1楼 · 发布于 2024-04-20 12:59:04

您的文件似乎有空行。您不能将'-'上的那些行拆分并将结果解压为两个变量,因为这些行不包含该字符。先过滤掉空行。你知道吗

演示:

>>> def non_blank(file):
...     return (line for line in file if line.strip())
... 
>>> with open('songs.txt') as songs:
...     for line in non_blank(songs):
...         print(line.split(' - '))
... 
['6ix9ine,Bobby Shmurda', 'STOOPID\n']
['Dave,Fredo', 'Funky Friday\n']
['Trippie Redd,Travis Scott', 'Dark Knight Dummo\n']
['NSG', 'Natural Disaster\n']
['Lil pump', 'Gucci Gang\n']

相关问题 更多 >